## 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增加以下Intent-filter,**data scheme配置为微信appid**:
4.将InlandSDK工程assets目录下的文件拷贝到游戏项目的assets目录下,此处为银联支付使用
5.代码接入:
1)sdk初始化
InlandSDK.initializeSDK(gumpAPPId, GumpAPPKey);
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);