PhonePe定期支付(订阅)集成问题:AUTH请求后无法跳转指定URL
解决PhonePe定期支付AUTH跳转ppesim://协议失败的问题
问题核心
ppesim://是PhonePe测试环境的自定义URI协议,普通浏览器或后端直接redirect无法识别这类非HTTP/HTTPS协议,必须针对不同场景做适配处理。
具体解决方案
移动端浏览器场景
后端不要直接返回redirect()->to($redirectUrl),改为返回前端页面,通过JavaScript处理协议跳转:// Laravel控制器代码 return view('phonepe-mandate-redirect', ['redirectUrl' => $redirectUrl]);对应的视图
phonepe-mandate-redirect.blade.php代码:<script> const redirectUrl = "{{ $redirectUrl }}"; // 尝试打开PhonePe测试APP const openAttempt = window.open(redirectUrl, '_self'); // 设置超时,未跳转则引导安装测试APP setTimeout(() => { if (!openAttempt) { alert('请先安装PhonePe测试版APP(PPESim)'); // 可补充跳转至测试APP下载地址的逻辑 } }, 2000); </script>APP内嵌WebView场景
如果是在自有APP的WebView中集成,需让APP开发同学拦截ppesim://协议,通过原生代码调用PhonePe的跳转逻辑,或直接使用PhonePe移动端SDK处理授权流程,后端只需将AUTH返回的URL传递给APP层即可。测试环境验证要点
- 确认测试设备已安装PhonePe测试版APP(PPESim),正式版APP无法识别
ppesim://协议 - 生产环境对应的协议为
phonepe://,测试环境务必使用ppesim://
- 确认测试设备已安装PhonePe测试版APP(PPESim),正式版APP无法识别
替代方案:Web端授权流程
若自定义协议跳转存在阻碍,可尝试使用PhonePe提供的Web端授权流程(需确认官方文档支持情况),避免直接处理自定义协议。
内容的提问来源于stack exchange,提问作者Srikanth Tony
相关产品推荐
相关产品推荐

