wx.choosewxpay调起支付的时候,提示jsapi缺少参数total_fee
1、预下单返回的prepay_id和appId(为空全,这里的有些参数改成了xxx代替)
{ trade_type: 'JSAPI' , prepay_id: 'wx20191006144754113363' , nonce_str: 'i4qh729crci4qh729crckfqjo5lnq1fi' , return_code: 'SUCCESS' , err_code_des: 'ok' , sign: '23D07D91A24F1F72472ABD48390A3089' , mch_id: '1538522841' , return_msg: 'OK' , appid: 'wx48b26c1f626axxxx' , device_info: 'sandbox' , result_code: 'SUCCESS' , err_code: 'SUCCESS' } |
2、参与签名的参数(timeStamp的S也大写来参与签名)
appId=wx48b26c1f626axxxx&nonceStr=w98tbftxus9w98tb&package=prepay_id=wx20191006144754113363&signType=MD5&timeStamp=1570344872658&key=89f3571808db89e1a71548c18d7cxxxx |
3、调起支付时的参数(是对象传进)
wx.chooseWXPay({ timestamp: 1570345382503, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 nonceStr: '3osxdern0e83osxd' , // 支付签名随机串,不长于 32 位 package: 'prepay_id=wx20191006144754113363' , // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) signType: 'MD5' , // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' paySign: 'DFFC3051BB4874728C3EA02FE9C55D5' , // 支付签名 success: function (res) { // 支付成功后的回调函数 } }); |
打印出来以参数。
别告诉我package: 'prepay_id=wx20191006144754113363'错了。
别告诉我仔细检查参数。。。。查了几天了。。。
通过统一查询接口,返回来的openid被改了,我post生成订单的openid不是这个啊。。
下面是我post的数据
<
xml
>
<
appid
>wx48b26c1f626axxxx</
appid
>
<
attach
></
attach
>
<
body
>xxxx-xxxxx</
body
>
<
mch_id
>1538522841</
mch_id
>
<
nonce_str
>nafy5gr5rxanafy5gr5rxafco1mkl72y</
nonce_str
>
<
notify_url
>http://dev.xxxxx.cn/payok/</
notify_url
>
<
openid
>o1yNa6LiSpqQqkYv1gJored6cxds</
openid
>
<
out_trade_no
>5d999fd1dd2b22301893283a</
out_trade_no
>
<
spbill_create_ip
>14.153.237.xxx</
spbill_create_ip
>
<
total_fee
>179</
total_fee
>
<
trade_type
>JSAPI</
trade_type
>
<
sign
>BFB24582D441F1C45BC3E1B33D50AB8D</
sign
>
</
xml
>
<
xml
>