From 6b5c451f92f28c6c8e0273d343a6478a9448c0eb Mon Sep 17 00:00:00 2001 From: gong <1157756119@qq.com> Date: Fri, 26 Dec 2025 15:08:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98-=20dto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../req/entry/WechatEntryAdditionReqDto.java | 49 ++++++++++ .../entry/WechatEntryBankAccountReqDto.java | 73 +++++++++++++++ .../req/entry/WechatEntryContactReqDto.java | 13 +++ .../dto/req/entry/WechatEntryReqDto.java | 64 +++++++++++++ .../req/entry/WechatEntrySettleReqDto.java | 89 +++++++++++++++++++ .../req/entry/WechatEntrySubjectReqDto.java | 55 ++++++++++++ .../business/WechatEntryBusinessReqDto.java | 48 ++++++++++ .../WechatEntryCertificateReqDto.java | 12 +++ .../business/WechatEntryLicenseReqDto.java | 88 ++++++++++++++++++ .../sales/WechatEntryAppInfoReqDto.java | 43 +++++++++ .../sales/WechatEntryMiniProgramReqDto.java | 45 ++++++++++ .../sales/WechatEntryMpInfoReqDto.java | 43 +++++++++ .../sales/WechatEntrySalesInfoReqDto.java | 85 ++++++++++++++++++ .../sales/WechatEntryStoreInfoReqDto.java | 76 ++++++++++++++++ .../sales/WechatEntryWebInfoReqDto.java | 42 +++++++++ .../sales/WechatEntryWeworkInfoReqDto.java | 31 +++++++ 16 files changed, 856 insertions(+) create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryAdditionReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryBankAccountReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryContactReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntrySettleReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntrySubjectReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryBusinessReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryCertificateReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryLicenseReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryAppInfoReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryMiniProgramReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryMpInfoReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntrySalesInfoReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryStoreInfoReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryWebInfoReqDto.java create mode 100644 cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryWeworkInfoReqDto.java diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryAdditionReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryAdditionReqDto.java new file mode 100644 index 000000000..a656d8303 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryAdditionReqDto.java @@ -0,0 +1,49 @@ +package com.czg.wechat.dto.req.entry; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +/** + * 微信进件-补充信息 + * + * @author yjjie + * @date 2025/12/26 13:43 + */ +@Data +public class WechatEntryAdditionReqDto { + + /** + * 选填 + * 法定代表人开户承诺函 + * 模板下载地址 ... + * 通过图片上传完成后 MediaID + */ + @JSONField(name = "legal_person_commitment") + private String legalPersonCommitment; + + /** + * 选填 + * 法定代表人开户意愿视频 + * 通过视频上传完成后 MediaID + */ + @JSONField(name = "legal_person_video") + private String legalPersonVideo; + + /** + * 选填 + * 补充材料 + * 最多可上传5张照片 + * 通过图片上传完成后 MediaID + */ + @JSONField(name = "business_addition_pics") + private List businessAdditionPics; + + /** + * 选填 + * 补充说明 512字以内 + */ + @JSONField(name = "business_addition_msg") + private String businessAdditionMsg; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryBankAccountReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryBankAccountReqDto.java new file mode 100644 index 000000000..35d0cacdf --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryBankAccountReqDto.java @@ -0,0 +1,73 @@ +package com.czg.wechat.dto.req.entry; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +/** + * 微信进件-银行账号 + * + * @author yjjie + * @date 2025/12/26 13:42 + */ +@Data +public class WechatEntryBankAccountReqDto { + + /** + * 必填 + * 账户类型 + * 1、若主体为企业/政府机关/事业单位/社会组织,可填写:对公银行账户; + * 2、若主体为个体户,可选择填写:对公银行账户或经营者个人银行卡 + * 可选取值 BANK_ACCOUNT_TYPE_CORPORATE: 对公银行账户 BANK_ACCOUNT_TYPE_PERSONAL: 经营者个人银行卡 + */ + @JSONField(name = "bank_account_type") + private String bankAccountType; + + /** + * 必填 + * 开户名称 + * 1、选择“经营者个人银行卡”时,开户名称必须与“经营者证件姓名”一致; + * 2、选择“对公银行账户”时,开户名称必须与营业执照上的“商户名称”一致; + * 3、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 + * ... + */ + @JSONField(name = "account_name") + private String accountName; + + /** + * 必填 + * 开户银行 + * 对私银行调用:查询支持个人业务的银行列表API + * 对公银行调用:查询支持对公业务的银行列表API + */ + @JSONField(name = "account_bank") + private String accountBank; + + /** + * 选填 + * 开户银行银行号 + * 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; + * 2、详细需调用查询支行列表API查看查询结果。 ... + */ + @JSONField(name = "bank_branch_id") + private String bankBranchId; + + /** + * 选填 + * 开户银行全称(含支行) + * 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; + * 2、详细需调用查询支行列表API查看查询结果。 ... + */ + @JSONField(name = "bank_name") + private String bankName; + + /** + * 必填 + * 开户银行账号 + * 1、选择“经营者个人银行卡”时,开户账号为经营者个人银行卡号; + * 2、选择“对公银行账户”时,开户账号为对公银行账号; + * 3、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 + * ... + */ + @JSONField(name = "account_number") + private String accountNumber; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryContactReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryContactReqDto.java new file mode 100644 index 000000000..a7990dbd0 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryContactReqDto.java @@ -0,0 +1,13 @@ +package com.czg.wechat.dto.req.entry; + +import lombok.Data; + +/** + * 进件 联系人信息 + * + * @author yjjie + * @date 2025/12/26 13:38 + */ +@Data +public class WechatEntryContactReqDto { +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryReqDto.java new file mode 100644 index 000000000..c0793e703 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntryReqDto.java @@ -0,0 +1,64 @@ +package com.czg.wechat.dto.req.entry; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.czg.wechat.dto.req.entry.business.WechatEntryBusinessReqDto; +import lombok.Data; + +/** + * 微信进件请求参数 + * 参考地址 ... + * @author yjjie + * @date 2025/12/26 13:36 + */ +@Data +public class WechatEntryReqDto { + + /** + * 业务申请编号 + */ + @JSONField(name = "business_code") + private String businessCode; + + /** + * 超级管理员信息 + */ + @JSONField(name = "contact_info") + private WechatEntryContactReqDto contactInfo; + + /** + * 主体资料 + */ + @JSONField(name = "subject_info") + private WechatEntrySubjectReqDto subjectInfo; + + /** + * 必填 + * 经营资料 + * 商家的经营业务信息、售卖商品/提供服务场景信息 + */ + @JSONField(name = "business_info") + private WechatEntryBusinessReqDto businessInfo; + + /** + * 必填 + * 结算规则 + * 请填写商家的结算费率规则、特殊资质等信息 + */ + @JSONField(name = "settlement_info") + private WechatEntrySettleReqDto settlementInfo; + + /** + * 必填 + * 结算银行账户 + */ + @JSONField(name = "bank_account_info") + private WechatEntryBankAccountReqDto bankAccountInfo; + + /** + * 选填 + * 补充材料 + * 根据实际审核情况,会额外要求商家提供指定的补充资料 + */ + @JSONField(name = "addition_info") + private WechatEntryAdditionReqDto additionInfo; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntrySettleReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntrySettleReqDto.java new file mode 100644 index 000000000..55f434741 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntrySettleReqDto.java @@ -0,0 +1,89 @@ +package com.czg.wechat.dto.req.entry; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +/** + * 进件 结算信息 + * @author yjjie + * @date 2025/12/26 13:38 + */ +@Data +public class WechatEntrySettleReqDto { + + /** + * 必填 + * 入驻结算规则ID + * 请选择结算规则ID,详细参见费率结算规则对照表 + * ... + */ + @JSONField(name = "settlement_id") + private String settlementId; + + /** + * 必填 + * 所属行业 + * ... + */ + @JSONField(name = "qualification_type") + private String qualificationType; + + /** + * 选填 + * 特殊资质图片 + * 1、仅当商户选择了必需提交特殊资质的行业时,需要提供该项资料;若商户选择了无需特殊资质的行业,或未选择行业时,无需提交该项资料,详情查看《费率结算规则对照表》; + * 2、最多可上传5张照片,请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "qualifications") + private List qualifications; + + /** + * 选填 + * 优惠费率活动ID + * 如果商户有意向报名优惠费率活动,该字段必填。详细参见《优惠费率活动对照表》 + * ... + */ + @JSONField(name = "activities_id") + private String activitiesId; + + /** + * 选填 + * 优惠费率活动值 + * 根据优惠费率活动规则,由合作伙伴自定义填写,支持两个小数点,需在优惠费率活动ID指定费率范围内 + * (1)2023年7月17日-9月17日,各合作伙伴平台可选择只传入“活动费率值”,或分别传入“信用卡优惠活动费率值” 与 “非信用卡优惠活动费率值”,只传入“活动费率值”的情况下,平台将协助将申请单中的 “优惠活动费率值” 回填入新增的 “信用卡优惠活动费率值” 与 “非信用卡优惠活动费率值”中 ; + * (2)2023年9月18日起,平台将不再提供如上兼容能力,届时仅能分别传入“信用卡优惠活动费率值” 与 “非信用卡优惠活动费率值”,否则接口将会报错。为避免影响正常进件,请在兼容期间完成相关调整。 + */ + @JSONField(name = "activities_rate") + private String activitiesRate; + + /** + * 选填 + * 优惠费率活动补充材料 + * 1、根据所选优惠费率活动,提供相关材料,详细参见《优惠费率活动对照表》;... + * 2、最多可上传5张照片,请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "activities_additions") + private List activitiesAdditions; + + /** + * 选填 + * 非信用卡活动费率值 + * 用户支付方式为借记卡时收取的手续费费率: + * 1、若填写了优惠费率活动ID,则该字段必填; + * 2、仅能填入2位以内小数,且在优惠费率活动ID指定费率范围内。 + */ + @JSONField(name = "debit_activities_rate") + private String debitActivitiesRate; + + /** + * 选填 + * 信用卡活动费率值 + * 用户支付方式为信用卡时收取的手续费费率: + * 1、若填写了优惠费率活动ID,则该字段必填; + * 2、仅能填入2位以内小数,且在优惠费率活动ID指定费率范围内。 + */ + @JSONField(name = "credit_activities_rate") + private String creditActivitiesRate; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntrySubjectReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntrySubjectReqDto.java new file mode 100644 index 000000000..a445b6a5f --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/WechatEntrySubjectReqDto.java @@ -0,0 +1,55 @@ +package com.czg.wechat.dto.req.entry; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.czg.wechat.dto.req.entry.business.WechatEntryCertificateReqDto; +import com.czg.wechat.dto.req.entry.business.WechatEntryLicenseReqDto; +import lombok.Data; + +/** + * 进件 主体资料 + * @author yjjie + * @date 2025/12/26 13:40 + */ +@Data +public class WechatEntrySubjectReqDto { + + /** + * 必填 + * 主体类型 主体类型需与营业执照/登记证书上一致,可参考选择主体指引。... + * 可选取值 + * SUBJECT_TYPE_INDIVIDUAL: (个体户)营业执照上的主体类型一般为个体户、个体工商户、个体经营 + * SUBJECT_TYPE_ENTERPRISE: (企业)营业执照上的主体类型一般为有限公司、有限责任公司 + * SUBJECT_TYPE_GOVERNMENT: (政府机关)包括各级、各类政府机关,如机关党委、税务、民政、人社、工商、商务、市监等 + * SUBJECT_TYPE_INSTITUTIONS: (事业单位)包括国内各类事业单位,如:医疗、教育、学校等单位 + * SUBJECT_TYPE_OTHERS:(社会组织) 包括社会团体、民办非企业、基金会、基层群众性自治组织、农村集体经济组织等组织 + */ + @JSONField(name = "subject_type") + private String subjectType; + + /** + * 选填 + * 是否是金融机构 + * 【是否是金融机构】 选填,请根据申请主体的实际情况填写,可参考选择金融机构指引: + * 1、若商户主体是金融机构,则填写:true; + * 2、若商户主体不是金融机构,则填写:false。 + * 若未传入将默认填写:false。 + */ + @JSONField(name = "finance_institution") + private Boolean financeInstitution; + + /** + * 必填 + * 营业执照 当前不允许小微注册,所以必填 + * 1、主体为个体户/企业,必填; + * 2、请上传“营业执照”,需年检章齐全,当年注册除外; + */ + @JSONField(name = "business_license_info") + private WechatEntryLicenseReqDto businessLicenseInfo; + + /** + * 选填 + * 登记证书 主体为政府机关/事业单位/其他组织时,必填。 + */ + @JSONField(name = "certificate_info") + private WechatEntryCertificateReqDto certificateInfo; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryBusinessReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryBusinessReqDto.java new file mode 100644 index 000000000..94dcd1d39 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryBusinessReqDto.java @@ -0,0 +1,48 @@ +package com.czg.wechat.dto.req.entry.business; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.czg.wechat.dto.req.entry.business.sales.WechatEntrySalesInfoReqDto; +import lombok.Data; + +/** + * 微信进件 商户信息 经营资料 + * + * @author yjjie + * @date 2025/12/26 13:41 + */ +@Data +public class WechatEntryBusinessReqDto { + + /** + * 必填 + * 商户简称 在支付完成页向买家展示,需与微信经营类目相关 + * 1、请输入1-64个字符; + * 2、前后不能有空格、制表符、换行符; + * 3、不能仅含特殊字符; + * 4、仅能填写数字、英文字母、汉字及特殊字符; + * 5、仅支持utf-8格式; + * 6、简称要求 + * (1)不支持单纯以人名来命名,若为个体户经营,可用“个体户+经营者名称”或“经营者名称+业务”命名,如“个体户张三”或“张三餐饮店”; + * (2)不支持无实际意义的文案,如“XX特约商户”、“800”、“XX客服电话XXX”。 + */ + @JSONField(name = "merchant_shortname") + private String merchantShortname; + + /** + * 必填 + * 客服电话 将在交易记录中向买家展示,请确保电话畅通以便平台回拨确认 + * 1、前后不能有空格、制表符、换行符; + * 2、需满足以下任一条件; + * 11位数字的手机号码; + * 5-20位数字、连字符“-”、加号“+”。 + */ + @JSONField(name = "service_phone") + private String servicePhone; + + /** + * 必填 + * 经营场景 + */ + @JSONField(name = "sales_info") + private WechatEntrySalesInfoReqDto salesInfo; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryCertificateReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryCertificateReqDto.java new file mode 100644 index 000000000..df2090102 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryCertificateReqDto.java @@ -0,0 +1,12 @@ +package com.czg.wechat.dto.req.entry.business; + +import lombok.Data; + +/** + * 登记证书 + * @author yjjie + * @date 2025/12/26 15:07 + */ +@Data +public class WechatEntryCertificateReqDto { +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryLicenseReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryLicenseReqDto.java new file mode 100644 index 000000000..c13401254 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/WechatEntryLicenseReqDto.java @@ -0,0 +1,88 @@ +package com.czg.wechat.dto.req.entry.business; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +/** + * 营业执照信息 + * @author yjjie + * @date 2025/12/26 14:59 + */ +@Data +public class WechatEntryLicenseReqDto { + + /** + * 必填 + * 营业执照照片 + * 1、照片应正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; + * 2、上传彩色照片、彩色扫描件,复印件需加盖公章鲜章; + * 3、水印仅限于微信支付业务相关; + * 4、指引与示例可参考【指引文档】; + * 5、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "license_copy") + private String licenseCopy; + + /** + * 必填 + * 注册号/统一社会信用代码 + */ + @JSONField(name = "license_number") + private String licenseNumber; + + /** + * 必填 + * 商户名称 + * 1、长度为2-128个字符; + * 2、前后不能有空格、制表符、换行符; + * 3、不能仅含数字、特殊字符; + * 4、仅能填写数字、英文字母、汉字及特殊字符; + * 5、仅支持utf-8格式; + * 6、个体户证件为以下情况时,按照个体户XXX命名(XXX是营业执照经营人姓名):营业执照登记名称为空、仅含数字、仅含特殊字符、“无”、“无字号”; + * 7、个体户不能使用“企业”“公司”或“农民专业合作社”结尾。 + */ + @JSONField(name = "merchant_name") + private String merchantName; + + /** + * 必填 + * 个体户经营者/法定代表人姓名 请填写营业执照的经营者/法定代表人姓名 + * 1、长度为2-100个字符; + * 2、前后不能有空格、制表符、换行符; + * 3、不能仅含特殊字符; + * 4、仅能填写数字、英文字母、汉字及特殊字符。 + */ + @JSONField(name = "legal_person") + private String legalPerson; + + /** + * 选填 + * 注册地址 建议填写营业执照的注册地址,若该字段未填写,系统将会查询国家工商信息填入。需注意若工商信息查询不到,则会被审核驳回。 + * 1、长度为4-128个字符; + * 2、前后不能有空格、制表符、换行符; + * 3、不能仅含数字、特殊字符; + * 4、仅能填写数字、英文字母、汉字及特殊字符; + * 5、仅支持utf-8格式。 + */ + @JSONField(name = "license_address") + private String licenseAddress; + + /** + * 选填 + * 有效期限开始日期 建议填写营业执照的有效期限开始时间,若该字段未填写,系统将会查询国家工商信息填入。需注意若工商信息查询不到,则会被审核驳回。 + * 1、日期格式应满足合法的YYYY-MM-DD格式; + * 2、开始时间不能小于1900-01-01; + * 3、开始时间不能大于等于当前日期。 + */ + @JSONField(name = "period_begin") + private String periodBegin; + + /** + * 选填 + * 营业期限结束日期 建议填写营业执照的有效期限结束时间,若该字段未填写,系统将会查询国家工商信息填入。需注意若工商信息查询不到,则会被审核驳回。 + * 1、日期格式应满足合法的YYYY-MM-DD格式或长期; + * 2、结束时间需大于开始时间。 + */ + @JSONField(name = "period_end") + private String periodEnd; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryAppInfoReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryAppInfoReqDto.java new file mode 100644 index 000000000..c14b829be --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryAppInfoReqDto.java @@ -0,0 +1,43 @@ +package com.czg.wechat.dto.req.entry.business.sales; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +/** + * 进件-经营资料-经营场景-App场景 + * @author yjjie + * @date 2025/12/26 14:26 + */ +@Data +public class WechatEntryAppInfoReqDto { + + /** + * 必填 + * App截图 + * 1、请提供APP首页截图、尾页截图、应用内截图、支付页截图各1张; + * 2、请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "app_pics") + private List appPics; + + /** + * 选填 + * 商家应用AppID + * 1、服务商应用AppID与商家应用AppID,二选一必填; + * 2、可填写与商家主体一致且已认证的应用AppID,需是已认证的App; + * 3、审核通过后,系统将发起特约商家商户号与该AppID的绑定(即配置为sub_appid),服务商随后可在发起支付时选择传入该AppID,以完成支付,并获取sub_openid用于数据统计,营销等业务场景。 + */ + @JSONField(name = "app_sub_appid") + private String appSubAppid; + + /** + * 选填 + * 服务商应用AppID + * 1、服务商应用AppID与商家应用AppID,二选一必填; + * 2、可填写当前服务商商户号已绑定的应用AppID。 + */ + @JSONField(name = "app_appid") + private String appAppid; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryMiniProgramReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryMiniProgramReqDto.java new file mode 100644 index 000000000..124199c42 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryMiniProgramReqDto.java @@ -0,0 +1,45 @@ +package com.czg.wechat.dto.req.entry.business.sales; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +/** + * 进件-经营资料-经营场景-小程序场景 + * @author yjjie + * @date 2025/12/26 14:23 + */ +@Data +public class WechatEntryMiniProgramReqDto { + + /** + * 选填 + * 服务商小程序AppID + * 1、服务商小程序AppID与商家小程序AppID,二选一必填; + * 2、可填写当前服务商商户号已绑定的小程序AppID。 + */ + @JSONField(name = "mini_program_appid") + private String miniProgramAppid; + + /** + * 选填 + * 商家小程序AppID + * 1、服务商小程序AppID与商家小程序AppID,二选一必填; + * 2、请填写已认证的小程序AppID; + * 3、完成进件后,系统发起特约商户号与该AppID的绑定(即配置为sub_appid可在发起支付时传入) + * (1)若AppID主体与商家主体/服务商主体一致,则直接完成绑定; + * (2)若AppID主体与商家主体/服务商主体不一致,则商户签约时显示《联合营运承诺函》,并且AppID的管理员需登录公众平台确认绑定意愿。 + */ + @JSONField(name = "mini_program_sub_appid") + private String miniProgramSubAppid; + + /** + * 选填 + * 小程序截图 + * 1、请提供展示商品/服务的页面截图/设计稿(最多5张),若小程序未建设完善或未上线 请务必提供; + * 2、请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "mini_program_pics") + private List miniProgramPics; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryMpInfoReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryMpInfoReqDto.java new file mode 100644 index 000000000..aa419e063 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryMpInfoReqDto.java @@ -0,0 +1,43 @@ +package com.czg.wechat.dto.req.entry.business.sales; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +/** + * 进件-经营资料-经营场景-服务号或公众号景 + * @author yjjie + * @date 2025/12/26 14:20 + */ +@Data +public class WechatEntryMpInfoReqDto { + + /** + * 必填 + * 服务号或公众号页面截图 + * 1、请提供展示商品/服务的页面截图/设计稿(最多5张),若服务号或公众号未建设完善或未上线请务必提供; + * 2、请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "mp_pics") + private List mpPics; + + /** + * 选填 + * 商家服务号或公众号AppID + * 1、服务商服务号或公众号AppID、商家服务号或公众号AppID,二选一必填; + * 2、可填写与商家主体一致且已认证的服务号或公众号AppID,需是已认证的服务号、政府或媒体类型的公众号; + * 3、审核通过后,系统将发起特约商家商户号与该AppID的绑定(即配置为sub_appid),服务商随后可在发起支付时选择传入该appid,以完成支付,并获取sub_openid用于数据统计,营销等业务场景。 + */ + @JSONField(name = "mp_sub_appid") + private String mpSubAppid; + + /** + * 选填 + * 服务商服务号或公众号AppID + * 1、服务商服务号或公众号AppID、商家服务号或公众号AppID,二选一必填; + * 2、可填写当前服务商商户号已绑定的服务号或公众号AppID。 + */ + @JSONField(name = "mp_appid") + private String mpAppid; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntrySalesInfoReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntrySalesInfoReqDto.java new file mode 100644 index 000000000..00143fd84 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntrySalesInfoReqDto.java @@ -0,0 +1,85 @@ +package com.czg.wechat.dto.req.entry.business.sales; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +/** + * 进件-经营场景 + * @author yjjie + * @date 2025/12/26 14:07 + */ +@Data +public class WechatEntrySalesInfoReqDto { + + /** + * 必填 + * 经营场景类型 + * 1、请勾选实际售卖商品/提供服务场景(至少一项),以便为你开通需要的支付权限; + * 2、建议只勾选目前必须的场景,以便尽快通过入驻审核,其他支付权限可在入驻后再根据实际需要发起申请 + * 可选取值 + * SALES_SCENES_STORE: 线下场所 + * SALES_SCENES_MP: 服务号与公众号 + * SALES_SCENES_MINI_PROGRAM: 小程序 + * SALES_SCENES_WEB: 互联网网站 + * SALES_SCENES_APP: App + * SALES_SCENES_WEWORK: 企业微信 + */ + @JSONField(name = "sales_scenes_type") + private List salesScenesType; + + /** + * 选填 + * 线下场所场景 + * 1、审核通过后,服务商可帮商户发起付款码支付、JSAPI支付; + * 2、当"经营场景类型"选择"SALES_SCENES_STORE",该场景资料必填。 + */ + @JSONField(name = "biz_store_info") + private WechatEntryStoreInfoReqDto bizStoreInfo; + + /** + * 选填 + * 服务号或公众号场景 + * 1、审核通过后,服务商可帮商家发起JSAPI支付; + * 2、当"经营场景类型"选择"SALES_SCENES_MP",该场景资料必填。 + */ + @JSONField(name = "mp_info") + private WechatEntryMpInfoReqDto mpInfo; + + /** + * 选填 + * 小程序场景 + * 1、审核通过后,服务商可帮商家发起JSAPI支付; + * 2、当"经营场景类型"选择"SALES_SCENES_MINI_PROGRAM",该场景资料必填。 + */ + @JSONField(name = "mini_program_info") + private WechatEntryMiniProgramReqDto miniProgramInfo; + + /** + * 选填 + * App场景 + * 1、审核通过后,服务商可帮商家发起App支付; + * 2、当"经营场景类型"选择"SALES_SCENES_APP",该场景资料必填。 + */ + @JSONField(name = "app_info") + private WechatEntryAppInfoReqDto appInfo; + + /** + * 选填 + * 互联网网站场景 + * 1、审核通过后,服务商可帮商家发起JSAPI支付; + * 2、当"经营场景类型"选择"SALES_SCENES_WEB",该场景资料必填。 + */ + @JSONField(name = "web_info") + private WechatEntryWebInfoReqDto webInfo; + + /** + * 选填 + * 企业微信场景 + * 1、审核通过后,服务商可帮商家发起JSAPI支付; + * 2、当"经营场景类型"选择"SALES_SCENES_WEWORK",该场景资料必填。 + */ + @JSONField(name = "wework_info") + private WechatEntryWeworkInfoReqDto weworkInfo; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryStoreInfoReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryStoreInfoReqDto.java new file mode 100644 index 000000000..e4c202a52 --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryStoreInfoReqDto.java @@ -0,0 +1,76 @@ +package com.czg.wechat.dto.req.entry.business.sales; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +import java.util.List; + +/** + * 进件-经营资料-经营场景-线下场所场景 + * @author yjjie + * @date 2025/12/26 14:10 + */ +@Data +public class WechatEntryStoreInfoReqDto { + + /** + * 必填 + * 线下场所名称 请填写门店名称 + * 1、长度为1-50个字符; + * 2、前后不能有空格、制表符、换行符; + * 3、不能仅含数字、特殊字符; + * 4、仅能填写数字、英文字母、汉字及特殊字符; + * 5、仅支持utf-8格式。 + */ + @JSONField(name = "biz_store_name") + private String bizStoreName; + + /** + * 必填 + * 线下场所省市编码 + * 1、只能由数字组成; + * 2、详细参见微信支付提供的省市对照表。 ... + */ + @JSONField(name = "biz_address_code") + private String bizAddressCode; + + /** + * 必填 + * 线下场所地址 请填写详细的经营场所信息,如有多个场所,选择一个主要场所填写即可。 + * 1、长度为4-512个字符; + * 2、前后不能有空格、制表符、换行符; + * 3、不能仅含数字、特殊字符; + * 4、仅能填写数字、英文字母、汉字及特殊字符; + * 5、仅支持utf-8格式 + */ + @JSONField(name = "biz_store_address") + private String bizStoreAddress; + + /** + * 必填 + * 线下场所门头照片 + * 1、请上传门头正面照片(要求门店招牌、门框完整、清晰、可辨识);若为停车场等无固定门头照片的经营场所,可上传岗亭/出入闸口。具体参考【指引文档】; + * 2、请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "store_entrance_pic") + private List storeEntrancePic; + + /** + * 必填 + * 线下场所内部照片 + * 1、请上传门店内部环境照片(可辨识经营内容)。若为停车场等无固定门头的经营场所,可上传停车场内部照片。具体参考【指引文档】; + * 2、请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "indoor_pic") + private List indoorPic; + + /** + * 选填 + * 线下场所对应的商家AppID + * 1、可填写与商家主体一致且已认证的服务号或公众号、小程序、APP的AppID,其中服务号或公众号AppID需是已认证的服务号、政府或媒体类型的公众号; + * 2、审核通过后,系统将额外为商家开通付款码支付、JSAPI支付的自有交易权限,并完成商家商户号与该AppID的绑定。 + */ + @JSONField(name = "biz_sub_appid") + private String bizSubAppid; + +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryWebInfoReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryWebInfoReqDto.java new file mode 100644 index 000000000..b213f88de --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryWebInfoReqDto.java @@ -0,0 +1,42 @@ +package com.czg.wechat.dto.req.entry.business.sales; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +/** + * 进件-经营资料-经营场景-互联网网站场景 + * @author yjjie + * @date 2025/12/26 14:29 + */ +@Data +public class WechatEntryWebInfoReqDto { + + /** + * 必填 + * 互联网网站域名 + * 1、如为PC端商城、智能终端等场景,可上传官网链接; + * 2、网站域名需ICP备案,若备案主体与申请主体不同,请上传加盖公章的网站授权函。 + */ + @JSONField(name = "domain") + private String domain; + + /** + * 必填 + * 网站授权函 + * 1、若备案主体与申请主体不同,请务必上传加盖公章的网站授权函.doc; ... + * 2、请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "web_authorisation") + private String webAuthorisation; + + /** + * 选填 + * 互联网网站对应的商家AppID + * 1、可填写已认证的服务号或公众号、小程序、APP的AppID,其中服务号或公众号AppID需是已认证的服务号、政府或媒体类型的公众号; + * 2、完成进件后,系统发起特约商户号与该AppID的绑定(即配置为sub_appid,可在发起支付时传入) + * (1)若APPID主体与商家主体一致,则直接完成绑定; + * (2)若APPID主体与商家主体不一致,则商户签约时显示《联合营运承诺函》,并且 AppID的管理员需登录公众平台确认绑定意愿;( 暂不支持绑定异主体的应用APPID)。 + */ + @JSONField(name = "web_appid") + private String webAppid; +} diff --git a/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryWeworkInfoReqDto.java b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryWeworkInfoReqDto.java new file mode 100644 index 000000000..544e08d2e --- /dev/null +++ b/cash-sdk/aggregation-pay/src/main/java/com/czg/wechat/dto/req/entry/business/sales/WechatEntryWeworkInfoReqDto.java @@ -0,0 +1,31 @@ +package com.czg.wechat.dto.req.entry.business.sales; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +/** + * 进件-经营资料-经营场景-企业微信场景 + * @author yjjie + * @date 2025/12/26 14:32 + */ +@Data +public class WechatEntryWeworkInfoReqDto { + + /** + * 必填 + * 商家企业微信CorpID + * 1、可填写与商家主体一致且已认证的企业微信CorpID; + * 2、审核通过后,系统将为商家开通企业微信专区的自有交易权限,并完成商家商户号与该AppID的绑定,商家可自行发起交易。 + */ + @JSONField(name = "sub_corp_id") + private String subCorpId; + + /** + * 必填 + * 企业微信页面截图 + * 1、最多可上传5张照片; + * 2、请填写通过图片上传API预先上传图片生成好的MediaID。 + */ + @JSONField(name = "wework_pics") + private String[] weworkPics; +}