開發(fā)小程序時調(diào)起支付一直提示
{err_code: "2" , err_desc: "支付驗證簽名失敗" , errMsg: "requestPayment:fail" } |
我是以服務(wù)商模式發(fā)起的支付,統(tǒng)一下單什么都成功了,但是一到調(diào)起支付的時候就驗證簽名失敗。我服務(wù)端返回的6個參數(shù)如下:
Array ( [appId] => wxc21534f70356ba05 //這里是服務(wù)商的appid,不是小程序的 [nonceStr] => bangkkwrslpveua69dek54k344r5coz7 [package] => prepay_id=wx201710101537105ea7593fcb0689926766 [signType] => MD5 [timeStamp] => 1507621030 [paySign] => E5C4A3BC291A45EDBD3FF131E93E5280 ) |
根據(jù)服務(wù)商模式的小程序支付文檔:服務(wù)商模式下應(yīng)為當前調(diào)起支付的小程序的appid,貌似問題就出在這個這個appid上,而在我的小程序是第三方平臺的模板小程序,特約商戶授權(quán)后的extAppid:為"wx1ce0dfce6268ceac",也就是當前小程序的appid。
附上統(tǒng)一下單的整個過程的參數(shù),煩請各位幫忙看看問題是出在哪兒。
統(tǒng)一下單參數(shù): { "appid" : "wxc21534f70356ba05" ,//服務(wù)商appid "attach" : "" , "body" : "asdfasdfasdfa" , "goods_tag" : "" , "mch_id" : "1481143442" ,//服務(wù)商mch_id "nonce_str" : "sb0q2rzoxu4e40kl5y9lf9pqzhzaw03m" , "notify_url" : "https://pay.zsmart.me/wxpay/notify" , "out_trade_no" : "2017092209341118572" , "spbill_create_ip" : "220.172.54.174" , "sub_appid" : "wx1ce0dfce6268ceac" ,//授權(quán)的小程序 "sub_mch_id" : "1489086632" ,//特約商戶號 "sub_openid" : "obQb60MPr_xxtiLNeg6iLZ-Itahg" ,//與sub_appid對應(yīng)的sub_openid "time_expire" : "20171010154710" , "time_start" : "20171010153710" , "total_fee" : "7000" , "trade_type" : "JSAPI" , "sign" : "51CD7C77D29515FE007B9E5ADD1D8DBD" } 統(tǒng)一下單成功返回預(yù)付單: Array ( [appid] => wxc21534f70356ba05 [mch_id] => 1481143442 [nonce_str] => MXP4KyE43Jqwufgk [prepay_id] => wx201710101537105ea7593fcb0689926766 [result_code] => SUCCESS [return_code] => SUCCESS [return_msg] => OK [sign] => FC4576C71554FB56512C2E65C91882B7 [sub_appid] => wx1ce0dfce6268ceac [sub_mch_id] => 1489086632 [trade_type] => JSAPI ) 預(yù)付單再次簽名后的jsApiParamter Array ( [appId] => wxc21534f70356ba05 //為什么 [nonceStr] => bangkkwrslpveua69dek54k344r5coz7 [package] => prepay_id=wx201710101537105ea7593fcb0689926766 [signType] => MD5 [timeStamp] => 1507621030 [paySign] => E5C4A3BC291A45EDBD3FF131E93E5280 ) |
拜托拜托
網(wǎng)友回復(fù):
提示錯誤代碼是什么啊、
錯誤代碼
{err_code: "2" , err_desc: "支付驗證簽名失敗" , errMsg: "requestPayment:fail" } |
Array
(
[appId] => wxc21534f70356ba05 換成小程序的APPID試試
[nonceStr] => bangkkwrslpveua69dek54k344r5coz7
[package] => prepay_id=wx201710101537105ea7593fcb0689926766
[signType] => MD5
[timeStamp] => 1507621030
[paySign] => E5C4A3BC291A45EDBD3FF131E93E5280
)
換了的,換成小程序的APPID:wx1ce0dfce6268ceac依然是一樣 的結(jié)果,感覺問題是不是出在統(tǒng)一下單的時候的參數(shù)配置配置上呢。
我也不懂了,官方給出的文檔是用小程序的appId
問題解決了,生成paySign的時候需要使用sub_appid來參與簽名,官方的SDK默認使用的是appid,所以一直不行。