iOS可以不集成微信支付SDK,通过WebView页面调起微信支付页面,具体配置流程如下:
1、需要在Xcode工程Targets中配置白名单,确保能够顺利跳转到微信

2、在Xcode工程Targets中配置URL Types,设置的URL Schemes为微信支付商户平台申请的域名,从而可以让微信识别回到调起支付的的App

3、在WKWebView的代理方法中,拦截微信支付的链接,配置支付授权域名,即Refer字段

注意:如果有多个host域名,可以服务端配置下发。
4、经过这三个步骤后,可以调起微信支付,并且取消支付或完成支付时,可以回到App;接下来的问题是页面如何刷新的问题,一般有两种处理方案:
(1)调起微信支付的同时在WebView页面弹出一个提示框,回来后可以让用户点击已完成支付或遇到问题,然后页面刷新

(2)在AppDelegate中,,监听回流到App的域名是否是微信支付的回调,通过通知的形式刷新WebView页面

一般项目使用方案一的较多,可以减少多余的判断处理逻辑,刷新逻辑放在WebView页面处理,我们在项目中也是使用的这种方案。
网友评论