## 說明
本API提供廠商開牌紀錄、下注及改牌紀錄推送。
## API 域名
- 測試站(拉開牌紀錄):https://rm.dev-royalgame.com
- 正式站(拉開牌紀錄):https://rm.rcg666.com
## API列表
### 開牌紀錄
#### 百家樂
URL : `/api/OpenList/Bacc`
Http Method : `GET`
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | false | 輪號(上限20字元) |
> ServerId 如附件 1
> 未帶 `NoRun` 會給`當前`或`最近`的資料
> 若未帶 `NoRun` ,在每輪首局時因尚未產生開牌紀錄,故會發生屬性 `R` 與 `CR` 不一致的狀況。
Request Example
```
https://demo.exmple.com/api/OpenList/Bacc?ServerId=GCBC20201101&NoRun=230606001
```
Response Example
```json
{
"status": int, // error Code 附件 5,若成功為 0
"message": "string", // 訊息
"data": {
"SI": "string",
"R": "string", // NoRun, 開牌紀錄的輪號
"FA": "string", // FirstNoAct, 本次統計結果的起始局號
"LA": "string", // 本LastNoAct, 次統計結果的最後局號
"GST": int, // 遊戲狀態, 0:非當前輪、1:倒數、2:開牌、3:結算,4:中場休息、5:維護
"CR": "string", // CurrentNoRun, 當前輪數
"CA": "string", // CurrentNoAct, 當前局數
"D": {
"Summary": {
"Total": int, // 總數
"Banker": int, // 開莊次數
"Player": int, // 開閒次數
"Tie": int, // 和局次數
"ZDD": int, // 莊對次數
"XDD": int, // 閒對次數
"Cancel": int // 當局取消次數
},
"List": [
{
"A": string, // NoAct, 遊戲局號
"G": string, // 遊戲結果, 參考 附件2
"P": int, // 贏家點數
"ZDD": boolean, // 莊對 true/false
"XDD": boolean // 閒對 true/false
}
]
}
}
}
```
#### 龍虎
URL : `/api/OpenList/LongHu`
Http Method : `GET`
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | false | 輪號(上限20字元) |
> ServerId 如附件 1
> 未帶 `NoRun` 會給`當前`或`最近`的資料
> 若未帶 `NoRun` ,在每輪首局時因尚未產生開牌紀錄,故會發生屬性 `R` 與 `CR` 不一致的狀況。
Request Example
```
https://demo.exmple.com/api/OpenList/LongHu?ServerId=GCLH20201201
```
Response Example
```json
{
"status": int, // error Code 附件 5,若成功為 0
"message": "string", // 訊息
"data": {
"SI": "string",
"R": "string", // NoRun, 開牌紀錄的輪號
"FA": "string", // FirstNoAct, 本次統計結果的起始局號
"LA": "string", // LastNoAct, 本次統計結果的最後局號
"GST": int, // 遊戲狀態, 0:非當前輪、1:倒數、2:開牌、3:結算,4:中場休息、5:維護
"CR": "string", // CurrentNoRun, 當前輪數
"CA": "string", // CurrentNoAct, 當前局數
"D": {
"Summary": {
"Total": int, // 總數
"Dragon": int, // 開龍次數
"Tiger": int, // 開虎次數
"Tie": int, // 和局次數
"Cancel": int // 當局取消次數
},
"List": [
{
"A": "string", // NoAct, 遊戲局號
"G": "string", // 遊戲結果, 參考 附件2
"P": int // 贏家點數
}
]
}
}
}
```
#### 輪盤
URL : `/api/OpenList/LunPan`
Http Method : `GET`
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | false | 輪號(上限20字元) |
| RowCount | int | false | 最後n局,預設300 |
> ServerId 如附件 1
> 未帶 `NoRun` 會給`當前`或`最近`的資料
> 若未帶 `NoRun` ,在每輪首局時因尚未產生開牌紀錄,故會發生屬性 `R` 與 `CR` 不一致的狀況。
Request Example
```
https://demo.exmple.com/api/OpenList/LunPan?ServerId=GCLP20201301
```
Response Example
```json
{
"status": int, // error Code 附件 5,若成功為 0
"message": "string", // 訊息
"data": {
"SI": "string",
"R": "string", // NoRun, 開牌紀錄的輪號
"FA": "string", // FirstNoAct, 本次統計結果的起始局號
"LA": "string", // LastNoAct, 本次統計結果的最後局號
"GST": int, // 遊戲狀態, 0:非當前輪、1:倒數、2:開牌、3:結算,4:中場休息、5:維護
"CR": "string", // CurrentNoRun, 當前輪數
"CA": "string", // CurrentNoAct, 當前局數
"D": {
"Summary": {
"Total": int, // 總數
"Small": int, // 開小次數
"Big": int, // 開大次數
"Red": int, // 開紅次數
"Black": int, // 開黑次數
"Odd": int, // 開單次數
"Even": int, // 開雙次數
"Cancel": int // 當局取消次數
},
"List": [
{
"A": "string", // NoAct, 遊戲局號
"G": "string", // 遊戲結果, 參考 附件2
"P": int // 贏家點數
}
]
}
}
}
```
#### 骰子
URL : `/api/OpenList/ShaiZi`
Http Method : `GET`
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | false | 輪號(上限20字元) |
| RowCount | int | false | 最後n局,預設300 |
> ServerId 如附件 1
> 未帶 `NoRun` 會給`當前`或`最近`的資料
> 若未帶 `NoRun` ,在每輪首局時因尚未產生開牌紀錄,故會發生屬性 `R` 與 `CR` 不一致的狀況。
Request Example
```
https://demo.exmple.com/api/OpenList/ShaiZi?ServerId=GCSZ20201401
```
Response Example
```json
{
"status": int, // error Code 附件 5,若成功為 0
"message": "string", // 訊息
"data": {
"SI": "string",
"R": "string", // NoRun, 開牌紀錄的輪號
"FA": "string", // FirstNoAct, 本次統計結果的起始局號
"LA": "string", // LastNoAct, 本次統計結果的最後局號
"GST": int, // 遊戲狀態, 0:非當前輪、1:倒數、2:開牌、3:結算,4:中場休息、5:維護
"CR": "string", // CurrentNoRun, 當前輪數
"CA": "string", // CurrentNoAct, 當前局數
"D": {
"Summary": {
"Total": int, // 總數
"Small": int, // 開小次數
"Big": int, // 開大次數
"Odd": int, // 開單次數
"Even": int, // 開雙次數
"Cancel": int, // 當局取消次數
"Triple": int // 開圍骰次數
},
"List": [
{
"A": "string", // NoAct, 遊戲局號
"G": [
"string", // 骰1點數, 參考 附件2
"string", // 骰2點數, 參考 附件2
"string" // 骰3點數, 參考 附件2
]
}
]
}
}
}
```
#### 番攤
URL : `/api/OpenList/FanTan`
Http Method : `GET`
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | false | 輪號(上限20字元) |
| RowCount | int | false | 最後n局,預設300 |
> ServerId 如附件 1
> 未帶 `NoRun` 會給`當前`或`最近`的資料
> 若未帶 `NoRun` ,在每輪首局時因尚未產生開牌紀錄,故會發生屬性 `R` 與 `CR` 不一致的狀況。
Request Example
```
https://demo.exmple.com/api/OpenList/FanTan?ServerId=GCFT20201501
```
Response Example
```json
{
"status": int, // error Code 附件 5,若成功為 0
"message": "string", // 訊息
"data": {
"SI": "string",
"R": "string", // NoRun, 開牌紀錄的輪號
"FA": "string", // FirstNoAct, 本次統計結果的起始局號
"LA": "string", // LastNoAct, 本次統計結果的最後局號
"GST": int, // 遊戲狀態, 0:非當前輪、1:倒數、2:開牌、3:結算,4:中場休息、5:維護
"CR": "string", // CurrentNoRun, 當前輪數
"CA": "string", // CurrentNoAct, 當前局數
"D": {
"Summary": {
"Total": int, // 總數
"P1": int, // 開1次數
"P2": int, // 開2次數
"P3": int, // 開3次數
"P4": int, // 開4次數
"Cancel": int // 當局取消次數
},
"List": [
{
"A": "string", // NoAct, 遊戲局號
"G": "string" // 點數, 參考 附件2
}
]
}
}
}
```
#### 博丁
URL : `/api/OpenList/PokDeng`
Http Method : `GET`
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | false | 輪號(上限20字元) |
> ServerId 如附件 1
> 未帶 `NoRun` 會給`當前`或`最近`的資料
> 若未帶 `NoRun` ,在每輪首局時因尚未產生開牌紀錄,故會發生屬性 `R` 與 `CR` 不一致的狀況。
Request Example
```
https://demo.exmple.com/api/OpenList/PokDeng?ServerId=2110210702
```
Response Example
```json
{
"status": int, // error Code 附件 5,若成功為 0
"message": "string", // 訊息
"data": {
"SI": "string",
"R": "string", // NoRun, 開牌紀錄的輪號
"FA": "string", // FirstNoAct, 本次統計結果的起始局號
"LA": "string", // 本LastNoAct, 次統計結果的最後局號
"GST": int, // 遊戲狀態, 0:非當前輪、1:倒數、2:開牌、3:結算,4:中場休息、5:維護
"CR": "string", // CurrentNoRun, 當前輪數
"CA": "string", // CurrentNoAct, 當前局數
"D": {
"Summary": {
"Total": int, // 總數
"P1": int, // 開閒1次數
"P2": int, // 開閒2次數
"P3": int, // 開閒3次數
"P4": int, // 開閒4次數
"P5": int, // 開閒5次數
"B": int, // 開莊次數
"Cancel": int // 當局取消次數
},
"List": [
{
"A": "string", // NoAct, 遊戲局號
"P": [
"string", // P1 點數 '0.0'~ '9.9'
"string", // P2 點數 '0.0'~ '9.9'
"string", // P3 點數 '0.0'~ '9.9'
"string", // P4 點數 '0.0'~ '9.9'
"string" // P5 點數 '0.0'~ '9.9'
],
"B": "string", // Banker 點數 '0.0'~ '9.9'
"W": [
"string", // W1, 1: 贏, 0: 輸 , 2: 贏 2 倍 , 3: 和 , cancel: 取消
"string", // W2, 1: 贏, 0: 輸 , 2: 贏 2 倍 , 3: 和 , cancel: 取消
"string", // W3, 1: 贏, 0: 輸 , 2: 贏 2 倍 , 3: 和 , cancel: 取消
"string", // W4, 1: 贏, 0: 輸 , 2: 贏 2 倍 , 3: 和 , cancel: 取消
"string" // W5, 1: 贏, 0: 輸 , 2: 贏 2 倍 , 3: 和 , cancel: 取消
],
"WB": "string" // Banker 1: 贏, 0: 輸 , 2: 贏 2 倍 , 3: 和 , cancel: 取消
}
]
}
}
}
```
#### 色碟
URL : `/api/OpenList/SeDie`
Http Method : `GET`
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | false | 輪號(上限20字元) |
| RowCount | int | false | 最後n局,預設300 |
> ServerId 如附件 1
> 未帶 `NoRun` 會給`當前`或`最近`的資料
> 若未帶 `NoRun` ,在每輪首局時因尚未產生開牌紀錄,故會發生屬性 `R` 與 `CR` 不一致的狀況。
Request Example
```
https://demo.exmple.com/api/OpenList/SeDie?ServerId=2112071601
```
Response Example
```json
{
"status": int, // error Code 附件 5,若成功為 0
"message": "string", // 訊息
"data": {
"SI": "string",
"R": "string", // NoRun, 開牌紀錄的輪號
"FA": "string", // FirstNoAct, 本次統計結果的起始局號
"LA": "string", // 本LastNoAct, 次統計結果的最後局號
"GST": int, // 遊戲狀態, 0:非當前輪、1:倒數、2:開牌、3:結算,4:中場休息、5:維護
"CR": "string", // CurrentNoRun, 當前輪數
"CA": "string", // CurrentNoAct, 當前局數
"D": {
"Summary": {
"Total": int, // 總數
"R0": int, // 0紅4白次數
"R1": int, // 1紅3白次數
"R2": int, // 2紅2白次數
"R3": int, // 3紅1白次數
"R4": int, // 4紅0白次數
"Cancel": int // 當局取消次數
},
"List": [
{
"A": "string", // NoAct, 遊戲局號
"G": "string" // 點數, 參考 附件2
}
]
}
}
}
```
#### 泰國骰
URL : `/api/OpenList/HiLo`
Http Method : `GET`
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | false | 輪號(上限20字元) |
| RowCount | int | false | 最後n局,預設300 |
> ServerId 如附件 1
> 未帶 `NoRun` 會給`當前`或`最近`的資料
> 若未帶 `NoRun` ,在每輪首局時因尚未產生開牌紀錄,故會發生屬性 `R` 與 `CR` 不一致的狀況。
Request Example
```
https://demo.exmple.com/api/OpenList/HiLo?ServerId=2201111701
```
Response Example
```json
{
"status": int, // error Code 附件 5,若成功為 0
"message": "string", // 訊息
"data": {
"SI": "string",
"R": "string", // NoRun, 開牌紀錄的輪號
"FA": "string", // FirstNoAct, 本次統計結果的起始局號
"LA": "string", // 本LastNoAct, 次統計結果的最後局號
"GST": int, // 遊戲狀態, 0:非當前輪、1:倒數、2:開牌、3:結算,4:中場休息、5:維護
"CR": "string", // CurrentNoRun, 當前輪數
"CA": "string", // CurrentNoAct, 當前局數
"D": {
"Summary": {
"Total": int, // 總數
"Hi": int, // 開Hi次數
"Lo": int, // 開Lo次數
"HiLo": int, // 開HiLo次數
"Cancel": int // 當局取消次數
},
"List": [
{
"A": "string", // NoAct, 遊戲局號
"G": [
"string", // 骰1點數, 參考 附件2
"string", // 骰2點數, 參考 附件2
"string" // 骰3點數, 參考 附件2
]
}
]
}
}
}
```
### 下注
URL: `/api/betting`
Http Method: `POST`
Parameter: `Json`
Http head:下注 api 需額外加入head
|Head Name|內容|
|---|---|
|Authorization|Bearer {jwtToken}|
> 呼叫 Login Api 後可取得會員 7 天有效之 jwtToken [文件連結](https://hackmd.io/nP3NC6VAQMWg2xV0MJNDog?view)
```
example:
POST /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIXVCJ9TJV...r7E20RMHrHDcEfxjoYZgeFONFh7HgQ
```
Request Example
```json
{
"Serverid":"200405023",
"MemberId": "2300000101", //使用登入 api (/api/Member/Login) 成功登入後取得之 clubId
"BetList":[{
"BetArea": "Xian", //注區清單如附件(3),
"Point": 999, //money
},{
"BetArea": "Zhuang", //注區清單如附件(3),
"Point": 999, //money
}],
}
```
Response Example
```json
{
"Data":
{
"NoRun": '230606001', //下注輪號
"NoActive": '0001', //下注局號
},
"Status": 9017, //int:error Code 如附件 4,若成功為 0
"Message": "this is error message" //下注失敗時的錯誤訊息,若成功為空值(string.empty)
}
```
### 改牌記錄推送
URL: `由客戶提供 API 位置`
Http Method: `POST`
Parameter:
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| ServerId | string | true | 遊戲桌別(上限20字元) |
| NoRun | string | true | 輪號(上限20字元) |
| NoActive | string | true | 局號(上限20字元) |
| D | object | true | 開牌結果|
Request Example
```json
{
"ServerId": string, // "ServerId"
"NoRun": string, // 輪號 "NoRun"
"NoActive": string, // 局號 "NoAct"
"D":{
"G": string, // 遊戲結果, 參考 附件2
"P": int, // 贏家點數
"ZDD": boolean, // 莊對 true/false,
"XDD": boolean // 閒對 true/false
}
}
```
Response Example
```json
{
s: 0, // int : 0 為成功 ,1 為失敗
errorMes: "this is error message" //失敗時的錯誤訊息,若成功為空值(string.empty)
}
```
### 會員餘額
取得特定會員當前餘額
URL: `/api/Balance`
Http Method: `Get`
Parameter: `Json`
Http head:下注 api 需額外加入head
|Head Name|內容|
|---|---|
|Authorization|Bearer {jwtToken}|
> 呼叫 Login Api 後可取得會員 7 天有效之 jwtToken [文件連結]
Parameter : `QueryString`
參數如下:
| 名稱 | Type | required | 說明 |
| -------- | -------- | ---- | -------- |
| memberId | string | true | 會員Id |
Request Example
```
https://demo.exmple.com/api/Balance?MemberId=1111111
```
Response Example
```json
{
"status": 0, //int:error Code 附件 5,若成功為 0
"message": "", //string訊息
"data": {
"memberId": "0804140087",
"balance": 0
}
}
```
## 附件
### 附件1 桌別清單
| 遊戲桌別(ServerId) | 桌別名稱 |
| -------- | -------- |
| GCBC20201101 | 百家樂C-A |
| GCBC20201102 | 百家樂C-B |
| GCBC20201103 | 百家樂C-C |
| GCBC20201104 | 百家樂C-D |
| 2201050139 | 百家樂P-A |
| 2201050140 | 百家樂P-B |
| 2201050141 | 百家樂P-C |
| 2201050142 | 百家樂P-D |
| 2201050143 | 百家樂P-E |
| 2201050144 | 百家樂P-F |
| GCLH20201201 | 龍虎R-A |
| GCLH20201202 | 龍虎R-B |
| GCLP20201301 | 輪盤R-A |
| GCLP20201302 | 輪盤R-B |
| GCSZ20201401 | 骰寶R-A |
| GCFT20201501 | 骰子番攤R-A |
| 2110210702 | 博丁R-A |
| 2201111701 | 泰國骰R-A |
### 附件2 遊戲結果
### 撲克牌
牌面資料 [花色][牌面]
ex: 黑桃A = 21
| 花色 | 數值 | 說明 |
| -------- | -------- | -------- |
| 黑桃 | 2 | |
| 紅心 | 1 | |
| 方塊 | 3 | |
| 梅花 | 4 | |
| 牌面 | 數值 | 說明 |
| --- | ---| -------- |
| A | 1 | |
| 2 | 2 | |
| 3 | 3 | |
| 4 | 4 | |
| 5 | 5 | |
| 6 | 6 | |
| 7 | 7 | |
| 8 | 8 | |
| 9 | 9 | |
| 10 | A | |
| J | J | |
| Q | Q | |
| K | K | |
### 百家樂
| 數值 | 說明 |
| -------- | -------- |
| B | 莊贏 |
| P | 閒贏 |
| T | 和局 |
| Cancel | 取消 |
### 龍虎
| 數值 | 說明 |
| -------- | ------- |
| T | 虎贏 |
| D | 龍贏 |
| Tie | 和局 |
| Cancel | 取消 |
### 輪盤
| 數字 | 數值 | 說明 |
| --- | ---| -------- |
| 0 | A0 | |
| 1 | 01 | |
| 2 | 02 | |
| 3 | 03 | |
| 4 | 04 | |
| 5 | 05 | |
| 6 | 06 | |
| 7 | 07 | |
| 8 | 08 | |
| 9 | 09 | |
| 10 | 10 | |
| 11 | 11 | |
| 12 | 12 | |
| 13 | 13 | |
| 14 | 14 | |
| 15 | 15 | |
| 16 | 16 | |
| 17 | 17 | |
| 18 | 18 | |
| 19 | 19 | |
| 20 | 20 | |
| 21 | 21 | |
| 22 | 22 | |
| 23 | 23 | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | |
| 27 | 27 | |
| 28 | 28 | |
| 29 | 29 | |
| 30 | 30 | |
| 31 | 31 | |
| 32 | 32 | |
| 33 | 33 | |
| 33 | 34 | |
| 35 | 35 | |
| 36 | 36 | |
### 骰子、泰國骰
| 數字 | 數值 | 說明 |
| --- | ---| -------- |
| 1 | 1 | |
| 2 | 2 | |
| 3 | 3 | |
| 4 | 4 | |
| 5 | 5 | |
| 6 | 6 | |
### 番攤
| 數字 | 數值 | 說明 |
| --- | ---| -------- |
| 1 | 01 | |
| 2 | 02 | |
| 3 | 03 | |
| 4 | 04 | |
### 色碟
| 數字 | 數值 | 說明 |
| --- | ---| -------- |
| 0紅4白 | 00 | |
| 1紅3白 | 01 | |
| 2紅2白 | 02 | |
| 3紅1白 | 03 | |
| 4紅0白 | 04 | |
### 附件 3 注區清單
| 注區 | 說明 |
| -------- | -------- |
| Zhuang | 莊 |
| Xian | 閒 |
| He | 和 |
| ZDD | 莊對對 |
| XDD | 閒對對 |
| Big | 大 |
| Small | 小 |
| AnyPair | 任意對子|
| PerfectPair | 完美對子 |
### 附件 4 下注失敗錯誤代碼
| 錯誤代碼 | 說明 |
| -------- | -------- |
| 9002 | 下注找不到ServerID |
| 9003 | 下注找不到退水相關資料 |
| 9008 | 錢包扣款失敗 |
| 9009 | 錯誤的遊戲 |
| 9010 | 錯誤的下注金額 |
| 9011 | 下注金額小於或等於0 |
| 9012 | 下注金額跟下注注區數量不一致 |
| 9013 | 注區錯誤 |
| 9015 | 百家超過30局只能下注大小以外的注區 |
| 9016 | 下注金額超出限注範圍 |
| 9017 | 百家莊閒差額超出代理上限 |
| 9018 | 已經停止下注 |
| 9019 | 錯誤的輪號 |
| 9020 | 錯誤的局號 |
| 9021 | 扣點失敗 |
| 9022 | 取得下注嬴計表失敗|
| 9023 | 會員編號錯誤 |
| 9099 | 下注其他錯誤 |
### 附件 5 API錯誤代碼
| 錯誤代碼 | 說明 |
| -------- | -------- |
| -1 | 系統錯誤 |
| 0 | 成功 |
| 1 | 找不到資料 |
### Release Note
#### V1.1
1. 開牌紀錄增加 GST 屬性(遊戲狀態)
#### V1.2
1. 開牌紀錄增加 CA、CR 屬性(當前輪局)
2. 增加Balance api
#### V1.3
1. 增加正式站域名
#### V1.4
1. 增加正式站域名
#### V1.5
1. 更新正式站域名
2. 更新測試站域名
#### V1.6
1. 新增開牌紀錄(龍虎、輪盤、骰子、番攤、博丁、色碟、泰國骰)
#### V1.7
1. 新增開牌紀錄api參數(輪盤、骰子、番攤、色碟、泰國骰)
#### V1.8
1. 修正開牌紀錄泰國骰api參數
#### V1.9
1. 新增附件1 桌別清單
2. 新增附件2 遊戲結果 龍虎說明