iOS 微信、支付宝H5支付返回APP趟过的坑
2020-10-28 本文已影响0人
zwwuchn
本文旨在提醒接入微信、支付宝支付后返回APP可能会出现的问题, 至于如何接入, 可以百度, 网上的接入代码大同小异, 基本上没什么差别, 可以说是从一个源码复制粘贴出来的, 逻辑没问题, 问题就在于写文章的人只复制粘贴发出来没有验证过, 如果运气好的话刚好会没问题
进入主题
微信支付
基本原理是在webView里边拦截微信支付请求, 在请求连接上增加redirect_url=xxx.com://
注意
这里有个坑, 基本上网上的所有文章在这里都会告诉你把自定义的schemes拼到xxx处, 运气好的话可能你就成功了
其实这里拼的不只是schemes, 简单的说这里应该是xxx.xxx.com://,头一个xxx可能是你以前定义过得APPschemes, 后边的xxx.com是公司注册微信支付的一级域名(一级域名 例如xxx.abc.com), 如果你只拼了schemes, 就会一直报"商户参数异常,请联系商家", 此处必须有支付的域名在后边, 这也是所有的文章走到这一步都是以.com结尾拼接url的原因
这样就可以做到跳转微信支付, 但是会在支付完成之后停留在微信界面, 什么原因
注意
这里是微信回跳的坑, 刚才是把schemes跟域名拼在一起形成的xxx.xxx.com, 这个时候支付没问题, 但是拼接后的url是无法从中截取到schemes的, 所以也就不会回跳到APP, 所以我们要做的就是把这个拼接了支付域名的url即xxx.xxx.com来替换以前自定义的schemes, 现在的schemes就变成了xxx.xxx.com, 然后这个时候再拼接url的时候就可以直接用schemes了, 不需要再拼接域名, 这也是所有文章在拼接是只是告诉你需要把schemes拼在这里, 然而你拼了也达不到想要效果的原因
微信支付结语
避免了上边的坑的话, 剩下的支付返回后出现白屏或者支付参数问题都是小问题, 网上的文章中对于这些错误的处理可以使用,都一样
支付宝支付