收藏
回答

微信支付 JSAPI 无法调起支付?

请教大佬


统一接口返回数据:

<xml><return_code><![CDATA[SUCCESS]]></return_code>

<return_msg><![CDATA[OK]]></return_msg>

<appid><![CDATA[wx6e6d495db360e1b5]]></appid>

<mch_id><![CDATA[1548332151]]></mch_id>

<nonce_str><![CDATA[EOaGB1JZkFdpBM02]]></nonce_str>

<sign><![CDATA[F62562B0EEB8BAC8FC4869E0F94BA09D]]></sign>

<result_code><![CDATA[SUCCESS]]></result_code>

<prepay_id><![CDATA[wx07014203672727c1f5beeaf41400305600]]></prepay_id>

<trade_type><![CDATA[JSAPI]]></trade_type>

</xml>

二次签名处理::

{'appid': 'wx6e6d495db360e1b5', 'mch_id': '1548332151', 'nonce_str': 'H2HGAVQR7VFXLE41GSBECX45OT02K0PC', 'openid': 'o7AzAs_s-cHMlC53HxxIWFqq395k', 'body': '这里是body', 'out_trade_no': '2019090617420362', 'total_fee': '50', 'spbill_create_ip': '124.133.137.211', 'trade_type': 'JSAPI', 'notify_url': '************', 'sign': 'BB571C77D9EB891E6F8B8FF043611E8E', 'prepay_id': 'wx07014203672727c1f5beeaf41400305600', 'package': 'prepay_id=wx07014203672727c1f5beeaf41400305600', 'timestamp': '1567791723', 'signType': 'MD5'}




前端html:

返回失败  : get_brand_wcpay_request:fail

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>支付</title>
</head>
<body>
"appId": {{ appid }}, //公众号名称,由商户传入
"timeStamp": {{ timestamp }}, //时间戳,自1970年以来的秒数
"nonceStr": {{ nonce_str }}, //随机串
"package": {{ package }},
"signType": {{ signType }}, //微信签名方式:
"paySign": {{ sign }} //微信签名

<p id="test">哈哈哈</p>
<script>


   if (typeof WeixinJSBridge == "undefined") {

document.getElementById("test").innerHTML = "321";
       if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
       } else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
           document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
       }
} else {
onBridgeReady();
   }


function onBridgeReady() {
document.getElementById("test").innerHTML = "Hello javascript!";
       WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId": {{ appid }},     //公众号名称,由商户传入
               "timeStamp": {{ timestamp }},         //时间戳,自1970年以来的秒数
               "nonceStr": {{ nonce_str }}, //随机串
               "package": {{ package }},
               "signType": {{ signType }},         //微信签名方式:
               "paySign": {{ sign }} //微信签名
           },
           function (res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {
// 使用以上方式判断前端返回,微信团队郑重提示:
                   //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
               }
});
   }


</script>
</body>
</html>


最后一次编辑于  2019-09-07
回答关注问题邀请回答
收藏

4 个回答

  • 吴迪
    吴迪
    2019-09-06

    用微信开发工具可以调试啊

    2019-09-06
    有用 1
    回复
  • TNT
    TNT
    2019-09-06

    微信开发者工具 使用 网页端开发 可以调试

    2019-09-06
    有用
    回复
  • จุ๊บ
    จุ๊บ
    2019-09-06

    一步步打印,看走到哪里,最后打印支付返回值,不可以吗


    2019-09-06
    有用
    回复 2
    • 2019-09-06
      已经拿到prepay_id 返回给前端 前端无法拉起微信支付页面
      2019-09-06
      回复
    • 小志
      小志
      2020-08-14
      楼主解决问题了吗?怎么解决的啊,我也遇到这种问题,
      但是我的情况是:调用微信的沙箱环境获取prepay_id返回给前端,前端不能调起支付界面,但是换成微信的生产环境,可以调起支付界面
      2020-08-14
      回复
  • 祺爸💎
    祺爸💎
    2019-09-06

    打开调试

    2019-09-06
    有用
    回复 1
    • 2019-09-06
      微信内置浏览器才能实现拉起支付页面 所以在手机端怎么调试呢
      2019-09-06
      回复
登录 后发表内容
问题标签