# <font >取消赠送免费活动</font>
## 描述

> 通过此方法，运营商可以取消已创建免费回合奖励活动。但已经参与的玩家，将继续完成奖励，不会受到影响。

> 请求方式（ Host-> BeSoft）:post 

> 编码方式：application/x-www-form-urlencoded

> Besoft响应的数据格式是: application/json

## 网址
```
{besoftapi}/api/bonus/cancel
```

## 哈希计算
哈希代码通过以下步骤来计算:
从请求 POST参数获取所有参数(预期哈希)并附加到字符串:
- 1.按字母表顺序对所有参数排序。
- 2.在 key1=value1&key2=value2 中附加它们(如果值不为空)
- 3.附加密钥，即: 
  ```
  key1=value1&key2=value&hashkey=3m@K#9zPxL$%Yb*8C    
  ```
- 4.使用 MD5 计算哈希,转为全部大写。
- 5.用"hash"为名字附加到参数中,代替hashkey字段,最终参数为:
    ```
    key1=value1&key2=value&hash=3E8ABC6949A0A0CFF9110CF1128FBE25
    ```
- 6.如果平台与哈希参数对比失败。发送错误代码1008。


## 请求参数

 |      名称      |    类型     | 必要 |                        描述                        |
 | :------------: | :---------: | :--: | :------------------------------------------------: |
 |   extension1   |   string    |  Y   |                      代理账号                      |
 |      cert      |   string    |  Y   |                      安全代码                      |
 |   bonuscode    | String(128) |  Y   |            运营商系统中的奖励唯一标识符            |
 |      hash      |   string    |  Y   |                  请求的哈希代码                  |


## 示例
- URL:
    - http://127.0.0.1:8000/api/bonus/cancel
- HTTP Method
    -   POST
- 表单数据
    > Content-Type: application/x-www-form-urlencoded
    ``` 
    extension1: adminweb
    cert:       v8VMKKzlPpD0te4rX99Hgefs3PQrBFWJKiuUqg6Y
    bonuscode:  aaabbbccc
    hash:       3ECE2322AA1952D0A818DD1F09493B60
    ```
	
	
## 返回结果

 | 名称 |  类型  |   描述   |
 | :--: | :----: | :------: |
 | ret  |  int   | 状态代码 |
 | info | string | 状态说明 |


 ### 成功的结果

```
{
	"ret": -1,
	"info": "ok"
}
```


 ### 失败的结果

```
{
	"ret": 1008,
	"info": "param erro"
}
```