156-0102-3311
联系QQ 284710375
首页 > 技术分享 > 原生PHP
收藏

PHP实现微信H5支付2019-11-13 17:35:45

大潇博客 原创文章,转载请标明出处

微信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


微信产生预支付订单时返回的信息(主要参考有哪些字段),参数源自小程序支付

微信预支付订单返回参数.png


下载地址:wx_h5_pay

打赏

阅读排行

    大家都在搜

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