-
-
Notifications
You must be signed in to change notification settings - Fork 9k
在JsapiResult中添加prepayId字段并提供静态工厂方法实现解耦 #3798
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
Conversation
Co-authored-by: binarywang <1343140+binarywang@users.noreply.github.com>
Co-authored-by: binarywang <1343140+binarywang@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
本 PR 通过在 JsapiResult 中添加 prepayId 字段并提供静态工厂方法,解决了微信支付 V3 API 中用户无法存储和复用预支付交易会话标识的问题,同时实现了订单创建与支付签名生成的解耦。
主要变更:
- 在
JsapiResult类中添加prepayId字段,使用户能够获取并存储预支付交易会话标识 - 新增两个静态工厂方法
getJsapiPayInfo()和getAppPayInfo(),支持使用已存储的 prepay_id 重新生成支付签名 - 修正了 code_url 字段注释中的变量名错误
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java | 在 JsapiResult 中添加 prepayId 字段;新增 getJsapiPayInfo() 和 getAppPayInfo() 静态工厂方法用于解耦场景;修正 code_url 注释错误 |
| weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3ResultTest.java | 新增完整的测试用例,覆盖 prepayId 字段的设置、静态工厂方法的功能以及解耦场景的使用 |
...ava-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java
Show resolved
Hide resolved
...ava-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java
Show resolved
Hide resolved
...ava-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java
Show resolved
Hide resolved
|
@copilot 为什么把h5_url改成code_url,是基于什么考虑 |
Co-authored-by: binarywang <1343140+binarywang@users.noreply.github.com>
这是修复注释中的错误。该字段的 |
解决微信支付V3接口prepay_id获取和签名解耦问题
问题分析
实现内容
1. 核心功能:在
JsapiResult中添加prepayId字段文件:
WxPayUnifiedOrderV3Result.javaJsapiResult类中添加prepayId字段2. 解耦功能:添加静态工厂方法(已优化)
新增方法:
getJsapiPayInfo(String prepayId, String appId, PrivateKey privateKey)getAppPayInfo(String prepayId, String appId, String mchId, PrivateKey privateKey)3. 代码重构:提取私有方法
新增私有方法:
buildJsapiResult()- 构建JSAPI支付结果对象buildAppResult()- 构建APP支付结果对象这些私有方法被
getPayInfo实例方法和静态工厂方法共享,消除了代码重复。4. 测试用例增强
新增测试:
getJsapiPayInfo的参数空值验证(3个测试)getAppPayInfo的参数空值验证(4个测试)使用示例
方案1:一次性获取(原有方式,保持兼容)
方案2:解耦版本(推荐)
验证结果
优势
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.