我挪用小措施的微信付出api,一直报签名验证错误,参加签名的参数有timeStamp、nonceStr、package、signType。利用微信付出签名校验东西生成的签名跟我本身处事器生成的签名是一样的,但照旧报签名错误。
err_desc: “付出验证签名失败”, err_code: “-1”, errMsg: “requestPayment:fail”
wx.requestPayment({ 'nonceStr': res.data.nonce_str, 'package': res.data.package, 'signType': 'MD5', 'timeStamp': res.data.timeStamp, 'paySign': res.data.paySign, ……timestamp也查抄了,没问题。
看开拓社区官网回覆
Q:我挪用小措施的微信付出api,一直报签名验证错误,参加签名的参数有timeStamp、nonceStr、package、signType。利用微信付出签名校验东西生成的签名跟我本身处事器生成的签名是一样的,但照旧报签名错误。
A:appId不需要传入付出api,可是需要参加签名。
尚有本身百度的
一,处事商模式下的付出参数说明
1.mch_id(微信付出分派的商户号)和appId(微信分派的公家账号ID)是成对呈现的.
先在公家平台获取appId(微信分派的公家账号ID)和appSecret(appSecret在付出时可以不消)
其次在处事商付出平台获取mch_id(微信付出分派的商户号)以及signKey(在处事商模式下统一下单签名和小措施付出二次签名都是用该signKey,而不是拉起付出的小措施对应的signKey)
2.sub_appid可以时子商户主体下的小措施appid, 也可以是处事商主体下的小措施(处事商主体下的小措施绑定的mch_id可以不是处事商账户对应的mch_id但必然要求是其主体下, 可是该小措施id必然要在署理商户下绑定)
3.sub_openid必填,openid不再填写
二, 两次签名
1.调取统一下单接口需要签名,此处签名失败, 微信处事器会给处事商靠山返错误信息.
2.统一下单获取到prepayid, 然后需要再次签名, 此时用到的签名字段中appid是当前调起微信付出的小措施appid, 而不是处事商对应的appid 详细见:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=7_7&index=3
二次签名用到的signkey照旧处事商对应的, 而不是拉起微信付出小措施对应的signkey
3.第二次签名失败, 只会在前端拉起付出时报错, 靠山不会报错, 并且只有ios端才会显示是签名错误, 而安卓小措施不会显示
三,appsecret
在统一下单接口, appsecret可以传null, 可是在通过jscode调换openid时, 该appsecret必需填写, 且与拉起付出的小措施的appid相对应的哪个appsecret
然而,都不可。。。
终极办理步伐如下:
修改WXPay.java ,留意假如是正式情况也用md5 public WXPay(final WXPayConfig config, final String notifyUrl, final boolean autoReport, final boolean useSandbox) throws Exception { this.config = config; this.notifyUrl = notifyUrl; this.autoReport = autoReport; this.useSandbox = useSandbox; if (useSandbox) { this.signType = SignType.MD5; // 沙箱情况 } else { this.signType = SignType.MD5; } this.wxPayRequest = new WXPayRequest(config); }原因就是出在signType上,要领亲测可用!