# <font >获取玩家参与免费赠送活动信息</font>
## 描述

> 使用这种方法，娱乐场运营商系统可以从系统获得所有玩家能够参与的活动。

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

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

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

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

## 哈希计算
哈希代码通过以下步骤来计算:
从请求 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   | 运营商系统中的奖励唯一标识符 |
 |   userid   |    int64    |  Y   |            玩家ID            |
 |    hash    |   string    |  Y   |        请求的哈希代码        |


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

 |       名称        |  类型  |        描述        |
 | :---------------: | :----: | :----------------: |
 |      bonuses      | array  |      活动列表      |
 | bonuses.currency  | string |      货币符号      |
 | bonuses.bonuscode | string |     活动唯一ID     |
 |  bonuses.gidlist  | string | 能够参与的游戏列表 |
 |   bonuses.round   |  int   | 赠送的免费旋转次数 |
 |  bonuses.enddata  | int64  |    活动结束日期    |


 ### 成功的结果

```
{
	"bonuses": [
		{
			"currency": "USD",
			"bonuscode": "aaabbbccc",
			"gidlist": "be001,be022,be002,afa013,afa014,afa019",
			"round": 11,
			"enddata": 1752052214512
		}
	],
	"code": 0,
	"msg": "success"
}
```


 ### 失败的结果

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