查询子商户下指定商户管理记录
更新时间:2025.05.21通过该接口可查询子商户下指定的商户管理记录
接口说明
支持商户:【普通服务商】
请求方式:【GET】/v3/mch-manage/mch-manage-records/{manage_record_id}
请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点
【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看
请求参数
Header HTTP头参数
Authorization 必填 string
请参考签名认证生成认证信息
Accept 必填 string
请设置为application/json
path 路径参数
manage_record_id 必填 string(128)
【商户管理记录ID】 商户管理记录的主键,唯一定义此资源的标识,可从“分页查询子商户名下的商户管理记录”接口的返回参数获取
query 查询参数
sub_mchid 必填 string(32)
【子商户号】 由服务商为子商户进件后获取,具体请参考服务商模式开发必要参数说明。
请求示例
需配合微信支付工具库 WXPayUtility 使用,请参考 Java
1package com.java.demo; 2 3import com.java.utils.WXPayUtility; // 引用微信支付工具库,参考:https://pay.weixin.qq.com/doc/v3/partner/4014985777 4 5import com.google.gson.annotations.SerializedName; 6import com.google.gson.annotations.Expose; 7import okhttp3.MediaType; 8import okhttp3.OkHttpClient; 9import okhttp3.Request; 10import okhttp3.RequestBody; 11import okhttp3.Response; 12 13import java.io.IOException; 14import java.io.UncheckedIOException; 15import java.security.PrivateKey; 16import java.security.PublicKey; 17import java.util.ArrayList; 18import java.util.HashMap; 19import java.util.List; 20import java.util.Map; 21 22/** 23 * 查询子商户下指定商户管理记录 24 */ 25public class QueryMchManageRecord { 26 private static String HOST = "https://api.mch.weixin.qq.com"; 27 private static String METHOD = "GET"; 28 private static String PATH = "/v3/mch-manage/mch-manage-records/{manage_record_id}"; 29 30 public static void main(String[] args) { 31 // TODO: 请准备商户开发必要参数,参考:https://pay.weixin.qq.com/doc/v3/partner/4013080340 32 QueryMchManageRecord client = new QueryMchManageRecord( 33 "19xxxxxxxx", // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/partner/4013080340 34 "1DDE55AD98Exxxxxxxxxx", // 商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/partner/4013058924 35 "/path/to/apiclient_key.pem", // 商户API证书私钥文件路径,本地文件路径 36 "PUB_KEY_ID_xxxxxxxxxxxxx", // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/partner/4013038589 37 "/path/to/wxp_pub.pem" // 微信支付公钥文件路径,本地文件路径 38 ); 39 40 QueryMchManageRecordRequest request = new QueryMchManageRecordRequest(); 41 request.manageRecordId = "M1210999900435123451697535102441"; 42 request.subMchid = "123000110"; 43 try { 44 MchManageRecordsEntity response = client.run(request); 45 46 // TODO: 请求成功,继续业务逻辑 47 System.out.println(response); 48 } catch (WXPayUtility.ApiException e) { 49 // TODO: 请求失败,根据状态码执行不同的逻辑 50 e.printStackTrace(); 51 } 52 } 53 54 public MchManageRecordsEntity run(QueryMchManageRecordRequest request) { 55 String uri = PATH; 56 uri = uri.replace("{manage_record_id}", WXPayUtility.urlEncode(request.manageRecordId)); 57 Map<String, Object> args = new HashMap<>(); 58 args.put("sub_mchid", request.subMchid); 59 uri = uri + "?" + WXPayUtility.urlEncode(args); 60 61 Request.Builder reqBuilder = new Request.Builder().url(HOST + uri); 62 reqBuilder.addHeader("Accept", "application/json"); 63 reqBuilder.addHeader("Wechatpay-Serial", wechatPayPublicKeyId); 64 reqBuilder.addHeader("Authorization", WXPayUtility.buildAuthorization(mchid, certificateSerialNo, privateKey, METHOD, uri, null)); 65 reqBuilder.method(METHOD, null); 66 Request httpRequest = reqBuilder.build(); 67 68 // 发送HTTP请求 69 OkHttpClient client = new OkHttpClient.Builder().build(); 70 try (Response httpResponse = client.newCall(httpRequest).execute()) { 71 String respBody = WXPayUtility.extractBody(httpResponse); 72 if (httpResponse.code() >= 200 && httpResponse.code() < 300) { 73 // 2XX 成功,验证应答签名 74 WXPayUtility.validateResponse(this.wechatPayPublicKeyId, this.wechatPayPublicKey, 75 httpResponse.headers(), respBody); 76 77 // 从HTTP应答报文构建返回数据 78 return WXPayUtility.fromJson(respBody, MchManageRecordsEntity.class); 79 } else { 80 throw new WXPayUtility.ApiException(httpResponse.code(), respBody, httpResponse.headers()); 81 } 82 } catch (IOException e) { 83 throw new UncheckedIOException("Sending request to " + uri + " failed.", e); 84 } 85 } 86 87 private final String mchid; 88 private final String certificateSerialNo; 89 private final PrivateKey privateKey; 90 private final String wechatPayPublicKeyId; 91 private final PublicKey wechatPayPublicKey; 92 93 public QueryMchManageRecord(String mchid, String certificateSerialNo, String privateKeyFilePath, String wechatPayPublicKeyId, String wechatPayPublicKeyFilePath) { 94 this.mchid = mchid; 95 this.certificateSerialNo = certificateSerialNo; 96 this.privateKey = WXPayUtility.loadPrivateKeyFromPath(privateKeyFilePath); 97 this.wechatPayPublicKeyId = wechatPayPublicKeyId; 98 this.wechatPayPublicKey = WXPayUtility.loadPublicKeyFromPath(wechatPayPublicKeyFilePath); 99 } 100 101 public static class QueryMchManageRecordRequest { 102 @SerializedName("sub_mchid") 103 @Expose(serialize = false) 104 public String subMchid; 105 106 @SerializedName("manage_record_id") 107 @Expose(serialize = false) 108 public String manageRecordId; 109 } 110 111 public static class MchManageRecordsEntity { 112 @SerializedName("sub_mchid") 113 public String subMchid; 114 115 @SerializedName("manage_record_id") 116 public String manageRecordId; 117 118 @SerializedName("manage_record_type") 119 public EnumTypeMchManageRecordType manageRecordType; 120 121 @SerializedName("manage_time") 122 public String manageTime; 123 124 @SerializedName("manage_reason") 125 public String manageReason; 126 127 @SerializedName("limit_ability") 128 public String limitAbility; 129 130 @SerializedName("recover_way") 131 public EnumTypeManageRecoverWay recoverWay; 132 133 @SerializedName("allow_submit") 134 public Boolean allowSubmit; 135 136 @SerializedName("forbid_submit_reason") 137 public String forbidSubmitReason; 138 139 @SerializedName("submit_start_time") 140 public String submitStartTime; 141 142 @SerializedName("submit_end_time") 143 public String submitEndTime; 144 145 @SerializedName("requested_item_info") 146 public String requestedItemInfo; 147 148 @SerializedName("manage_record_state") 149 public EnumTypeMchManageRecordState manageRecordState; 150 151 @SerializedName("recover_time") 152 public String recoverTime; 153 154 @SerializedName("recover_reason") 155 public EnumTypeRecoverReason recoverReason; 156 157 @SerializedName("reject_reason") 158 public String rejectReason; 159 160 @SerializedName("approve_time") 161 public String approveTime; 162 } 163 164 public enum EnumTypeMchManageRecordType { 165 @SerializedName("FUNCTIONAL_LIMIT_RECORD") 166 FUNCTIONAL_LIMIT_RECORD, 167 @SerializedName("INVESTIGATE_RECORD") 168 INVESTIGATE_RECORD 169 } 170 171 public enum EnumTypeManageRecoverWay { 172 @SerializedName("SUBMIT_INFORMATION") 173 SUBMIT_INFORMATION, 174 @SerializedName("VERIFY_INACTIVE_MERCHANT_IDENTITY") 175 VERIFY_INACTIVE_MERCHANT_IDENTITY, 176 @SerializedName("MODIFY_ORGANIZATION_INFORMATION") 177 MODIFY_ORGANIZATION_INFORMATION, 178 @SerializedName("OTHER") 179 OTHER 180 } 181 182 public enum EnumTypeMchManageRecordState { 183 @SerializedName("PENDING") 184 PENDING, 185 @SerializedName("SUBMITTED") 186 SUBMITTED, 187 @SerializedName("EXPIRED") 188 EXPIRED, 189 @SerializedName("UNDER_REVIEW") 190 UNDER_REVIEW, 191 @SerializedName("RECOVERED") 192 RECOVERED, 193 @SerializedName("REJECTED") 194 REJECTED 195 } 196 197 public enum EnumTypeRecoverReason { 198 @SerializedName("MERCHANT_SUBMIT_RECOVER") 199 MERCHANT_SUBMIT_RECOVER, 200 @SerializedName("MERCHANT_OPERATE_RECOVER") 201 MERCHANT_OPERATE_RECOVER, 202 @SerializedName("PLATFORM_AUTO_RECOVER") 203 PLATFORM_AUTO_RECOVER 204 } 205 206} 207
需配合微信支付工具库 wxpay_utility 使用,请参考 Go
1package main 2 3import ( 4 "demo/wxpay_utility" // 引用微信支付工具库,参考 https://pay.weixin.qq.com/doc/v3/partner/4015119446 5 "encoding/json" 6 "fmt" 7 "net/http" 8 "net/url" 9 "strings" 10) 11 12func main() { 13 // TODO: 请准备商户开发必要参数,参考:https://pay.weixin.qq.com/doc/v3/partner/4013080340 14 config, err := wxpay_utility.CreateMchConfig( 15 "19xxxxxxxx", // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/partner/4013080340 16 "1DDE55AD98Exxxxxxxxxx", // 商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/partner/4013058924 17 "/path/to/apiclient_key.pem", // 商户API证书私钥文件路径,本地文件路径 18 "PUB_KEY_ID_xxxxxxxxxxxxx", // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/partner/4013038589 19 "/path/to/wxp_pub.pem", // 微信支付公钥文件路径,本地文件路径 20 ) 21 if err != nil { 22 fmt.Println(err) 23 return 24 } 25 26 request := &QueryMchManageRecordRequest{ 27 SubMchid: wxpay_utility.String("123000110"), 28 ManageRecordId: wxpay_utility.String("M1210999900435123451697535102441"), 29 } 30 31 response, err := QueryMchManageRecord(config, request) 32 if err != nil { 33 fmt.Printf("请求失败: %+v\n", err) 34 // TODO: 请求失败,根据状态码执行不同的处理 35 return 36 } 37 38 // TODO: 请求成功,继续业务逻辑 39 fmt.Printf("请求成功: %+v\n", response) 40} 41 42func QueryMchManageRecord(config *wxpay_utility.MchConfig, request *QueryMchManageRecordRequest) (response *MchManageRecordsEntity, err error) { 43 const ( 44 host = "https://api.mch.weixin.qq.com" 45 method = "GET" 46 path = "/v3/mch-manage/mch-manage-records/{manage_record_id}" 47 ) 48 49 reqUrl, err := url.Parse(fmt.Sprintf("%s%s", host, path)) 50 if err != nil { 51 return nil, err 52 } 53 reqUrl.Path = strings.Replace(reqUrl.Path, "{manage_record_id}", url.PathEscape(*request.ManageRecordId), -1) 54 query := reqUrl.Query() 55 query.Add("sub_mchid", *request.SubMchid) 56 reqUrl.RawQuery = query.Encode() 57 httpRequest, err := http.NewRequest(method, reqUrl.String(), nil) 58 if err != nil { 59 return nil, err 60 } 61 httpRequest.Header.Set("Accept", "application/json") 62 httpRequest.Header.Set("Wechatpay-Serial", config.WechatPayPublicKeyId()) 63 authorization, err := wxpay_utility.BuildAuthorization(config.MchId(), config.CertificateSerialNo(), config.PrivateKey(), method, reqUrl.RequestURI(), nil) 64 if err != nil { 65 return nil, err 66 } 67 httpRequest.Header.Set("Authorization", authorization) 68 69 client := &http.Client{} 70 httpResponse, err := client.Do(httpRequest) 71 if err != nil { 72 return nil, err 73 } 74 75 respBody, err := wxpay_utility.ExtractResponseBody(httpResponse) 76 if err != nil { 77 return nil, err 78 } 79 80 if httpResponse.StatusCode >= 200 && httpResponse.StatusCode < 300 { 81 // 2XX 成功,验证应答签名 82 err = wxpay_utility.ValidateResponse( 83 config.WechatPayPublicKeyId(), 84 config.WechatPayPublicKey(), 85 &httpResponse.Header, 86 respBody, 87 ) 88 if err != nil { 89 return nil, err 90 } 91 92 if err := json.Unmarshal(respBody, response); err != nil { 93 return nil, err 94 } 95 96 return response, nil 97 } else { 98 return nil, wxpay_utility.NewApiException( 99 httpResponse.StatusCode, 100 httpResponse.Header, 101 respBody, 102 ) 103 } 104} 105 106type QueryMchManageRecordRequest struct { 107 SubMchid *string `json:"sub_mchid,omitempty"` 108 ManageRecordId *string `json:"manage_record_id,omitempty"` 109} 110 111func (o *QueryMchManageRecordRequest) MarshalJSON() ([]byte, error) { 112 type Alias QueryMchManageRecordRequest 113 a := &struct { 114 SubMchid *string `json:"sub_mchid,omitempty"` 115 ManageRecordId *string `json:"manage_record_id,omitempty"` 116 *Alias 117 }{ 118 // 序列化时移除非 Body 字段 119 SubMchid: nil, 120 ManageRecordId: nil, 121 Alias: (*Alias)(o), 122 } 123 return json.Marshal(a) 124} 125 126type MchManageRecordsEntity struct { 127 SubMchid *string `json:"sub_mchid,omitempty"` 128 ManageRecordId *string `json:"manage_record_id,omitempty"` 129 ManageRecordType *EnumTypeMchManageRecordType `json:"manage_record_type,omitempty"` 130 ManageTime *string `json:"manage_time,omitempty"` 131 ManageReason *string `json:"manage_reason,omitempty"` 132 LimitAbility *string `json:"limit_ability,omitempty"` 133 RecoverWay *EnumTypeManageRecoverWay `json:"recover_way,omitempty"` 134 AllowSubmit *bool `json:"allow_submit,omitempty"` 135 ForbidSubmitReason *string `json:"forbid_submit_reason,omitempty"` 136 SubmitStartTime *string `json:"submit_start_time,omitempty"` 137 SubmitEndTime *string `json:"submit_end_time,omitempty"` 138 RequestedItemInfo *string `json:"requested_item_info,omitempty"` 139 ManageRecordState *EnumTypeMchManageRecordState `json:"manage_record_state,omitempty"` 140 RecoverTime *string `json:"recover_time,omitempty"` 141 RecoverReason *EnumTypeRecoverReason `json:"recover_reason,omitempty"` 142 RejectReason *string `json:"reject_reason,omitempty"` 143 ApproveTime *string `json:"approve_time,omitempty"` 144} 145 146type EnumTypeMchManageRecordType string 147 148func (e EnumTypeMchManageRecordType) Ptr() *EnumTypeMchManageRecordType { 149 return &e 150} 151 152const ( 153 ENUMTYPEMCHMANAGERECORDTYPE_FUNCTIONAL_LIMIT_RECORD EnumTypeMchManageRecordType = "FUNCTIONAL_LIMIT_RECORD" 154 ENUMTYPEMCHMANAGERECORDTYPE_INVESTIGATE_RECORD EnumTypeMchManageRecordType = "INVESTIGATE_RECORD" 155) 156 157type EnumTypeManageRecoverWay string 158 159func (e EnumTypeManageRecoverWay) Ptr() *EnumTypeManageRecoverWay { 160 return &e 161} 162 163const ( 164 ENUMTYPEMANAGERECOVERWAY_SUBMIT_INFORMATION EnumTypeManageRecoverWay = "SUBMIT_INFORMATION" 165 ENUMTYPEMANAGERECOVERWAY_VERIFY_INACTIVE_MERCHANT_IDENTITY EnumTypeManageRecoverWay = "VERIFY_INACTIVE_MERCHANT_IDENTITY" 166 ENUMTYPEMANAGERECOVERWAY_MODIFY_ORGANIZATION_INFORMATION EnumTypeManageRecoverWay = "MODIFY_ORGANIZATION_INFORMATION" 167 ENUMTYPEMANAGERECOVERWAY_OTHER EnumTypeManageRecoverWay = "OTHER" 168) 169 170type EnumTypeMchManageRecordState string 171 172func (e EnumTypeMchManageRecordState) Ptr() *EnumTypeMchManageRecordState { 173 return &e 174} 175 176const ( 177 ENUMTYPEMCHMANAGERECORDSTATE_PENDING EnumTypeMchManageRecordState = "PENDING" 178 ENUMTYPEMCHMANAGERECORDSTATE_SUBMITTED EnumTypeMchManageRecordState = "SUBMITTED" 179 ENUMTYPEMCHMANAGERECORDSTATE_EXPIRED EnumTypeMchManageRecordState = "EXPIRED" 180 ENUMTYPEMCHMANAGERECORDSTATE_UNDER_REVIEW EnumTypeMchManageRecordState = "UNDER_REVIEW" 181 ENUMTYPEMCHMANAGERECORDSTATE_RECOVERED EnumTypeMchManageRecordState = "RECOVERED" 182 ENUMTYPEMCHMANAGERECORDSTATE_REJECTED EnumTypeMchManageRecordState = "REJECTED" 183) 184 185type EnumTypeRecoverReason string 186 187func (e EnumTypeRecoverReason) Ptr() *EnumTypeRecoverReason { 188 return &e 189} 190 191const ( 192 ENUMTYPERECOVERREASON_MERCHANT_SUBMIT_RECOVER EnumTypeRecoverReason = "MERCHANT_SUBMIT_RECOVER" 193 ENUMTYPERECOVERREASON_MERCHANT_OPERATE_RECOVER EnumTypeRecoverReason = "MERCHANT_OPERATE_RECOVER" 194 ENUMTYPERECOVERREASON_PLATFORM_AUTO_RECOVER EnumTypeRecoverReason = "PLATFORM_AUTO_RECOVER" 195) 196
GET
1curl -X GET \ 2 https://api.mch.weixin.qq.com/v3/mch-manage/mch-manage-records/M1210999900435123451697535102441?sub_mchid=123000110 \ 3 -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \ 4 -H "Accept: application/json" 5
应答参数
200 OK
sub_mchid 选填 string(32)
【子商户号】 查询成功时会返回,子商户的商户号
manage_record_id 选填 string(64)
【商户管理记录ID】 查询成功时会返回,商户管理记录的主键,唯一定义此资源的标识
manage_record_type 选填 string
【商户管理记录类型】 查询成功时会返回,商户管理记录的类型
可选取值
FUNCTIONAL_LIMIT_RECORD
: 功能限制记录,表示商户已被处置,需整改或提交资料INVESTIGATE_RECORD
: 功能限制记录,表示商户未被处置,但需提交资料
manage_time 选填 string(64)
【管控时间】 查询成功时会返回,遵循rfc3339标准格式:yyyy-MM-DDThh:mm:ss+TIMEZONE
manage_reason 选填 string(1024)
【管控原因】 查询成功时会返回,描述商户被发起管控或者要求提交资料的原因
limit_ability 选填 string(1024)
【限制功能】 查询成功时会返回,描述商户被限制了哪些功能
recover_way 选填 string
【解除管控方式】 查询成功时会返回,解除管控的方式
可选取值
SUBMIT_INFORMATION
: 按要求提交资料,审核通过后解脱VERIFY_INACTIVE_MERCHANT_IDENTITY
: 发起不活跃商户身份核实后解脱MODIFY_ORGANIZATION_INFORMATION
: 按要求修改主体资料后解脱OTHER
: 其他方式
allow_submit 选填 boolean
【是否允许提交资料】 查询成功时会返回,本条商户管理记录是否允许子商户提交资料
forbid_submit_reason 选填 string(1024)
【禁止提交资料原因】 查询成功时会返回,不允许商户提交资料的原因
submit_start_time 选填 string(64)
【可提交资料开始时间】 查询成功时会返回,当不限制提交开始时间时,返回“不限制”,否则返回遵循rfc3339标准格式:yyyy-MM-DDThh:mm:ss+TIMEZONE
submit_end_time 选填 string(64)
【可提交资料结束时间】 查询成功时会返回,当不限制提交结束时间时,返回“不限制”,否则返回遵循rfc3339标准格式:yyyy-MM-DDThh:mm:ss+TIMEZONE
requested_item_info 选填 string(32000000)
【要求提交的资料】 查询成功时会返回,要求商户提交的资料及其规则,JSON序列化后的字符串,详见资料格式说明文档。
manage_record_state 选填 string
【商户管理记录状态】 查询成功时会返回,商户管理记录的状态
可选取值
PENDING
: 待处理,需要商户按要求处理SUBMITTED
: 已提交要求的材料EXPIRED
: 超时未处理,已过期UNDER_REVIEW
: 资料已提交,审核中RECOVERED
: 管控已解脱REJECTED
: 审核驳回
recover_time 选填 string(64)
【解除管控时间】 已解除管控的记录会返回,遵循rfc3339标准格式:yyyy-MM-DDThh:mm:ss+TIMEZONE
recover_reason 选填 string
【解除管控原因】 查询成功时会返回,商户管理记录解除管控的原因
可选取值
MERCHANT_SUBMIT_RECOVER
: 商户提交申诉资料后恢复权限MERCHANT_OPERATE_RECOVER
: 商户按要求执行操作(例如修改主体资料)后恢复PLATFORM_AUTO_RECOVER
: 平台自动发起恢复
reject_reason 选填 string(1024)
【申诉驳回原因】 查询成功时会返回,申诉审核驳回的原因
approve_time 选填 string(64)
【审核时间】 已完成申诉审核审核的记录会返回,遵循rfc3339标准格式:yyyy-MM-DDThh:mm:ss+TIMEZONE
应答示例
200 OK
1{ 2 "sub_mchid" : "123000110", 3 "manage_record_id" : "M1210999900435123451697535102441", 4 "manage_record_type" : "FUNCTIONAL_LIMIT_RECORD", 5 "manage_time" : "2018-06-08T10:34:56+08:00", 6 "manage_reason" : "涉嫌信用卡套现", 7 "limit_ability" : "关闭支付权限,关闭体现权限", 8 "recover_way" : "SUBMIT_INFORMATION", 9 "allow_submit" : true, 10 "forbid_submit_reason" : "应平台管理要求,此单据不支持申诉", 11 "submit_start_time" : "2018-06-08T10:34:56+08:00", 12 "submit_end_time" : "2018-06-08T10:34:56+08:00", 13 "requested_item_info" : "{ \t\"record_fields\": [{ \t\t\t\"item_id\": \"100004\", \t\t\t\"field_name\": \"legal_person_card_id\", \t\t\t\"name\": \"企业法人身份证号\", \t\t\t\"type\": 1, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请输入企业法人身份证号\", \t\t\t\"tooltip\": \"需要填写完整身份证号\", \t\t\t\"required\": 1, \t\t\t\"string_check_rule\": { \t\t\t\t\"min_string_length\": 1, \t\t\t\t\"max_string_length\": 50, \t\t\t\t\"validator\": \"idcard\" \t\t\t}, \t\t\t\"need_encrypt\": true \t\t}, \t\t{ \t\t\t\"item_id\": \"100005\", \t\t\t\"field_name\": \"legal_person_cert_type\", \t\t\t\"name\": \"企业法人证件类型\", \t\t\t\"type\": 4, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请选择证件类型\", \t\t\t\"tooltip\": \"\", \t\t\t\"required\": 0, \t\t\t\"enum_check_rule\": { \t\t\t\t\"min_list_length\": 1, \t\t\t\t\"max_list_length\": 1, \t\t\t\t\"enum_values\": [\"大陆居民身份证\", \"港澳台通行证\"] \t\t\t}, \t\t\t\"need_encrypt\": false \t\t}, \t\t{ \t\t\t\"item_id\": \"100006\", \t\t\t\"field_name\": \"inland_cert_card_image\", \t\t\t\"name\": \"大陆居民身份证照片\", \t\t\t\"type\": 2, \t\t\t\"tips\": \"请上传图片\", \t\t\t\"placeholder\": \"\", \t\t\t\"tooltip\": \"需要正面和反面两张照片\", \t\t\t\"required\": 1, \t\t\t\"need_encrypt\": false, \t\t\t\"file_check_rule\": { \t\t\t\t\"min_list_length\": 2, \t\t\t\t\"max_list_length\": 2, \t\t\t\t\"enum_file_exts\": [\"png\", \"jpg\", \"jpeg\"], \t\t\t\t\"max_file_size\": 5 \t\t\t}, \t\t\t\"relations\": [{ \t\t\t\t\"source_key\": 100005, \t\t\t\t\"source_value\": \"大陆居民身份证\" \t\t\t}] \t\t} \t] }", 14 "manage_record_state" : "PENDING", 15 "recover_time" : "2018-06-08T10:34:56+08:00", 16 "recover_reason" : "MERCHANT_SUBMIT_RECOVER", 17 "reject_reason" : "身份证信息遮挡,请上传清晰的身份证图片", 18 "approve_time" : "2018-06-08T10:34:56+08:00" 19} 20
错误码
公共错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | PARAM_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
400 | INVALID_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 接口规则 |
401 | SIGN_ERROR | 验证不通过 | 请参阅 签名常见问题 |
500 | SYSTEM_ERROR | 系统异常,请稍后重试 | 请稍后重试 |
业务错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | INVALID_REQUEST | 此接口仅对部分合作伙伴开放,当前商户号未开放 | 等待微信支付向当前商户号开放此能力 |