Blame view
IntegrationGuide.md
5.39 KB
2dc11c561
![]() |
1 2 |
## InlandSDK integration guide ### 本sdk包含登录和支付功能,支付包含微信支付,支付宝支付和银联支付,因此接入前请申请好各支付渠道的参数 |
5777c2e13
![]() |
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
1.获取gump分配的appid和appkey 2.导入InlandSDK库工程,并将自己的android工程设置引用此库工程 3.配置AndroidManifest.xml,分为3部分 1)确保有以下permission: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <!-- 以下是银联支付专用 --> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 2)需要在application内增加如下内容,**微信回调activity必须是 "项目包名.wxapi.WXPayEntryActivity",不可更改,且此activity需继承com.gump.inland.gamesdk.WXPayEntryBaseActivity**: <activity android:name="com.gump.inland.gamesdk.PassportBaseActivity" |
2a5af05fa
![]() |
24 |
android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" |
5777c2e13
![]() |
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
android:theme="@style/Theme.TransparentWin" > </activity> <activity android:name="com.gump.inland.gamesdk.PaymentActivity" android:theme="@android:style/Theme.Light.NoTitleBar" > </activity> <!-- wx callback 需要根据规则配置,此处请勿直接拷贝--> <activity android:name="yourPackageName.wxapi.WXPayEntryActivity" android:exported="true" > </activity> <!-- unionPay --> <activity android:name="com.unionpay.uppay.PayActivity" android:configChanges="orientation|keyboardHidden" android:excludeFromRecents="true" android:label="@string/app_name" android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize" /> |
2a5af05fa
![]() |
44 45 46 47 48 49 50 51 52 |
<!-- alipay sdk begin --> <activity android:name="com.alipay.sdk.app.H5PayActivity" android:configChanges="orientation|keyboardHidden|navigation" android:exported="false" android:screenOrientation="behind" android:windowSoftInputMode="adjustResize|stateHidden" > </activity> <!-- alipay sdk end --> |
5777c2e13
![]() |
53 |
|
2a5af05fa
![]() |
54 |
3)入口activity增加**android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"**属性,并增加以下Intent-filter,**data scheme配置为微信appid**: |
5777c2e13
![]() |
55 56 57 58 59 60 61 62 |
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <!-- 此处为微信的appid--> <data android:scheme="wxdb562d299ac311e0" /> </intent-filter> |
2a5af05fa
![]() |
63 |
4.将InlandSDKRelease工程assets目录下的文件拷贝到游戏项目的assets目录下,此处为银联支付使用 |
5777c2e13
![]() |
64 |
5.代码接入: |
bb06908ca
![]() |
65 66 67 |
1)sdk初始化,以下方法二选一 //若游戏不区分渠道使用此方法 |
5777c2e13
![]() |
68 |
InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey); |
bb06908ca
![]() |
69 70 |
//若游戏区分渠道使用此方法,传入渠道参数 InlandSDK.initializeSDK(gumpAppId,GumpAPPKey,channel); |
5777c2e13
![]() |
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
2)注册登录状态回调: Passport.getInstance().registerCallback(new InlandSDKCallback<GumpUser>() { @Override public void onSuccess(GumpUser result) { Logger.d(TAG, "gumpUser:" + result.toString()); btnLogin.setVisibility(View.GONE); tvUserInfo.setText(formatUserInfo(result)); btnPay.setVisibility(View.VISIBLE); } @Override public void onError(InlandSDKException error) { Logger.d(TAG, "login error:" + error.getMessage()); } @Override public void onCancel() { Logger.d(TAG, "login be canceled"); } }); 3)执行登录操作 Passport.getInstance().login(MainActivity.this); 4)支付操作 PayRequest payRequest = new PayRequest(); payRequest.setPrice(1); payRequest.setProduct("玄冥剑"); payRequest.setExtOrder("p100201508311730"); payRequest.setGumpUid(Passport.getInstance().getGumpUser().getUid()); InlandSDK.purchase(MainActivity.this, payRequest, new PurchaseCallback() { @Override public void onPurchaseError(Exception e) { Logger.w(TAG, "purchase error:" + e.getMessage()); tvPurchaseResult.setText("purchase occured an error:" + e.getMessage()); } @Override public void onPurchaseSuccess(String gumpTransId, String extOrder) { Logger.d(TAG, "purchase success:" + gumpTransId + ",extorder:" + extOrder); tvPurchaseResult.setText("purchase " + gumpTransId + " success,extorder:" + extOrder); } @Override public void onPurchaseCanceled() { Logger.d(TAG, "purchase be canceled"); tvPurchaseResult.setText("purchase be canceled"); } }); 5)配置onActivityResult拦截处理,请在activity的onActivityResult方法内增加InlandSDK的处理方法onActivityResult,当此方法返回true时,说明结果已处理,否则说明未对结果进行处理 if (!InlandSDK.onActivityResult(requestCode, resultCode, data)) super.onActivityResult(requestCode, resultCode, data); |