iOS如何在WebView页面调起微信支付并可以返回App
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS如何在WebView页面调起微信支付并可以返回App相关的知识,希望对你有一定的参考价值。
参考技术A 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页面处理,我们在项目中也是使用的这种方案。
Android 11 无法调起微信支付解决方案
Android 11 加强了隐私保护策略,软件包可见性 ,将会导致第三方应用通过微信OpenSDK的接口无法正常拉起微信
当 targetSdkVersion=30 时会出现这个问题,
解决方案
- 第一步 Android Studio 需要升级至 3.3 及以上
- 第二步 Android SDK Build-Tools 需要升级至 30 及以上版本
- 第三步 com.android.tools.build:gradle 需要升级至 3.6.0 版本,建议升级至最新的 3.6.4 版本
- 第四步 AndroidManifest.xml 清单文件中添加 queries 标签,填入将要调用起的其他 APP 比如这里的微信的包名
<manifest package="com.example.app">
<queries>
<package android:name="com.tencent.mm" />
</queries>
...
</manifest>
以上是关于iOS如何在WebView页面调起微信支付并可以返回App的主要内容,如果未能解决你的问题,请参考以下文章