首页,不知道是我们的问题还是怎样,这个小程序下单支付搞了一个多星期了,确实恶心到极限了。
哪位大神熟悉小程序支付的麻烦指点一下,小弟非常感谢。
开始一直提示没有total_tee,这个其他一直都有传。最后会贴上我的代码。
我向后台发送订单请求:
利用前端把参数传给后台
{ "openid" :“”, "desc" : "paytest" , //支付描述 "orderPrice" : "1" , //支付金额 "tradeType" : "JSAPI" , //订单号 "appId" : "" , "mchId" : "" , "timeStamp" : "" } |
这7个参数。
然后台调用 统一下单支付 接口,下图这个接口。
如图:
后台整理了参数后把必填的12个参数都传了,其他选填的都没有做处理和发送。
接着后台做签名计算。
“appid=“xxxxxxxx”&nonceStr= "xxxxxxx" &package=prepay_id= "xxxxxxxx" &signType=MD5&timeStamp= "xxxxxxx" &key= "随机数" ” |
签名 计算方式是按文档来计算的
在下单流程我们测试是成功的。
但是到转到支付就失败了。
我的支付请求:
var that = this ; //获取openid console.log( "接口:" + API.getPayOrder()); console.log(that.OPEN_ID); var timestamp = Date.parse( new Date()); timestamp = timestamp / 1000; var n = timestamp * 1000; console.log( "时间截:" + n) var data = { "openid" : that.OPEN_ID, "desc" : "paytest" , //支付描述 "orderPrice" : "1" , //支付金额 "tradeType" : "JSAPI" , //订单号 "appId" : "这里填我们的appid" , "mchId" : "这里填我" , "timeStamp" : "" +n } //调用后台接口获取单号 HTTP_REQUEST.getRequest(API.getPayOrder(), data, function (res) { console.log( "打印“统一下单”返回数据" ); console.log(res); // 发起拉起支付请求 wx.requestPayment({ timeStamp: "" + res.data.timeStamp, //时间戳 nonceStr: "" + res.data.nonceStr, //随机字符串 package: "prepay_id=" + res.data.prepay_id, //统一下单接口返回的 prepay_id 参数值 signType: "" + res.data.signType, //签名算法,暂支持 MD5 paySign: "" + res.data.sign, //签名,具体签名方案参见 success: function (res) { console.log( "支付成功" ); console.log(res); }, fail: function (res) { console.log( "支付失败" ); console.log(res); } }) }, function (res) { console.log( "请求失败" + res); }) |
支付验证签名失败,是因为调用统一下单接口之后没有按照小程序的要求进行二次签名,只有把二次签名的数据返回回去了才能成功的唤醒微信支付功能。
怎么解决的?找到问题根源了吗?
请问,你是怎么解决的?
怎么解决的。放出来问题啊!
兄弟,解决了没有?我也是一样的问题~~至今没人解答啊。。
4567
123123
坑解决了吗? 来个人回答一下啊
兄弟,我们的踩的坑是一样的,坐等大佬吧~~~