---
# System prepended metadata

title: v2 串接 api ＊參數對應

---

#  v2 串接 api ＊參數對應



## api 列表
| 傳送方式 | API | 是否必須  |
| -------- | -------- | -------- |
| 不拘    | [建立會員](#建立會員)              |  必要    |
| 不拘    | [查詢會員](#查詢會員)             |  必要    |
| 不拘    | [上線玩家列表](#上線玩家列表)            |  必要 | 
| 不拘    | [取得遊戲入口連結](#取得遊戲入口連結)         |  必要    |
| 不拘    | [轉入出點數](##轉入出點數)（上下分）      |  必要    |
| 不拘    | [轉點紀錄查詢](#轉點紀錄查詢)（上下分查詢）   |  必要    |
| 不拘    | [注單查詢 VersKey](#注單查詢VersKey)         |  必要    |
| 不拘    | [取得注單查詢明細 url](#取得注單查詢明細url)   |  必要    |
| 不拘    | [注單查詢 time](#注單查詢time)        |  必要    |
| 不拘    | [注單統計](#注單統計)        |  必要    |
| 不拘    | [踢人](#踢人)        |  必要    |


## api 接口說明 
以下 api 參數 加密方式 由各司自行 新增 調整
 
 ### 建立會員

#### 我司帶入
| 參數     | 型態       | 備註                 | 是否必須 |
| -------- | ---------- | -------------------- | -------- |
| 會員帳號     | str(4, 30)     | 可支援 @ _  特殊符號   | 必要|

#### 回傳

| 參數 | 型態 | 備註     | 是否必須 |
| ---- | ---- | -------- | -------- |
| 狀態 | -    | 成功與否 | 必要     |

**req**
```jsonld
curl -X "POST" "http://{_API_SERVER_}:8089/client/create" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "password": "123456",
  "agentID": "mega",
  "nickname": "{會員帳號}",
  "platform": "web",
  "house": "bthouse01",
  "subAgentID": "mega",
  "group": "cny_web_btmega_bthouse01_try",
  "currency": "cny",
  "description": "create from Mega",
  "agent": "btmega"
}'

```
**res**
```json
{
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lcklkIjoiY255X3dlYl9idG1lZ2FfYnRob3VzZTAxX3RyeV9fY29vbF9tYW5fIiwibmlja25hbWUiOiJfY29vbF9tYW5fIiwiaWF0IjoxNTk0OTU3MDQ1LCJleHAiOjE1OTUwNDM0NDV9.qScmWqIqmVkZcRZuSj9e7u6p2GP_5TBhzx8mS2m1igg",
  "nickname": "{會員帳號}",
  "created": 1594957045781,
  "date": "2020-07-17T11:37:25+08:00",
  "description": "create from Mega",
  "code": 200200
}
```
---


 ### 查詢會員

#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 會員帳號     | str(4, 30)     | 可支援 @ _  特殊符號   | 必要|

#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 會員上下線狀態     | -    | 會員上下   | 必要|
| 會員目前額度     | int    | 額度  | 必要|
| 狀態     | -    |成功與否|    | |

**req**

```jsonld
curl -X "POST" "http://{_API_SERVER_}/credit/get_balance" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}"
}'

```
**res**
```json
{
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "balance": 8800000,
  "currency": "CNY",
  "code": 200100
}
```

---


 ### 上線玩家列表

#### 我司帶入
 --
#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 會員帳號     | -    | 目前在線會員(最久兩秒刷新)   | 必要|

**req**
```jsonld
curl -X "POST" "http://{_API_SERVER_}/gamer/get_online/aboid" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "aboid": "cny_web_btmega_bthouse01_try_"
}'

```

**res**
```jsonld=
{
  "gamerList": [
    "cny_btplat_btagent_bthouse_try_{會員帳號1}",
    "cny_btplat_btagent_bthouse_try_{會員帳號2}",
    "cny_btplat_btagent_bthouse_try_{會員帳號3}",
    "cny_btplat_btagent_bthouse_try_{會員帳號4}",
    "cny_btplat_btagent_bthouse_try_{會員帳號5}"
  ],
  result_code: 200
}
```


#### 取得會員是否上線
**req**
```jsonld

curl -X "POST" "{_API_SERVER_}/gamer/online" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "gamerid": "cny_web_btmega_bthouse01_try_{會員帳號}"
}'
```

***res***
```json=
{
  "balance": 100000,
  "gamerid": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "currency": "CNY",
  "onLine": true,  // false = 不在線
  "resultCode": 1 // -1 = 帳號不存在
}
```
---


 ### 取得遊戲入口連結

#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 會員帳號     | str(4, 30)     | 可支援 @ _  特殊符號   | 必要|
| 遊戲代碼     | -     | 由貴司自訂   | 必要|


#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 跳轉遊戲連結     | -    | 進入遊戲連結   | 必要|


**1.先取得tonken**
req
```jsonld=
curl -X "POST" "http://{_API_SERVER_}/auth/login" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "password": "123456"
}'
```
res
```json
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lcklkIjoiY255X3dlYl9idG1lZ2FfYnRob3VzZTAxX3RyeV9fY29vbF9tYW5fIiwibmlja25hbWUiOiJfY29vbF9tYW5fIiwiaWF0IjoxNTk0OTczNzgzLCJleHAiOjE1OTUwNjAxODN9.VvUQmY1vEDmiIm76kzpO7PlJP3AocBOlEIRYYaM0RVg",
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "nickname": "{會員帳號}",
  "code": 200400
}
```

2.組合遊戲連結
*其他參數參照API文件
```
http://{_Game_Server_}/?tablekey=comLobby&key={取得的TOKEN}
```

---


### 轉入出點數

#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 會員帳號     | str(4, 30)     | 可支援 @ _  特殊符號   | 必要|
| 異動點數     | -     | 轉入轉出額度(上下分額度)   | 必要|
| 訂單 id     | -     | 遊戲方轉點流水號（唯一值）| 必要|
| 轉出轉入動作     | -     | 轉出或轉入動作| 必要|




#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 狀態    | -    | 訂單是否成功 必須詳細回應 三種狀態 <br>1.確認成功 <br>2.確認失敗 <br>3.不確定 （網路逾時 等因素) | 必要|
| 訂單 id     | -     | 遊戲方轉點流水號（唯一）| 必要|
| 異動前金額    | -     | 會員轉點前金額(上分前額度)| 必要|
| 異動後金額     | -     | 會員轉點後金額(下分前額度)| 必要|

req
// 1存入, 0提取
// 額度 10000 = 遊戲顯示 1.00
```jsonld
curl -X "POST" "http://{_API_SERVER_}/credit/agent_client_transfer" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "amount": "{額度}",
  "sn": "{訂單ID}",
  "operFlag": {0存入/1提取}, 
  "description": "Transfer from Mega",
  "currency": "cny",
  "agent": "btmega"
}'

```
＊所以交易會有紀錄(可查注單)
＊額度不足, 提取時不會扣負的, 會顯示transferState=0 失敗, 金額異動前後不變

res
```json 
{
  "sn": "{訂單ID}",
  "agent": "btmega",
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "operFlag": "{0:存入/1:提取}",
  "amount": "{額度}",
  "currency": "cny",
  "description": "Transfer from Mega",
  "created": 1594957365476,
  "date": "2020-07-17T11:42:45+08:00",
  "clientBalanceBefore": "{異動前金額}",
  "clientBalanceAfter": "{異動後金額}",
  "transferState": "{0:失敗 1:成功}",
  "code": 200100
}
```

---


### 轉點紀錄查詢

#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 訂單 id     | -     | 遊戲方轉點流水號（唯一）| 必要|




#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 狀態    | -    | 訂單是否成功 必須詳細回應 三種狀態 <br>1.確認成功 <br>2.確認失敗 <br>3.不確定 （網路逾時 等因素) | 必要|
| 訂單 id     | -     | 遊戲方轉點流水號（唯一）| 必要|
| 異動前金額    | -     | 該筆訂單會員轉點前金額| 必要|
| 異動後金額     | -     | 該筆訂單會員轉點後金額| 必要|

req
```jsonld
curl -X "POST" "http://{_API_SERVER_}/credit/query_transfer_state" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "sn": "{訂單 id}"
}'

```

res
```json
{
  "sn": "{訂單 id}",
  "agent": "btmega",
  "client": "cny_web_btmega_bthouse01_try_{會員帳號}",
  "operFlag": "{0:存入/1:提取}",
  "amount": "{額度}",
  "description": "Transfer from Mega",
  "created": 1594957365476,
  "date": "2020-07-17T11:42:45+08:00",
  "clientBalanceBefore": "{異動前金額}",
  "clientBalanceAfter": "{異動後金額}",
  "transferState": "{0:失敗 1:成功}",
  "code": 200100
}
```

---


### 注單查詢VersKey 
#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| VersKey  | -     | 所以 大於 VersKey 的注單都必須回傳| 必要|

ps. VersKey 為注單 版本號 若有新建或更新 都必須更新此 VersKey


#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 注單   | -     | 注單資訊| 必要|


*待確認

---


### 注單查詢time

#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 小於 time  | -     | 時間內得注單| 必要|
| 大於 time  | -     | 時間內得注單| 必要|
| 遊戲 id   | -      | 各遊戲唯一值| 非必要|


#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 注單   | -     | 注單資訊| 必要|

req
startTime, endTime以注單bettime為依據
```jsonld
curl -X "POST" "http://{_API_SERVER_}/log/get_betlog" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "endTime": "{小於 time}",
  "startTime": "{大於 time}",
  "agent": "btmega"
}'
```

**回傳時間區間內,所有注單紀錄,注單更新會以bettime更新.
res
```json
{
  "count": 1, //這次查詢回傳筆數
  "data": [
    {
      "paytime": "1594957402511",        //派彩時間
      "firstbettime": "1594957382961",   //第一次下注時間
      "starttime": "1594957377899",      //開始時間
      "endtime": "1594957402393",        //結束時間
      "betendtime": "1594957388899",     //最後下注時間
      "gametype": "s3",                  //遊戲簡碼
      "validbet": "0",                      //有效打碼量
      "roundid_balance_before": "2000000", //開局前額度
      "roundid_balance_after": "2000000",  //開局後額度
      "id": "19217470",                    //序號
      "betid": "60007171000000022509",     //投注ID
      "roundid": "840aa001200717114257s30010992fastBaccarat",//局號
      "bettime": "1594957402511", //最後注單更新時間
      "account": "cny_web_btmega_bthouse01_try_{會員帳號}", //會員帳號
      "performtype": "web",
      "game": "fastBaccarata001s301", //遊戲類型
      "betamount": "200000",          //下注金額
      "winoutamount": "200000",       //派彩金額
      "currency": "CNY",              //幣別
      "status": "done",            //注單狀態,done已派彩,
                                //cancel無效局,betting投注中,rewrite改單
      "gameplatformid": "2",
      "platform": "web",
      "house": "bthouse01",
      "agent": "btmega",
      "betdetail": {      
      //詳細注單/遊戲資訊依遊戲不同
      },
      "gametable": "01"//桌號
    }
  //...array  
  ],
  "code": 200100
}
```


|  欄位   |     實際範例      | 最大長度 |   備註   |
|:-------:|:-------------:|:--------:|:--------:|
| paytime | 1594957402511 |   bigint    | 派彩時間(ms) |
|firstbettime|1594957382961|bigint|玩家第一次下注時間(ms)|
|starttime|1594957377899|bigint|遊戲開始時間(ms)/可下注時間|
|endtime|1594957402393|bigint|遊戲結束時間(ms)/開始派彩時間|
|betendtime|1594957388899|bigint|停止下注時間(ms)|
|gametype|s3|char 255|遊戲類型|
|validbet|0|bigint|有效打碼量|
|roundid_balance_before|2000000|bigint|一局開始前帳戶的餘額|
|roundid_balance_after|2000000|bigint|結束後帳戶餘額|
|id|19217470|bigint|流水號|
|betid|60007171000000022509|char 255|投注BetID|
|roundid|840aa001200717114257s30010992fastBaccarat|char 255|局號|
|bettime|1594957402511|bigint|下注/派彩/注單最後更新時間(ms)|
account|cny_web_btmega_bthouse01_try_{會員帳號}|char 255|會員帳號|
|performtype|web|char 8|使用平台|
|game|fastBaccarata001s301|char 255|遊戲編號|
|betamount|200000|bigint|下注金額|
|winoutamount|200000|bigint|派彩金額|
|currency|CNY|char 255|幣別|
|status|done|char 255|注單狀態,betting(投注中),done(已派彩), cancel(無效局),rewrite(改單後重新派彩),|
|gameplatformid|2|char 255|平台編號,2=真人|
|platform|web|char 255|platform|
|house|bthouse01|char 255|house|
|agent|btmega|char 255|agent|
|betdetail|{...}|json格式|詳細注單,遊戲資訊依遊戲不同|
|gametable|01|char 2|桌號|

＊撈單回傳Json, 欄位均為string, 長度請參考表格及範例

＊注單狀態
* 玩家下注後,尚未派彩前 ＃狀態=**betting**
* 派彩後＃ 狀態=**done*** 
* 遊戲異常,系統自動退注 #狀態=**cancel**, 退款金額在winOutAmount, 且有效打碼會為0validbet=0
* 派彩後,改單 #狀態=**rewrite**

＊當局遊戲結束 如果
1. 遊戲正常結束, 並派彩成功, 無異常`status=done` 

可立即`轉出` 玩家贏得的錢 

＊當局結束,如果
1. 有異常,系統可自動排除的會`取消該局`並退注處理,狀態變更為`status=cancel`（十分鐘內會處理完畢）
2. 玩家沒有繼續再玩任何遊戲

**十分鐘後**可保證結清該局

＊除非有重大異常, 狀態會顯示投注中`status=betting`, 屆時再請客服人員查看並手動改單處理

---

### 取得注單查詢明細url

#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 注單唯一值  | -     | | 必要|
#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 注單詳細 url   | -     | 跳轉到 該筆注單內容 h5 頁面| 必要|


**遊戲詳細注單連結**
*其他參數參照API文件
```
http://{_BetTracer_URL_}/api/detail?betid={注單唯一值}
```
---

### 注單統計

#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 遊戲類型  | -     |各遊戲唯一直 | 必要|
| 小於 time  | -     | 時間內得注單| 必要|
| 大於 time  | -     | 時間內得注單| 必要|

#### 回傳

|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 注單條件內總計   | -     | 統計需有 <br>1.有效投注統計 <br>2.派彩統計<br>3.注單筆數統計| 必要|

**待確認

### 踢人
#### 我司帶入
|  參數 |  型態 | 備註 | 是否必須  |
| -------- | -------- | -------- |-------- |
| 會員帳號  | -     | | 必要|

req
可以一次多會員
```jsonld=
curl -X "POST" "http://{_API_SERVER_}/gamer/kick_out/" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "gamers": [
    "cny_web_btmega_bthouse01_try_{會員帳號}"
  ]
}'

```

res
*bn1 賓果server
*real 真人server
=> resultCode": 1 //執行完畢

```json
{
  "bn1": {
    "resultCode": 1
  },
  "bn2": {
    "resultCode": 1
  },
  "code": 200,
  "eball": {
    "description": "正確移除時,玩家名稱底下會同時有(FGS&GLS);非正常移除則會缺少其中一項或完全沒有",
    "errorCode": null,
    "logoutStatusList": {
      "cny_web_btmega_bthouse01_try_{會員帳號}": []
    },
    "resultCode": 1
  },
  "real": {
    "description": "正確移除時,玩家名稱底下會同時有(FGS&GLS);非正常移除則會缺少其中一項或完全沒有",
    "errorCode": null,
    "logoutStatusList": {
      "cny_web_btmega_bthouse01_try_{會員帳號}": [
        "FGS",
        "GLS"
      ]
    },
    "resultCode": 1
  }
}
```