开发小程序时调起支付一直提示
{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 ) 预付单再次签名后的jsApiParamter Array ( [appId] => wxc21534f70356ba05 //为什么 [nonceStr] => bangkkwrslpveua69dek54k344r5coz7 [package] => prepay_id=wx201710101537105ea7593fcb0689926766 [signType] => MD5 [timeStamp] => 1507621030 [paySign] => E5C4A3BC291A45EDBD3FF131E93E5280 ) |
拜托拜托
服务商模式的小程序支付步骤,1,在后台绑定小程序appid与子商户号的关联关系(银行服务商下的特约商户由银行配置)2.统一下单的时候sub_appid传小程序已关联的appid;3. 获取到prepayid后, 再根据支付文档说明重新生成一次签名,参与签名的字段appId(小程序的appid),timeStamp,nonceStr,package,signType(详细说明见支付文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=7_7&index=5), 将这5个字段+生成的sign,6个字段返回给小程序端调起支付
哪几个参数呢?是那5个吗?
参数,注意参数吗,一个个比对。
我就因为参数名,一个微小的差异,搞了很久。。。。。。
nonceStr,package,signType,timeStamp和sub_appid再次生成一个签名,是这种意思吗@熊旭
请问下最后一个签名是appId 和sub_appid 都要传还是只传sub_appid
sub_appid 就是小程序的appId
sub_appid 是个什么? 同样的问题,在线等求解~
我也不懂了,官方给出的文档是用小程序的appId
换了的,换成小程序的APPID:wx1ce0dfce6268ceac依然是一样 的结果,感觉问题是不是出在统一下单的时候的参数配置配置上呢。
Array
(
[appId] => wxc21534f70356ba05 换成小程序的APPID试试
[nonceStr] => bangkkwrslpveua69dek54k344r5coz7
[package] => prepay_id=wx201710101537105ea7593fcb0689926766
[signType] => MD5
[timeStamp] => 1507621030
[paySign] => E5C4A3BC291A45EDBD3FF131E93E5280
)