Android集成Paytm appinvokesdk沙箱支付后跳转固定页无法回调onActivityResult
安卓集成Paytm appinvokesdk支付完成后无回调问题解决方案
问题说明
集成appinvokesdk实现Paytm支付功能时,沙箱环境完成支付后webview直接停在https://developer.paytm.com/txn-response页面,不会自动关闭返回应用,onActivityResult方法无触发。
排查修复方案
- 首先修正回调地址配置:初始化
PaytmOrder时传入的回调地址必须使用Paytm官方指定地址,不能使用自定义回调地址。沙箱环境填https://securegw-stage.paytm.in/theia/paytmCallback?ORDER_ID=你的当前订单号,生产环境填https://securegw.paytm.in/theia/paytmCallback?ORDER_ID=你的当前订单号,必须将占位符替换为本次支付实际使用的订单号。SDK会拦截该地址的跳转事件提取支付结果,自定义地址无法被识别,就会直接加载跳转后的页面。 - 检查请求码配置:调用
transactionManager.startTransaction时传入的PaytmRequestCode必须为正整数,不能使用0或者负数,否则onActivityResult无法匹配到对应请求的返回结果。 - 检查Activity启动模式:发起支付的Activity在AndroidManifest.xml中不要设置为
singleInstance、singleTask这类隔离返回栈的启动模式,使用默认的standard或者singleTop即可,否则SDK的支付页面结果无法回传给发起支付的Activity。 - 升级SDK版本:当前使用的1.6.0版本存在部分沙箱环境回调失效的已知bug,可升级到appinvokesdk最新稳定版本修复问题。
- 适配高版本安卓回调逻辑:若项目targetSdkVersion≥30且使用了新的Activity Result API替代原有
onActivityResult逻辑,需改用registerForActivityResult注册回调接收支付结果,原有onActivityResult方法不会被触发。
验证方式
修改回调地址为官方指定地址后重新发起支付,支付完成后webview会自动关闭,触发PaytmPaymentTransactionCallback对应的回调方法,同时onActivityResult也会正常收到返回数据。
内容的提问来源于stack exchange,提问作者Bhoopesh Pathak
相关产品推荐
相关产品推荐

