详细描述:
H5(直接用浏览器打开), 打开下单成功返回的(mwebUrl) 后端接口返回. 打开方式.【window.location.href = data['mwebUrl']】, 在IOS系统中支付成功后会自动返回safari浏览器中.
【mwebUrl】 例子: https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx05150425827461fd2debf9942616791604&package=625169381
IOS版本 [ 9.* , 12.*]
Android 系统正常.
ps: 网上只查询到设置referrer 为 scheme:// , 但是浏览器不让设置referrer.
是否我哪里做的不对?
另外官方的demo, 也有这个问题.
问题已解决:
H5浏览器用微信支付在IOS系统支付完成后停留微信.
解决办法:
核心问题:
1. redirect_url=uaterp.aihuaol.com这个uaterp.aihuaol.com不要带有协议,如http:// https://, 如带有协议,会打开safari浏览器并打开网站首页. -- 我就是用的域名带有协议的域名,坑了好一段时间.
redirect_url 的格式为: uaterp.aihuaol.com/要跳转的界面; (虽然不会真的跳转, 但是如果没有会报404错误,不会停在微信)
其他问题:
1. 跳转地址需要进行urlencoder 编码. 编码方法: encodeURIComponent, 不要使用encodeURI
2. 只编码跳转地址.不要连&redirect_url= 一起进行编码. -- 否则 会签名验证失败.
3. 打开支付页面的方法, 其他浏览器 window.location.href, safari 使用window.open(url, '微信支付', '', true) -- 否者IOS支付成功后返回页面是个空白页,支付取消也是个空界面.
4. Safari 浏览器 调用window.open,回调之后没有反应. 解决办法: https://www.cnblogs.com/eyunhua/p/5960819.html?utm_source=itdadao&utm_medium=referral
PS: 遗留问题, IOS支付后会有两个支付的窗口等待用户确认支付是否成功.
一个前端视角下的微信支付流程(调用两次后端接口, 一次前端微信浏览器对象):
仅供参考~
祝各位: 少踩坑, 少加班,早回家~
H5 微信支付 IOS 系统 支付成功返回safari 浏览器,重开新的网页tab,回来的时候似乎是重开webview,这个是什么原因导致
您好,请参考:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4
我有两个问题请教一下:
1. 我在iphone手机上,使用chrome浏览器发起微信支付,支付完成之后,微信唤起的是safari浏览器,而不是chrome浏览器,我想问,这个可以控制在chrome浏览器唤起支付么?
2.我在iphone手机上,使用safari浏览器发起微信支付,支付成功唤起的回调页面与发起页面是同一个,如果没有支付成功,唤起的回调页面是一个新的tab,请问,这个是可以通过某个参数来控制的么?