uniapp微信支付 报错
errMsg: "requestPayment:fail parameter error: parameter.non…r.signType should be String instead of Undefined;"
requestPayment:失败参数错误:参数。非…r.signType应为字符串,而不是未定义
解决方案:
1.看后端返回的值
在控制台打印出来:后端给的是字符串 这个不是我们想要的
2.将字符串转成对象
JSON.parse(val)
let data = JSON.parse(res.msg.pary_result.data)
console.log(data, "data")
3.将对象取出来
微信支付代码段
//获取微信支付参数信息
wxPayParamInfo(payParam) {
wxPayParamInfoApi({
ordersid: payParam.id, //订单id
shopid: payParam.shop_id, //门店id
}).then(res => {
if (res.msg.success) {
if (res.msg.pary_result.status === "y") {
// {"appId":"wx69d163dabf9b4cf6",
// "timeStamp":"1653027116",
// "nonceStr":"uAz6AJcHLjQlfIE5Cibl0SX9sRpWn9NZ",
// "package":"prepay_id=wx20141156328918980fc211bfcffc450000",
// "signType":"MD5",
// "paySign":"F0B4CF170D213278FECFD896A6E8E4F3"}
let data = JSON.parse(res.msg.pary_result.data)
let appId = data.appId;
let timeStamp = data.timeStamp;
let nonceStr = data.nonceStr;
let packageX = data.package;
let signType = data.signType;
let paySign = data.paySign;
console.log(appId, "appId")
console.log(timeStamp, "timeStamp")
console.log(nonceStr, "nonceStr")
console.log(packageX, "package")
console.log(signType, "signType")
console.log(paySign, "paySign")
uni.requestPayment({ //下面参数为必传
provider: 'wxpay', //支付类型
appId: appId, //小程序Appid
timeStamp:timeStamp , //创建订单时间戳
nonceStr: nonceStr,
package: packageX, // 订单包
signType: signType, // 加密方式统一'MD5'
paySign: paySign, // 后台支付签名返回
success(res) {
console.log("支付成功", res)
console.log("完成")
if (res.errMsg === 'requestPayment:ok') {
uni.showToast({
title: "支付成功",
icon: 'success',
duration: 2000
})
setTimeout(() => {
uni.reLaunch({ //关闭所有页面,打开到应用内的某个页面。--直接返回首页
url: '/pagesCatering/views/order/order?id=' +
payParam.id
})
}, 2000);
}
},
fail(err) {
console.log("支付失败", err)
}
})
}
}
})
},
唤起微信支付
3.将字符串转成字符串
JSON.stringify(val)
let dataStringify = JSON.stringify(res.msg.pary_result.data)
console.log(dataStringify, " 本来后端返回的是字符串又被JSON.stringify(val)转了一次,变成\\转义字符 ")
JSON.stringify(val)转成字符串
JSON.parse(val)转成对象
如果觉得可以就点个👍吧,欢迎粉丝收藏,土豪打赏,你的鼓励将是我创作的最大动力!文章来源:https://www.toymoban.com/news/detail-405235.html
qq群933053581文章来源地址https://www.toymoban.com/news/detail-405235.html
到了这里,关于requestPayment:fail parameter error: parameter.non…r.signType should be String instead of Undefined的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!