Android接入常见问题
Q1. scheme如何进行怎么设置?
A1:招商银行会给每个商户分配独一无二的商户scheme。当用户在招商银行APP内完成支付后,凭scheme跳转回商户应用。接收scheme的activity必须在manifest文件中配置:
<category android:name="android.intent.category.DEFAULT"/>
Q2. scheme是否可以设置多个?
A2:每个商户会被分配唯一的招行scheme。请商户使用此scheme配置相关Activity。我们不推荐商户相关开发人员在多个activity中配置此scheme,因为这会导致在招商银行APP支付完成后返回商户APP时系统因为无法判断应该跳回到哪里而出现选择跳转应用的弹框。
Q3. 测试招行SDK的app支付时,回调结果没有走回到onReps()方法如何处理?
A3:请商户先行确认此现象出现的范围,是否为普适问题,还是个例机型出错。
个例机型建议查看:
1. 是否手机安全中心有所限制,部分手机品牌会针对支付系APP(如招商银行/支付宝等)进行安全限制;
2. 确定是否是打包时混淆问题,建议使用非混淆的app进行测试。
普适问题请检查:
1. activity中是否显式调用了api.handleIntent
2. manifest中该activity是否配置了<category android:name="android.intent.category.DEFAULT"/>
Q4. 测试招行SDK的H5支付时,回调结果没有走回到onReps()方法如何处理?
A4:内置H5页面采用intent的方式进行数据回传,回调在商户activity中的onActivityResult方法接收。请检查onActivityResult中是否添加cmbapi.handleIntent方法,以及此方法中参数是否正确,尤其是data参数。注意:此处传参不能采用getIntent()方法获取intent,应直接使用onActivityResult中的参数data。
Q5. 集成招行支付SDK之后报冲突,报错内容如下,如何进行处理?
报错:Error:Attribute application@allowBackup value=(true) from [:XXX:] AndroidManifest.xml:XXX is also present at [:cmbsdk-release-1.0:] AndroidManifest.xml:XXX value=(false).Suggestion: add 'tools:replace="android:allowBackup"'
A5:商户应用manifest中设置allowBackup为false,并且加上tools:replace="android:allowBackup"。
Q6. 通过scheme打开商户应用,如何识别是招行应用跳回?
A6:招行分配给商户的scheme不提供给其他应用唤起,通过scheme名称识别调用方。
Q7. SDK是否支持商户自定义导航栏?
A7:商户如需自定义导航栏,请按如下步骤操作:
在布局中集成CMBWebview,使用该webview的sendRequest方法发送请求。需实现CMBWebviewListener。在回调方法onClosed方法中接收到当前页面回调后,建议关闭页面。如用户通过导航栏左侧按钮返回,可通过CMBWebview的getCMBResponse方法属性获取最新的处理结果,默认为8: 用户主动取消。
Q8. 收到回调信息为参数异常:-2?
A8:请依次检查如下项:
appid是否为空
method是否为空
requestdata是否为空,requestdata中是否包含URL非法字符
cmbjumpurl与h5url是否均为空