wechatpay-apiv3 / wechatpay-java

微信支付 APIv3 的官方 Java Library
Apache License 2.0
992 stars 216 forks source link

支付回调验签签名长度问题 #310

Open kangshifuSteven opened 2 hours ago

kangshifuSteven commented 2 hours ago

错误描述

有2种问题,第一种是验签报错Input byte array has wrong 4-byte ending unit,第二种是验签报错Last unit does not have enough valid bits,按照支付官方的说法是探测签名故意发的错误的,实际我跟踪发现sign是正常的,找不到原因,后面我去问官方那个ai说的是APIV3密钥生成错误,我使用的是https://suijimimashengcheng.bmcx.com/#google_vignette这个来生成的32为密钥。支付成功,回调始终报错Input byte array has wrong 4-byte ending unit,针对上面问题,我重新支付了N次,更换2次密钥,我使用postman方式测试过,求解决哪里存在问题,贴代码如下

重现bug的步骤

微信图片_20241115182628 微信图片_20241115182701 微信图片_20241115182749 微信图片_20241115182832 微信图片_20241115182928

预期行为

希望能验签成功,好处理业务逻辑。

导致错误的代码片段

No response

操作系统

windows

Java 版本

8

wechatpay-java 版本

0.2.14

其他信息

No response

kangshifuSteven commented 2 hours ago

我补充一下,我是用微信官方那个解密工具类,把这串参数写进去,一样报错 微信图片_20241115184516 问题是不是出在下单预支付的参数里面?JsapiServiceExtension类?