iOS微信,支付宝H5支付无法返回APP解决方案

问题场景:

最近公司和第三方对接一个业务,需要在App内嵌的WkWebView中加载第三方提供的H5商城,并且在通过微信,支付宝支付成功后能够像原生支付一样返回到我司的App,支付都非常顺利,但是支付宝无论支付成功还是失败后都会停留在支付宝页面,微信支付无论成功还是失败都会打开safire,均无法返回App。

解决方案:

经过自己的摸索经历如下方案

一 微信支付

本项目使用Swift语言开发,OC各位自行翻译一下就行,基本原理就是在WKWebView里面拦截微信支付的网络请求,修改RequestHeader的"referer",重点是个"xxx.com://" (注意后面的://),这个踩了个坑,以为是我们自己的H5支付的域名,添加后一直报"商户参数异常,请联系商家",后来一想我们是调第三方的H5微信支付,所以这个schemes比需有第三方平台添加到他们自己的H5支付白名单,然后我们才能成功掉起,注意⚠️最好让第三方平台给你们一个单独的schemes,只针对你们App否则第三方再和别的公司合作后还提供这个schemes给别的公司App用,就可能发生冲突,生成完毕后,把这个schemes添加到URL Types后就大功告成了。(注意这里后面不需要://)


二 支付宝支付

支付宝的原理也相似,主要就是把支付URL中的schems参数默认的“alipays”换成我们自己的"xxx.com"整体比较简单,主要是又个decoding和encoding操作,具体可以参考下图代码,有些做法比较复杂,把链接头和参数拆开后头不动参数做decoding和encoding操作,其实我验证了一下整体处理就可以了,代码如下。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容