SDK对接遇到的问题与解决

接sdk第一步是看清文档,了解接入sdk的需求,然后把文档上说明的需要添加的资源文件,依赖库,jar包等添加到接入项目中,修改Manifest清单文件(根据需求添加权限,api最低版本号,application内容与继承,注册activity等)

然后我们主要做的就是

    sdk的初始化->登录接口->支付接口->数据上报->悬浮窗的显示/隐藏->activity的生命周期->退出登录/切换账号

一般看接入文档里面的必接接口,可选接口可以不接,接入文档仅供参考,一定要看接入demo,

    遇到过坑,接入文档上面说了一个角色信息必须上传,但是demo里面是不上传的,在接入项目中添加这条信息上传就报异常了!所以一定要看demo,接入文档仅供参考!

记录一下在接sdk 时遇到的一些问题:

1.sdk初始化失败

原因1:有可能是没有导入对应的jar包或者依赖库,导致获取不到sdk实例,主要检查依赖库和jar

原因2:获取的上下文不对,有的要求上下文为activity,就需要把上下文强转成activity,例如:

IAppPay.init((Activity) context, requestedOrientation, mAppId, "");中的(Activity) context就是把context强转成activity类型

原因3:Manifest清单文件没有配置好权限,activity,application等,这些需要根据对接文档填好对应内容,application要按要求继承。

原因4:渠道不合法,渠道名与后台的不对应,注意渠道名要与后台保持一致!

原因5:jar包重复或冲突,删除重复的jar,也可以参考我的另一篇博客解决jar重复的方案:点击打开链接 


2.登录失败

原因1:如果按照文档写的,但是没有登录界面就是没有拉起,可以先检查res下的资源文件是不是正确的,这个需要跟渠道方对接,问清楚,不然可能搞死你(亲身经历,渠道方给了错误的资源文件,我们这边是用反射来调用方法的,这样可以确保程序不会崩,但是会导致捕捉异常困难,由于给的是不对应的资源文件,点击登录时,一直找不到对应的xml所以没有拉起登录界面)

原因2:清单文件没有配置好对应的appid、渠道id或者是appkey等参数,或者是登录传给后台的userid或token值不对应,这个需要与后台对接,确定登录需要配置的参数名称,要是不对应的话无法登录。

注意后台需要获取的参数如果文档没有说明,要找渠道方询问如何获取,自己是想不出来的!

还有需要注意的,登录成功后要调用方法与后台验证,例如:

Util.checkLogin(context, userId, token, "", "", mLoginCallback);

3.支付失败

支付需要先实例化一个支付参数,包括支付参数里面需要包含的一些字段,如:商品编号,商品描述,价格,订单号等等,获取到支付参数实体后,调用sdk 的支付方法,new一个监听的方法重写支付成功或失败的回调,调用callback把支付结果返回;

原因1:登录失败,登录失败是不可以做支付操作的,所以可以检查一下是否登录成功

原因2:支付参数的类型转型导致的异常,例如int 类型需要转成string的,可以用try/catch来捕捉异常,例如:

int p = 0 ;
 try {
  p = Integer.valueOf(productId);                
} catch (NumberFormatException e) {
e.printStackTrace();
}

    orderUtils.setWaresid(p);//应用中的商品编号。

还有注意需要转型和数学运算的,先做数学运算再转型,不然会出问题,例如金额单位是元的时候,需要除以100:

 double price = (double)amount/100;

orderUtils.setPrice(price);//单位 元 


暂时先总结这些,后面遇到问题再做补充!

猜你喜欢

转载自blog.csdn.net/qq_38306233/article/details/80952465