微信H5支付用于:H5页面在除微信以外的手机浏览器中拉起微信支付
首先需要在微信商户平台开通微信H5支付,然后微信打开平台,在:产品中心->我的产品->H5支付->H5支付域名(添加),配置要使用H5支付的域名,这里填主域名即可
简述支付流程:
1、PHP调用统一下单接口,传递必须的参数给微信
2、参数验证无误,微信后台生成预支付订单
3、微信返回一个URL(参数为mweb_url)
4、用户跳转返回的URL拉起微信支付
需要注意微信返回的mweb_url,即:拉起微信支付收银台的中间页面,不能直接访问,否则会报“商家参数格式有误,请联系商家解决”的错误,这是因为直接访问页面调起H5支付,referer为空导致。
如果遇到此问题不能及时解决,建议使用ajax请求下单接口,对返回的mweb_url进行window.location.href跳转,这样在header中会自动带上当前页面链接为referer值
2020-05-26补充:
昨天看了一篇文章,支付宝支付支持同步和异步,微信仅支持异步,今天检查这篇文章时恍然大悟,所以拉起微信收银台的链接,只能使用ajax异步加载后跳转。
若要在支付完成后跳转到自定页面,请在微信返回的mewb_url后面追加参数redirect_url,参数的值为urlencode过的自定义地址,即:原mweb_url&redirect_url=urlencode('自定链接')
回调比较重要,这一步可以查询业务是否完成,注意事项等请看官方文档:
https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4
请求成功返回的所有参数:
支付成功,微信请求回调时的参数
下面为支付代码:
拉起微信H5支付的ajax代码
微信H5支付PHP代码
微信验证成功后,生成订单,返回如下信息(xml格式):
生成订单错误时的信息:
签名验证错误信息的: