走去哪里 2017-05-25 09:57 采纳率: 0%
浏览 10411

微信支付成功之后,如何获取transaction_id(交易单号)

如何在res.err_msg == "get_brand_wcpay_request:ok"的if条件中获取到交易单号传送到后台

WeixinJSBridge.invoke('getBrandWCPayRequest', {
"appId" : appId, // appId
"timeStamp" : timeStamp,

"nonceStr" : nonceStr,
"package" : 'prepay_id='+pack, // package
"signType" : "MD5",
"paySign" : sign
}, function(res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {
alert(res.result_code);
//支付回调
//location.href = "http://jia515042695.eicp.net/retype?orderNumber="+orderNumber;
location.href = "${sysUrl}/personalcenter/retype?orderNumber="+orderNumber;
}else if(res.err_msg == "get_brand_wcpay_request:cancel") {
//取消支付
//location.href.go(-1);
location.href = "${sysUrl}/personalcenter/unpay";
}else{
location.href = "/wechatPayError.html";
}
});

  • 写回答

1条回答 默认 最新

  • 宝码香车 JavaScript领域优质创作者 2025-03-13 19:43
    关注
    让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供,如果还有疑问可以点击头像关注私信或评论
    如果答案让您满意,请采纳、关注,非常感谢!

    在微信支付成功之后,res 对象中包含了支付结果的相关信息。要获取 transaction_id(交易单号),你需要在支付成功的回调函数中解析 res 对象,并将 transaction_id 传递到后台。

    假设 res 对象中包含了 transaction_id,你可以通过以下方式获取并传递到后台:

    WeixinJSBridge.invoke('getBrandWCPayRequest', {
        "appId" : appId, // appId
        "timeStamp" : timeStamp,
        "nonceStr" : nonceStr,
        "package" : 'prepay_id='+pack, // package
        "signType" : "MD5",
        "paySign" : sign
    }, function(res) {
        if (res.err_msg == "get_brand_wcpay_request:ok") {
            // 获取交易单号
            var transaction_id = res.transaction_id;
            // 将交易单号传递到后台
            location.href = "${sysUrl}/personalcenter/retype?orderNumber=" + orderNumber + "&transaction_id=" + transaction_id;
        } else if (res.err_msg == "get_brand_wcpay_request:cancel") {
            // 取消支付
            location.href = "${sysUrl}/personalcenter/unpay";
        } else {
            location.href = "/wechatPayError.html";
        }
    });
    

    解释:

    1. **获取 transaction_id**:在 res.err_msg == "get_brand_wcpay_request:ok" 的条件下,假设 res 对象中包含了 transaction_id,你可以通过 res.transaction_id 获取交易单号。
    2. 传递到后台:将 transaction_id 作为参数附加到 location.href 的 URL 中,传递给后台。

    注意事项:

    • 确保 res 对象中确实包含 transaction_id,如果没有,请检查微信支付的文档或调试 res 对象以确认正确的字段名。
    • 如果 res 对象中没有直接提供 transaction_id,你可能需要通过其他方式(如调用微信支付接口)来获取交易单号。

    后台处理:

    在后台接收到 transaction_id 后,你可以根据业务需求进行进一步处理,例如更新订单状态、记录交易信息等。

    评论

报告相同问题?