Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

微信商户红包 一直签名失败。 #122

Open
Being789 opened this issue Nov 1, 2023 · 1 comment
Open

微信商户红包 一直签名失败。 #122

Being789 opened this issue Nov 1, 2023 · 1 comment

Comments

@Being789
Copy link

Being789 commented Nov 1, 2023

问题(提问前,请确保阅读过项目首页说明以及SDK wiki文档相关内容)

简要描述

最近这两天使用微信的商家红包,然后使用了该方法

public WxPaySendRedpackResult sendRedpack(WxPaySendRedpackRequest request) throws WxPayException {
request.checkAndSign(this.payService.getConfig());
String url = this.payService.getPayBaseUrl() + "/mmpaymkttransfers/sendredpack";
if (request.getAmtType() != null) {
//裂变红包
url = this.payService.getPayBaseUrl() + "/mmpaymkttransfers/sendgroupredpack";
}
String responseContent = this.payService.post(url, request.toXML(), true);
final WxPaySendRedpackResult result = BaseWxPayResult.fromXML(responseContent, WxPaySendRedpackResult.class);
result.checkResult(this.payService, request.getSignType(), true);
return result;
}

问题出现在了,商家红包的签名必须使用V2 的KEY ,但是里面的方法使用的是MchKey。
目前微信的商家红包好像只停留在了V2版本,V3都不支持。必须使用V2的key。

就是以下这段代码出现了问题。
//设置签名字段的值
this.setSign(SignUtils.createSign(this, this.getSignType(), config.getMchKey(), this.getIgnoredParamsForSign()));

我看没有其他人提这个问题。我把V2的key替换掉之后就成功了。
WxPayConfig 里面可能需要新增apiV2Key。然后在红包签名的地方使用该key。

版本情况

  • WxJava 版本号: weixin-java-pay-4.5.0

期待结果

尽量详细描述

实际情况

尽量详细描述

重现步骤

日志

日志内容如果过多,请将日志放在 pastebin 或者其他地方,并将url地址贴在这里

@renanmin
Copy link

renanmin commented Nov 1, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants