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的主要内容,如果未能解决你的问题,请参考以下文章

Android通过Apk插件调起微信支付

企业微信中的应用调起微信支付,支付不成功

H5调起微信支付功能

微信支付-公众号支付,统一下单,调起微信支付,回调验证

APP调起微信支付c#后台接口

Android中微信支付的流程(从请求统一支付接口到真正调起微信支付)