收藏
回答

微信H5内 使用wx.chooseWXPay API支付成功后不走success 回调?

测试连接:https://zhuace.maolaile.cn/pay.html

如图,支付成功不走圈中方法

只有用户取消支付才会走complete 方法。

后端可以正常接受到微信通知,并更新订单状态以及回复微信通知

ios 不走success

使用sdk版本1.6.0 https://res2.wx.qq.com/open/js/jweixin-1.6.0.js

服务器响应日志 121.51.58.170 - - [09/Jun/2021:14:48:49 +0800] "POST /api/v1/miniNotify.html HTTP/1.1" 200 105 "-" "Mozilla/4.0"

后台对应订单记录

操作视频 : https://miniprogram.suxcx.com/@/maoPlant/af1ab270fe239e4b67fdff67985336b0.mp4

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

2 个回答

  • 北望沣渭
    北望沣渭
    2021-06-09

    受托来回复一下,文档见 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#59

    微信支付

    发起一个微信支付请求

    wx.chooseWXPay({
      timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
      nonceStr: '', // 支付签名随机串,不长于 32 位
      package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
      signType: '', // 微信支付V3的传入RSA,微信支付V2的传入格式与V2统一下单的签名格式保持一致
      paySign: '', // 支付签名
      success: function (res) {
        // 支付成功后的回调函数
      }
    });
    

    备注:prepay_id 通过微信支付统一下单接口拿到,paySign 采用统一的微信支付 Sign 签名生成方法,注意这里 appId 也要参与签名,appId 与 config 中传入的 appId 一致,签名格式要求以微信支付文档为准。

    微信支付V2的开发文档:https://pay.weixin.qq.com/wiki/doc/api/index.html

    微信支付V3的开发文档:https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml



    在success里的关键核心代码,请仔细阅读文档

    if (res.err_msg == "get_brand_wcpay_request:ok") {
        // 使用以上方式判断前端返回,微信团队郑重提示:
        //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
    }
    
    2021-06-09
    有用
    回复 2
    • 神经蛙
      神经蛙
      2021-06-09
      谢谢哈 v2 v3的代码 我都试过  同样的代码 别的商户可以这个商户不行
      2021-06-09
      回复
    • 北望沣渭
      北望沣渭
      2021-06-09回复神经蛙
      请把fail complete 回调方法去掉,文档上没写的回调方式,没人能保证他们是如预期工作的
      2021-06-09
      回复
  • Memory (私信不回复)
    Memory (私信不回复)
    2021-06-09

    你自己写法有问题

    2021-06-09
    有用
    回复 10
    • 神经蛙
      神经蛙
      2021-06-09
      调用API和换成WeixinJSBridge 方式都是一样的 这个页面只有我能支付
      2021-06-09
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      2021-06-09回复神经蛙
      success 里要按 “success:ok”判断
      2021-06-09
      回复
    • 神经蛙
      神经蛙
      2021-06-09回复Memory (私信不回复)
      关键它就不走success里 进入后最起码alert可以运行吧
      2021-06-09
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      2021-06-09回复神经蛙
      拉人贴代码给你了,自己看吧
      2021-06-09
      回复
    • 神经蛙
      神经蛙
      2021-06-09回复Memory (私信不回复)
      我也有代码 一样的代码在另一个商户可以执行 这个商户不起作用
      2021-06-09
      回复
    查看更多(5)
登录 后发表内容