Repository navigation
Conversation
JeepayKit#genUrlParams 生成的查询串会被直接拼接到渠道方请求地址上 (xxpay 的下单 / 退款 / 查询接口),但 doEncode 只对包含 "+" 的值做编码, 其余取值原样输出。 - 商户配置的 notifyUrl 自带 query 条件(如 https://mch/notify?token=abc&x=1) 或商品标题含空格、& 时,渠道侧按 & = 切分会得到被截断的参数并凭空多出参数, 与本地按完整参数计算的签名不再一致,表现为验签失败; - 中文商品标题等非 ASCII 字符同样未做百分号编码,直接出现在请求行中。 统一按 UTF-8 做 URL 编码,与原有 "+" 分支保持同一套编码语义, 渠道侧标准表单解码后即可还原出原始取值。
保留社区 PR #148 原贡献提交,补充离线编码签名回归。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
定位与来源
这是社区 #148(@rwzdk)的独立补测草稿,保留原贡献提交,再追加签名/编码契约测试。与原 PR 的生产修改重叠,不应重复合并;不关闭或修改原 PR,由维护者选择承载方式。
范围
在 payment 增加 test-scope JUnit,验证生成的四类渠道路径 URI、显式 form 解码、中文/保留字符/字面加号及真实 XxpayKit 签名保持一致。
验证
JDK17 本地 payment reactor 18项全过(core13/MQ4/payment1)。基线旧编码导致非法 URI;恢复后通过。命令:mvn -B -pl jeepay-payment -am test。git diff --check通过。远端 CI 待本 head 运行。
必须保留的限制
这是标准 form 查询编码契约,不是外部 xxpay 服务端/真实支付联调;外部解码方式仍需确认。Hutool 非 form 默认解析与显式 form 解码不同,不用此测试推断渠道已兼容。仅合成数据,无渠道请求、配置变更或发布。
远端 CI 已核实(2026-10-27 14:48 UTC)
CI run 40524279881 在本草稿 head
016bd2cdef7e28a59abed7a9be8bcb2b569b71f8已 completed/success;Shell 安装脚本断言与 Maven 编译(含 JDK17 编译/测试编译/单元及授权回归)均通过。以上替代前文创建时“待运行”的状态。远端文件已与本地已测试版本逐一比对一致。保留草稿供维护者审核,CI 通过不消除上文业务/渠道边界,也不授权自动合并或发版。