Blame view
IntegrationGuide.md
4.64 KB
5777c2e13
![]() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 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 |
##InlandSDK integration guide ###本sdk包含登录和支付功能,支付包含微信支付,支付宝支付和银联支付,因此接入前请申请好各支付渠道的参数 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" 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" /> 3)为入口activity增加以下Intent-filter,**data scheme配置为微信appid**: <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <!-- 此处为微信的appid--> <data android:scheme="wxdb562d299ac311e0" /> </intent-filter> 4.将InlandSDK工程assets目录下的文件拷贝到游戏项目的assets目录下,此处为银联支付使用 5.代码接入: 1)sdk初始化 InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey); 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); |