diff --git a/weixin-java-miniapp/pom.xml b/weixin-java-miniapp/pom.xml index bbcd43e8d..105d0594d 100644 --- a/weixin-java-miniapp/pom.xml +++ b/weixin-java-miniapp/pom.xml @@ -87,7 +87,6 @@ com.github.jedis-lock jedis-lock - 1.0.0 true diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/ApplymentStateQueryResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/ApplymentStateQueryResult.java index 41954a2aa..24019fb91 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/ApplymentStateQueryResult.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/ApplymentStateQueryResult.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import java.io.Serializable; import java.util.List; /** @@ -18,70 +19,69 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) -public class ApplymentStateQueryResult { +public class ApplymentStateQueryResult implements Serializable { + private static final long serialVersionUID = 6539090917423486409L; + /** + * 业务申请编号 + */ + @SerializedName("business_code") + private String businessCode; + /** + * 微信支付申请单号 + */ + @SerializedName("applyment_id") + private String applymentId; + /** + * 特约商户号 + */ + @SerializedName("sub_mchid") + private String subMchid; + /** + * 超级管理员签约链接 + */ + @SerializedName("sign_url") + private String signUrl; - /** - * 业务申请编号 - */ - @SerializedName("business_code") - private String businessCode; - /** - * 微信支付申请单号 - */ - @SerializedName("applyment_id") - private String applymentId; - /** - * 特约商户号 - */ - @SerializedName("sub_mchid") - private String subMchid; - /** - * 超级管理员签约链接 - */ - @SerializedName("sign_url") - private String signUrl; + /** + * 申请单状态 + */ + @SerializedName("applyment_state") + private ApplymentStateEnum applymentState; + /** + * 申请状态描述 + */ + @SerializedName("applyment_state_msg") + private String applymentStateMsg; + /** + * 驳回原因详情 + */ + @SerializedName("audit_detail") + private List auditDetail; + /** + * 驳回原因详情 + */ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Accessors(chain = true) + public static class AuditDetail { /** - * 申请单状态 - * + * 字段名 */ - @SerializedName("applyment_state") - private ApplymentStateEnum applymentState; + @SerializedName("field") + private String field; /** - * 申请状态描述 + * 字段名称 */ - @SerializedName("applyment_state_msg") - private String applymentStateMsg; + @SerializedName("field_name") + private String fieldName; /** - * 驳回原因详情 + * 驳回原因 */ - @SerializedName("audit_detail") - private List auditDetail; + @SerializedName("reject_reason") + private String rejectReason; - /** - * 驳回原因详情 - */ - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Accessors(chain = true) - public static class AuditDetail { - /** - * 字段名 - */ - @SerializedName("field") - private String field; - /** - * 字段名称 - */ - @SerializedName("field_name") - private String fieldName; - /** - * 驳回原因 - */ - @SerializedName("reject_reason") - private String rejectReason; - - } + } } diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/ModifySettlementRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/ModifySettlementRequest.java index e31af2aed..3ec162b0a 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/ModifySettlementRequest.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/ModifySettlementRequest.java @@ -9,6 +9,8 @@ import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import com.github.binarywang.wxpay.v3.SpecEncrypt; +import java.io.Serializable; + /** * 修改结算账户请求对象 */ @@ -17,7 +19,8 @@ import com.github.binarywang.wxpay.v3.SpecEncrypt; @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) -public class ModifySettlementRequest { +public class ModifySettlementRequest implements Serializable { + private static final long serialVersionUID = 4568552340365230872L; /** *账户类型 */ diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/SettlementInfoResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/SettlementInfoResult.java index b284f7926..0e35d2433 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/SettlementInfoResult.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/SettlementInfoResult.java @@ -7,6 +7,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import java.io.Serializable; + /** * 查询结算账户返回对象信息 */ @@ -15,9 +17,9 @@ import lombok.experimental.Accessors; @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) -public class SettlementInfoResult { - - /** +public class SettlementInfoResult implements Serializable { + private static final long serialVersionUID = 4568552340365230872L; + /** * 账户类型 */ @SerializedName("account_type") diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsRequest.java index 92e069f63..bd021fc57 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsRequest.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsRequest.java @@ -17,780 +17,781 @@ import java.io.Serializable; @Data @NoArgsConstructor public class ApplymentsRequest implements Serializable { - /** - *
-	 * 字段名:业务申请编号
-	 * 变量名:out_request_no
-	 * 是否必填:是
-	 * 类型:string(124)
-	 * 描述:
-	 *  1、服务商自定义的商户唯一编号。
-	 *  2、每个编号对应一个申请单,每个申请单审核通过后会生成一个微信支付商户号。
-	 *  3、若申请单被驳回,可填写相同的“业务申请编号”,即可覆盖修改原申请单信息 。
-	 *  示例值:APPLYMENT_00000000001
-	 * 
- */ - @SerializedName(value = "out_request_no") - private String outRequestNo; + private static final long serialVersionUID = -3092662029966103592L; + /** + *
+   * 字段名:业务申请编号
+   * 变量名:out_request_no
+   * 是否必填:是
+   * 类型:string(124)
+   * 描述:
+   *  1、服务商自定义的商户唯一编号。
+   *  2、每个编号对应一个申请单,每个申请单审核通过后会生成一个微信支付商户号。
+   *  3、若申请单被驳回,可填写相同的“业务申请编号”,即可覆盖修改原申请单信息 。
+   *  示例值:APPLYMENT_00000000001
+   * 
+ */ + @SerializedName(value = "out_request_no") + private String outRequestNo; - /** - *
-	 * 字段名:主体类型
-	 * 变量名:organization_type
-	 * 是否必填:是
-	 * 类型:string(4)
-	 * 描述:
-	 *  枚举值:
-	 *  2401:小微商户,指无营业执照的商户。
-	 *  4:个体工商户,营业执照上的主体类型一般为个体户、个体工商户、个体经营。
-	 *  2:企业,营业执照上的主体类型一般为有限公司、有限责任公司。
-	 *  3:党政、机关及事业单位,包括国内各级、各类政府机构、事业单位等(如:公安、党团、司法、交通、旅游、工商税务、市政、医疗、教育、学校等机构)。
-	 *  1708:其他组织,不属于企业、政府/事业单位的组织机构(如社会团体、民办非企业、基金会),要求机构已办理组织机构代码证。
-	 *  示例值:2401
-	 * 
- */ - @SerializedName(value = "organization_type") - private String organizationType; + /** + *
+   * 字段名:主体类型
+   * 变量名:organization_type
+   * 是否必填:是
+   * 类型:string(4)
+   * 描述:
+   *  枚举值:
+   *  2401:小微商户,指无营业执照的商户。
+   *  4:个体工商户,营业执照上的主体类型一般为个体户、个体工商户、个体经营。
+   *  2:企业,营业执照上的主体类型一般为有限公司、有限责任公司。
+   *  3:党政、机关及事业单位,包括国内各级、各类政府机构、事业单位等(如:公安、党团、司法、交通、旅游、工商税务、市政、医疗、教育、学校等机构)。
+   *  1708:其他组织,不属于企业、政府/事业单位的组织机构(如社会团体、民办非企业、基金会),要求机构已办理组织机构代码证。
+   *  示例值:2401
+   * 
+ */ + @SerializedName(value = "organization_type") + private String organizationType; - /** - *
-	 * 字段名:+营业执照/登记证书信息
-	 * 变量名:business_license_info
-	 * 是否必填:条件选填
-	 * 类型:object
-	 * 描述:
-	 *  1、主体为“小微”时,不填。
-	 *  2、主体为“个体工商户/企业”时,请上传营业执照。
-	 *  3、主体为“党政、机关及事业单位/其他组织”时,请上传登记证书。
-	 * 
- */ - @SerializedName(value = "business_license_info") - private BusinessLicenseInfo businessLicenseInfo; + /** + *
+   * 字段名:+营业执照/登记证书信息
+   * 变量名:business_license_info
+   * 是否必填:条件选填
+   * 类型:object
+   * 描述:
+   *  1、主体为“小微”时,不填。
+   *  2、主体为“个体工商户/企业”时,请上传营业执照。
+   *  3、主体为“党政、机关及事业单位/其他组织”时,请上传登记证书。
+   * 
+ */ + @SerializedName(value = "business_license_info") + private BusinessLicenseInfo businessLicenseInfo; - /** - *
-	 * 字段名:+组织机构代码证信息
-	 * 变量名:organization_cert_info
-	 * 是否必填:条件选填
-	 * 类型:object
-	 * 描述:主体为企业/党政、机关及事业单位/其他组织,且证件号码不是18位时必填。
-	 * 
- */ - @SerializedName(value = "organization_cert_info") - private OrganizationCertInfo organizationCertInfo; + /** + *
+   * 字段名:+组织机构代码证信息
+   * 变量名:organization_cert_info
+   * 是否必填:条件选填
+   * 类型:object
+   * 描述:主体为企业/党政、机关及事业单位/其他组织,且证件号码不是18位时必填。
+   * 
+ */ + @SerializedName(value = "organization_cert_info") + private OrganizationCertInfo organizationCertInfo; - /** - *
-	 * 字段名:经营者/法人证件类型
-	 * 变量名:id_doc_type
-	 * 是否必填:否
-	 * 类型:string(64)
-	 * 描述:
-	 *  1、主体为“小微”,只可选择:身份证。
-	 *  2、主体为“个体户/企业/党政、机关及事业单位/其他组织”,可选择:任一证件类型。
-	 *  3、若没有填写,系统默认选择:身份证。
-	 *  枚举值:
-	 *  IDENTIFICATION_TYPE_MAINLAND_IDCARD:中国大陆居民-身份证
-	 *  IDENTIFICATION_TYPE_OVERSEA_PASSPORT:其他国家或地区居民-护照
-	 *  IDENTIFICATION_TYPE_HONGKONG:中国香港居民–来往内地通行证
-	 *  IDENTIFICATION_TYPE_MACAO:中国澳门居民–来往内地通行证
-	 *  IDENTIFICATION_TYPE_TAIWAN:中国台湾居民–来往大陆通行证
-	 *  示例值:IDENTIFICATION_TYPE_MACAO
-	 * 
- */ - @SerializedName(value = "id_doc_type") - private String idDocType; + /** + *
+   * 字段名:经营者/法人证件类型
+   * 变量名:id_doc_type
+   * 是否必填:否
+   * 类型:string(64)
+   * 描述:
+   *  1、主体为“小微”,只可选择:身份证。
+   *  2、主体为“个体户/企业/党政、机关及事业单位/其他组织”,可选择:任一证件类型。
+   *  3、若没有填写,系统默认选择:身份证。
+   *  枚举值:
+   *  IDENTIFICATION_TYPE_MAINLAND_IDCARD:中国大陆居民-身份证
+   *  IDENTIFICATION_TYPE_OVERSEA_PASSPORT:其他国家或地区居民-护照
+   *  IDENTIFICATION_TYPE_HONGKONG:中国香港居民–来往内地通行证
+   *  IDENTIFICATION_TYPE_MACAO:中国澳门居民–来往内地通行证
+   *  IDENTIFICATION_TYPE_TAIWAN:中国台湾居民–来往大陆通行证
+   *  示例值:IDENTIFICATION_TYPE_MACAO
+   * 
+ */ + @SerializedName(value = "id_doc_type") + private String idDocType; - /** - *
-	 * 字段名:+经营者/法人身份证信息
-	 * 变量名:id_card_info
-	 * 是否必填:条件选填
-	 * 类型:object
-	 * 描述:
-	 *  请填写经营者/法人的身份证信息
-	 *  证件类型为“身份证”时填写。
-	 *
-	 * 
- */ - @SerializedName(value = "id_card_info") + /** + *
+   * 字段名:+经营者/法人身份证信息
+   * 变量名:id_card_info
+   * 是否必填:条件选填
+   * 类型:object
+   * 描述:
+   *  请填写经营者/法人的身份证信息
+   *  证件类型为“身份证”时填写。
+   *
+   * 
+ */ + @SerializedName(value = "id_card_info") @SpecEncrypt - private IdCardInfo idCardInfo; + private IdCardInfo idCardInfo; - /** - *
-	 * 字段名:+经营者/法人其他类型证件信息
-	 * 变量名:id_doc_info
-	 * 是否必填:条件选填
-	 * 类型:object
-	 * 描述:证件类型为“来往内地通行证、来往大陆通行证、护照”时填写。
-	 * 
- */ - @SerializedName(value = "id_doc_info") - private IdDocInfo idDocInfo; + /** + *
+   * 字段名:+经营者/法人其他类型证件信息
+   * 变量名:id_doc_info
+   * 是否必填:条件选填
+   * 类型:object
+   * 描述:证件类型为“来往内地通行证、来往大陆通行证、护照”时填写。
+   * 
+ */ + @SerializedName(value = "id_doc_info") + private IdDocInfo idDocInfo; - /** - *
-	 * 字段名:是否填写结算账户信息
-	 * 变量名:need_account_info
-	 * 是否必填:是
-	 * 类型:bool
-	 * 描述:
-	 *  可根据实际情况,填写“true”或“false”。
-	 *  1、若为“true”,则需填写结算账户信息。
-	 *  2、若为“false”,则无需填写结算账户信息。
-	 *  示例值:true
-	 * 
- */ - @SerializedName(value = "need_account_info") - private Boolean needAccountInfo; + /** + *
+   * 字段名:是否填写结算账户信息
+   * 变量名:need_account_info
+   * 是否必填:是
+   * 类型:bool
+   * 描述:
+   *  可根据实际情况,填写“true”或“false”。
+   *  1、若为“true”,则需填写结算账户信息。
+   *  2、若为“false”,则无需填写结算账户信息。
+   *  示例值:true
+   * 
+ */ + @SerializedName(value = "need_account_info") + private Boolean needAccountInfo; - /** - *
-	 * 字段名:+结算账户信息
-	 * 变量名:account_info
-	 * 是否必填:条件选填
-	 * 类型:object
-	 * 描述:若"是否填写结算账户信息"填写为“true”, 则必填,填写为“false”不填 。
-	 * 
- */ - @SerializedName(value = "account_info") + /** + *
+   * 字段名:+结算账户信息
+   * 变量名:account_info
+   * 是否必填:条件选填
+   * 类型:object
+   * 描述:若"是否填写结算账户信息"填写为“true”, 则必填,填写为“false”不填 。
+   * 
+ */ + @SerializedName(value = "account_info") @SpecEncrypt - private AccountInfo accountInfo; + private AccountInfo accountInfo; - /** - *
-	 * 字段名:+超级管理员信息
-	 * 变量名:contact_info
-	 * 是否必填:是
-	 * 类型:object
-	 * 描述:
-	 *  请填写店铺的超级管理员信息。
-	 *  超级管理员需在开户后进行签约,并可接收日常重要管理信息和进行资金操作,请确定其为商户法定代表人或负责人。
-	 * 
- */ - @SerializedName(value = "contact_info") + /** + *
+   * 字段名:+超级管理员信息
+   * 变量名:contact_info
+   * 是否必填:是
+   * 类型:object
+   * 描述:
+   *  请填写店铺的超级管理员信息。
+   *  超级管理员需在开户后进行签约,并可接收日常重要管理信息和进行资金操作,请确定其为商户法定代表人或负责人。
+   * 
+ */ + @SerializedName(value = "contact_info") @SpecEncrypt - private ContactInfo contactInfo; + private ContactInfo contactInfo; - /** - *
-	 * 字段名:+店铺信息
-	 * 变量名:sales_scene_info
-	 * 是否必填:是
-	 * 类型:object
-	 * 描述:请填写店铺信息
-	 * 
- */ - @SerializedName(value = "sales_scene_info") - private SalesSceneInfo salesSceneInfo; + /** + *
+   * 字段名:+店铺信息
+   * 变量名:sales_scene_info
+   * 是否必填:是
+   * 类型:object
+   * 描述:请填写店铺信息
+   * 
+ */ + @SerializedName(value = "sales_scene_info") + private SalesSceneInfo salesSceneInfo; - /** - *
-	 * 字段名:商户简称
-	 * 变量名:merchant_shortname
-	 * 是否必填:是
-	 * 类型:string(64)
-	 * 描述:
-	 *  UTF-8格式,中文占3个字节,即最多16个汉字长度。将在支付完成页向买家展示,需与商家的实际售卖商品相符 。
-	 *  示例值:腾讯
-	 * 
- */ - @SerializedName(value = "merchant_shortname") - private String merchantShortname; + /** + *
+   * 字段名:商户简称
+   * 变量名:merchant_shortname
+   * 是否必填:是
+   * 类型:string(64)
+   * 描述:
+   *  UTF-8格式,中文占3个字节,即最多16个汉字长度。将在支付完成页向买家展示,需与商家的实际售卖商品相符 。
+   *  示例值:腾讯
+   * 
+ */ + @SerializedName(value = "merchant_shortname") + private String merchantShortname; - /** - *
-	 * 字段名:特殊资质
-	 * 变量名:qualifications
-	 * 是否必填:否
-	 * 类型:string(1024)
-	 * 描述:
-	 *  1、若店铺业务包含互联网售药,则需上传特殊资质-《互联网药品交易服务证》。
-	 *  2、最多可上传5张照片,请填写通过图片上传接口预先上传图片生成好的MediaID 。
-	 *  示例值:[\"jTpGmxUX3FBWVQ5NJInE4d2I6_H7I4\"]
-	 * 
- */ - @SerializedName(value = "qualifications") - private String qualifications; + /** + *
+   * 字段名:特殊资质
+   * 变量名:qualifications
+   * 是否必填:否
+   * 类型:string(1024)
+   * 描述:
+   *  1、若店铺业务包含互联网售药,则需上传特殊资质-《互联网药品交易服务证》。
+   *  2、最多可上传5张照片,请填写通过图片上传接口预先上传图片生成好的MediaID 。
+   *  示例值:[\"jTpGmxUX3FBWVQ5NJInE4d2I6_H7I4\"]
+   * 
+ */ + @SerializedName(value = "qualifications") + private String qualifications; - /** - *
-	 * 字段名:补充材料
-	 * 变量名:business_addition_pics
-	 * 是否必填:否
-	 * 类型:string(1024)
-	 * 描述:
-	 *   最多可上传5张照片,请填写通过图片上传接口预先上传图片生成好的MediaID 。
-	 *  示例值:[\"jTpGmg05InE4d2I6_H7I4\"]
-	 * 
- */ - @SerializedName(value = "business_addition_pics") - private String businessAdditionPics; + /** + *
+   * 字段名:补充材料
+   * 变量名:business_addition_pics
+   * 是否必填:否
+   * 类型:string(1024)
+   * 描述:
+   *   最多可上传5张照片,请填写通过图片上传接口预先上传图片生成好的MediaID 。
+   *  示例值:[\"jTpGmg05InE4d2I6_H7I4\"]
+   * 
+ */ + @SerializedName(value = "business_addition_pics") + private String businessAdditionPics; - /** - *
-	 * 字段名:补充说明
-	 * 变量名:business_addition_desc
-	 * 是否必填:否
-	 * 类型:string(256)
-	 * 描述:
-	 *   可填写512字以内 。
-	 *  示例值:特殊情况,说明原因
-	 * 
- */ - @SerializedName(value = "business_addition_desc") - private String businessAdditionDesc; + /** + *
+   * 字段名:补充说明
+   * 变量名:business_addition_desc
+   * 是否必填:否
+   * 类型:string(256)
+   * 描述:
+   *   可填写512字以内 。
+   *  示例值:特殊情况,说明原因
+   * 
+ */ + @SerializedName(value = "business_addition_desc") + private String businessAdditionDesc; - @Data + @Data @NoArgsConstructor - public static class BusinessLicenseInfo implements Serializable{ - /** - *
-		 * 字段名:证件扫描件
-		 * 变量名:business_license_copy
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、主体为“个体工商户/企业”时,请上传营业执照的证件图片。
-		 *  2、主体为“党政、机关及事业单位/其他组织”时,请上传登记证书的证件图片。
-		 *  3、可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID 。
-		 *  4、图片要求:
-		 *  (1)请上传证件的彩色扫描件或彩色数码拍摄件,黑白复印件需加盖公章(公章信息需完整) 。
-		 *  (2)不得添加无关水印(非微信支付商户申请用途的其他水印)。
-		 *  (3)需提供证件的正面拍摄件,完整、照面信息清晰可见。信息不清晰、扭曲、压缩变形、反光、不完整均不接受。
-		 *  (4)不接受二次剪裁、翻拍、PS的证件照片。
-		 *  示例值: 47ZC6GC-vnrbEny__Ie_An5-tCpqxucuxi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
-		 * 
- */ - @SerializedName(value = "business_license_copy") - private String businessLicenseCopy; + public static class BusinessLicenseInfo implements Serializable { + /** + *
+     * 字段名:证件扫描件
+     * 变量名:business_license_copy
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、主体为“个体工商户/企业”时,请上传营业执照的证件图片。
+     *  2、主体为“党政、机关及事业单位/其他组织”时,请上传登记证书的证件图片。
+     *  3、可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID 。
+     *  4、图片要求:
+     *  (1)请上传证件的彩色扫描件或彩色数码拍摄件,黑白复印件需加盖公章(公章信息需完整) 。
+     *  (2)不得添加无关水印(非微信支付商户申请用途的其他水印)。
+     *  (3)需提供证件的正面拍摄件,完整、照面信息清晰可见。信息不清晰、扭曲、压缩变形、反光、不完整均不接受。
+     *  (4)不接受二次剪裁、翻拍、PS的证件照片。
+     *  示例值: 47ZC6GC-vnrbEny__Ie_An5-tCpqxucuxi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
+     * 
+ */ + @SerializedName(value = "business_license_copy") + private String businessLicenseCopy; - /** - *
-		 * 字段名:证件注册号
-		 * 变量名:business_license_number
-		 * 是否必填:是
-		 * 类型:string(18)
-		 * 描述:
-		 *  1、主体为“个体工商户/企业”时,请填写营业执照上的注册号/统一社会信用代码,须为15位数字或 18位数字|大写字母。
-		 *  2、主体为“党政、机关及事业单位/其他组织”时,请填写登记证书的证书编号。
-		 *  示例值:123456789012345678
-		 *  特殊规则:长度最小15个字节
-		 * 
- */ - @SerializedName(value = "business_license_number") - private String businessLicenseNumber; + /** + *
+     * 字段名:证件注册号
+     * 变量名:business_license_number
+     * 是否必填:是
+     * 类型:string(18)
+     * 描述:
+     *  1、主体为“个体工商户/企业”时,请填写营业执照上的注册号/统一社会信用代码,须为15位数字或 18位数字|大写字母。
+     *  2、主体为“党政、机关及事业单位/其他组织”时,请填写登记证书的证书编号。
+     *  示例值:123456789012345678
+     *  特殊规则:长度最小15个字节
+     * 
+ */ + @SerializedName(value = "business_license_number") + private String businessLicenseNumber; - /** - *
-		 * 字段名:商户名称
-		 * 变量名:merchant_name
-		 * 是否必填:是
-		 * 类型:string(128)
-		 * 描述:
-		 *  1、请填写营业执照/登记证书的商家名称,2~110个字符,支持括号 。
-		 *  2、个体工商户/党政、机关及事业单位,不能以“公司”结尾。
-		 *  3、个体工商户,若营业执照上商户名称为空或为“无”,请填写"个体户+经营者姓名",如“个体户张三” 。
-		 *  示例值:腾讯科技有限公司
-		 * 
- */ - @SerializedName(value = "merchant_name") - private String merchantName; + /** + *
+     * 字段名:商户名称
+     * 变量名:merchant_name
+     * 是否必填:是
+     * 类型:string(128)
+     * 描述:
+     *  1、请填写营业执照/登记证书的商家名称,2~110个字符,支持括号 。
+     *  2、个体工商户/党政、机关及事业单位,不能以“公司”结尾。
+     *  3、个体工商户,若营业执照上商户名称为空或为“无”,请填写"个体户+经营者姓名",如“个体户张三” 。
+     *  示例值:腾讯科技有限公司
+     * 
+ */ + @SerializedName(value = "merchant_name") + private String merchantName; - /** - *
-		 * 字段名:经营者/法定代表人姓名
-		 * 变量名:legal_person
-		 * 是否必填:是
-		 * 类型:string(128)
-		 * 描述:
-		 *  请填写证件的经营者/法定代表人姓名
-		 *  示例值:张三
-		 * 
- */ - @SerializedName(value = "legal_person") - private String legalPerson; + /** + *
+     * 字段名:经营者/法定代表人姓名
+     * 变量名:legal_person
+     * 是否必填:是
+     * 类型:string(128)
+     * 描述:
+     *  请填写证件的经营者/法定代表人姓名
+     *  示例值:张三
+     * 
+ */ + @SerializedName(value = "legal_person") + private String legalPerson; - /** - *
-		 * 字段名:注册地址
-		 * 变量名:company_address
-		 * 是否必填:条件选填
-		 * 类型:string(128)
-		 * 描述:
-		 *  主体为“党政、机关及事业单位/其他组织”时必填,请填写登记证书的注册地址。
-		 *  示例值:深圳南山区科苑路
-		 * 
- */ - @SerializedName(value = "company_address") - private String companyAddress; + /** + *
+     * 字段名:注册地址
+     * 变量名:company_address
+     * 是否必填:条件选填
+     * 类型:string(128)
+     * 描述:
+     *  主体为“党政、机关及事业单位/其他组织”时必填,请填写登记证书的注册地址。
+     *  示例值:深圳南山区科苑路
+     * 
+ */ + @SerializedName(value = "company_address") + private String companyAddress; - /** - *
-		 * 字段名:营业期限
-		 * 变量名:business_time
-		 * 是否必填:条件选填
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、主体为“党政、机关及事业单位/其他组织”时必填,请填写证件有效期。
-		 *  2、若证件有效期为长期,请填写:长期。
-		 *  3、结束时间需大于开始时间。
-		 *  4、有效期必须大于60天,即结束时间距当前时间需超过60天。
-		 *  示例值:[\"2014-01-01\",\"长期\"]
-		 * 
- */ - @SerializedName(value = "business_time") - private String businessTime; + /** + *
+     * 字段名:营业期限
+     * 变量名:business_time
+     * 是否必填:条件选填
+     * 类型:string(256)
+     * 描述:
+     *  1、主体为“党政、机关及事业单位/其他组织”时必填,请填写证件有效期。
+     *  2、若证件有效期为长期,请填写:长期。
+     *  3、结束时间需大于开始时间。
+     *  4、有效期必须大于60天,即结束时间距当前时间需超过60天。
+     *  示例值:[\"2014-01-01\",\"长期\"]
+     * 
+ */ + @SerializedName(value = "business_time") + private String businessTime; - } + } - @Data + @Data @NoArgsConstructor - public static class OrganizationCertInfo implements Serializable { - /** - *
-		 * 字段名:组织机构代码证照片
-		 * 变量名:organization_copy
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID。
-		 *  示例值:vByf3Gjm7KE53JXv\prrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
-		 * 
- */ - @SerializedName(value = "organization_copy") - private String organizationCopy; + public static class OrganizationCertInfo implements Serializable { + /** + *
+     * 字段名:组织机构代码证照片
+     * 变量名:organization_copy
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID。
+     *  示例值:vByf3Gjm7KE53JXv\prrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
+     * 
+ */ + @SerializedName(value = "organization_copy") + private String organizationCopy; - /** - *
-		 * 字段名:组织机构代码
-		 * 变量名:organization_number
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、请填写组织机构代码证上的组织机构代码。
-		 *  2、可填写9或10位 数字|字母|连字符。
-		 *  示例值:12345679-A
-		 * 
- */ - @SerializedName(value = "organization_number") - private String organizationNumber; + /** + *
+     * 字段名:组织机构代码
+     * 变量名:organization_number
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、请填写组织机构代码证上的组织机构代码。
+     *  2、可填写9或10位 数字|字母|连字符。
+     *  示例值:12345679-A
+     * 
+ */ + @SerializedName(value = "organization_number") + private String organizationNumber; - /** - *
-		 * 字段名:组织机构代码有效期限
-		 * 变量名:organization_time
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、请填写组织机构代码证的有效期限,注意参照示例中的格式。
-		 *  2、若证件有效期为长期,请填写:长期。
-		 *  3、结束时间需大于开始时间。
-		 *  4、有效期必须大于60天,即结束时间距当前时间需超过60天。
-		 *  示例值:[\"2014-01-01\",\"长期\"]
-		 * 
- */ - @SerializedName(value = "organization_time") - private String organizationTime; + /** + *
+     * 字段名:组织机构代码有效期限
+     * 变量名:organization_time
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、请填写组织机构代码证的有效期限,注意参照示例中的格式。
+     *  2、若证件有效期为长期,请填写:长期。
+     *  3、结束时间需大于开始时间。
+     *  4、有效期必须大于60天,即结束时间距当前时间需超过60天。
+     *  示例值:[\"2014-01-01\",\"长期\"]
+     * 
+ */ + @SerializedName(value = "organization_time") + private String organizationTime; - } + } - @Data + @Data @NoArgsConstructor - public static class IdCardInfo implements Serializable { - /** - *
-		 * 字段名:身份证人像面照片
-		 * 变量名:id_card_copy
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、请上传经营者/法定代表人的身份证人像面照片。
-		 *  2、可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID。
-		 *  示例值:xpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
-		 * 
- */ - @SerializedName(value = "id_card_copy") - private String idCardCopy; + public static class IdCardInfo implements Serializable { + /** + *
+     * 字段名:身份证人像面照片
+     * 变量名:id_card_copy
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、请上传经营者/法定代表人的身份证人像面照片。
+     *  2、可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID。
+     *  示例值:xpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
+     * 
+ */ + @SerializedName(value = "id_card_copy") + private String idCardCopy; - /** - *
-		 * 字段名:身份证国徽面照片
-		 * 变量名:id_card_national
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、请上传经营者/法定代表人的身份证国徽面照片。
-		 *  2、可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID 。
-		 *  示例值:vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
-		 * 
- */ - @SerializedName(value = "id_card_national") - private String idCardNational; + /** + *
+     * 字段名:身份证国徽面照片
+     * 变量名:id_card_national
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、请上传经营者/法定代表人的身份证国徽面照片。
+     *  2、可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID 。
+     *  示例值:vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
+     * 
+ */ + @SerializedName(value = "id_card_national") + private String idCardNational; - /** - *
-		 * 字段名:身份证姓名
-		 * 变量名:id_card_name
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、请填写经营者/法定代表人对应身份证的姓名,2~30个中文字符、英文字符、符号。
-		 *  2、该字段需进行加密处理,加密方法详见敏感信息加密说明。
-		 *  示例值:pVd1HJ6v/69bDnuC4EL5Kz4jBHLiCa8MRtelw/wDa4SzfeespQO/0kjiwfqdfg==
-		 *  字段加密:使用APIv3定义的方式加密
-		 * 
- */ - @SerializedName(value = "id_card_name") + /** + *
+     * 字段名:身份证姓名
+     * 变量名:id_card_name
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、请填写经营者/法定代表人对应身份证的姓名,2~30个中文字符、英文字符、符号。
+     *  2、该字段需进行加密处理,加密方法详见敏感信息加密说明。
+     *  示例值:pVd1HJ6v/69bDnuC4EL5Kz4jBHLiCa8MRtelw/wDa4SzfeespQO/0kjiwfqdfg==
+     *  字段加密:使用APIv3定义的方式加密
+     * 
+ */ + @SerializedName(value = "id_card_name") @SpecEncrypt - private String idCardName; + private String idCardName; - /** - *
-		 * 字段名:身份证号码
-		 * 变量名:id_card_number
-		 * 是否必填:是
-		 * 类型:string(18)
-		 * 描述:
-		 *  1、请填写经营者/法定代表人对应身份证的号码。
-		 *  2、15位数字或17位数字+1位数字|X ,该字段需进行加密处理,加密方法详见敏感信息加密说明。
-		 *  示例值:zV+BEmytMNQCqQ8juwEc4P4TG5xzchG/5IL9DBd+Z0zZXkw==4
-		 *  特殊规则:长度最小15个字节
-		 * 
- */ - @SerializedName(value = "id_card_number") + /** + *
+     * 字段名:身份证号码
+     * 变量名:id_card_number
+     * 是否必填:是
+     * 类型:string(18)
+     * 描述:
+     *  1、请填写经营者/法定代表人对应身份证的号码。
+     *  2、15位数字或17位数字+1位数字|X ,该字段需进行加密处理,加密方法详见敏感信息加密说明。
+     *  示例值:zV+BEmytMNQCqQ8juwEc4P4TG5xzchG/5IL9DBd+Z0zZXkw==4
+     *  特殊规则:长度最小15个字节
+     * 
+ */ + @SerializedName(value = "id_card_number") @SpecEncrypt - private String idCardNumber; + private String idCardNumber; - /** - *
-		 * 字段名:身份证有效期限
-		 * 变量名:id_card_valid_time
-		 * 是否必填:是
-		 * 类型:string(128)
-		 * 描述:
-		 *  1、请填写身份证有效期的结束时间,注意参照示例中的格式。
-		 *  2、若证件有效期为长期,请填写:长期。
-		 *  3、证件有效期需大于60天。
-		 *  示例值:2026-06-06,长期
-		 * 
- */ - @SerializedName(value = "id_card_valid_time") - private String idCardValidTime; + /** + *
+     * 字段名:身份证有效期限
+     * 变量名:id_card_valid_time
+     * 是否必填:是
+     * 类型:string(128)
+     * 描述:
+     *  1、请填写身份证有效期的结束时间,注意参照示例中的格式。
+     *  2、若证件有效期为长期,请填写:长期。
+     *  3、证件有效期需大于60天。
+     *  示例值:2026-06-06,长期
+     * 
+ */ + @SerializedName(value = "id_card_valid_time") + private String idCardValidTime; - } + } - @Data + @Data @NoArgsConstructor - public static class IdDocInfo implements Serializable { - /** - *
-		 * 字段名:证件姓名
-		 * 变量名:id_doc_name
-		 * 是否必填:是
-		 * 类型:string(128)
-		 * 描述:
-		 *  请填写经营者/法人姓名。
-		 *  示例值:jTpGmxUX3FBWVQ5NJTZvlKX_gdU4LC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
-		 * 
- */ - @SerializedName(value = "id_doc_name") - private String idDocName; + public static class IdDocInfo implements Serializable { + /** + *
+     * 字段名:证件姓名
+     * 变量名:id_doc_name
+     * 是否必填:是
+     * 类型:string(128)
+     * 描述:
+     *  请填写经营者/法人姓名。
+     *  示例值:jTpGmxUX3FBWVQ5NJTZvlKX_gdU4LC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
+     * 
+ */ + @SerializedName(value = "id_doc_name") + private String idDocName; - /** - *
-		 * 字段名:证件号码
-		 * 变量名:id_doc_number
-		 * 是否必填:是
-		 * 类型:string(128)
-		 * 描述:
-		 *  7~11位 数字|字母|连字符 。
-		 *  示例值:jTpGmxUX3FBWVQ5NJTZvlKX_go0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
-		 * 
- */ - @SerializedName(value = "id_doc_number") - private String idDocNumber; + /** + *
+     * 字段名:证件号码
+     * 变量名:id_doc_number
+     * 是否必填:是
+     * 类型:string(128)
+     * 描述:
+     *  7~11位 数字|字母|连字符 。
+     *  示例值:jTpGmxUX3FBWVQ5NJTZvlKX_go0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
+     * 
+ */ + @SerializedName(value = "id_doc_number") + private String idDocNumber; - /** - *
-		 * 字段名:证件照片
-		 * 变量名:id_doc_copy
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID。
-		 *  2、2M内的彩色图片,格式可为bmp、png、jpeg、jpg或gif 。
-		 *  示例值:xi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
-		 * 
- */ - @SerializedName(value = "id_doc_copy") - private String idDocCopy; + /** + *
+     * 字段名:证件照片
+     * 变量名:id_doc_copy
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、可上传1张图片,请填写通过图片上传接口预先上传图片生成好的MediaID。
+     *  2、2M内的彩色图片,格式可为bmp、png、jpeg、jpg或gif 。
+     *  示例值:xi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
+     * 
+ */ + @SerializedName(value = "id_doc_copy") + private String idDocCopy; - /** - *
-		 * 字段名:证件结束日期
-		 * 变量名:doc_period_end
-		 * 是否必填:是
-		 * 类型:string(128)
-		 * 描述:
-		 *  1、请按照示例值填写。
-		 *  2、若证件有效期为长期,请填写:长期。
-		 *  3、证件有效期需大于60天 。
-		 *  示例值:2020-01-02
-		 * 
- */ - @SerializedName(value = "doc_period_end") - private String docPeriodEnd; + /** + *
+     * 字段名:证件结束日期
+     * 变量名:doc_period_end
+     * 是否必填:是
+     * 类型:string(128)
+     * 描述:
+     *  1、请按照示例值填写。
+     *  2、若证件有效期为长期,请填写:长期。
+     *  3、证件有效期需大于60天 。
+     *  示例值:2020-01-02
+     * 
+ */ + @SerializedName(value = "doc_period_end") + private String docPeriodEnd; - } + } - @Data + @Data @NoArgsConstructor - public static class AccountInfo implements Serializable { - /** - *
-		 * 字段名:账户类型
-		 * 变量名:bank_account_type
-		 * 是否必填:是
-		 * 类型:string(2)
-		 * 描述:
-		 *  1、若主体为企业/党政、机关及事业单位/其他组织,可填写:74-对公账户。
-		 *  2、若主体为小微,可填写:75-对私账户。
-		 *  3、若主体为个体工商户,可填写:74-对公账户或75-对私账户。
-		 *  示例值:75
-		 * 
- */ - @SerializedName(value = "bank_account_type") - private String bankAccountType; + public static class AccountInfo implements Serializable { + /** + *
+     * 字段名:账户类型
+     * 变量名:bank_account_type
+     * 是否必填:是
+     * 类型:string(2)
+     * 描述:
+     *  1、若主体为企业/党政、机关及事业单位/其他组织,可填写:74-对公账户。
+     *  2、若主体为小微,可填写:75-对私账户。
+     *  3、若主体为个体工商户,可填写:74-对公账户或75-对私账户。
+     *  示例值:75
+     * 
+ */ + @SerializedName(value = "bank_account_type") + private String bankAccountType; - /** - *
-		 * 字段名:开户银行
-		 * 变量名:account_bank
-		 * 是否必填:是
-		 * 类型:string(10)
-		 * 描述:
-		 *  详细参见开户银行对照表。
-		 *  示例值:工商银行
-		 * 
- */ - @SerializedName(value = "account_bank") - private String accountBank; + /** + *
+     * 字段名:开户银行
+     * 变量名:account_bank
+     * 是否必填:是
+     * 类型:string(10)
+     * 描述:
+     *  详细参见开户银行对照表。
+     *  示例值:工商银行
+     * 
+ */ + @SerializedName(value = "account_bank") + private String accountBank; - /** - *
-		 * 字段名:开户名称
-		 * 变量名:account_name
-		 * 是否必填:是
-		 * 类型:string(128)
-		 * 描述:
-		 *  1、选择经营者个人银行卡时,开户名称必须与身份证姓名一致。
-		 *  2、选择对公账户时,开户名称必须与营业执照上的“商户名称”一致。
-		 *  3、该字段需进行加密处理,加密方法详见敏感信息加密说明。
-		 *  示例值:AOZdYGISxo4yw96uY1Pk7Rq79Jtt7+I8juwEc4P4TG5xzchG/5IL9DBd+Z0zZXkw==
-		 * 
- */ - @SerializedName(value = "account_name") + /** + *
+     * 字段名:开户名称
+     * 变量名:account_name
+     * 是否必填:是
+     * 类型:string(128)
+     * 描述:
+     *  1、选择经营者个人银行卡时,开户名称必须与身份证姓名一致。
+     *  2、选择对公账户时,开户名称必须与营业执照上的“商户名称”一致。
+     *  3、该字段需进行加密处理,加密方法详见敏感信息加密说明。
+     *  示例值:AOZdYGISxo4yw96uY1Pk7Rq79Jtt7+I8juwEc4P4TG5xzchG/5IL9DBd+Z0zZXkw==
+     * 
+ */ + @SerializedName(value = "account_name") @SpecEncrypt - private String accountName; + private String accountName; - /** - *
-		 * 字段名:开户银行省市编码
-		 * 变量名:bank_address_code
-		 * 是否必填:是
-		 * 类型:string(12)
-		 * 描述:
-		 *  至少精确到市,详细参见省市区编号对照表。
-		 *  示例值:110000
-		 * 
- */ - @SerializedName(value = "bank_address_code") - private String bankAddressCode; + /** + *
+     * 字段名:开户银行省市编码
+     * 变量名:bank_address_code
+     * 是否必填:是
+     * 类型:string(12)
+     * 描述:
+     *  至少精确到市,详细参见省市区编号对照表。
+     *  示例值:110000
+     * 
+ */ + @SerializedName(value = "bank_address_code") + private String bankAddressCode; - /** - *
-		 * 字段名:开户银行联行号
-		 * 变量名:bank_branch_id
-		 * 是否必填:条件选填
-		 * 类型:string(64)
-		 * 描述:
-		 *  1、17家直连银行无需填写,如为其他银行,开户银行全称(含支行)和开户银行联行号二选一。
-		 *  2、详细参见开户银行全称(含支行)对照表。
-		 *  示例值:402713354941
-		 * 
- */ - @SerializedName(value = "bank_branch_id") - private String bankBranchId; + /** + *
+     * 字段名:开户银行联行号
+     * 变量名:bank_branch_id
+     * 是否必填:条件选填
+     * 类型:string(64)
+     * 描述:
+     *  1、17家直连银行无需填写,如为其他银行,开户银行全称(含支行)和开户银行联行号二选一。
+     *  2、详细参见开户银行全称(含支行)对照表。
+     *  示例值:402713354941
+     * 
+ */ + @SerializedName(value = "bank_branch_id") + private String bankBranchId; - /** - *
-		 * 字段名:开户银行全称 (含支行)
-		 * 变量名:bank_name
-		 * 是否必填:条件选填
-		 * 类型:string(128)
-		 * 描述:
-		 *  1、17家直连银行无需填写,如为其他银行,开户银行全称(含支行)和开户银行联行号二选一。
-		 *  2、需填写银行全称,如"深圳农村商业银行XXX支行" 。
-		 *  3、详细参见开户银行全称(含支行)对照表。
-		 *  示例值:施秉县农村信用合作联社城关信用社
-		 * 
- */ - @SerializedName(value = "bank_name") - private String bankName; + /** + *
+     * 字段名:开户银行全称 (含支行)
+     * 变量名:bank_name
+     * 是否必填:条件选填
+     * 类型:string(128)
+     * 描述:
+     *  1、17家直连银行无需填写,如为其他银行,开户银行全称(含支行)和开户银行联行号二选一。
+     *  2、需填写银行全称,如"深圳农村商业银行XXX支行" 。
+     *  3、详细参见开户银行全称(含支行)对照表。
+     *  示例值:施秉县农村信用合作联社城关信用社
+     * 
+ */ + @SerializedName(value = "bank_name") + private String bankName; - /** - *
-		 * 字段名:银行帐号
-		 * 变量名:account_number
-		 * 是否必填:是
-		 * 类型:string(128)
-		 * 描述:
-		 *  1、数字,长度遵循系统支持的对公/对私卡号长度要求表。
-		 *  2、该字段需进行加密处理,加密方法详见敏感信息加密说明。
-		 *  示例值: d+xT+MQCvrLHUVDWv/8MR/dB7TkXLVfSrUxMPZy6jWWYzpRrEEaYQE8ZRGYoeorwC+w==
-		 * 
- */ - @SerializedName(value = "account_number") + /** + *
+     * 字段名:银行帐号
+     * 变量名:account_number
+     * 是否必填:是
+     * 类型:string(128)
+     * 描述:
+     *  1、数字,长度遵循系统支持的对公/对私卡号长度要求表。
+     *  2、该字段需进行加密处理,加密方法详见敏感信息加密说明。
+     *  示例值: d+xT+MQCvrLHUVDWv/8MR/dB7TkXLVfSrUxMPZy6jWWYzpRrEEaYQE8ZRGYoeorwC+w==
+     * 
+ */ + @SerializedName(value = "account_number") @SpecEncrypt - private String accountNumber; + private String accountNumber; - } + } - @Data + @Data @NoArgsConstructor - public static class ContactInfo implements Serializable { - /** - *
-		 * 字段名:超级管理员类型
-		 * 变量名:contact_type
-		 * 是否必填:是
-		 * 类型:string(2)
-		 * 描述:
-		 *  1、小微商户,选择:65-法人/经营者。
-		 *  2、个体工商户/企业/党政、机关及事业单位/其他组织,可选择:65-法人/经营者、66- 负责人。 (负责人:经商户授权办理微信支付业务的人员,授权范围包括但不限于签约,入驻过程需完成账户验证)。
-		 *  示例值:65
-		 * 
- */ - @SerializedName(value = "contact_type") - private String contactType; + public static class ContactInfo implements Serializable { + /** + *
+     * 字段名:超级管理员类型
+     * 变量名:contact_type
+     * 是否必填:是
+     * 类型:string(2)
+     * 描述:
+     *  1、小微商户,选择:65-法人/经营者。
+     *  2、个体工商户/企业/党政、机关及事业单位/其他组织,可选择:65-法人/经营者、66- 负责人。 (负责人:经商户授权办理微信支付业务的人员,授权范围包括但不限于签约,入驻过程需完成账户验证)。
+     *  示例值:65
+     * 
+ */ + @SerializedName(value = "contact_type") + private String contactType; - /** - *
-		 * 字段名:超级管理员姓名
-		 * 变量名:contact_name
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、若管理员类型为“法人”,则该姓名需与法人身份证姓名一致。
-		 *  2、若管理员类型为“经办人”,则可填写实际经办人的姓名。
-		 *  3、该字段需进行加密处理,加密方法详见敏感信息加密说明。
-		 *  (后续该管理员需使用实名微信号完成签约)
-		 *  示例值: pVd1HJ6zyvPedzGaV+X3IdGdbDnuC4Eelw/wDa4SzfeespQO/0kjiwfqdfg==
-		 * 
- */ - @SerializedName(value = "contact_name") + /** + *
+     * 字段名:超级管理员姓名
+     * 变量名:contact_name
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、若管理员类型为“法人”,则该姓名需与法人身份证姓名一致。
+     *  2、若管理员类型为“经办人”,则可填写实际经办人的姓名。
+     *  3、该字段需进行加密处理,加密方法详见敏感信息加密说明。
+     *  (后续该管理员需使用实名微信号完成签约)
+     *  示例值: pVd1HJ6zyvPedzGaV+X3IdGdbDnuC4Eelw/wDa4SzfeespQO/0kjiwfqdfg==
+     * 
+ */ + @SerializedName(value = "contact_name") @SpecEncrypt - private String contactName; + private String contactName; - /** - *
-		 * 字段名:超级管理员身份证件号码
-		 * 变量名:contact_id_card_number
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、若管理员类型为法人,则该身份证号码需与法人身份证号码一致。若管理员类型为经办人,则可填写实际经办人的身份证号码。
-		 *  2、可传身份证、来往内地通行证、来往大陆通行证、护照等证件号码。
-		 *  3、超级管理员签约时,校验微信号绑定的银行卡实名信息,是否与该证件号码一致。
-		 *  4、该字段需进行加密处理,加密方法详见敏感信息加密说明。
-		 *  示例值:pVd1HJ6zmty7/mYNxLMpRSvMRtelw/wDa4SzfeespQO/0kjiwfqdfg==
-		 * 
- */ - @SerializedName(value = "contact_id_card_number") + /** + *
+     * 字段名:超级管理员身份证件号码
+     * 变量名:contact_id_card_number
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、若管理员类型为法人,则该身份证号码需与法人身份证号码一致。若管理员类型为经办人,则可填写实际经办人的身份证号码。
+     *  2、可传身份证、来往内地通行证、来往大陆通行证、护照等证件号码。
+     *  3、超级管理员签约时,校验微信号绑定的银行卡实名信息,是否与该证件号码一致。
+     *  4、该字段需进行加密处理,加密方法详见敏感信息加密说明。
+     *  示例值:pVd1HJ6zmty7/mYNxLMpRSvMRtelw/wDa4SzfeespQO/0kjiwfqdfg==
+     * 
+ */ + @SerializedName(value = "contact_id_card_number") @SpecEncrypt - private String contactIdCardNumber; + private String contactIdCardNumber; - /** - *
-		 * 字段名:超级管理员手机
-		 * 变量名:mobile_phone
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、请填写管理员的手机号,11位数字, 用于接收微信支付的重要管理信息及日常操作验证码 。
-		 *  2、该字段需进行加密处理,加密方法详见敏感信息加密说明。
-		 *  示例值:pVd1HJ6zyvPedzGaV+X3qtmrq9bb9tPROvwia4ibL+F6mfjbzQIzfb3HHLEjZ4YiNWWNeespQO/0kjiwfqdfg==
-		 * 
- */ - @SerializedName(value = "mobile_phone") + /** + *
+     * 字段名:超级管理员手机
+     * 变量名:mobile_phone
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、请填写管理员的手机号,11位数字, 用于接收微信支付的重要管理信息及日常操作验证码 。
+     *  2、该字段需进行加密处理,加密方法详见敏感信息加密说明。
+     *  示例值:pVd1HJ6zyvPedzGaV+X3qtmrq9bb9tPROvwia4ibL+F6mfjbzQIzfb3HHLEjZ4YiNWWNeespQO/0kjiwfqdfg==
+     * 
+ */ + @SerializedName(value = "mobile_phone") @SpecEncrypt - private String mobilePhone; + private String mobilePhone; - /** - *
-		 * 字段名:超级管理员邮箱
-		 * 变量名:contact_email
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  1、用于接收微信支付的开户邮件及日常业务通知。
-		 *  2、需要带@,遵循邮箱格式校验 。
-		 *  3、该字段需进行加密处理,加密方法详见敏感信息加密说明。
-		 *  示例值:pVd1HJ6zyvPedzGaV+X3qtmrq9bb9tPROvwia4ibL+FWWNUlw/wDa4SzfeespQO/0kjiwfqdfg==
-		 * 
- */ - @SerializedName(value = "contact_email") + /** + *
+     * 字段名:超级管理员邮箱
+     * 变量名:contact_email
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  1、用于接收微信支付的开户邮件及日常业务通知。
+     *  2、需要带@,遵循邮箱格式校验 。
+     *  3、该字段需进行加密处理,加密方法详见敏感信息加密说明。
+     *  示例值:pVd1HJ6zyvPedzGaV+X3qtmrq9bb9tPROvwia4ibL+FWWNUlw/wDa4SzfeespQO/0kjiwfqdfg==
+     * 
+ */ + @SerializedName(value = "contact_email") @SpecEncrypt - private String contactEmail; + private String contactEmail; - } + } - @Data + @Data @NoArgsConstructor - public static class SalesSceneInfo implements Serializable { - /** - *
-		 * 字段名:店铺名称
-		 * 变量名:store_name
-		 * 是否必填:是
-		 * 类型:string(256)
-		 * 描述:
-		 *  请填写店铺全称。
-		 *  示例值:爱烧烤
-		 * 
- */ - @SerializedName(value = "store_name") - private String storeName; + public static class SalesSceneInfo implements Serializable { + /** + *
+     * 字段名:店铺名称
+     * 变量名:store_name
+     * 是否必填:是
+     * 类型:string(256)
+     * 描述:
+     *  请填写店铺全称。
+     *  示例值:爱烧烤
+     * 
+ */ + @SerializedName(value = "store_name") + private String storeName; - /** - *
-		 * 字段名:店铺链接
-		 * 变量名:store_url
-		 * 是否必填:二选一
-		 * 类型:string(1024)
-		 * 描述:
-		 *  1、店铺二维码or店铺链接二选一必填。
-		 *  2、请填写店铺主页链接,需符合网站规范。
-		 *  示例值:http://www.qq.com
-		 * 
- */ - @SerializedName(value = "store_url") - private String storeUrl; + /** + *
+     * 字段名:店铺链接
+     * 变量名:store_url
+     * 是否必填:二选一
+     * 类型:string(1024)
+     * 描述:
+     *  1、店铺二维码or店铺链接二选一必填。
+     *  2、请填写店铺主页链接,需符合网站规范。
+     *  示例值:http://www.qq.com
+     * 
+ */ + @SerializedName(value = "store_url") + private String storeUrl; - /** - *
-		 * 字段名:店铺二维码
-		 * 变量名:store_qr_code
-		 * 是否必填:1、店铺二维码 or 店铺链接二选一必填。 2、若为电商小程序,可上传店铺页面的小程序二维码。 3、请填写通过图片上传接口预先上传图片生成好的MediaID,仅能上传1张图片 。 示例值:jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO1D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
-		 * 类型:string(256)
-		 * 描述:
-		 * 
- */ - @SerializedName(value = "store_qr_code") - private String storeQrCode; + /** + *
+     * 字段名:店铺二维码
+     * 变量名:store_qr_code
+     * 是否必填:1、店铺二维码 or 店铺链接二选一必填。 2、若为电商小程序,可上传店铺页面的小程序二维码。 3、请填写通过图片上传接口预先上传图片生成好的MediaID,仅能上传1张图片 。 示例值:jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO1D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
+     * 类型:string(256)
+     * 描述:
+     * 
+ */ + @SerializedName(value = "store_qr_code") + private String storeQrCode; - } + } } diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsResult.java index dd2d46122..38c8a3374 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsResult.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsResult.java @@ -12,7 +12,7 @@ import java.io.Serializable; @Data @NoArgsConstructor public class ApplymentsResult implements Serializable { - + private static final long serialVersionUID = -4549193755252593150L; /** *
    * 字段名:微信支付申请单号
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsStatusResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsStatusResult.java
index 00967cfa6..7defd2145 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsStatusResult.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ApplymentsStatusResult.java
@@ -144,7 +144,8 @@ public class ApplymentsStatusResult implements Serializable {
 
   @Data
   @NoArgsConstructor
-  public static class AccountValidation implements Serializable{
+  public static class AccountValidation implements Serializable {
+    private static final long serialVersionUID = 4379880030965808588L;
     /**
      * 
      * 字段名:付款户名
@@ -275,7 +276,8 @@ public class ApplymentsStatusResult implements Serializable {
 
   @Data
   @NoArgsConstructor
-  public static class AuditDetail implements Serializable{
+  public static class AuditDetail implements Serializable {
+    private static final long serialVersionUID = 5446130564359386809L;
     /**
      * 
      * 字段名:参数名称
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/Applyment4SubService.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/Applyment4SubService.java
index 2187de0c0..4cb6785ff 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/Applyment4SubService.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/Applyment4SubService.java
@@ -10,18 +10,16 @@ import com.github.binarywang.wxpay.exception.WxPayException;
  * @author zhouyongshen
  */
 public interface Applyment4SubService {
-    /**
-     * 提交申请单API
-     * 文档详见: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/tool/applyment4sub/chapter3_1.shtml
-     * 接口链接:https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/
-     *
-     * @param request 请求对象
-     * @return WxPayApplymentCreateResult 响应结果
-     * @throws WxPayException the wx pay exception
-     */
-    WxPayApplymentCreateResult createApply(WxPayApplyment4SubCreateRequest request) throws WxPayException;
-
-
+  /**
+   * 提交申请单API
+   * 文档详见: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/tool/applyment4sub/chapter3_1.shtml
+   * 接口链接:https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/
+   *
+   * @param request 请求对象
+   * @return WxPayApplymentCreateResult 响应结果
+   * @throws WxPayException the wx pay exception
+   */
+  WxPayApplymentCreateResult createApply(WxPayApplyment4SubCreateRequest request) throws WxPayException;
 
   /**
    * 通过业务申请编号查询申请状态
@@ -29,11 +27,13 @@ public interface Applyment4SubService {
    * 接口链接:https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/business_code/{business_code}
    *
    * @param businessCode 业务申请编号
-   *                     1、只能由数字、字母或下划线组成,建议前缀为服务商商户号。
-   *                     2、服务商自定义的唯一编号。
-   *                     3、每个编号对应一个申请单,每个申请单审核通过后生成一个微信支付商户号。
-   *                     4、若申请单被驳回,可填写相同的“业务申请编号”,即可覆盖修改原申请单信息。
-   *                     示例值:1900013511_10000
+   *  1、只能由数字、字母或下划线组成,建议前缀为服务商商户号。
+   *  2、服务商自定义的唯一编号。
+   *  3、每个编号对应一个申请单,每个申请单审核通过后生成一个微信支付商户号。
+   *  4、若申请单被驳回,可填写相同的“业务申请编号”,即可覆盖修改原申请单信息。
+   *  示例值:1900013511_10000
+   * @return the applyment state query result
+   * @throws WxPayException the wx pay exception
    */
   ApplymentStateQueryResult queryApplyStatusByBusinessCode(String businessCode) throws WxPayException;
 
@@ -43,6 +43,8 @@ public interface Applyment4SubService {
    * 接口链接:https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/applyment_id/{applyment_id}
    *
    * @param applymentId 微信支付分的申请单号。示例值:2000001234567890
+   * @return the applyment state query result
+   * @throws WxPayException the wx pay exception
    */
   ApplymentStateQueryResult queryApplyStatusByApplymentId(String applymentId) throws WxPayException;
 
@@ -52,6 +54,8 @@ public interface Applyment4SubService {
    * 接口链接:https://api.mch.weixin.qq.com/v3/apply4sub/sub_merchants/{sub_mchid}/settlement
    *
    * @param subMchid 本服务商进件、已签约的特约商户号。
+   * @return the settlement info result
+   * @throws WxPayException the wx pay exception
    */
   SettlementInfoResult querySettlementBySubMchid(String subMchid) throws WxPayException;
 
@@ -59,9 +63,11 @@ public interface Applyment4SubService {
    * 修改结算帐号
    * 文档详见: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/tool/applyment4sub/chapter3_3.shtml
    * 接口链接:https://api.mch.weixin.qq.com/v3/apply4sub/sub_merchants/{sub_mchid}/modify-settlement
+   *
    * @param subMchid 特约商户号
-   * @param request 修改结算账户请求对象信息
+   * @param request  修改结算账户请求对象信息
+   * @throws WxPayException the wx pay exception
    */
-  void modifySettlement(String subMchid,ModifySettlementRequest request) throws WxPayException;
+  void modifySettlement(String subMchid, ModifySettlementRequest request) throws WxPayException;
 
 }
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/EcommerceService.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/EcommerceService.java
index f1bdb2b3e..5c86306b9 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/EcommerceService.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/EcommerceService.java
@@ -24,7 +24,8 @@ public interface EcommerceService {
    * 
* * @param request 请求对象 - * @return . + * @return . applyments result + * @throws WxPayException the wx pay exception */ ApplymentsResult createApply(ApplymentsRequest request) throws WxPayException; @@ -36,7 +37,8 @@ public interface EcommerceService { *
* * @param applymentId 申请单ID - * @return . + * @return . applyments status result + * @throws WxPayException the wx pay exception */ ApplymentsStatusResult queryApplyStatusByApplymentId(String applymentId) throws WxPayException; @@ -48,7 +50,8 @@ public interface EcommerceService { *
* * @param outRequestNo 业务申请编号 - * @return . + * @return . applyments status result + * @throws WxPayException the wx pay exception */ ApplymentsStatusResult queryApplyStatusByOutRequestNo(String outRequestNo) throws WxPayException; diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java index 0c7e3821b..963163127 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java @@ -9,21 +9,14 @@ import com.github.binarywang.wxpay.service.WxPayService; import com.github.binarywang.wxpay.v3.util.RsaCryptoUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import lombok.RequiredArgsConstructor; import java.net.URI; +@RequiredArgsConstructor public class EcommerceServiceImpl implements EcommerceService { - private static final Gson GSON = new GsonBuilder().create(); - private WxPayService payService; - - /** - * - * @param payService - */ - public EcommerceServiceImpl(WxPayService payService) { - this.payService = payService; - } + private final WxPayService payService; @Override public ApplymentsResult createApply(ApplymentsRequest request) throws WxPayException { diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceApacheHttpImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceApacheHttpImpl.java index aadb05141..c03713473 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceApacheHttpImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceApacheHttpImpl.java @@ -128,10 +128,10 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl { try (CloseableHttpResponse response = httpClient.execute(httpPost)) { //v3已经改为通过状态码判断200 204 成功 int statusCode = response.getStatusLine().getStatusCode(); - String responseString="{}"; + String responseString = "{}"; HttpEntity entity = response.getEntity(); - if(entity!=null){ - responseString= EntityUtils.toString(entity, StandardCharsets.UTF_8); + if (entity != null) { + responseString = EntityUtils.toString(entity, StandardCharsets.UTF_8); } if (HttpStatus.SC_OK == statusCode || HttpStatus.SC_NO_CONTENT == statusCode) { @@ -261,7 +261,7 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl { } SSLConnectionSocketFactory connectionSocketFactory = new SSLConnectionSocketFactory(sslContext, - new DefaultHostnameVerifier()); + new DefaultHostnameVerifier()); httpClientBuilder.setSSLSocketFactory(connectionSocketFactory); }