APP支付

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是否均为空