java微信验签,微信支付回调的验签部分,我有感到疑惑的点,不知道是不是bug...

简要描述

也是老用户了,用了这个框架两年多了,也是才发现微信支付回调中关于微信来源验签,有个逻辑问题,分支是在release版本下的

模块版本情况

WxJava 模块名: weixin-java-pay

WxJava 版本号:3.9.0

详细描述

支付回调的验签以及 xml转换入口使用了 BaseWxPayServiceImpl 这个类的 195行 parseOrderNotifyResult,发现 210行

WxPayOrderNotifyResult 这个类 checkResult 这个方法 320这行,我看逻辑处理是 当return_code等于success 并且sign 不为空的情况下,才判断是伪造的通知,那么假设伪造的通知 sign为空、并且return_code不传,这个逻辑就返回false不走了。

会执行 BaseWxPayResult 332 行 checkResult这个方法,这时候由于 sign是空的, checkSuccess 又是false 等于什么逻辑都没走。 建议及时改造,虽然交易单号,都是从后台生成传递给微信支付供应商那边,但还是有概率被穷举出来 或者 内部泄露之类的,通知成功支付,会对企业造成损失的

本地测试的时候,我只传了这两个参数,没有进入验签的逻辑,尝试的版本 是在3.5.0下,也看了该出代码最新的release版本,并没有做出改动。

建议把parseOrderNotifyResult这个方法 只做xml的转换,把验签逻辑单独出来,可以方便用户在生产 和 测试环境上的配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值