首先,官方文档中是不提倡在App中使用微信H5支付的。
https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1
但是如果特殊情况下,必须在这种场景下选择H5支付,下面列出几个开发过程中遇到的坑,以及解决方式。
一、微信H5支付问题(App内置H5页面场景)
页面准备:
唤起支付页(trade.html)、支付回调页(trade-reault.html)
页面逻辑:
购买页,点击 “购买”,创建订单,拿到后台返回的订单信息,跳转唤起支付页,点击“微信支付”,唤起微信支付。
问题一:安卓支付回调可以回到App,iOS则调起浏览器
解决方案:在回调页面分情况处理,在App中打开,选择支付结果后回到购买页。判断在浏览器打开,则调起App,引导用户回到App。
问题二:iOS支付回调后,唤起浏览器,App中为空白页
解决方案:调起支付后,判断如果为iOS设备,通过App端方法,关闭当前页面。此时切回App后展示的就是购买页。安卓没有此问题。
最后,遇到此类场景,最好还是遵循文档,使用App支付方法。