## InlandSDK integration guide ### 本sdk包含登录和支付功能,支付包含微信支付,支付宝支付和银联支付,因此接入前请申请好各支付渠道的参数 1.获取gump分配的appid和appkey 2.导入InlandSDK库工程,并将自己的android工程设置引用此库工程 3.配置AndroidManifest.xml,分为3部分 1)确保有以下permission: 2)需要在application内增加如下内容,**微信回调activity必须是 "项目包名.wxapi.WXPayEntryActivity",不可更改,且此activity需继承com.gump.inland.gamesdk.WXPayEntryBaseActivity**: 3)入口activity增加**android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"**属性,并增加以下Intent-filter,**data scheme配置为微信appid**: 4.将InlandSDKRelease工程assets目录下的文件拷贝到游戏项目的assets目录下,此处为银联支付使用 5.代码接入: 1)sdk初始化,以下方法二选一 //若游戏不区分渠道使用此方法 InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey); //若游戏区分渠道使用此方法,传入渠道参数 InlandSDK.initializeSDK(gumpAppId,GumpAPPKey,channel); 2)注册登录状态回调: Passport.getInstance().registerCallback(new InlandSDKCallback() { @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);