首页 > 技术分享 > 原生PHP
收藏

PHP实现微信H5支付

11/13 17:35
大潇博客 原创文章,转载请标明出处

微信H5支付用于:H5页面在除微信以外的手机浏览器中拉起微信支付


首先需要在微信商户平台开通微信H5支付,然后微信打开平台,在:产品中心->我的产品->H5支付->H5支付域名(添加),配置要使用H5支付的域名,这里填主域名即可

1.jpg2.jpg


简述支付流程:

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


请求成功返回的所有参数:

MWEB返回参数.png


支付成功,微信请求回调时的参数


下面为支付代码:

拉起微信H5支付的ajax代码

前端.png

微信H5支付PHP代码

2019-11-13_173325.png

 

微信验证成功后,生成订单,返回如下信息(xml格式):

 

生成订单错误时的信息:

签名验证错误信息的:

打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311