开发小程序时调起支付一直提示

{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”:“0q2rzoxu4e40kl5y9lf9pqzhzaw03m”, “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,所以一直不行。

爱盈利(aiyingli.com)移动互联网具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。