Skip to content

feat(channel): 支持微信小店电子面单服务 - #4102

Merged
binarywang merged 4 commits into
developfrom
feature/3984-channel-ewaybill
Aug 22, 2026
Merged

feat(channel): 支持微信小店电子面单服务#4102
binarywang merged 4 commits into
developfrom
feature/3984-channel-ewaybill

Conversation

@binarywang

Copy link
Copy Markdown
Owner

概要

新增微信小店电子面单服务,覆盖模板、账号、订单与打印的 16 个官方接口,并接入 WxChannelService

相较 #4036 的改进:

  • 修复动态参数容器重复序列化 params/extra 的问题;
  • 使用 template_code 查询标准模板;
  • 使用 waybill_ids 数组承载批量打印与打印报文请求;
  • 新增针对上述 JSON 契约的回归测试;
  • 基于当前 develop 重放,避免旧 PR 的合并冲突。

Closes #3984

Replaces #4036

验证

  • mvn -pl weixin-java-channel -DskipTests compile
  • 仓库父 POM 将 Surefire 固定配置为跳过测试;已保留并补充 TestNG 回归用例。

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

存在可能导致 Checkstyle 失败的注解排版问题且部分回归测试断言较脆弱,建议先按行内评论修正后再合并。

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

本 PR 在 weixin-java-channel 模块中新增“微信小店电子面单(Ewaybill)”能力,补齐官方文档所列的模板/账号/订单/打印等接口常量与调用封装,并将服务入口接入 WxChannelService,同时补充了 JSON 契约相关的 TestNG 回归用例。

Changes:

  • 新增 WxChannelEwaybillService 及其实现 WxChannelEwaybillServiceImpl,封装 16 个电子面单相关接口调用。
  • 新增电子面单请求/响应 Bean(含动态参数容器 AbstractEwaybillRequest/Response)及对应的 URL 常量分组 WxChannelApiUrlConstants.Ewaybill
  • 新增/补充 TestNG 用例,覆盖动态参数序列化与服务入口可用性。

需要关注的阻塞点

  • 新增的 AbstractEwaybillRequest/Response 中存在注解与字段同行写法,较可能触发 Checkstyle(已给出可直接套用的行内修复建议)。
  • WxChannelEwaybillBeanTest 中对 extra 的断言字段选择较脆弱,可能在未来补充显式字段时导致测试误报失败(已给出更稳健的断言方式)。
File summaries
File Description
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/WxChannelService.java 在顶层服务接口新增电子面单服务入口方法声明
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/WxChannelEwaybillService.java 新增电子面单 Service API 定义
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelEwaybillServiceImpl.java 新增电子面单接口的具体调用实现与参数封装
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/BaseWxChannelServiceImpl.java 在基础实现中懒加载接入 getEwaybillService()
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/constant/WxChannelApiUrlConstants.java 增加 Ewaybill URL 常量分组以覆盖官方接口路径
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/AbstractEwaybillRequest.java 新增动态请求参数容器(@JsonAnySetter/@JsonAnyGetter
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/AbstractEwaybillResponse.java 新增动态响应参数容器(未知字段收集到 extra
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateConfigResponse.java 新增模板配置响应 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateCreateRequest.java 新增模板创建请求 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateUpdateRequest.java 新增模板更新请求 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateInfoResponse.java 新增模板信息响应 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateIdResponse.java 新增模板 ID 响应 Bean(显式字段映射)
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateIdParam.java 新增模板 ID 请求参数 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateCodeParam.java 新增模板编码请求参数 Bean(建议补齐无参构造以保持一致性)
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/AccountInfoResponse.java 新增账号信息响应 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/DeliveryListResponse.java 新增快递公司列表响应 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/PreCreateRequest.java 新增预取号请求 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/PreCreateResponse.java 新增预取号响应 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/CreateOrderRequest.java 新增取号请求 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/CreateOrderResponse.java 新增取号响应 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/AddSubOrderRequest.java 新增子件追加请求 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/OrderDetailResponse.java 新增面单详情响应 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/PrintContentParam.java 新增打印报文请求参数 Bean(建议补齐无参构造以保持一致性)
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/PrintContentResponse.java 新增打印报文响应 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/WaybillIdParam.java 新增运单 ID 请求参数 Bean
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/WaybillIdsParam.java 新增批量运单 ID 请求参数 Bean
weixin-java-channel/src/test/java/me/chanjar/weixin/channel/bean/ewaybill/WxChannelEwaybillBeanTest.java 新增动态参数序列化/反序列化契约测试(存在可维护性改进点)
weixin-java-channel/src/test/java/me/chanjar/weixin/channel/bean/ewaybill/PrintContentParamTest.java 新增打印请求 JSON 契约测试
weixin-java-channel/src/test/java/me/chanjar/weixin/channel/api/impl/WxChannelEwaybillServiceAccessorTest.java 新增服务入口可用性测试(getEwaybillService()
Review details
  • Files reviewed: 29/29 changed files
  • Comments generated: 5
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4393ad0d20

ℹ️ 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".

@augmentcode

augmentcode Bot commented Aug 22, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

摘要:本 PR 为微信小店新增电子面单服务,并将其接入 WxChannelService


变更:

  • 新增 `WxChannelEwaybillService` 及默认实现,覆盖模板、账号、订单和打印相关入口。
  • 在 `BaseWxChannelServiceImpl` 中按现有服务模式懒加载电子面单服务。
  • 新增电子面单 URL 常量,指向微信小店物流电子面单接口。
  • 新增模板 ID、模板编码、运单 ID、批量运单 ID 等请求参数 Bean。
  • 新增可动态透传字段的请求/响应基类,以承接未显式建模的官方字段。
  • 新增模板、账号、订单和打印接口的响应 Bean。
  • 为动态 JSON 字段、模板编码及打印参数添加 TestNG 回归测试。
技术说明:
  • 请求通过现有 `JsonUtils` 序列化,并由 `ResponseUtils` 统一解码响应。
  • PR 说明称已处理动态参数重复序列化及部分 JSON 字段命名问题。
  • 本次审查重点核对了新增服务与微信官方电子面单接口的请求契约。

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 5 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

@binarywang
binarywang merged commit 1246de1 into develop Aug 22, 2026
1 check passed
@binarywang
binarywang deleted the feature/3984-channel-ewaybill branch August 22, 2026 10:48
@binarywang binarywang added this to the 4.8.6 milestone Aug 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 新增电子面单模块支持

2 participants