# 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 } } ```