当前位置:首页 > 微信 > 正文内容

退款回调通知中的Wechatpay-Signature长度不对,报Last unit does not have enough valid bits

canca1年前 (2024-08-13)微信443

问题描述

退款回调通知中的请求头Wechatpay-Signature长度不对,例如长度为:355,导致base64进行解码时,报如下错误:

java.lang.IllegalArgumentException: Last unit does not have enough valid bits

at java.util.Base64$Decoder.decode0(Base64.java:734)

at java.util.Base64$Decoder.decode(Base64.java:526)

at java.util.Base64$Decoder.decode(Base64.java:549)

Wechatpay-Signature如下:

WECHATPAY/SIGNTEST/WasLSPDq2oMMpofamwBbGImTHw9NVoeGAKwl9LcD3jLJ9ugq9ODHNyi0oKtCk0J+Ej3pFobolZHS4CMv11nz3IGPZLhvEZn4q0bIKtJiqas9YMM+eFHL7ihjV0Mc13iZ77TG+Nv2peISvyNsuPx7th3ZZrH6gREWZc3jqW29t3tB4vaqlfeD8kVvIryE7l4N7zB6mqo2L+dmvXvxPdZzSfAK51vdc2646BZiDY6XVuYie9smURVXse6nB/Of2HW3W6bMHXpk11sBt4JM/M6uuDsAqGSFJKAl3myUzgPVUQSLAia2GY7wjFgAEoaaG7897eqcNiZokGInTg==


解决方法

和微信侧进行了核实,回调通知中极少数情况下,签名可能是"WECHATPAY/SIGNTEST/"开头,此回调为探测流量。文档链接:https://pay.weixin.qq.com/docs/merchant/development/interface-rules/signature-verification.html

应对签名探测流量

为了确保商户系统的安全,微信支付会在极少数应答或通知回调中生成错误签名,以探测商户系统是否正确地验证了签名。

商户系统不应对探测流量进行特殊处理,而应将其视为正常的应答或通知回调,并对其签名进行验证。 在排查问题时,您可以通过查看签名值中的 WECHATPAY/SIGNTEST/ 前缀快速判断是否为探测流量。所有用于探测目的的签名值都会包含此前缀。

在验签失败的情况下,我们建议商户系统采取以下措施:

  • 如果应答的签名验证失败,商户系统应舍弃该应答。为了提高用户体验,商户系统可以适当地重试,或者让用户重新发起请求。微信支付不会针对重试请求发起探测。

  • 若通知回调的签名验证失败,商户系统应返回失败(即应答 4xx 或 5xx 的状态码),等待微信支付携带正确签名重新发送通知回调。


扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/884.html

分享给朋友:

“退款回调通知中的Wechatpay-Signature长度不对,报Last unit does not have enough valid bits” 的相关文章

微信公众账号文字消息加链接,用户点击链接相当于自动留言

<a href="weixin://bizmsgmenu?msgmenucontent=今天打卡有什么&msgmenuid=1">打卡</a>msgmenucontent就是点击之后自动触发用户回复的文本...

微信APP统一支付二签方法

微信APP支付二签方法/**  * 2 二次签名返回给APP  */ $signParam = array(     'appid' => $resu...

微信支付中的p12证书提取公钥、私钥、证书、序列号等

今天做微信支付开发,然后产品给我了相应的商户号、apikey、公众号、p12证书等等。说准备工作都已经做好了,可以进行开发了。但是我看微信文档里没有提到p12证书,都是pem证书。怎么办,百度吧。        原来我们...

公众号支付报错:“当前页面的URL未注册”

公众号支付报错:“当前页面的URL未注册”

问题公众号支付报错:“当前页面的URL未注册”解决方案一句话概述请检查下单接口中使用的商户号是否在商户平台配置了对应的支付目录。可能原因及详细解决方案可能导致该报错的原因以及详细的解决方案如下一、支付目录设置问题1.1支付授权目录说明支付授权目录: 商户最后请求拉起微信支付收银台的页面地址我们称之为...

微信分享JSSDK-invalid signature签名错误的解决方案

核对官方步骤,确认签名算法。确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr...

spring boot整合第三方微信开发工具 weixin-java-miniapp 实现小程序微信登录

有时候项目需要用到微信登录或获取用户的手机号码,weixin-java-miniapp是一个好用的第三方工具,不用我们自己写httpcline调用。导入jar包       <dependency>  &n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。