小程序微信支付中,统一下单请求后返回提示XML格式错误

发布于 2022-09-06 08:01:31 字数 308 浏览 17 评论 0

clipboard.png

clipboard.png
有大神知道是怎么回事吗??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

饭团 2022-09-13 08:01:31

那个请求https://api.mch....是交给后台处理的,
下面代码里的data就是后台处理后的数据,prepay_id也是后台去请求你那个地址获取到的。

我的步骤是这样的:

  1. 调用wx.login获取code
  2. code和你的订单信息传给后台
  3. 后台用code获取到用户openid,然后去获取订单对应的prepay_id,并返回给前端需要的信息,即代码里的data
  4. 前端拿到返回data后拼接出需要的东西(这个sign其实也可以由后端拼接好放到data里返回),然后调用wx.requestPayment发起支付。

而且小程序是没法把https://api.mch...添加到服务器域名列表的。如果不是测试环境,可以说是必须交给后台处理的。

微信文档里好像有写好的专门api去处理微信返回的xml数据的。

var timestamp = data.timestamp + ''

var appId = data.appid
var key = data.key
var prepay_id = data.prepay_id
var nonce_str = data.nonce_str

var sign = '';
var signA = "appId=" + appId + "&nonceStr=" + nonce_str + "&package=prepay_id=" + prepay_id + "&signType=MD5&timeStamp=" + timestamp;
var signB = signA + "&key=" + key;
sign = MD5Util.md5(signB).toUpperCase();

wx.requestPayment({
    timeStamp: timestamp,
    nonceStr: nonce_str,
    package: "prepay_id=" + prepay_id,
    signType: 'MD5',
    paySign: sign,
    success: function (data) {
        success(data)
    },
    fail: function (res) {
        fail(res)
    }
})
濫情▎り 2022-09-13 08:01:31

普通支付行不行?
如果可以,参考
https://segmentfault.com/n/13...

吲‖鸣 2022-09-13 08:01:31

微信支付发起统一下单的接口好像是不接受json格式的post参数的,你需要转成xml格式发起。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文