feat(channel): 支持微信小店商家客服 API - #4105
Conversation
🤖 Augment PR Summary摘要:本 PR 为
🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
🟡 Changes recommended
上传流不可重放,重试可能发送空媒体;请修复并增加回归测试。
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
为 weixin-java-channel 新增微信小店商家客服 API,支持媒体上传、消息发送及六类消息模型。
Changes:
- 新增客服服务入口、API 实现及官方接口常量。
- 增加请求/响应模型、JSON 映射和 multipart 上传。
- 纳入 TestNG 回归测试,并补充设计与执行记录。
Review finding: WxChannelKfServiceImpl.java 存在中等问题(2 votes):重试会复用已消费并关闭的上传流,需改为可重放上传并补充回归测试。
File summaries
| File | Description |
|---|---|
weixin-java-channel/src/test/resources/testng.xml |
纳入客服测试套件 |
weixin-java-channel/src/test/java/me/chanjar/weixin/channel/bean/kf/WxChannelKfBeanTest.java |
测试客服消息模型 JSON 映射 |
weixin-java-channel/src/test/java/me/chanjar/weixin/channel/api/impl/WxChannelKfServiceImplTest.java |
测试服务调用与缓存 |
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/constant/WxChannelApiUrlConstants.java |
新增客服 API 地址 |
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/kf/WxChannelKfSendMsgResponse.java |
新增发送响应模型 |
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/kf/WxChannelKfSendMsgParam.java |
新增六类消息请求模型 |
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/kf/WxChannelKfCosUploadResponse.java |
新增上传响应模型 |
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/WxChannelService.java |
暴露客服服务入口 |
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/WxChannelKfService.java |
定义客服 API |
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelKfServiceImpl.java |
实现媒体上传与消息发送 |
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/BaseWxChannelServiceImpl.java |
缓存客服服务实例 |
docs/superpowers/specs/2026-08-22-channel-merchant-kf-design.md |
记录 API 设计 |
docs/superpowers/plans/2026-08-22-channel-merchant-kf.md |
记录实现计划 |
.superpowers/sdd/task-2-report.md |
记录服务实现与验证 |
.superpowers/sdd/task-1-report.md |
记录模型实现与验证 |
Review details
Suppressed comments (1)
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelKfServiceImpl.java:39
- 该调用会进入
BaseWxChannelServiceImpl.executeInternal,默认在 DEBUG 日志中记录完整请求;DataUtils仅脱敏openid,不会脱敏本请求使用的open_id,客服文本及商品/订单标识也会随请求体输出。请让客服消息请求使用安全的日志策略或扩展统一脱敏逻辑。
String responseJson = channelService.post(SEND_MSG_URL, param);
- Files reviewed: 15/15 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 23046bae60
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
4b0d569 to
939bb14
Compare
关联
Closes #3991
本 PR 替代 #4037。
变更
commkfAPI 路径,并覆盖 multipart 字段、JSON 映射、响应解析和服务缓存。兼容性
WxChannelService#getKfService()为 default 方法,避免破坏既有自定义实现。验证
mvn -pl weixin-java-channel -am test(构建成功;父 POM 配置使 Surefire 跳过测试)git diff --check github/develop...HEAD