# 服务端接入指南

---

## 充值回调接口

### 接口说明

版署审核SDK为虚拟充值，不走实际的充值渠道。由SDK服务端将充值信息回调到游戏方服务端，游戏方服务端应在5秒内返回充值结果，否则将判定订单为异常订单。

### 接口定义

- 接口名称：充值回调接口

用户充值时，回调的游戏方接口，由游戏方告知充值结果

- 接口协议：GET

- 接口开发：游戏方

### 请求参数
  | 字段      | 必填 | 数据类型       | 说明                                                                 |
  -----------|----- |--------------|---------------------------------------------------------------------|
  | orderid  | 是   | string       | SDK订单号，唯一，22位以内的字符串                                         |
  | p_type   | 是   |int           | 充值渠道id,约定版署审核的为1                                             |
  | uid      | 是   |unsigned int  | 版署审核用户uid                                                        |
  | money    | 是   |int           | 充值金额，单位：元                                                      |
  | gamemoney| 是   |int           | 获得游戏币数量，兑换标准由双方共同约定                                      |
  | secret   | 是   |string        | secret 为 SDK服务端自动分配的通信秘钥，仅可用于服务端，请勿将其写入客户端代码中  |
  | mark     | 是   |string        | 游戏方订单号，游戏发起充值时生成唯一标识来标注该笔充值的相关信息时               |
  | time     | 是   |int           | 接口请求时间时间戳                                                      |
#### sign签名说明
```php
// 按顺序拼接各字段的md5值，php 示例

$sign = md5($orderid.$p_type.$uid.$money.$gamemoney.$secret.$mark.$time)
```
### 返回结果
```php
{
    "status": 2,
    "code": null,
    "money": "1",
    "game_money": "10",
    "msg": "充值成功"
}
```
| 参数名       | 说明                            |
|-----------|-------------------------------|
| status    | 1：异常 <br> 2：成功 <br> 3：失败（将钱返还给用户） | 
| code      |    异常状态码，成功或失败为空。 <br> sign_error:请求串的md5验证码错误 <br> user_not_exist:用户账号不存在 <br> orderid_exist:订单已提交（提交订单号必须唯一) <br> money_error:充值金额或兑换游戏币数量错 <br> other_error:其他错误                           |
| money     | 用户充值的人民币金额，单位：元               |
| gamemoney | 用户实际兑换的游戏币的数量                 |
| msg       | 开发商自定义的内容（返回结果的说明等）           |