# 充值模块
本文档为游戏方接入微端充值模块提供指引,接入成功后,玩家可在微端内直接购买游戏礼包和道具。
## 接入前准备
**(一)游戏接入方需提前配置好充值档位和商品信息:**
1. 配置官网充值档位请联系 陈祺旸
2. 配置微端充值档位请联系 李敏
Notice:测试期间可以只配1-2个,但是在充值调试和正式上线前,请务必配置齐所有商品信息。
**(二)开通充值调试白名单**
接入微端充值,需要游戏方自行调试充值功能。请调试之前预先申请白名单,具体流程请参考[充值调试](/zh/docs/GT/test/充值沙盒.md)
**(三)充值返利接入**
充值返利接入流程与普通充值相同,但相关配置表请参考《充值返利配置表》。
## 后端接入
### 支付提交
**简要描述:**
- 提交订单
**请求URL:**
- `https://pay.gtarcade.com/client/order/submit`
- qa: `http://qapay.gtarcade.com/client/order/submit`
**请求方式:**
- post
**请求头:**
- Origin: client.gtarcade.com
- Cookie: Gta用户登录cookie 例:
```
uuid=ijEgtHdQ(0Y*5Nc5nTrp(rM^3GGJX5@R; device_id=518ca4ced82cd1e15015fc6821f85905; _ga=GA1.2.20783729.1562150546; uuid_do=Gh%reV@)EOm%i37IXdYC)*SnpBOJ4Zf!; lang=en-us; refererUrl=; gdpr_version=v0.0.1; testCookie=yes; ; _csrf=553b526ae8e5729f98a9bad53ffaa4630bbaad1df5353d02ca7738f87dfae9f7a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%2248Z4ApXzOBjFTdy2Nw3inR0NQTIfS5ZS%22%3B%7D; uuzu_getGdprInfo=true; PHPSESSID=ht7ms9egdgbtv4k42gju53hi13; login_email=paytest%40gtarcade.com; uuzu_UNICKNAME=paytest; uuzu_account=cGF5dGVzdEBndGFyY2FkZS5jb20%3D; show_email_tips=1; uuzu_UAUTH=Vj1dbFFvUmZQOFZfD1NXNFR3BzAAVQtOVz0CdlIjBzoCZFxhADVSPFNlVEAKR1Y0DT4EEFoBDX8HNFRDB0ECP1Y1XUpRR1J4UFxWNw9CV2tUWQcHADgLaVdiAmJSZgdpAiNcYgA7Um9TZ1RqCmRWPA05BBBaEQ0wBzRUQQdVAitWNV1MUTxSPFAjVmkPZVdzVHcHCwBhC2xXZwI5UjgHCwJsXHwAbVJMU1JURgp7Vk8NHgQwWi8NSwcqVFcHNgIfViZdMFE8UidQaVZkD3dXdFRcBzgAYgtkV2kCPlIJByACbFxhADVSPFNLVFMKVFYyDRUEE1oODXwHHlR8B1YCY1YcXXpRPFI8UCNWZA9nV2NUbAchAGMLd1c9AjNSEQcSAjBcaAAXUldTfFRjCkRWQw00BDNaEA1DBylUXwcxAhdWOl1XUVJSNFBvVmcPNlcwVD4HcgB9C2JXcwIjUiEHOwJ3XGgAbVJPU0JUXgo0VkwNMAQaWmYNSwcEVEgHagIfVjtdT1FqUltQUVZMDzRXWVRXBwUAOQtNV2oCOFI8Bw4CQVxNAGNSTFNSVEUKaFZODR0EAlogDUgHOlRuB24CHlYFXW5RMFJPUEJWXA83V01UUgdpADALJVdhAjRSPwcwAjhcKgA0UnRTdFRmCnVWaA01BDlaag1IBzpUUwc2AhxWO11MUXZSTFBEVjgPOQ%3D%3D
```
**参数:**
| 参数名 | 必选 | 类型 | 说明 |
| :---------- | :--- | :--- | :-------------------------------------------------------- |
| money | 是 | str | 商品价格 |
| account | 是 | str | 用户account,默认cookie,fb一定注意存入fb账号 |
| manner_id | 是 | str | manner_id, 充值页面选择的支付方式 |
| goods_id | 是 | str | goods_id, 商品ID |
| game_id | 是 | str | game_id,游戏ID |
| server_id | 是 | str | server_id,游戏服ID |
| role_id | 是 | str | role_id,角色ID,手游必传 |
| currency | 是 | str | 货币标识,默认是’USD’ |
| op_id | 是 | str | 运营商ID,默认是’590’ |
| manner_name | 否 | str | 充值方式名称,加快速度 |
| goods_name | 否 | str | 商品名称,加快速度 |
| game_name | 否 | str | 游戏名称,加快速度 |
| server_name | 否 | str | 游戏服名称,加快速度 |
| extra | 否 | obj | 兼容字段,流程中前置访问info接口返回extra字段,请原样传回 |
| role_name | 否 | str | 游戏角色名称,加快速度 |
| refer | 否 | int | g币打点来源 |
| 参数名 | 必选 | 类型 | 说明 |
| :---------------- | :--- | :--- | :------------------------------------ |
| —-extra兼容部分—- | | | extra可能包含下列参数,请原样传回 |
| orderId | 否 | str | sdk订单号, 兼容老版本,新版不允许使用 |
| gift_id | 否 | str | 礼包ID, 兼容老版本,新版不允许使用 |
| activity_id | 否 | str | 活动ID, 兼容老版本,新版不允许使用 |
| effectiveTime | 否 | str | 有效时间, 兼容老版本,新版不允许使用 |
| pack_name | 否 | str | 礼包名, 兼容老版本,新版不允许使用 |
| extra | 否 | str | 游戏透传参数,由游戏设定 |
请求参数示例:
```
{ "money": 1.99, "account": "b0@live.cn", "goods_id": 532, "game_id": 346, "server_id": "2625310001", "currency": "USD", "op_id": 590, "goods_name": "Silver Privileges", "goods_icon": "https://upload.gtarcade.com/user_pic/2017/06/item_1498446974_7098.png", "goods_amount": 100, "game_name": "LOA-Paradise Land", "server_name": "HKT - 579", "role_name": "Renata Cote", "manner_id": 39, "manner_name": "PayPal"}
```
**返回参数说明**
| 参数名 | 类型 | 说明 |
| :----- | :----- | :------------------------------- |
| status | string | 请求状态码 0:success, 其它为错误 |
| msg | string | 请求结果描述 |
| data | array | 返回数据. url 支付地址 |
### 支付查询
**简要描述:**
- 手游直冲查询/手页游直购礼包查询
**请求URL:**
- `https://pay.gtarcade.com/client/order/third-info`
- qa: `http://qapay.gtarcade.com/client/order/third-info`
**请求方式:**
- post
**请求头:**
- Origin: client.gtarcade.com
- Cookie: Gta用户登录cookie 例:
```
uuid=ijEgtHdQ(0Y*5Nc5nTrp(rM^3GGJX5@R; device_id=518ca4ced82cd1e15015fc6821f85905; _ga=GA1.2.20783729.1562150546; uuid_do=Gh%reV@)EOm%i37IXdYC)*SnpBOJ4Zf!; lang=en-us; refererUrl=; gdpr_version=v0.0.1; testCookie=yes; ; _csrf=553b526ae8e5729f98a9bad53ffaa4630bbaad1df5353d02ca7738f87dfae9f7a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%2248Z4ApXzOBjFTdy2Nw3inR0NQTIfS5ZS%22%3B%7D; uuzu_getGdprInfo=true; PHPSESSID=ht7ms9egdgbtv4k42gju53hi13; login_email=paytest%40gtarcade.com; uuzu_UNICKNAME=paytest; uuzu_account=cGF5dGVzdEBndGFyY2FkZS5jb20%3D; show_email_tips=1; uuzu_UAUTH=Vj1dbFFvUmZQOFZfD1NXNFR3BzAAVQtOVz0CdlIjBzoCZFxhADVSPFNlVEAKR1Y0DT4EEFoBDX8HNFRDB0ECP1Y1XUpRR1J4UFxWNw9CV2tUWQcHADgLaVdiAmJSZgdpAiNcYgA7Um9TZ1RqCmRWPA05BBBaEQ0wBzRUQQdVAitWNV1MUTxSPFAjVmkPZVdzVHcHCwBhC2xXZwI5UjgHCwJsXHwAbVJMU1JURgp7Vk8NHgQwWi8NSwcqVFcHNgIfViZdMFE8UidQaVZkD3dXdFRcBzgAYgtkV2kCPlIJByACbFxhADVSPFNLVFMKVFYyDRUEE1oODXwHHlR8B1YCY1YcXXpRPFI8UCNWZA9nV2NUbAchAGMLd1c9AjNSEQcSAjBcaAAXUldTfFRjCkRWQw00BDNaEA1DBylUXwcxAhdWOl1XUVJSNFBvVmcPNlcwVD4HcgB9C2JXcwIjUiEHOwJ3XGgAbVJPU0JUXgo0VkwNMAQaWmYNSwcEVEgHagIfVjtdT1FqUltQUVZMDzRXWVRXBwUAOQtNV2oCOFI8Bw4CQVxNAGNSTFNSVEUKaFZODR0EAlogDUgHOlRuB24CHlYFXW5RMFJPUEJWXA83V01UUgdpADALJVdhAjRSPwcwAjhcKgA0UnRTdFRmCnVWaA01BDlaag1IBzpUUwc2AhxWO11MUXZSTFBEVjgPOQ%3D%3D
```
**参数:**
| 参数名 | 必选 | 类型 | 说明 |
| :----------- | :--- | :--- | :-------------------------------- |
| money | 是 | str | 商品价格 |
| account | 是 | str | 用户account,fb一定注意存入fb账号 |
| goods_id | 是 | str | goods_id, 商品ID |
| game_id | 是 | str | game_id,游戏ID |
| server_id | 是 | str | server_id,游戏服ID |
| role_id | 是 | str | role_id,角色ID,手游必传 |
| currency | 是 | str | 货币标识,默认是’USD’ |
| op_id | 是 | str | 运营商ID,默认是’590’ |
| goods_name | 否 | str | 商品名称,加快速度 |
| goods_icon | 否 | str | 商品图标,加快速度 |
| goods_amount | 否 | str | 商品数量,加快速度 |
| game_name | 否 | str | 游戏名称,加快速度 |
| server_name | 否 | str | 游戏服名称,加快速度 |
| role_name | 否 | str | 游戏角色名称,加快速度 |
| extra | 否 | str | 其他信息,不实际处理 |
| goods_info | 否 | str | 商品信息 |
| 参数名 | 必选 | 类型 | 说明 |
| :------------ | :--- | :--- | :------------------------------------ |
| —-兼容部分—- | | | |
| orderId | 否 | str | sdk订单号, 兼容老版本,新版不允许使用 |
| gift_id | 否 | str | 礼包ID, 兼容老版本,新版不允许使用 |
| activity_id | 否 | str | 活动ID, 兼容老版本,新版不允许使用 |
| effectiveTime | 否 | str | 有效时间, 兼容老版本,新版不允许使用 |
| pack_name | 否 | str | 礼包名, 兼容老版本,新版不允许使用 |
请求参数示例:
```
{ "op_id": "2728", "server_id": "1308440002", "game_id": "182", "goods_id": "diamond100", "money": "0.99", "goods_name": "Diamond100", "server_name": "huodong", "currency": "USD", "role_id": "563073476@qq.com", "account": "563073476@qq.com"}
```
**返回参数说明**
| 参数名 | 类型 | 说明 |
| :----- | :----- | :------------------------------- |
| status | string | 请求状态码 0:success, 其它为错误 |
| msg | string | 请求结果描述 |
| data | array | 返回数据. 订单详情 |
## 前端接入
微端平台为游戏方提供游戏内调起充值窗口接口,方便玩家在游戏内调起相应支付页面。
游戏方可选择两种调起充值窗口的方式:
方式一:游戏内放置充值按钮,玩家点击后打开微端充值页面,在充值页面内选择相应的礼包或道具,完成充值。
方式二:游戏内直接放置商品,玩家选择商品后,调起该商品的充值窗口,完成充值。
### 方式一:充值窗口
> 在游戏内,支持调起微端的充值窗口,让用户选择礼包并充值。
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
| 参数名 | 必选 | 类型 | 说明 |
| :-------- | :--- | :--- | :-------------------------------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID,用于分辨每次通信接口,写死3 |
| role_id | 否 | Str | 角色id |
### 方式二:礼包充值窗口
> 游戏方接入后,可在游戏内直接调起某一礼包的充值窗口。
**通信方式:** 游戏向微端请求(TCP)
**加密方式:** AES
**数据格式:** JSON
**参数内容:**
以下参数来自游戏方提供的参数配置表,由官方人员在后台做配置,请参考接入前准备一。
| 参数名 | 必选 | 类型 | 说明 |
| :---------- | :--- | :--- | :--------------------------------------------- |
| gta_id | 是 | Str | 每次启动 gta 的唯一 ID |
| client_id | 是 | Str | 每一个游戏分配的通信 ID |
| msg_id | 是 | Str | 本地通信的消息 ID,用于分辨每次通信接口,写死13 |
| game_id | 是 | Str | 游 戏 id |
| server_id | 是 | Str | 服务器 id |
| money | 是 | Str | 商品价格 |
| goods_id | 是 | Str | 商 品 ID |
| role_id | 是 | Str | 角 色 id |
| role_name | 否 | Str | 角色名称 |
| goods_name | 是 | Str | 商品名 |
| server_name | 是 | Str | 游戏服名称 |
| currency | 是 | Str | 货币标识,默认是’USD’ |
| extra | 是 | Str | 充值传递的扩展参数 |
| | | | |
| :--- | :--- | :--- | ---- |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |