1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.talentcard.server.business.payment.huifu;
 
/**
 * 微信实名认证申请(法人路径)的入参。
 *
 * <p>实名认证走法人,所以这里全部是**法人本人**的资料,不是联系人。数据库里对应
 * {@code subject_name}(法人姓名,企业进件时 {@code legalName} 取的就是它)、
 * {@code subject_id_no_encrypted}(法人身份证号,加密存储)、{@code legal_mobile}(法人手机号,
 * V145 新增)、{@code legal_certificate_address}(法人证件居住地址)。
 *
 * <p>{@code microStore} 是**个人(小微)主体专有**的门店资料:官方在小微商户路径上另有门店名称、
 * 门头照、店内环境照、门店地址与省市编码、身份证正反面这一组字段,缺了实名会被驳回。
 * 企业主体走营业执照与法人资料,这一项为 {@code null}——网关就按「非 null 即小微主体」分支。
 *
 * @param legalName            法人姓名
 * @param legalMobile          法人本人手机号,不是联系人手机号
 * @param legalIdNumber        法人身份证号
 * @param legalAddress         法人证件居住地址,企业必填
 * @param legalIsBeneficiary   法人是否最终受益人,对应 {@code owner};企业开通微信支付时必填
 * @param microStore           小微(个人)主体的门店资料;企业主体传 {@code null}
 */
public record HuifuMerchantRealnameCommand(
        String legalName,
        String legalMobile,
        String legalIdNumber,
        String legalAddress,
        boolean legalIsBeneficiary,
        MicroStore microStore
) {
    /**
     * 小微(个人)主体的门店资料,全部使用图片上传接口返回的 fileId。
     *
     * @param microBizType       小微经营类型,{@code MICRO_TYPE_STORE}/{@code MICRO_TYPE_MOBILE}/
     *                           {@code MICRO_TYPE_ONLINE}
     * @param storeName          门店名称
     * @param storeHeaderFileId  门店门头照片(F22);流动经营/便民服务场景下是经营现场照
     * @param storeIndoorFileId  店内环境照片(F24)
     * @param storeAddressCode   门店省市编码
     * @param storeAddress       门店地址
     * @param idFrontFileId      身份证件人像面(F40)
     * @param idBackFileId       身份证件国徽面(F41)
     */
    public record MicroStore(
            String microBizType,
            String storeName,
            String storeHeaderFileId,
            String storeIndoorFileId,
            String storeAddressCode,
            String storeAddress,
            String idFrontFileId,
            String idBackFileId
    ) {}
}