# 积分商城 ## 文档说明 本文档为游戏接入积分商城模块提供说明。GTarcade官方平台提供积分兑换服务,用户可使用积分兑换游戏资源礼包。 积分来源通常为充值赠送、游戏在线时长奖励和重大节日福利活动赠送。 ## 前端接入 > 打开积分商城页面 **通信方式:** 游戏向微端请求(TCP) **加密方式:** AES **数据格式:** JSON **参数内容:** | 参数名 | 必选 | 类型 | 说明 | | :-------- | :--- | :--- | :-------------------------------------------- | | gta_id | 是 | Str | 每次启动 gta 的唯一 ID | | client_id | 是 | Str | 每一个游戏分配的通信 ID | | msg_id | 是 | Str | 本地通信的消息 ID,用于分辨每次通信接口,写死6 |
## 后端接入 ### 接入前准备 > 1、联系微端后端 获取相关key 找微端后端研发(@奇然) > 2、配置发货接口
### 业务相关 1. 商品发货接口 **接口功能** > 商品发货接口 **微端主动请求** > [游戏方提供接口]() **HTTP请求方式** > POST(application/x-www-form-urlencoded) **特别说明** > 需要对订单ID(order_id)进行唯一验证 **请求参数** > | 参数 | 必选 | 类型 | 示例 | 说明 | > | :--------- | :---- | :----- | :----------------------------------------------------------- | ------------------ | > | action | ture | string | gtarcade-send-gift | 请求来源 | > | game_id | true | string | 346 | 游戏id | > | server_id | true | string | 2625310001 | 服务器id | > | op_id | true | string | 590 | op_id | > | role_id | true | string | 18269717137390 | 角色id | > | account | true | string | qiangwang@yoozoo.com | 用户id | > | order_id | true | string | PUS1A580111280529823 | 订单号 | > | goods_list | true | string | [{"type":"1","goods_id":"23","num":"100","extra":""},{"type":"2","goods_id":"22","num":"200","extra":""}] | 商品集合json | > | timestamp | true | string | 1603425123 | 时间戳(unix时间戳) | > | ext | false | string | {"title": "积分商城兑换礼包", "content": "您兑换了XXX礼包"} | 扩展字段json | > | sign | true | string | c81e728d9d4c2f636f067f89cc14862c | sign算法见下方实例 | **返回字段** > | 返回字段 | 字段类型 | 实例 | 说明 | > | :------- | :------- | :------ | :----------------------------------------------------------- | > | status | int | 0 | 返回结果状态。0:正常(订单重复也算为正常);1:失败 -1 异常 -2 签名失败。 | > | msg | string | success | 发货原因 | > | data | array | | order_id,account,game_id,server_id,op_id,role_id |
**接口示例** ````json { "status": 0, "msg": "发货成功", "data": { "order_id":"PUS1A580111280529823", "game_id":"346", "server_id":"2625310001", "account":"qiangwang@yoozoo.com", "op_id":"590", "role_id":"18269717137390" } } ````
**签名算法** >1.先对需要的参数(除sign外)按key升序排序; >2.拼作成如(a=1&b=2&c=3&d=4)的格式; >3.并在尾部接上双方约定的密钥key(a=1&b=2&c=3&d=4key); >4.最后对上述字符串进行md5加密。
**PHP实例** ````php private function getSign($data, $key) { ksort($data); $items = array(); foreach ($data as $key => $value) { $items[] = $key . "=" . $value; } return md5(join("&", $items) . $key); } ````