微信扫码登录

其他登录方式

绑定手机号

注册

我同意用户协议

忘记密码

用户协议

绑定手机号

近期有不法分子打着爱盈利的旗号,制作“爱盈利”名称的App,并伪造爱盈利证件,骗取用户信任,以抖音点赞赚钱或其他方式赚钱为名义,过程中以升级会员获得高佣金为名让用户充值。
爱盈利公司郑重声明:我司没有研发或运营过任何名为“爱盈利”的APP,我司做任务赚钱类产品从没有让任何普通用户充值升级会员。我公司产品均在本网站可查询,请将网站拉至底部,点击“关于我们”可查看爱盈利相关产品与服务。
温馨提示:当遇到此类问题请拨打官方电话或添加官方微信,以免财产损失。爱盈利官网地址:www.aiyingli.com。
  • 推广与合作
X

小程序丨【已解决】服务商模式小程序支付签名失败问题,拜求各位帮忙看看问题出在哪儿 ... ...

来源: 4949




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

{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
)

拜托拜托

网友回复:

我***:

提示错误代码是什么啊、

熊***:

错误代码

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

评论

相关文章推荐

SELECT dw_posts.ID,dw_posts.post_title,dw_posts.post_content FROM dw_posts INNER JOIN dw_term_relationships ON (dw_posts.ID = dw_term_relationships.object_id) WHERE 1=1 AND(dw_term_relationships.term_taxonomy_id = 5246 ) AND dw_posts.post_type = 'post' AND (dw_posts.post_status = 'publish') GROUP BY dw_posts.ID ORDER BY RAND() LIMIT 0, 6

京ICP备15063977号-2 © 2012-2018 aiyingli.com. All Rights Reserved. 京公网安备 11010102003938号