# KLine API
## 0. API使用說明
### 0.1 加密
```php=
# md5('密碼');
# 明碼: 123
# 加密: md5('123')
# 加密結果: E10ADC3949BA59ABBE56E057F20F883E
```
### 0.2 JWT Token驗證
#### 0.2.1 驗證方式
**Step 1.** 使用 */api/Member/KLineLogin* 登入後,獲取 *token*
**Step 2.** 在需要驗證的 *API* 服務進行 *HttpRequest* 時,請於 *Header* 帶入 *token*
```yaml
# 欄位:Authorization
# 值: Bearer {Token}
# 例:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXNzd29yZCI6ImNmNzlhZ.....Td__jiThpm8
```
### 0.3 Request 說明
請將*Request*資料,以*json*格式,帶入*body*,進行請求
### 0.4 Api 資訊
```shell
# 請求路徑
# {API Request URL}{API_Path}
#
# Example:
# https://pwaapi.rryon.site/api/Member/Login
```
### 0.5 Api 域名
#### 測試環境
- API Request URL:https://pwaapi.microhard.online
- Demo Website: https://www.microhard.online
#### 正式環境
- API Request URL: http://pwaapi.amaryllis.moe
- Demo Website: http://www.amaryllis.moe
## 1. API說明
## 1.1 /api/Member/KLineLogin
**說明:** 登入帳號API(KLine專用)
**方法:** POST
**驗證:** <span class="red">無</span>
**Reuqest**
```json=
{
"account": "ktester", //KLine會員帳號
"password": "CF79AE6ADDBA60AD018347359BD144D2", // MD5(密碼)
"uidKey": "web" // [web|mobile]
}
```
**Response**
```json=
{
"status": 1, // 1:正常 -1:其它錯誤 -2:密碼錯誤 -4:會員在線 -5:停用 -6:會員鎖定 -7:會員凍結 -8:無此帳號 -9:組別不匹配
"desc": "SUCCESS",
"result": {
"token": "eyJhbGciOi....", // 登入使用的Token
"clubid": "0000000000", // 會員編號
"clubename": "ktester", // 會員帳號
"clubcname": "ktester", // 會員名稱
"franchiserid": null, // 未啟用
"huilvtype": "THB", // 幣別
"now_xinyong": 123.456, // 當前信用
"isTest": 0, // 是否測試帳號 [0|1]
"zuBie": "K", // 組別
"isSocialLogin": false, // 是否為社群登入 [true|false]
"collet": "0", // 未啟用
"payment": "0", // 未啟用
"collet_isEnabled": false, // 未啟用
"payment_isEnabled": false, // 未啟用
"expiresAt": 1686639132, // 有效期限
"mustChangePasssword": 0, // 是否3個月未改密碼 [0|1]
"baccGroupLimit": {
"bpMax": 5000, // 莊閒最大
"bpMin": 100, // 莊閒最小
"tieMax": 625, // 和家最大
"tieMin": 100, // 和家最小
"pairMax": 625, // 對對最大
"pairMin": 100, // 對對最小
"bigMinLimit": 100, // 大號最小
"bigMaxLimit": 3333, // 大號最大
"smallMinLimit": 100, // 小號最小
"smallMaxLimit": 3333, // 小號最大
"anyPairMinLimit": 100, // 任一對子最小
"anyPairMaxLimit": 1000, // 任一對子最大
"perfectPairMinLimit": 100, // 完美對子最小
"perfectPairMaxLimit": 200, // 完美對子最大
"gameType": "Bacc",
"memberId": "Kkzdusr001",
"currency": "THB",
"fN1Percentage": 0,
"fN2Percentage": 0,
"fN3Percentage": 0,
"fN4Percentage": 80,
"fN5Percentage": 80,
"fN1DiscountRate": 99.1,
"fN2DiscountRate": 99.1,
"fN3DiscountRate": 99.1,
"fN4DiscountRate": 99.1,
"fN5DiscountRate": 99.1,
"mbDiscountRate": 99.1, // 會員退水
"fN1": null, // 未啟用
"fN2": null, // 未啟用
"fN3": null, // 未啟用
"fN4": null, // 未啟用
"fN5": null // 未啟用
}
}
}
```
## 2.2 /api/Member/Logout
**說明:** 登出會員帳號
**方法:** POST
**驗證:** <span class="red">是</span>
**Request**
```json
/* 無 */
```
**Response**
```json=
{
"status": 1,
"desc": "SUCCESS",
"result": null
}
```
**備註**
```json
1.此功能會將token失效,但並不會把錢從遊戲商錢包抽會到平台主錢包
```
## 3.3 /api/Game/GetGameToken/W1RCGv2
**說明:** 登入遊戲
**方法:** POST
**驗證:** <span class="red">是</span>
**Request**
```json=
{
"desk": "BlueVersionLobby", // 固定帶入 BlueVersionLobby
"device": "DESKTOP", // 裝置 [DESKTOP|MOBILE]
"lang": "zh-tw", // 語系 [zh-cn|zh-tw|en-us|th-th|vi-vn|ko-kr|ja-jp|my-mm]
"lobbyURL": "https://......" // 返回網址
}
```
**Response**
```json=
{
"status": 1,
"desc": "SUCCESS",
"result": {
"urlInfo": "https://......" // 遊戲入口
}
}
```
**備註**
:::danger
1.此功能就是將會員主錢包轉入遊戲商
2.如果會員閒置超過30分鐘,系統會將錢抽會到平台主錢包
:::
## 4.4 /api/UnReturnAccount/ForceUpdateMoney
**說明:** 強制踼線取回額度
**方法:** POST
**驗證:** <span class="red">是</span>
**Request**
```json
/* 無 */
```
**Response**
```json=
{
"status": 1,
"desc": "SUCCESS",
"result": {
"totalMoney": 123.456 // 玩家餘額
}
}
```
**備註**
:::danger
1.呼叫此功能會將遊戲錢包抽回到平台主錢包。
2.避免呼叫頻率過高,會有快取5秒的時間,快取時間內取到的額度會是0元。
:::
<style>
.red { color: red; }
</style>