开发小程序时调起支付一直提示
{err_code: "2", err_desc: "支付验证签名失败", errMsg: "requestPayment:fail"} |
我是以服务商模式发起的支付,统一下单什么都成功了,但是一到调起支付的时候就验证签名失败。我服务端返回的6个参数如下:
Array( [appId] => wxc21534f70356ba05 //这里是服务商的appid,不是小程序的 [nonceStr] => bangkkwrslpveua69dek54k344r5coz7 [package] => prepay_id=wx201710101537105ea7593fcb0689926766 [signType] => MD5 [timeStamp] => 1507621030 [paySign] => E5C4A3BC291A45EDBD3FF131E93E5280) |
根据服务商模式的小程序支付文档:服务商模式下应为当前调起支付的小程序的appid,貌似问题就出在这个这个appid上,而在我的小程序是第三方平台的模板小程序,特约商户授权后的extAppid:为"wx1ce0dfce6268ceac",也就是当前小程序的appid。
附上统一下单的整个过程的参数,烦请各位帮忙看看问题是出在哪儿。
统一下单参数:{ "appid":"wxc21534f70356ba05",//服务商appid "attach":"", "body":"asdfasdfasdfa", "goods_tag":"", "mch_id":"1481143442",//服务商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",//授权的小程序 "sub_mch_id":"1489086632",//特约商户号 "sub_openid":"obQb60MPr_xxtiLNeg6iLZ-Itahg",//与sub_appid对应的sub_openid "time_expire":"20171010154710", "time_start":"20171010153710", "total_fee":"7000", "trade_type":"JSAPI", "sign":"51CD7C77D29515FE007B9E5ADD1D8DBD"}统一下单成功返回预付单: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)预付单再次签名后的jsApiParamterArray( [appId] => wxc21534f70356ba05 //为什么 [nonceStr] => bangkkwrslpveua69dek54k344r5coz7 [package] => prepay_id=wx201710101537105ea7593fcb0689926766 [signType] => MD5 [timeStamp] => 1507621030 [paySign] => E5C4A3BC291A45EDBD3FF131E93E5280) |
拜托拜托
网友回复:
提示错误代码是什么啊、
错误代码
{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依然是一样 的结果,感觉问题是不是出在统一下单的时候的参数配置配置上呢。
我也不懂了,官方给出的文档是用小程序的appId
问题解决了,生成paySign的时候需要使用sub_appid来参与签名,官方的SDK默认使用的是appid,所以一直不行。




