# 申请解约

#### 功能介绍

可以调用该接口解约已存在的华为支付签约关系。

#### 使用场景

在有签约关系的前提下，开发者的应用/元服务可以通过该接口完成某笔签约的解约操作，解约成功后华为支付会回调解约结果给开发者服务器。

#### 接口原型

*   **承载协议：** HTTPS POST
    
*   **接口方向：** 开发者服务器 -> 华为支付服务器
    
*   **接口URL：** 
    
*   **数据格式：**
    
    请求消息：Content-Type: application/json
    
    响应消息：Content-Type: application/json
    

#### 请求参数

**Request Header**

| 参数 | 是否必选 | 参数类型 | 描述 |
| --- | --- | --- | --- |
| Content-Type | 是 | String | 取值为：application/json; charset=UTF-8 |
| PayMercAuth | 是 | String | 取值为：PayMercAuth的JSON字符串 |

**Request Body**

| 参数 | 是否必选 | 类型 | 说明 |
| --- | --- | --- | --- |
| contractId | 否 | String | 委托代扣协议ID，签约成功后回调接口中返回。与mercContractCode参数必选其一，同时传递则以contractId为准。 |
| mercContractCode | 否 | String | 商户签约协议号。与contractId参数必选其一，同时传递则以contractId为准。 |
| spMercNo | 是 | String | 平台类商户/服务商商户号。最大长度12。 |
| subMercNo | 是 | String | 平台子商户/特约商户商户号。最大长度12。 |
| callbackUrl | 否 | String | 回调通知地址，通知URL必须为外网环境可直接访问的URL，要求为https地址。具体要求参考通知回调接口说明。最大长度为512。 |

#### 请求示例

```
POST /api/v1/partner/contract/unsign HTTP/1.1
Content-Type: application/json;charset=UTF-8
PayMercAuth: {"callerId":"10132120***","traceId":"202305151442062977847","time":1684132926969,"authId":"120291744647139***","headerSign":"BpOBa8o+gJnKG+vHVI7u8gz7SWuCR/ZWHvhcY5a+l1C65Jl/4EECjXDdooYZoBXgpRlnzgV*******************8E+75YpdApZ/hz5MJuTp/gsuqJFgNcAAMR0dOXqKJV27fPLsl22UWFoqcG/V9OyGWdFHEwM9ZgYZo6QUDkJCtAfqUSYE2Z6uImuufUvJnLJlRqtnqpifK8h6cFIcj87bW+OU+svQhuaaM1gLDenNWKv=","bodySign":"llCc0hjneLGAr7JgEs7mTOR1cf5odyjyuKR9A8k5pH3z/xT*******************a1OqSllyTXFiHmqYaDZH0+H0hxrEid4UvYtsmmkzy95l+1ZiCv+1S3W42T9jYJWEc5C5Wz"}
Accept: application/json
{
  "mercContractCode": "2024020316555432***",
  "spMercNo": "10132120***",
  "subMercNo": "10193600***"
}
```

#### 响应参数

**Response Header**

| 参数 | 是否必选 | 参数类型 | 描述 |
| --- | --- | --- | --- |
| Content-Type | 是 | String | 取值为：application/json; charset=UTF-8 |

**Response Body**

| 参数 | 是否必选 | 参数类型 | 描述 |
| --- | --- | --- | --- |
| resultCode | 是 | String | 结果码，"000000"表示成功，其他表示失败。 |
| resultDesc | 是 | String | 结果描述。 |
| subCode | 否 | String | 业务错误码。 |
| subDesc | 否 | String | 业务错误描述信息。 |
| sign | 是 | String | 签名值。用于开发者对响应报文进行防篡改验证。 |
| spMercNo | 否 | String | 平台类商户/服务商商户号。最大长度12。 |
| subMercNo | 否 | String | 平台子商户/特约商户商户号。最大长度12。 |
| mercContractCode | 否 | String | 商户签约协议号。开发者请求签约时传入的签约协议号，由商户生成，商户需保证字段唯一性。最大长度64。 |
| planId | 否 | String | 协议模板ID。该模板ID是商户在向华为支付提交代扣权限申请时由华为支付生成。 |

#### 响应示例

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
  "mercContractCode": "2024020316555432***",
  "resultCode": "000000",
  "sign": "MEUCIQCFNGKlqpBiHHyYEBocW********************jwIgalH26U5TNQjEn6h433eRZI9A07c9NiF91jeGRXNUtc0=",
  "planId": "1***",
  "resultDesc": "success",
  "spMercNo": "10132120***"
}
```

#### 错误码

**resultCode**非400000的错误码请看公共错误码说明。

| 返回码 | 错误码 | 错误描述 | 解决方案 |
| --- | --- | --- | --- |
| 400000 | UNKNOW_ERROR | 服务暂不可用，请稍后重试 | 稍后重试。 |
| 400000 | CUST_NOT_EXIST | 用户不存在或已销户 | 请切换签约号重试。 |
| 400000 | INVALID_ARGUMENTS | 参数不合法 | 请检查入参是否正确。 |
| 400000 | INVALID_MERCNO | 无效商户号 | 请检查商户号是否正确。 |