Skip to content

Conversation

@jarcms
Copy link

@jarcms jarcms commented Dec 8, 2025

根据三种类型组装参数:https://pay.weixin.qq.com/doc/v3/partner/4012722249

Copy link

Copilot AI left a 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 针对微信支付小微商家进件 API 进行参数结构调整,将原有的通用字段重构为基于经营类型的三种独立结构,以更好地匹配微信支付 API 文档 (https://pay.weixin.qq.com/doc/v3/partner/4012722249) 的要求。

主要变更:

  • MicroBizInfo 类中原有的通用字段(microNamemicroAddressCodemicroAddressmicroPics)移除,改为三个独立的嵌套类
  • 新增 MicroStoreInfo 类处理"门店场所"场景,包含门店名称、地址、照片等字段
  • 新增 MicroMobileInfo 类处理"流动经营/便民服务"场景,包含经营名称、所在地、现场照片等字段
  • 新增 MicroOnlineInfo 类处理"线上商品/服务交易"场景,包含店铺名称、平台名称、二维码/链接等字段

Comment on lines +557 to +563
* 门店省市编码
* 1、只能由数字组成
* 2、详细参见微信支付提供的省市对照表
* 3、填写规范:
* 门店场所:填写门店省市编码
* 流动经营/便民服务:填写经营/服务所在地省市编码
* 线上商品/服务交易:填写卖家所在地省市编码
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

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

文档注释与实际用途不符。此字段现在位于 MicroStoreInfo 类中,专门用于"门店场所"场景,但注释中仍包含所有三种业务类型的描述(门店场所/流动经营/便民服务/线上商品/服务交易)。

建议更新为:

/**
 * 【门店省市编码】 请填写门店省市编码
 * 1、只能由数字组成
 * 2、详细参见微信支付提供的省市对照表
 * 示例值:440305
 */
Suggested change
* 门店省市编码
* 1只能由数字组成
* 2详细参见微信支付提供的省市对照表
* 3填写规范
* 门店场所填写门店省市编码
* 流动经营/便民服务填写经营/服务所在地省市编码
* 线上商品/服务交易填写卖家所在地省市编码
* 【门店省市编码请填写门店省市编码
* 1只能由数字组成
* 2详细参见微信支付提供的省市对照表

Copilot uses AI. Check for mistakes.
Comment on lines +570 to +580
* 门店地址
* 1、填写规范:
* 门店场所:填写店铺详细地址,具体区/县及街道门牌号或大厦楼层
* 流动经营/便民服务:填写"无"
* 线上商品/服务交易:填写电商平台名称
* 2、格式规范:
* 长度为4-512个字符
* 前后不能有空格、制表符、换行符
* 不能仅含数字、特殊字符
* 仅能填写数字、英文字母、汉字及特殊字符
* 仅支持utf-8格式
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

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

文档注释与实际用途不符。此字段现在位于 MicroStoreInfo 类中,专门用于"门店场所"场景,但注释中仍包含所有三种业务类型的描述(门店场所/流动经营/便民服务/线上商品/服务交易)。

建议更新为:

/**
 * 【门店地址】 填写店铺详细地址,具体区/县及街道门牌号或大厦楼层
 * 1、长度为4-512个字符
 * 2、前后不能有空格、制表符、换行符
 * 3、不能仅含数字、特殊字符
 * 4、仅能填写数字、英文字母、汉字及特殊字符
 * 5、仅支持utf-8格式
 * 示例值:广东省深圳市南山区xx大厦x层xxxx室
 */
Suggested change
* 门店地址
* 1填写规范
* 门店场所填写店铺详细地址具体区/县及街道门牌号或大厦楼层
* 流动经营/便民服务填写"无"
* 线上商品/服务交易填写电商平台名称
* 2格式规范
* 长度为4-512个字符
* 前后不能有空格制表符换行符
* 不能仅含数字特殊字符
* 仅能填写数字英文字母汉字及特殊字符
* 仅支持utf-8格式
* 【门店地址填写店铺详细地址具体区/县及街道门牌号或大厦楼层
* 1长度为4-512个字符
* 2前后不能有空格制表符换行符
* 3不能仅含数字特殊字符
* 4仅能填写数字英文字母汉字及特殊字符
* 5仅支持utf-8格式

Copilot uses AI. Check for mistakes.
Comment on lines +429 to +614
@SerializedName("micro_store_info")
private MicroStoreInfo microStoreInfo;

/**
* 门店省市编码
* 1、只能由数字组成
* 2、详细参见微信支付提供的省市对照表
* 3、填写规范:
* 门店场所:填写门店省市编码
* 流动经营/便民服务:填写经营/服务所在地省市编码
* 线上商品/服务交易:填写卖家所在地省市编码
* 示例值:440305
* 【流动经营/便民服务】 经营类型为“流动经营/便民服务”时填写
*/
@SerializedName("micro_address_code")
private String microAddressCode;
@SerializedName("micro_mobile_info")
private MicroMobileInfo microMobileInfo;

/**
* 门店地址
* 1、填写规范:
* 门店场所:填写店铺详细地址,具体区/县及街道门牌号或大厦楼层
* 流动经营/便民服务:填写"无"
* 线上商品/服务交易:填写电商平台名称
* 2、格式规范:
* 长度为4-512个字符
* 前后不能有空格、制表符、换行符
* 不能仅含数字、特殊字符
* 仅能填写数字、英文字母、汉字及特殊字符
* 仅支持utf-8格式
* 示例值:广东省深圳市南山区xx大厦x层xxxx室
* 【线上商品/服务交易】 经营场景为“线上商品/服务交易”时填写
*/
@SerializedName("micro_address")
private String microAddress;
@SerializedName("micro_online_info")
private MicroOnlineInfo microOnlineInfo;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public static class MicroOnlineInfo implements Serializable {

private static final long serialVersionUID = -4672635122639034459L;

/**
* 【线上店铺名称】 填写商家的线上店铺名称
* 1、长度为1-50个字符;
* 2、前后不能有空格、制表符、换行符;
* 3、不能仅含数字、特殊字符;
* 4、仅能填写数字、英文字母、汉字及特殊字符;
* 5、仅支持utf-8格式。
*/
@SerializedName("micro_online_store")
private String microOnlineStore;

/**
* 【电商平台名称】 填写电商平台名称
* 1、长度为1-50个字符;
* 2、前后不能有空格、制表符、换行符;
* 3、不能仅含数字、特殊字符;
* 4、仅能填写数字、英文字母、汉字及特殊字符;
* 5、仅支持utf-8格式。
*/
@SerializedName("micro_ec_name")
private String microEcName;

/**
* 【店铺二维码】
* 1、店铺二维码或店铺链接二选一必填;
* 2、若为电商小程序,可上传店铺页面的小程序二维码;
* 3、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。
*/
@SerializedName("micro_qrcode")
private String microQrcode;

/**
* 【店铺链接】
* 1、店铺二维码或店铺链接二选一必填;
* 2、请填写店铺主页链接,需符合网站规范。
*/
@SerializedName("micro_link")
private String microLink;

}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public static class MicroMobileInfo implements Serializable {

private static final long serialVersionUID = -4672635122639034460L;

/**
* 【经营/服务名称】 请填写经营/服务名称
* 1、长度为1-50个字符;
* 2、前后不能有空格、制表符、换行符;
* 3、不能仅含数字、特殊字符;
* 4、仅能填写数字、英文字母、汉字及特殊字符;
* 5、仅支持utf-8格式。
*/
@SerializedName("micro_mobile_name")
private String microMobileName;

/**
* 【经营/服务所在地省市】 请填写经营/服务所在地省市编码
*/
@SerializedName("micro_mobile_city")
private String microMobileCity;

/**
* 【经营/服务所在地(不含省市)】 填写“无"
*/
@SerializedName("micro_mobile_address")
private String microMobileAddress;

/**
* 【经营/服务现场照片】
* 1、提交流动经营现场照片,如摊位场景应提交摊位全景照片+商品照片。
* 2、可上传多张图片,请填写通过图片上传API预先上传图片生成好的MediaID。
*/
@SerializedName("micro_mobile_pics")
private List<String> microMobilePics;

}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public static class MicroStoreInfo implements Serializable {

private static final long serialVersionUID = -4672635122639034461L;

/**
* 【门店名称】请填写门店名称
* 1、长度为1-50个字符;
* 2、前后不能有空格、制表符、换行符;
* 3、不能仅含数字、特殊字符;
* 4、仅能填写数字、英文字母、汉字及特殊字符;
* 5、仅支持utf-8格式。
*/
@SerializedName("micro_name")
private String microName;

/**
* 门店省市编码
* 1、只能由数字组成
* 2、详细参见微信支付提供的省市对照表
* 3、填写规范:
* 门店场所:填写门店省市编码
* 流动经营/便民服务:填写经营/服务所在地省市编码
* 线上商品/服务交易:填写卖家所在地省市编码
* 示例值:440305
*/
@SerializedName("micro_address_code")
private String microAddressCode;

/**
* 门店地址
* 1、填写规范:
* 门店场所:填写店铺详细地址,具体区/县及街道门牌号或大厦楼层
* 流动经营/便民服务:填写"无"
* 线上商品/服务交易:填写电商平台名称
* 2、格式规范:
* 长度为4-512个字符
* 前后不能有空格、制表符、换行符
* 不能仅含数字、特殊字符
* 仅能填写数字、英文字母、汉字及特殊字符
* 仅支持utf-8格式
* 示例值:广东省深圳市南山区xx大厦x层xxxx室
*/
@SerializedName("micro_address")
private String microAddress;

/**
* 【门店门头照片】
* 1、请上传门头正面照片(要求门店招牌、门框完整、清晰、可辨识);若为停车场等无固定门头照片的经营场所,可上传岗亭/出入闸口。
* 2、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。
*/
@SerializedName("store_entrance_pic")
private String storeEntrancePic;

/**
* 【店内环境照片】
* 1、请上传门店内部环境照片(可辨识经营内容)。若为停车场等无固定门头的经营场所,可上传停车场内部照片。
* 2、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。
*/
@SerializedName("micro_indoor_copy")
private String microIndoorCopy;

/**
* 【门店经度 】 数字或小数,商户自定义字段
*/
@SerializedName("store_longitude")
private String storeLongitude;

/**
* 【门店纬度】 纬度,商户自定义字段
*/
@SerializedName("store_latitude")
private String storeLatitude;

}
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

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

新增的三个嵌套类(MicroStoreInfoMicroMobileInfoMicroOnlineInfo)缺少 JSON 序列化/反序列化测试。

建议添加类似 CombineCloseRequestTest 的测试用例来验证:

  1. 各个字段的 JSON 序列化是否正确(包括 @SerializedName 注解)
  2. JSON 反序列化是否能正确恢复对象
  3. 特殊字段(如 List<String> 类型的 microMobilePics)的序列化是否正常

示例测试文件路径:weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/applyment/WxPayApplyment4SubCreateRequestTest.java

Copilot uses AI. Check for mistakes.
@binarywang
Copy link
Owner

@jarcms 麻烦回应一下review内容

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.

2 participants