微信h5支付问题一:正常拿到h5_url链接,但不能正常唤起微信端
问题详情
商家参数格式有误,请联系商家解决
解决方案
使用部署在h5支付域名下的页面访问该链接,不能直接在浏览器访问
官方链接
https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4
处理详情
1、支付中间页面链接的接口
微信支付分为两个版本的接口:
v2:https://api.mch.weixin.qq.com/pay/unifiedorder
返回的微信支付中间页面格式为
<mweb_url><![CDATA[https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2016121516420242444321ca0631331346&package=1405458241]]></mweb_url>
详情见官方链接:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1
v3:https://api.mch.weixin.qq.com/v3/pay/transactions/h5
返回的微信支付中间页面格式为
{
"h5_url": "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2916263004719461949c84457c735b0000&package=2150917749"
}
详情见官方链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_3_1.shtml
格式不一样,但访问是一样的。且都只能在微信外部浏览器访问,什么是微信外部浏览器:就是在微信聊天窗口打开是不允许的。
2、拿到支付中间页面链接该怎么使用呢?
1、 不能直接在浏览器中访问该链接,否则出现以上错误;
2、 还需要在微信商户平台–>产品中心–>开发配置–>h5支付域名或其子域名下的页面中访问该链接
3、访问方式:比较简单的方式直接使用正常a标签访问,把H5支付中间页面链接加到 a href 上不用配置其他。在手机端访问该页面
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div>
<a href="https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2916263004719461949c84457c735b0000&package=2150917749">支付</a></div>
</body>
<html>
3、注意
成功调用微信客户端,但出现”由于商家传入的H5交易参数有误,该笔交易暂时无法完成,请联系商家解决。“。这是由于payer_client_ip(v3),spbill_create_ip(v2)的值不正确引起的。