非微信内置浏览器中的网页调起微信支付的方案研究

本文探讨了在非微信内置浏览器中,尤其是Android环境下,如何调起微信支付。通过研究微信支付的H5支付协议,发现weixin://wap/pay是用于网页端支付的协议,可以在大部分浏览器中唤起微信app进行支付。针对使用WebView的情况,文章提供了三种解决方案:1) 利用原生WebView支持直接调起;2) 调整自定义WebView设置,确保支持协议调用;3) 拦截H5支付协议并转换为APP支付方式。
摘要由CSDN通过智能技术生成

问题来源

之前在app中集成过微信支付,当时还写了一篇扫坑贴,此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK,由Native代码调起微信支付。

后来由于业务需要在我们app的WebView中打开第三方店铺的网页,在第三方网页中有微信支付按钮,测试反馈说ios可以调起微信支付,而android不可以。后来网上看到说微信内置Webview和京东的网页也可以调起微信支付,微信自己没什么奇怪的,而京东可以的话,如果它跟微信没什么合作协议的话,那么其他app应该也可以在网页中调用微信支付。

探索

由于ios可以支持,因此找ios同事测试了一下,发现ios内置浏览器中只要输入相关协议都可以调起相关app的,比如:

  1. 输入weixin:// 可以调起微信
  2. 输入alipay:// 可以调起支付宝

这样就不难解释为什么ios的webview中第三方网页可以调起微信支付了,但android在浏览器中输入上述协议,没有任何响应。因此本文主要探讨是基于android平台的。

后来终于找到微信支付|商户平台开发者文档,作为客户端开发者,是不会想到这个开发文档的,当时集成app支付的时候所查阅的文档也未提到H5支付的方式。在文档的使用场景介绍中有这么一段:

H5支付是基于公众号基础开发的一种非微信内浏览器支

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值