결제
Unity3D
개요
액세스 내비게이션
자주 묻는 질문
Android
개요
액세스 내비게이션
자주 묻는 질문
IOS
개요
액세스 내비게이션
자주 묻는 질문
기타
데이터 구조
시스템 도구
결제 / Android / 개요

개요

Tencent 게임의 결제는 Midas로 통합되어 있습니다. Midas는 Tencent에서 공식적으로 제공하는 모바일 클라이언트 결제 SDK로, QQ화폐, QQ카드, 차이푸통(财付通), 은행카드, 위챗 패이, 휴대폰 충전 카드, 전화요금 등의 결제 채널입니다. 네이티브 android 및 iap(애플 공식 버전) 결제 SDK, 그리고 일련의 지불 서비스와 함께 마케팅 활동을 포함한 지원을 제공합니다. 여기서는 간략하게 소개할 것이며, 상세 정보는 Midas wiki를 참조하시기 바랍니다.

액세스 내비게이션

1 사전 요구 사항

1) MSDK 로그인 액세스 완료

결제 시에 모바일QQ의 appid, appkey, 위챗의 appid, pf, pfkey, openid, pay_token(모바일QQ 로그인 시 필요), accessToken(위챗 로그인 시 필요)과 같은 일련의 토큰 정보를 입력해야 하며, 해당 정보는 모두 로그인 성공 후에 획득됩니다. 로그인 가능한

토큰 정보 획득 방법을 참조하십시오. 그 외에도, 귀하께서는 offerid, offerid를 입력하고 http://midas.qq.com에서 신청해야 합니다. 신청 시 주의사항: 아이템 그룹이 있는 공공 QQ 계정이 있어야 하며, 결제 ID 신청 시에 개인 QQ는 사용하지 않을 것을 권장합니다.

2) Midasu의 다른 요구 사항 수행

상세 정보는 Midas 준비 작업 액세스를 참조하십시오.

2 게임 결제 정보 설정

미다스의 비용 계산 액세스 웹사이트에서 게임 기본 정보 및 결제 정보를 설정해야 합니다.

관리원 계정, 제품 매니저, 개발 책임자, 그리고 운용 및 유지관리 책임자의 RTX

모바일QQdml appid, appkey, 위챗의 appid

앱 이름, 게임 화폐 이름 그리고 교환 비율

계산 방식: 게임 화폐 충전 또는 직접 도구 구매

상세 정보는 andorid 결제 설정 상세 정보를 참조해 주십시오.

해당 정보 설정 후에 sdk의 액세스와 통합 및 테스트를 시작할 수 있습니다.

3 Midas SDK 액세스와 통합 및 테스트

크게 다음의 3개 단계로 분류됩니다.

1) MidasSDK 파일 불러오기

2) AndroidManifest.xml 설정

3) Midas 결제 인터페이스 호출

SDK 액세스

4 Midas 서버 인터페이스 액세스와 통합 및 테스트

Midas는 서버 호출 기능을 제공하는 결제 인터페이스로, 게임 화폐 잔액, 충전, 위탁, 마케팅 등을 수행할 수 있습니다. 상세 정보는 Midas 백그라운드 API 설명을 참조하십시오.

5 온라인 결제 시 주의사항

제출 심사가 필요하며, 정식 환경 변환이 필요합니다. 온라인 방법-Android를 참조하십시오.

SDK 액세스

1 MidasSDK 파일 불러오기

먼저 Midas 공식 웹사이트에서 AndroidSDK를 다운로드합니다.

1) MidasSDK\libs\MidasPluginXX.jar를 Android 앱 프로젝트의 assets 리스트에 복사해 넣으십시오.

2) MidasSDK\asset\MidasPay.zip을 Android 앱 프로젝트의 assets 디렉토리에 복사해 놓으십시오.

3) MidasSDK\res\anim 아래 4개 리소스를 앱 프로젝트의 res\anim 리스트 아래에 복사해 넣으십시오.

4) 위챗 결제 채널 통합. MSDK와 같은 위챗의 관련 결제 패키지를 이미 통합한 경우, libammsdk.jar를 복사해 놓지 않아도 됩니다. 그렇지 않은 경우, libammsdk.jar 패키지를 복사해 넣어야 위챗 결제 채널을 사용할 수 있습니다.

5) qq 지갑 채널 통합. mqqopenpay.jar 패키지를 libs 리스트 아래에 복사해 넣어야 합니다.

6) 로그인 jar 패키지 설치 설명

위챗 플랫폼의 경우, SDK 내 로그인 호출 또는 모바일QQ 플랫폼 자체 개발 앱으로 SDK 내 로그인을 호출해야 하며, wlogin_sdk.jar가 필요합니다. 앱 내에 이미 wlogin_sdk.jar가 있으면, 함께 사용하면 됩니다. 로비 플랫폼과 같이 내부 로그인 앱을 호출할 필요가 없는 경우, 아래 캡처 화면의 붉은 색 프레임 내 패키지(libs 리스트 아래)를 삭제할 수 있으며, midas 1.3.9 버전의 경우에는 wtlogin 5.2버전을 사용하지만, midas는 동시에 wtlogin의 낮은 버전과도 호환됩니다.

7) 특별 주의사항: MidasPaySample의 libs 아래 armeabi 리스트와 x86 리스트 아래의 libwtecdh.so 라이브러리는 wtlogin의 새 버전(5.x 이상)에서 필요한 so 라이브러리로, 게임이 사용하는 버전이 낮은 경우(wtlogin 4.x), wlogin_sdk.jar 패키지와 armeabi 디렉토리, 그리고 x86 디렉토리 아래의 so 라이브러리를 삭제하면 됩니다.

(./res/midas_android_libs.png)

2 AndroidManifest.xml 설정

1) App 권한 선언은, 다음 권한을 추가합니다.

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

<uses-permission android:name="android.permission.RESTART_PACKAGES" />

<uses-permission android:name="android.permission.GET_TASKS" />

<uses-permission android:name="android.permission.READ_SMS" />

<uses-permission android:name="android.permission.SEND_SMS"/>

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

2) Activity 선언 추가

<activity 
           android:name="com.tencent.midas.proxyactivity.APMidasPayProxyActivity"
           android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize”
           android:screenOrientation="landscape" />    

<activity
           android:name="com.tencent.midas.wx.APMidasWXPayActivity"
           android:theme="@android:style/Theme.Translucent.NoTitleBar"
           android:exported="true" />

<activity
           android:name="com.tencent.midas.qq.APMidasQQWalletActivity"
           android:launchMode="singleTop"
           android:theme="@android:style/Theme.Translucent.NoTitleBar"
           android:configChanges="orientation|keyboardHidden" 
           android:exported="true" >

           <intent-filter>

              <action android:name="android.intent.action.VIEW" />

              <category android:name="android.intent.category.BROWSABLE"/> 

              <category android:name="android.intent.category.DEFAULT"/> 

              <data android:scheme="qwallet100703379"/>

           </intent-filter>

       </activity>

 <activity android:name="com.tencent.midas.jsbridge.APWebJSBridgeActivity"
                       android:theme="@android:style/Theme.Translucent.NoTitleBar"
                       android:windowSoftInputMode="stateAlwaysHidden"/>

3) 기타 설정

android: targetSdkVersion13 이상에 설치합니다.

android:configChanges="orientation|keyboardHidden|screenSize

android: targetSdkVersion13보다 낮은 버전에 설치합니다.

android:configChanges="orientation|keyboardHidden

상세 정보는 Midas ANDROID SDK 액세스를 참조하십시오.

3 Midas 결제 인터페이스 호출

여기서는 토큰 결제/도구 결제에 대한 간략한 실례를 이미 제시했으며, 액세스에 대한 전반적인 절차를 신속히 이해하고 상세 정보를 원한다면, Midas SDK 인터페이스 설명을 참조해 주십시오.

1) Midas SDK 초기화 인터페이스 호출

a) 기능 설명

Midas SDK를 초기화합니다.

b) 인터페이스 선언

public static void init(Activity activity, APMidasBaseRequest request)

설명: 게임 초기화 시에 해당 인터페이스 초기화 SDK를 호출할 경우, Midas의 다른 인터페이스를 사용하기 전에 먼저 최소 1회 init 초기화 작업을 실시해야 합니다.

c) 파라미터 설명

파라미터 명칭 유형 설명
gameActivity Activity 게임 ctivity
request APMidasBaseRequest Midas 결제 청구

d) 반환값

없음

e) 예시 코드

APMidasGameRequest initRequest = new APMidasGameRequest();

LoginRet lr = new LoginRet();

WGPlatform.WGGetLoginRecord(lr);



initRequest.offerId = WeGame.getInstance().offerId;

initRequest.openId = lr.open_id;



if(lr.platform == WeGame.QQPLATID){

    initRequest.openKey = lr.getTokenByType(TokenType.eToken_QQ_Pay);

    initRequest.sessionType = "kp_actoken";

    initRequest.sessionId = "openid";



}else if(lr.platform == WeGame.WXPLATID){

    initRequest.openKey = lr.getTokenByType(TokenType.eToken_WX_Access);

    initRequest.sessionType = "wc_actoken";

    initRequest.sessionId = "hy_gameid";

}





initRequest.pf = WGPlatform.WGGetPf("");



initRequest.pfKey = WGPlatform.WGGetPfKey();



APMidasPayAPI.init(mainActivity, initRequest);

2) 환경 파라미터 설정

a) 기능 설명

환경 파라미터 설정: test는 샌드박스 환경 결제, release는 현행 네트워크 환경 결제. 앱 액세스 시에 먼저 샌드박스 환경에서 테스트 통과 후에 release로 변환하여 재배포할 것을 건의합니다.

b) 인터페이스 선언

public static void setEnv(String env)

c) 파라미터 설명

파라미터 명칭 유형 설명
env String 결제 환경

d) 반환값

없음

e) 예시 코드

APMidasPayAPI.setEnv(APMidasPayAPI.ENV_TEST);

3) 결제 인터페이스를 호출해 결제 실시

a) 기능 설명

충전 모듈 인터페이스를 기동하고 사용자를 안내해 계임 화폐 충전을 완료하며, 충전 금액은 결제 SDK에서 제공하는 기본값이고, 사용자가 수정할 수 있습니다. (주의: 해당 메소드는 메인 스레드에서 수행해야 함) IAPMidasPayCallBack은 결제 콜백이며, 결제 결과를 반환합니다. 구체적인 사용 방법은 다음의 예를 참조하십시오. 주의사항 플랫폼에 따라 상응하는 sessionType을 입력하며, 예시 안에 설명되어 있습니다.

b) 인터페이스 선언

public static void launchPay(Activity activity, APMidasBaseRequest request,IAPMidasPayCallBack callBack)

c) 파라미터 설명

파라미터 명칭 유형 설명
activity Activity 결제 시 게임 ctivity
request APMidasBaseRequest Midas 결제 request
callBack IAPMidasPayCallBack Midas 결제 반환 인터페이스

d) 반환값

없음

e) 예시 코드

APMidasGameRequest request = new APMidasGameRequest();

request.offerId = offerId;

request.openId = userId;

request.openKey = userKey;//모바일QQ는 paytoken, 위챗은 accesstoken

request.sessionId = sessionId;

request.sessionType = sessionType;//모바일QQ는 "kp_actoken", 위챗은 "wc_actoken"

request.zoneId = "1";

request.pf = pf;

request.pfKey = pfKey;

request.acctType = "common";

request.saveValue = "";//수량이 정해지지 않은 경우, 여기에 직접 구매 수량 선택 목록을 입력

request.resId = R.drawable.sample_yuanbao;



APMidasPayAPI.launchPay(gameActivity, request, 



                        new IAPMidasPayCallBack(){



                        @Override

                        public void MidasPayCallBack(APMidasResponse arg0) {

                            Log. d("MSDK_PAY", "결제 sdk 콜백 애플리케이션" );



                            switch(response.resultCode){

                            case APMidasResponse.PAYRESULT_ERROR: 

                                Log. d("MSDK_PAY", "결제 오류 발생" );

                                break;

                            case APMidasResponse.PAYRESULT_CANCEL: 

                                Log. d("MSDK_PAY", "사용자 취소" );

                                break;

                            case APMidasResponse.PAYRESULT_SUCC: 

                                Log. d("MSDK_PAY", "결제 성공" );



                            }



                        }



                        @Override

                        public void MidasPayNeedLogin() {

                            Log. d("MSDK_PAY", "로그인 토큰 기한 만료됨. 다시 로그인해 주십시오." );



                        }



                    });

4) 로그 인쇄 스위치

a) 기능 설명

로그를 열면 Midas에서 결제 로그를 인쇄할 수 있으므로 편리하게 테스트할 수 있습니다.

b) 인터페이스 선언

public static void setLogEnable(boolean logEnable)

c) 파라미터 설명

파라미터 명칭 유형 설명
logEnable boolean true: 개방, false: 폐쇄

d) 반환값

없음

e) 예시 코드

APMidasPayAPI.setLogEnable(true);

자주 묻는 질문

귀하께서 MIDAS ANDROID SDK에 액세스할 때, Miads의 설치 패키지 내에 있는 위챗 SDK(libammsdk.jar), 그리고 mid 관련 SDK(mid-***.jar)가 압축 해제되어 MSDKLibrary 내 관련 jar 패키지와 충돌하는 것을 발견하는 경우, 상응하는 jar 팩을 삭제하면 됩니다.