分页查询子商户名下的商户管理记录
更新时间:2025.05.21通过该接口可用于分页查询子商户名下的商户管理记录
接口说明
支持商户:【普通服务商】
请求方式:【GET】/v3/mch-manage/mch-manage-records/sub-mchid/{sub_mchid}
请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点
【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看
请求参数
Header HTTP头参数
Authorization 必填 string
请参考签名认证生成认证信息
Accept 必填 string
请设置为application/json
path 路径参数
sub_mchid 必填 string(32)
【子商户号】 由服务商为子商户进件后获取,具体请参考服务商模式开发必要参数说明。
query 查询参数
limit 必填 integer
【最大资源条数】 该次请求可返回的最大资源条数,不超过10
offset 选填 integer
【请求资源起始位置】 该次请求资源的起始位置
manage_record_type 必填 string
【商户管理记录类型】 要查询的商户管理记录类型
可选取值
FUNCTIONAL_LIMIT_RECORD: 功能限制记录,表示商户已被处置,需整改或提交资料INVESTIGATE_RECORD: 调证记录,表示商户未被处置,但需提交资料
manage_record_state 选填 string
【商户管理记录状态】 要查询的商户管理记录状态,为空时表示不筛选状态
可选取值
PENDING: 待处理,需要商户按要求处理SUBMITTED: 已提交要求的材料EXPIRED: 超时未处理,已过期UNDER_REVIEW: 资料已提交,审核中RECOVERED: 管控已解脱REJECTED: 审核驳回
请求示例
GET
1curl -X GET \ 2 https://api.mch.weixin.qq.com/v3/mch-manage/mch-manage-records/sub-mchid/123000110?limit=5&offset=10&manage_record_type=FUNCTIONAL_LIMIT_RECORD&manage_record_state=PENDING \ 3 -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \ 4 -H "Accept: application/json" 5
需配合微信支付工具库 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 ListMchManageRecord { 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/sub-mchid/{sub_mchid}"; 29 30 public static void main(String[] args) { 31 // TODO: 请准备商户开发必要参数,参考:https://pay.weixin.qq.com/doc/v3/partner/4013080340 32 ListMchManageRecord client = new ListMchManageRecord( 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 ListMchManageRecordRequest request = new ListMchManageRecordRequest(); 41 request.subMchid = "123000110"; 42 request.limit = 5L; 43 request.offset = 10L; 44 request.manageRecordType = EnumTypeMchManageRecordType.FUNCTIONAL_LIMIT_RECORD; 45 request.manageRecordState = EnumTypeMchManageRecordState.PENDING; 46 try { 47 ListMchManageRecordsResponse response = client.run(request); 48 // TODO: 请求成功,继续业务逻辑 49 System.out.println(response); 50 } catch (WXPayUtility.ApiException e) { 51 // TODO: 请求失败,根据状态码执行不同的逻辑 52 e.printStackTrace(); 53 } 54 } 55 56 public ListMchManageRecordsResponse run(ListMchManageRecordRequest request) { 57 String uri = PATH; 58 uri = uri.replace("{sub_mchid}", WXPayUtility.urlEncode(request.subMchid)); 59 Map<String, Object> args = new HashMap<>(); 60 args.put("limit", request.limit); 61 args.put("offset", request.offset); 62 args.put("manage_record_type", request.manageRecordType); 63 args.put("manage_record_state", request.manageRecordState); 64 String queryString = WXPayUtility.urlEncode(args); 65 if (!queryString.isEmpty()) { 66 uri = uri + "?" + queryString; 67 } 68 69 Request.Builder reqBuilder = new Request.Builder().url(HOST + uri); 70 reqBuilder.addHeader("Accept", "application/json"); 71 reqBuilder.addHeader("Wechatpay-Serial", wechatPayPublicKeyId); 72 reqBuilder.addHeader("Authorization", WXPayUtility.buildAuthorization(mchid, certificateSerialNo, privateKey, METHOD, uri, null)); 73 reqBuilder.method(METHOD, null); 74 Request httpRequest = reqBuilder.build(); 75 76 // 发送HTTP请求 77 OkHttpClient client = new OkHttpClient.Builder().build(); 78 try (Response httpResponse = client.newCall(httpRequest).execute()) { 79 String respBody = WXPayUtility.extractBody(httpResponse); 80 if (httpResponse.code() >= 200 && httpResponse.code() < 300) { 81 // 2XX 成功,验证应答签名 82 WXPayUtility.validateResponse(this.wechatPayPublicKeyId, this.wechatPayPublicKey, 83 httpResponse.headers(), respBody); 84 85 // 从HTTP应答报文构建返回数据 86 return WXPayUtility.fromJson(respBody, ListMchManageRecordsResponse.class); 87 } else { 88 throw new WXPayUtility.ApiException(httpResponse.code(), respBody, httpResponse.headers()); 89 } 90 } catch (IOException e) { 91 throw new UncheckedIOException("Sending request to " + uri + " failed.", e); 92 } 93 } 94 95 private final String mchid; 96 private final String certificateSerialNo; 97 private final PrivateKey privateKey; 98 private final String wechatPayPublicKeyId; 99 private final PublicKey wechatPayPublicKey; 100 101 public ListMchManageRecord(String mchid, String certificateSerialNo, String privateKeyFilePath, String wechatPayPublicKeyId, String wechatPayPublicKeyFilePath) { 102 this.mchid = mchid; 103 this.certificateSerialNo = certificateSerialNo; 104 this.privateKey = WXPayUtility.loadPrivateKeyFromPath(privateKeyFilePath); 105 this.wechatPayPublicKeyId = wechatPayPublicKeyId; 106 this.wechatPayPublicKey = WXPayUtility.loadPublicKeyFromPath(wechatPayPublicKeyFilePath); 107 } 108 109 public static class ListMchManageRecordRequest { 110 @SerializedName("sub_mchid") 111 @Expose(serialize = false) 112 public String subMchid; 113 114 @SerializedName("limit") 115 @Expose(serialize = false) 116 public Long limit; 117 118 @SerializedName("offset") 119 @Expose(serialize = false) 120 public Long offset; 121 122 @SerializedName("manage_record_type") 123 @Expose(serialize = false) 124 public EnumTypeMchManageRecordType manageRecordType; 125 126 @SerializedName("manage_record_state") 127 @Expose(serialize = false) 128 public EnumTypeMchManageRecordState manageRecordState; 129 } 130 131 public static class ListMchManageRecordsResponse { 132 @SerializedName("data") 133 public List<MchManageRecordsEntity> data; 134 135 @SerializedName("offset") 136 public Long offset; 137 138 @SerializedName("limit") 139 public Long limit; 140 141 @SerializedName("total_count") 142 public Long totalCount; 143 } 144 145 public enum EnumTypeMchManageRecordType { 146 @SerializedName("FUNCTIONAL_LIMIT_RECORD") 147 FUNCTIONAL_LIMIT_RECORD, 148 @SerializedName("INVESTIGATE_RECORD") 149 INVESTIGATE_RECORD 150 } 151 152 public enum EnumTypeMchManageRecordState { 153 @SerializedName("PENDING") 154 PENDING, 155 @SerializedName("SUBMITTED") 156 SUBMITTED, 157 @SerializedName("EXPIRED") 158 EXPIRED, 159 @SerializedName("UNDER_REVIEW") 160 UNDER_REVIEW, 161 @SerializedName("RECOVERED") 162 RECOVERED, 163 @SerializedName("REJECTED") 164 REJECTED 165 } 166 167 public static class MchManageRecordsEntity { 168 @SerializedName("sub_mchid") 169 public String subMchid; 170 171 @SerializedName("manage_record_id") 172 public String manageRecordId; 173 174 @SerializedName("manage_record_type") 175 public EnumTypeMchManageRecordType manageRecordType; 176 177 @SerializedName("manage_time") 178 public String manageTime; 179 180 @SerializedName("manage_reason") 181 public String manageReason; 182 183 @SerializedName("limit_ability") 184 public String limitAbility; 185 186 @SerializedName("recover_way") 187 public EnumTypeManageRecoverWay recoverWay; 188 189 @SerializedName("allow_submit") 190 public Boolean allowSubmit; 191 192 @SerializedName("forbid_submit_reason") 193 public String forbidSubmitReason; 194 195 @SerializedName("submit_start_time") 196 public String submitStartTime; 197 198 @SerializedName("submit_end_time") 199 public String submitEndTime; 200 201 @SerializedName("requested_item_info") 202 public String requestedItemInfo; 203 204 @SerializedName("manage_record_state") 205 public EnumTypeMchManageRecordState manageRecordState; 206 207 @SerializedName("recover_time") 208 public String recoverTime; 209 210 @SerializedName("recover_reason") 211 public EnumTypeRecoverReason recoverReason; 212 213 @SerializedName("reject_reason") 214 public String rejectReason; 215 216 @SerializedName("approve_time") 217 public String approveTime; 218 } 219 220 public enum EnumTypeManageRecoverWay { 221 @SerializedName("SUBMIT_INFORMATION") 222 SUBMIT_INFORMATION, 223 @SerializedName("VERIFY_INACTIVE_MERCHANT_IDENTITY") 224 VERIFY_INACTIVE_MERCHANT_IDENTITY, 225 @SerializedName("MODIFY_ORGANIZATION_INFORMATION") 226 MODIFY_ORGANIZATION_INFORMATION, 227 @SerializedName("OTHER") 228 OTHER 229 } 230 231 public enum EnumTypeRecoverReason { 232 @SerializedName("MERCHANT_SUBMIT_RECOVER") 233 MERCHANT_SUBMIT_RECOVER, 234 @SerializedName("MERCHANT_OPERATE_RECOVER") 235 MERCHANT_OPERATE_RECOVER, 236 @SerializedName("PLATFORM_AUTO_RECOVER") 237 PLATFORM_AUTO_RECOVER 238 } 239 240} 241
需配合微信支付工具库 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 := &ListMchManageRecordRequest{ 27 SubMchid: wxpay_utility.String("123000110"), 28 Limit: wxpay_utility.Int64(5), 29 Offset: wxpay_utility.Int64(10), 30 ManageRecordType: ENUMTYPEMCHMANAGERECORDTYPE_FUNCTIONAL_LIMIT_RECORD.Ptr(), 31 ManageRecordState: ENUMTYPEMCHMANAGERECORDSTATE_PENDING.Ptr(), 32 } 33 34 response, err := ListMchManageRecord(config, request) 35 if err != nil { 36 fmt.Printf("请求失败: %+v\n", err) 37 // TODO: 请求失败,根据状态码执行不同的处理 38 return 39 } 40 41 // TODO: 请求成功,继续业务逻辑 42 fmt.Printf("请求成功: %+v\n", response) 43} 44 45func ListMchManageRecord(config *wxpay_utility.MchConfig, request *ListMchManageRecordRequest) (response *ListMchManageRecordsResponse, err error) { 46 const ( 47 host = "https://api.mch.weixin.qq.com" 48 method = "GET" 49 path = "/v3/mch-manage/mch-manage-records/sub-mchid/{sub_mchid}" 50 ) 51 52 reqUrl, err := url.Parse(fmt.Sprintf("%s%s", host, path)) 53 if err != nil { 54 return nil, err 55 } 56 reqUrl.Path = strings.Replace(reqUrl.Path, "{sub_mchid}", url.PathEscape(*request.SubMchid), -1) 57 query := reqUrl.Query() 58 if request.Limit != nil { 59 query.Add("limit", fmt.Sprintf("%v", *request.Limit)) 60 } 61 if request.Offset != nil { 62 query.Add("offset", fmt.Sprintf("%v", *request.Offset)) 63 } 64 if request.ManageRecordType != nil { 65 query.Add("manage_record_type", fmt.Sprintf("%v", *request.ManageRecordType)) 66 } 67 if request.ManageRecordState != nil { 68 query.Add("manage_record_state", fmt.Sprintf("%v", *request.ManageRecordState)) 69 } 70 reqUrl.RawQuery = query.Encode() 71 httpRequest, err := http.NewRequest(method, reqUrl.String(), nil) 72 if err != nil { 73 return nil, err 74 } 75 httpRequest.Header.Set("Accept", "application/json") 76 httpRequest.Header.Set("Wechatpay-Serial", config.WechatPayPublicKeyId()) 77 authorization, err := wxpay_utility.BuildAuthorization(config.MchId(), config.CertificateSerialNo(), config.PrivateKey(), method, reqUrl.RequestURI(), nil) 78 if err != nil { 79 return nil, err 80 } 81 httpRequest.Header.Set("Authorization", authorization) 82 83 client := &http.Client{} 84 httpResponse, err := client.Do(httpRequest) 85 if err != nil { 86 return nil, err 87 } 88 respBody, err := wxpay_utility.ExtractResponseBody(httpResponse) 89 if err != nil { 90 return nil, err 91 } 92 if httpResponse.StatusCode >= 200 && httpResponse.StatusCode < 300 { 93 // 2XX 成功,验证应答签名 94 err = wxpay_utility.ValidateResponse( 95 config.WechatPayPublicKeyId(), 96 config.WechatPayPublicKey(), 97 &httpResponse.Header, 98 respBody, 99 ) 100 if err != nil { 101 return nil, err 102 } 103 response := &ListMchManageRecordsResponse{} 104 if err := json.Unmarshal(respBody, response); err != nil { 105 return nil, err 106 } 107 108 return response, nil 109 } else { 110 return nil, wxpay_utility.NewApiException( 111 httpResponse.StatusCode, 112 httpResponse.Header, 113 respBody, 114 ) 115 } 116} 117 118type ListMchManageRecordRequest struct { 119 SubMchid *string `json:"sub_mchid,omitempty"` 120 Limit *int64 `json:"limit,omitempty"` 121 Offset *int64 `json:"offset,omitempty"` 122 ManageRecordType *EnumTypeMchManageRecordType `json:"manage_record_type,omitempty"` 123 ManageRecordState *EnumTypeMchManageRecordState `json:"manage_record_state,omitempty"` 124} 125 126func (o *ListMchManageRecordRequest) MarshalJSON() ([]byte, error) { 127 type Alias ListMchManageRecordRequest 128 a := &struct { 129 SubMchid *string `json:"sub_mchid,omitempty"` 130 Limit *int64 `json:"limit,omitempty"` 131 Offset *int64 `json:"offset,omitempty"` 132 ManageRecordType *EnumTypeMchManageRecordType `json:"manage_record_type,omitempty"` 133 ManageRecordState *EnumTypeMchManageRecordState `json:"manage_record_state,omitempty"` 134 *Alias 135 }{ 136 // 序列化时移除非 Body 字段 137 SubMchid: nil, 138 Limit: nil, 139 Offset: nil, 140 ManageRecordType: nil, 141 ManageRecordState: nil, 142 Alias: (*Alias)(o), 143 } 144 return json.Marshal(a) 145} 146 147type ListMchManageRecordsResponse struct { 148 Data []MchManageRecordsEntity `json:"data,omitempty"` 149 Offset *int64 `json:"offset,omitempty"` 150 Limit *int64 `json:"limit,omitempty"` 151 TotalCount *int64 `json:"total_count,omitempty"` 152} 153 154type EnumTypeMchManageRecordType string 155 156func (e EnumTypeMchManageRecordType) Ptr() *EnumTypeMchManageRecordType { 157 return &e 158} 159 160const ( 161 ENUMTYPEMCHMANAGERECORDTYPE_FUNCTIONAL_LIMIT_RECORD EnumTypeMchManageRecordType = "FUNCTIONAL_LIMIT_RECORD" 162 ENUMTYPEMCHMANAGERECORDTYPE_INVESTIGATE_RECORD EnumTypeMchManageRecordType = "INVESTIGATE_RECORD" 163) 164 165type EnumTypeMchManageRecordState string 166 167func (e EnumTypeMchManageRecordState) Ptr() *EnumTypeMchManageRecordState { 168 return &e 169} 170 171const ( 172 ENUMTYPEMCHMANAGERECORDSTATE_PENDING EnumTypeMchManageRecordState = "PENDING" 173 ENUMTYPEMCHMANAGERECORDSTATE_SUBMITTED EnumTypeMchManageRecordState = "SUBMITTED" 174 ENUMTYPEMCHMANAGERECORDSTATE_EXPIRED EnumTypeMchManageRecordState = "EXPIRED" 175 ENUMTYPEMCHMANAGERECORDSTATE_UNDER_REVIEW EnumTypeMchManageRecordState = "UNDER_REVIEW" 176 ENUMTYPEMCHMANAGERECORDSTATE_RECOVERED EnumTypeMchManageRecordState = "RECOVERED" 177 ENUMTYPEMCHMANAGERECORDSTATE_REJECTED EnumTypeMchManageRecordState = "REJECTED" 178) 179 180type MchManageRecordsEntity struct { 181 SubMchid *string `json:"sub_mchid,omitempty"` 182 ManageRecordId *string `json:"manage_record_id,omitempty"` 183 ManageRecordType *EnumTypeMchManageRecordType `json:"manage_record_type,omitempty"` 184 ManageTime *string `json:"manage_time,omitempty"` 185 ManageReason *string `json:"manage_reason,omitempty"` 186 LimitAbility *string `json:"limit_ability,omitempty"` 187 RecoverWay *EnumTypeManageRecoverWay `json:"recover_way,omitempty"` 188 AllowSubmit *bool `json:"allow_submit,omitempty"` 189 ForbidSubmitReason *string `json:"forbid_submit_reason,omitempty"` 190 SubmitStartTime *string `json:"submit_start_time,omitempty"` 191 SubmitEndTime *string `json:"submit_end_time,omitempty"` 192 RequestedItemInfo *string `json:"requested_item_info,omitempty"` 193 ManageRecordState *EnumTypeMchManageRecordState `json:"manage_record_state,omitempty"` 194 RecoverTime *string `json:"recover_time,omitempty"` 195 RecoverReason *EnumTypeRecoverReason `json:"recover_reason,omitempty"` 196 RejectReason *string `json:"reject_reason,omitempty"` 197 ApproveTime *string `json:"approve_time,omitempty"` 198} 199 200type EnumTypeManageRecoverWay string 201 202func (e EnumTypeManageRecoverWay) Ptr() *EnumTypeManageRecoverWay { 203 return &e 204} 205 206const ( 207 ENUMTYPEMANAGERECOVERWAY_SUBMIT_INFORMATION EnumTypeManageRecoverWay = "SUBMIT_INFORMATION" 208 ENUMTYPEMANAGERECOVERWAY_VERIFY_INACTIVE_MERCHANT_IDENTITY EnumTypeManageRecoverWay = "VERIFY_INACTIVE_MERCHANT_IDENTITY" 209 ENUMTYPEMANAGERECOVERWAY_MODIFY_ORGANIZATION_INFORMATION EnumTypeManageRecoverWay = "MODIFY_ORGANIZATION_INFORMATION" 210 ENUMTYPEMANAGERECOVERWAY_OTHER EnumTypeManageRecoverWay = "OTHER" 211) 212 213type EnumTypeRecoverReason string 214 215func (e EnumTypeRecoverReason) Ptr() *EnumTypeRecoverReason { 216 return &e 217} 218 219const ( 220 ENUMTYPERECOVERREASON_MERCHANT_SUBMIT_RECOVER EnumTypeRecoverReason = "MERCHANT_SUBMIT_RECOVER" 221 ENUMTYPERECOVERREASON_MERCHANT_OPERATE_RECOVER EnumTypeRecoverReason = "MERCHANT_OPERATE_RECOVER" 222 ENUMTYPERECOVERREASON_PLATFORM_AUTO_RECOVER EnumTypeRecoverReason = "PLATFORM_AUTO_RECOVER" 223) 224
应答参数
折叠全部参数
200 OK
data 选填 array[object]
【商户管理记录详情】 查询成功时返回,商户管理记录的详情,详见内部字段
| 属性 | |
sub_mchid 选填 string(32) 【子商户号】 查询成功时会返回,子商户的商户号 manage_record_id 选填 string(64) 【商户管理记录ID】 查询成功时会返回,商户管理记录的主键,唯一定义此资源的标识 manage_record_type 选填 string 【商户管理记录类型】 查询成功时会返回,商户管理记录的类型 可选取值
manage_time 选填 string(64) 【管控时间】 查询成功时会返回,遵循rfc3339标准格式:yyyy-MM-DDThh:mm:ss+TIMEZONE manage_reason 选填 string(1024) 【管控原因】 查询成功时会返回,描述商户被发起管控或者要求提交资料的原因 limit_ability 选填 string(1024) 【限制功能】 查询成功时会返回,描述商户被限制了哪些功能 recover_way 选填 string 【解除管控方式】 查询成功时会返回,解除管控的方式 可选取值
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(4000000) 【要求提交的资料】 查询成功时会返回,要求商户提交的资料及其规则,JSON序列化后的字符串,详见资料格式说明文档。 manage_record_state 选填 string 【商户管理记录状态】 查询成功时会返回,商户管理记录的状态 可选取值
recover_time 选填 string(64) 【解除管控时间】 已解除管控的记录会返回,遵循rfc3339标准格式:yyyy-MM-DDThh:mm:ss+TIMEZONE recover_reason 选填 string 【解除管控原因】 查询成功时会返回,商户管理记录解除管控的原因 可选取值
reject_reason 选填 string(1024) 【申诉驳回原因】 查询成功时会返回,申诉审核驳回的原因 approve_time 选填 string(64) 【审核时间】 已完成申诉审核审核的记录会返回,遵循rfc3339标准格式:yyyy-MM-DDThh:mm:ss+TIMEZONE |
offset 选填 integer
【请求资源起始位置】 该次请求资源的起始位置,查询结果不为空时返回
limit 选填 integer
【最大资源条数】 该次请求可返回的最大资源条数,查询结果不为空时返回
total_count 选填 integer
【资源总条数】 可选返回,资源总条数,当offset=0或者当前查询结果为空时返回总条数
应答示例
200 OK
1{ 2 "data" : [ 3 { 4 "sub_mchid" : "123000110", 5 "manage_record_id" : "M1210999900435123451697535102441", 6 "manage_record_type" : "FUNCTIONAL_LIMIT_RECORD", 7 "manage_time" : "2018-06-08T10:34:56+08:00", 8 "manage_reason" : "涉嫌信用卡套现", 9 "limit_ability" : "关闭支付权限,关闭体现权限", 10 "recover_way" : "SUBMIT_INFORMATION", 11 "allow_submit" : true, 12 "forbid_submit_reason" : "应平台管理要求,此单据不支持申诉", 13 "submit_start_time" : "2018-06-08T10:34:56+08:00", 14 "submit_end_time" : "2018-06-08T10:34:56+08:00", 15 "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] }", 16 "manage_record_state" : "PENDING", 17 "recover_time" : "2018-06-08T10:34:56+08:00", 18 "recover_reason" : "MERCHANT_SUBMIT_RECOVER", 19 "reject_reason" : "身份证信息遮挡,请上传清晰的身份证图片", 20 "approve_time" : "2018-06-08T10:34:56+08:00" 21 } 22 ], 23 "offset" : 10, 24 "limit" : 5, 25 "total_count" : 1234 26} 27
错误码
以下是本接口返回的错误码列表。详细错误码规则,请参考微信支付接口规则-错误码和错误提示

