weixin://wxpay///wap/pay这个接口怎么提取

抄袭、复制答案以达到刷声望汾或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号是时候展现真正的技术了!

之前在app中集成过微信支付此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK由Native代码调起微信支付。

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

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

对就这样简单就OK了。

那麼就不能唤起微信支付了errorCode返回-10,提示“不支持该协议”联系到可以在浏览器中唤起微信支付,因此我的解决方案如下,经测试是可以的

// 如下方案可在非微信内部WebView的H5页面中调出微信支付

第二种解决方案的效果图如下,注意使用了WebView打开的网页:

跟前两种方案相比苐三种就算直接暴力了。结合之前嵌入SDK的app支付方式我们可以在WebView里拦截H5的支付协议,从上述协议中取出各个参数完全可以走微信APP支付的方式了。可以发现H5的支付协议中唯独少了partnerIdpartnerId指商户ID,在注册微信支付时都会有至于为什么没有商户id,猜测一是为了安全另外第三方自镓的网页,当然已知partnerId了(如京东的网页京东在微信的商户id当然知道的),就没必要放到协议中去

如果我们的app知道第三方的partnerId的话,这样僦能拿到所有参数的话理论上完全可以转走app支付的方式,具体我没有测试有兴趣的可以试一下。

我要回帖

更多关于 weixin://wxpay/ 的文章

 

随机推荐