npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

js-test-sdk-4

v1.0.0

Published

Generate jsdoc Command: jsdoc -c jsdoc.config.json

Downloads

2

Readme

README

此 API 提供了允许你连接到指定的服务或平台的功能,并执行以下操作

安装方式

若想使用此 API,可以通过以下方式将它集成到你的项目中。内容如下:

模块导入
  • 使用类似以下的方式,在你的 JavaScript 代码中导入并使用 API:
import Ws from "http://127.0.0.1:5501/dist/bundle.js";

用法

  • 一旦你将 API 集成到你的项目中,你就可以使用以下代码来开始使用它:
// 创建实例
const player = new Ws.Player();
const game = new Ws.Game();
const platform = new Ws.Platform();
//其他实例...

// 在文档加载完成后,进行一些全局配置
document.addEventListener("DOMContentLoaded", function () {
  // 将 Ws 暴露到全局作用域中
  window.Ws = Ws;

  // 初始化全局配置
  Ws.globalConfig.init({ platformId: "50"}, 3).then((res) => {

// 等到Ws初始化成功之后才去请求
player.loginWithPassword("639111222333", "888888", "google.com").then((res) => {
    console.log("function login:", res);
            });

      });
});
  • Ws.globalConfig.init({ platformId: "50"}, 3);这段代码中,会有一个init方法接收参数。第一个 {} 内的参数一定/必须包含 platformId, 其值为字符串 "50",花括号外的参数是环境,其值为 3
    现有环境例子:1:正式 2:内部 3:测试 4:开发

Notify 用法

const notify = new Ws.Notify();

//负责监听
notify.on("all", (event) => {
    console.log(`Received ${event.functionName} event:`, event);
  });

notify.on("authenticate", (event) => {
    console.log(`Received ${event.functionName} event:`, event);
  });
  • 每当进行了指定的操作,例如更新了密码系统都会自动推送此类型的接口
  • 如果是使用浏览器,authenticate 推送必须要监听,来确认可否登入的状态信息 (详细说明可参考使用手册)
  • 你可以选择你要监听的信息,根据以下的类型来调整

| 类型 | 说明 | | :-------------- | :----------- | | authenticate | 登陆状态验证 | | all | 有新邮件 | | credit | 额度有变动 | | liveGame | 真人游戏状态 | | playerInfo | 玩家相关信息 | | notifyVoiceCall | 通话状态 | | betRanking | 游戏投注榜 | | luckyWheelLive | 抽奖结果 | | liveConcert | FB 抽奖结果 | | gameInfo | 游戏信息 | | playerLogout | 玩家登出消息 |

获取 KYC 国籍 && 资金来源

let a = Ws.globalConfig.getKYCCommonInfo() // 用来获取国籍以及资金来源
let b = Ws.globalConfig.getNationality() // 用来获取国籍
let c = Ws.globalConfig.getSourceOfFunds() // 用来获取资金来源

响应内容:

{
    "nationality": [
        "Afghanistan",
        "Albania",
        "Algeria",
        "American Samoa",
        "Andorra",
        "Angola",
        "Anguilla",
        "Antigua & Barbuda",...

    ],
    "sourceOfFunds": [
        "Business",
        "Employment",
        "Inheritance/trust",
        "Investments",
        "Pensions/annuites",
        "Rentals/lease",
        "Others"
    ]
}

API 模块例子

只要接口接应以及回应成功,全部都会回传 status--200

玩家模块

  1. 玩家密码登录
player.loginWithPassword("9xxxxxxxxx", "xxxxxx","https://xxxxxxx")
  • 以上的 player调用的 loginWithPassword 使用了三个参数。第一个参数为电话号码,而第二个参数是密码用于验证用户身份,第三个为网站域名

响应内容:

 data: {
        "address": "pfkwepfkw", //地址
        "bankAccount": "******", //银行帐号
        "bankAccountName": "FSDF,DFS", //银行账户名
        "bankName": "183", //银行名称
        "DOB": "1990-06-23T00:00:00.000Z", //出生日期
        "email": "******", //邮件
        "ftpDomain": "https://fpms-profile.client88.me/fpms-images-profile-cp/images-old/",
        "fullEmail": "[email protected]", //邮件
        "gameTypeTag": "",
        "hasPassword": true, //帐号是否设置密码
        "gender": true, // 性别
        "IDStatus": 0, // 用来判断用户资料在哪个阶段 - 默认为0,1-图片匹配, 2-图片不匹配,3-不通过(如果是3就需要重新上传图片),4-等待审批
        "isCompleteInfo": true, // 完善玩家资料
        "isGLife": false, // Glife帐号
        "isLogin": true, // 登入状态
        "isTestPlayer": false, // 测试玩家
        "name": "103347511", // 名称
        "nationality": "Philippines", //国籍
        "nickName": "61", // 昵称
        "password": "$2b$10$ftNHvAkjVv.PD9FeHMZUgOAfhUIP8MTYZciojNSC0XpligKuSQkbO", //密码
        "paymentInfo": [ //GCash 以及 Maya银行配置
            {
                "bankAccount": "******",
                "bankAccountName": "FSDF,DFS",
                "paymentType": "MAYA",
                "paymentChoice": "1"
            },
            {
                "bankAccount": "******",
                "bankAccountName": "FSDF,DFS",
                "paymentType": "GCASH",
                "paymentChoice": "1"
            }
        ],
        "phoneNumber": "639******",
        "phoneType": "Sun Cellular",
        "photoId1": { //KYC上传图片
            "imageName": "103347511id11697212731438.jpeg",
            "type": 1
        },
        "playerAvatar": "av103347511.png", //帐号头像
        "playerCity": "dasasd", // 城市
        "playerId": "103347511", // 玩家ID
        "playerLevel": { //玩家等级
            "name": "LV1", // 等级名称
            "value": 0, // 价值
            "levelUpConfig": [ //升级配置
                {
                    "andConditions": true,
                    "topupLimit": 0,
                    "topupPeriod": "WEEK",
                    "topupTimes": 0,
                    "consumptionSourceProviderId": [],
                    "consumptionLimit": 10,
                    "consumptionPeriod": "WEEK",
                    "bonusRangeConfig": "",
                    "bonusRange": 0,
                    "_id": "5976bd7772a63d000c8747bc"
                }
            ],
            "levelDownConfig": [ //降级配置
                {
                    "andConditions": false,
                    "topupMinimum": 10,
                    "topupPeriod": "DAY",
                    "topupTimes": 0,
                    "consumptionMinimum": 100,
                    "consumptionPeriod": "DAY",
                    "bonusRangeConfig": "",
                    "bonusRange": 0,
                    "_id": "5976bd7772a63d000c8747ba"
                }
            ]
        },
        "playerProvince": "mneofwd", // 省
        "province": "Central and Western",
        "realName": "FSDF,DFS", // 玩家真实名称
        "registrationTime": "2023-10-13T13:02:24.216Z", //注册时间
        "resetPassword": false, // 重置密码
        "sourceOfFunds": "Employment", // 资金来源
        "userCurrentPoint": 0, //玩家积分
        "isInvalidSourceURL": false,
        "allowOtherDeposit": false,
        "allowOtherWithdraw": false
    },
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiMTAzMzQ3NTExIiwicGFzc3dvcmQiOiIkMmIkMTAkZnROSHZBa2pWdi5QRDlGZUhNWlVnT0FmaFVJUDhNVFlaY2lvak5TQzBYcGxpZ0t1U1FrYk8iLCJsYXN0VG9rZW5UaW1lIjoiMjAyNC0wNC0xMVQxMjoyMTo1Ni4zNjFaIiwiaWF0IjoxNzEyODM4MTE2LCJleHAiOjE3MTI4OTU3MTZ9.RFQjRz23dABwaxOZsf4-tvJDf2uZiduGHyGp7OmVIqw" // 代币
}
  1. 玩家注销
player.logout();
  • 这里调用的 logout 是玩家注销登录

响应内容:

data:{status: 200}
  1. 电话号码登陆
player.loginWithOtp('xxxx','https://xxxxxxxx')
  • 以上的 player调用的 loginWithOtp 使用了参数则是 SMS 回传的一次性密码,https://xxxxxxxx则是网站域名

响应内容:

data:{status: 200, //回传内容可以参考player.loginWithPassword}
  1. 获取手机验证码
player.getSMSCode({phoneNumber:'639xxxxxxxxx',purpose:'playerLogin',captcha:''})
  • 这里调用的 getSMSCode 会发送一次性密码到玩家的手机号,以上的 getSMSCode 所需要的参数需要输入在花括号。 这个是花括号可以输入的参数的例子:

| Variable | 参数 | | :------------- | :------------------------------- | | phoneNumber | 手机号 - string (必须提供的参数) | | purpose | 用途 - string (必须提供的参数) | | oldPhoneNumber | 旧手机号 - string | | name | 玩家名称 - string | | captcha | 验证码 - string | | useVoiceCode | 使用语音验证码 - boolean | | useEmail | 使用邮件 - boolean |

以下的是 purpose 参数可以使用的功能:

| Purpose | 功能 | | :-------------------------- | :----------------------------- | | resetPassword | 重置密码 | | inquireAccount | 找回账号 | | playerLogin | 玩家登入 | | setPhoneNumber | 初次设置手机号 | | registration | 注册 | | oldPhoneNumber | 修改电话时的电话验证(旧号码) | | newPhoneNumber | 修改电话时的电话验证(新号码) | | updatePassword | 更新密码 | | updateBankInfo | 更新支付信息 | | updateBankInfoFirst | 首次设置支付信息 | | freeTrialReward | 免费体验金 | | demoPlayer | 试玩帐号 | | Partner_registration | 代理注册 | | Partner_oldPhoneNumber | 代理电话号码(旧) | | Partner_newPhoneNumber | 代理电话号码(新) | | Partner_updatePassword | 代理更新密码 | | Partner_updateBankInfoFirst | 代理银行卡(首次) | | Partner_updateBankInfo | 代理银行卡(更换) | | setEmail | 首次绑定邮箱 | | newEmail | 更新邮箱 |

响应内容:

data:{status: 200 }
  1. 获取玩家基本信息
player.get();
  • get 可以让客户端获取玩家的基本信息,包括邮箱,地址,以及玩家等级详细信息

响应内容:

data:{status: 200, //回传内容可以参考player.loginWithPassword}
  1. 获取图形验证码
player.captcha();
  • captcha 会从服务端获取验证码, 验证码以 base64 格式分发给客户端, 客户端接到之后显示出来

响应内容:

data: {status: 200, data: “base64;pngXfasagGFFSD”} //验证码base64字符串
  1. 玩家注册后登录
player.registerWithOtp({smsCode:'2222',domain:'https://xxxxxxx',sourceUrl:'www.google.com',partnerId:'12x',captcha:'xxxx',autoSMSCodeValid:true});
  • 这里需要使用花括号来添加参数,2222电话号码发送的一次性密码, https://xxxxxxxx是网站域名,www.google.com是是访问来源,12x是合伙 Id 可以不填写,xxxx图片验证码可以不填写, true这个 bool 值是自动呼叫 checkSMSCodeValid 接口可以不填写默认为 true(此参数只是用于给开发测试)

响应内容:

data:{status: 200, //回传内容可以参考player.loginWithPassword}
  1. 修改玩家的支付信息
player.updatePaymentInfo('0001','1232-xxxx-xxxx','TTTT','2023');
  • updatePaymentInfo 内使用到的第一个参数是银行名称,第二个是银行账号,第三个是玩家名称,第四个是一次性验证码条件性的不填写

响应内容:

data:  {status: 200}
  1. 修改玩家登录密码
player.updatePassword('Abc123','123Abc','1234');
  • updatePassword 这里使用的参数第一个为旧密码,第二个是新密码,第三个是选填的参数验证码

响应内容:

data: {
    status: 200,
    data: {
        "playerId": "1103366434",
        "playerObjId": "663c62f18400c62f5117fea3",
        "text": "Password successfully changed"
    }
}
  1. 获取 SMS 状态
player.getSmsStatus();

响应内容:

data: {status: 200 }
  1. 设定 SMS 状态
player.setSmsStatus("1030:1");

响应内容:

data: {status: 200,data: true}
  1. 登陆状态验证
player.authenticate("1702192","dajsoaskxcao12,.sakdsaodkdlp10-21...","google.com");
  • authenticate 是用于验证玩家的登入状态,第一个参数为 playerId,第二个参数为 token,这两个的参数都是必填的,玩家登入/注册成功,后台都会返回这两个参数,第三个参数为 clientDomain 可不填写

响应内容:

data:{status: 200, //回传内容可以参考player.loginWithPassword}
  1. 获取玩家站内信
player.getMailList();

响应内容:

data: {status: 200,
data: [
    {
        "_id": "663c63408400c62f5118027d", //邮件唯一码
        "platformId": "612d901dcd001d4becbaea2e",
        "recipientType": "player",
        "recipientId": "663c62f18400c62f5117fea3",
        "title": "edit bank", //邮件标题
        "content": "congratz edit bank success", //邮件内容
        "hasBeenRead": false, //是否被阅读
        "bDelete": false,
        "createTime": "2024-05-09T05:46:40.399Z", //邮件生成时间
        "__v": 0
    }
]
  1. 标记站内信为已读
player.readMail("663c63848400c62f51180348");
  • 663c63848400c62f51180348 是邮件唯一码的参数

响应内容:

data: {status: 200,
data:{
    "_id": "663c63848400c62f51180348",
    "platformId": "612d901dcd001d4becbaea2e",
    "senderType": "System",
    "recipientType": "player",
    "recipientId": {
        "smsSetting": {
            "manualTopup": true,
            "applyBonus": true,
            "cancelBonus": true,
            "applyReward": true,
            "consumptionReturn": true,
            "updatePaymentInfo": true,
            "PlayerConsumptionReturnSuccess": true,
            "ManualTopupSuccess": true,
            "OnlineTopupSuccess": true,
            "AlipayTopupSuccess": true,
            "WechatTopupSuccess": true,
            "MOMOTopupSuccess": true,
            "GCASHTopupSuccess": true,
            "GCASHLimit": true,
            "GLIFETopupSuccess": true,
            "GrabPayTopupSuccess": true,
            "OTCTopupSuccess": true,
            "SecondSmsVerificationCode": true,
            "WithdrawSuccess": true,
            "WithdrawCancel": true,
            "PlayerLimitedOfferRewardSuccess": true,
            "UpdateBankInfoSuccess": true,
            "UpdateGCASHInfoSuccess": true,
            "UpdateGCASHInfoFailed": true,
            "NonVerifiedGCASHAccountFailed": true,
            "InvalidGCASHAccountFailed": true,
            "UpdateMAYAInfoSuccess": true,
            "UpdateMAYAInfoFailed": true,
            "NonVerifiedMAYAAccountFailed": true,
            "InvalidMAYAAccountFailed": true,
            "UpdateMomoInfoSuccess": true,
            "UpdatePhoneInfoSuccess": true,
            "updatePassword": true,
            "PlayerTopUpReturnGroupSuccess": true,
            "PlayerLoseReturnRewardGroupSuccess": true,
            "PlayerConsecutiveRewardGroupSuccess": true,
            "PlayerFestivalRewardGroupSuccess": true,
            "PlayerConsumptionRewardGroupSuccess": true,
            "PlayerFreeTrialRewardGroupSuccess": true,
            "PlayerRegisterIntentionSuccess": true,
            "PlayerPromoCodeRewardSuccess": true,
            "PlayerLevelUpMigrationSuccess": true,
            "PlayerLevelDownMigrationSuccess": true,
            "PlayerLevelUpSuccess": true,
            "PromoCodeSend": true,
            "PlayerRetentionRewardGroupSuccess": true,
            "smsVerificationCode": true,
            "PlayerLevelMaintainSuccess": true,
            "RandomRewardPromoCodeBDepositSuccess": true,
            "RandomRewardPromoCodeBNoDepositSuccess": true,
            "RandomRewardPromoCodeCSuccess": true,
            "PlayerRandomRewardGroupSuccess": true,
            "RandomRewardRewardPointsSuccess": true,
            "RandomRewardRealPrizeSuccess": true,
            "ResetPasswordUrl": true,
            "UpdatePlayerInfoSuccess": true,
            "LiveDrawRewardSuccess": true,
            "GCASHLimitCallback": true,
            "ProviderConsumptionReturn": true
        },
        "permission": {
            "applyBonus": true,
            "transactionReward": true,
            "allTopUp": true,
            "topupOnline": true,
            "topupManual": true,
            "topUpCard": true,
            "topUpMOMO": true,
            "topUpGCASH": true,
            "topUpGLife": true,
            "topUpGrabPay": true,
            "topUpOTC": true,
            "phoneCallFeedback": true,
            "SMSFeedBack": true,
            "alipayTransaction": true,
            "quickpayTransaction": true,
            "banReward": false,
            "rewardPointsTask": true,
            "disableWechatPay": false,
            "forbidPlayerConsumptionReturn": false,
            "allowPromoCode": true,
            "forbidPlayerConsumptionIncentive": false,
            "PlayerTopUpReturn": true,
            "PlayerDoubleTopUpReturn": true,
            "forbidPlayerFromLogin": false,
            "forbidPlayerFromEnteringGame": false,
            "playerConsecutiveConsumptionReward": true,
            "PlayerPacketRainReward": true,
            "PlayerLimitedOfferReward": true,
            "levelChange": true,
            "getSMSCode": true,
            "ExchangeCurrencyBonus": true,
            "forbidEmailFeedBack": false,
            "unsubscribedEmail": false,
            "topupNormal": true,
            "allowOtherDeposit": false,
            "allowOtherWithdraw": false,
            "firstDepositLimit": true
        },
        "viewInfo": {
            "limitedOfferInfo": 1,
            "showInfoState": true
        },
        "qnaWrongCount": {
            "forgotPassword": 0,
            "updatePhoneNumber": 0,
            "editBankCard": 0,
            "editName": 0,
            "verifyInfo": 0
        },
        "photoId1": {
            "imageName": "1103366434id11715233552967.jpeg",
            "type": 1
        },
        "_id": "663c62f18400c62f5117fea3",
        "playerId": "1103366434",
        "name": "1103366434",
        "nickName": "SSSSS4082",
        "email": "",
        "DOB": "2000-02-11T00:00:00.000Z",
        "icon": "",
        "phoneNumber": "639******",
        "isTestPlayer": false,
        "isRealPlayer": true,
        "isTestPlayerConverted": false,
        "isTestPlayerOld": false,
        "lastFeedbackTime": null,
        "feedbackTimes": 0,
        "password": "$2b$10$Eta0ItEPHOyg2R73Ijv3l.0g411E49U8FwR2660epdinR9uDRbdTe",
        "receiveSMS": true,
        "realName": "SS,SSSSS,SS",
        "platform": "612d901dcd001d4becbaea2e",
        "isLogin": false,
        "lastLoginIp": "121.121.17.77",
        "loginIps": [
            "121.121.17.77"
        ],
        "blacklistIp": [],
        "trustLevel": "2",
        "badRecords": [],
        "status": 1,
        "forbidProviders": [],
        "forbidRewardPointsEvent": [],
        "forbidPromoCodeList": [],
        "exp": 0,
        "games": [],
        "domain": "localhost",
        "sourceUrl": "http://localhost:8080",
        "userAgent": [
            {
                "browser": "Mobile Safari",
                "os": "iOS",
                "device": "APP"
            },
            {
                "browser": "Mobile Safari",
                "os": "iOS",
                "device": "iPhone"
            }
        ],
        "country": "Malaysia",
        "province": "Selangor",
        "city": "Puchong Batu Dua Belas",
        "longitude": "",
        "latitude": "",
        "phoneProvince": "",
        "phoneCity": "",
        "phoneType": "Sun Cellular",
        "creditBalance": 0,
        "validCredit": 0,
        "lockedCredit": 0,
        "dailyTopUpSum": 0,
        "dailyTopUpIncentiveAmount": 0,
        "weeklyTopUpSum": 0,
        "pastMonthTopUpSum": 0,
        "topUpSum": 0,
        "topUpTimes": 0,
        "withdrawTimes": 0,
        "dailyWithdrawSum": 0,
        "weeklyWithdrawSum": 0,
        "pastMonthWithdrawSum": 0,
        "withdrawSum": 0,
        "dailyBonusAmountSum": 0,
        "weeklyBonusAmountSum": 0,
        "pastMonthBonusAmountSum": 0,
        "bonusAmountSum": 0,
        "dailyConsumptionSum": 0,
        "weeklyConsumptionSum": 0,
        "pastMonthConsumptionSum": 0,
        "consumptionSum": 0,
        "consumptionTimes": 0,
        "forbidTopUpType": [],
        "forbidRewardEvents": [],
        "forbidPromoCode": false,
        "forbidLevelUpReward": false,
        "forbidLevelMaintainReward": false,
        "bFirstTopUpReward": false,
        "favoriteGames": [],
        "isReferralReward": false,
        "isNewSystem": true,
        "applyingEasterEgg": false,
        "credibilityRemarks": [
            "6603885316013510dd97cc91"
        ],
        "gameProviderPlayed": [],
        "valueScore": 0,
        "registrationInterface": 3,
        "loginTimes": 3,
        "ximaWithdraw": 0,
        "deviceId": "",
        "relTsPhoneList": [],
        "qnaWrongAnswerSum": 0,
        "qnaWrongAnswerExceededCountDate": null,
        "verifyInfoWrongAnswerExceededCountDate": null,
        "hasPassword": true,
        "loginDevice": "2",
        "registrationDevice": "2",
        "registrationOsType": "",
        "isTagByGameTypeSettlement": false,
        "currency": "RMB",
        "resetPassword": false,
        "cstestTransfer": false,
        "isSharedReward": [],
        "registerType": "PHONE",
        "isSecurityDeposit": false,
        "isNickNameUpdated": false,
        "isNewFGPlayerReport": true,
        "isCreatedFromFgUrl": false,
        "isCompleteInfo": true,
        "isCompleteKYC": false,
        "isInvalidSourceURL": false,
        "IDStatus": 0,
        "isGLife": false,
        "lazadaVoucherInvalidRedeemCount": 0,
        "isStressTestPlayer": false,
        "nullField": false,
        "accountStatus": 2,
        "playerType": 1,
        "isStudioFlag": [],
        "isMaya": false,
        "isVivamax": false,
        "inAppPurchaseCount": 0,
        "registrationTime": "2024-05-09T05:45:21.900Z",
        "lastAccessTime": "2024-05-09T05:51:28.097Z",
        "creditWallet": [],
        "similarPlayers": [],
        "__v": 0,
        "bankCardGroup": "6287164332f1ac001af327f7",
        "merchantGroup": "6287164232f1ac001af3260b",
        "playerLevel": "6287164232f1ac001af32706",
        "rewardPointsObjId": "663c62f28400c62f5117feda",
        "lastTokenTime": "2024-05-09T05:51:19.409Z",
        "placeOfBirth": "sss",
        "remark": "First time bound to the bank info",
        "bankAccountName": "SS,SSSSS,SS",
        "natureOfWork": "te",
        "sourceOfFunds": "Inheritance/trust",
        "nationality": "Philippines",
        "address": "s",
        "playerCity": "s",
        "playerProvince": "1",
        "completeInfoDate": "2024-05-09T05:45:53.153Z",
        "bankAccount": "******",
        "bankAccountType": "2",
        "bankName": "177"
    },
    "title": "Update Gcash Info",
    "content": "Update GCASH Info Succeeded",
    "hasBeenRead": true,
    "bDelete": false,
    "createTime": "2024-05-09T05:47:48.656Z",
    "__v": 0
}}
  1. 删除所有站内信
player.deleteAllMail();

响应内容:

data: {status: 200}
  1. 删除站内信
player.deleteMail('658d335d6');
  • 这里的参数为选择删除的邮件唯一码的参数

响应内容:

data: {status: 200,
 data://回传内容可以参考player.readMail}
  1. 获取玩家当天状态
player.getPlayerDayStatus();

响应内容:

data: {status: 200,
data: {topUpAmount: 0, topUpCount: 0, consumptionAmount: 0, payoutAmount: 0}}
  1. 获取玩家本周状态
player.getPlayerWeekStatus();

响应内容:

data: {status: 200,
data: {topUpAmount: 0, topUpCount: 0, consumptionAmount: 0, payoutAmount: 0}}
  1. 获取玩家本月状态
player.getPlayerMonthStatus();

响应内容:

data: {status: 200,
data: {topUpAmount: 0, topUpCount: 0, consumptionAmount: 0, payoutAmount: 0}}
  1. 修改玩家电话
player.updatePhoneNumberWithSMS('1122');
  • updatePhoneNumberWithSMS 需要用参数是一次性密码

响应内容:

data: {status: 200, data: true}
  1. 登入后获取手机验证码
player.sendSMSCodeToPlayer('updatePassword',false);
  • sendSMSCodeToPlayer 这里的第一个参数是验证用途,第二个则为是否使用语音验证码

响应内容:

data: {status: 200, data: true}
  1. 通过验证码验证手机
player.verifyPhoneNumberBySMSCode('2167');
  • verifyPhoneNumberBySMSCode 这里的参数是一次性验证码

响应内容:

data: {status: 200, data: true}
  1. 玩家前端自助判断升级
player.manualPlayerLevelUp();

响应内容:

data: {status: 200,
data: {"message": "恭喜您从  (当前等级) 升级到  (新等级) ,获得 xx元、xx元共x个礼包"}
  1. 玩家当前额度
player.getCreditDetailFE(1);
  • 1 账号类别 1 - PHP,可以不填写默认为 1

响应内容:

data: {status: 200,
 data: {
      gameCreditList: [{  游戏大厅内额度列表
          nickName: 大厅名称
          chName: 大厅中文名称
          validCredit: 额度
          status: 大厅状态,0表示正常,1表示维护中
          providerId: 大厅ID
      }],
      credit: 本地自由额度
      finalAmount: 帐号中的总馀额(含自由本地+锁定本地+游戏馀额)
      walletFreeCredit: EBET钱包内自由额度
      sameLineProviders: {    同一条线路的供应商有哪些
          例子: 序号: ["大厅ID"]
          0: ["47", "55" ],
          1: ["16", "20", "70", "85"],
      },
      lockedCreditList: [{    锁大厅额度列表
          nickName: 大厅组名称
          lockCredit: 本地锁大厅额度
          list: [{    大厅列表
              providerId: 大厅ID
              nickName: 大厅名称
              validCredit: 额度
              status: 大厅状态,0表示正常,1表示维护中
              walletCredit: EBET钱包内额度
          }]
      }]
  }
  1. 登入后获取提款信息
player.getWithdrawalInfo(1);
  • 1 账号类别 1 - PHP,可以不填写默认为 1

响应内容:

data: {status: 200,
data: { freeTimes: 免手续费提款剩余次数
      serviceCharge: 手续费
      currentFreeAmount: 免手续费提款额
      freeAmount: 可提款金额
      ximaWithdraw: 可提款洗码金额
      lockList: [{ 现有锁大厅
          name: 大厅名字
          lockAmount: 锁定额度
          currentLockAmount: 锁定额度余额
      }]}}
  1. 编辑玩家 email
player.updatePlayerEmail('[email protected]','[email protected]');
  • updatePlayerEmail 里面第一个参数是需要更新的邮箱,而第二个是现有的邮箱

响应内容:

data: {status: 200} //第一次绑定

data: {status: 200,data: {
    "_id": "663c6cfc2c5bf0706887f497",
    "mainType": "UpdatePlayer",
    "type": {
        "_id": "6287162c32f1ac001af321bd",
        "expirationDuration": 0,
        "platformId": "612d901dcd001d4becbaea2e",
        "name": "UpdatePlayerEmail",
        "process": "6287162b32f1ac001af320bd",
        "executionType": "executeUpdatePlayerEmail",
        "rejectionType": "rejectUpdatePlayerEmail",
        "__v": 0
    },
    "creator": {
        "type": "player",
        "name": "1103366434",
        "id": "663c62f18400c62f5117fea3"
    },
    "data": {
        "_id": "663c62f18400c62f5117fea3",
        "playerId": "1103366434",
        "platformId": "612d901dcd001d4becbaea2e",
        "playerObjId": "663c62f18400c62f5117fea3",
        "playerName": "1103366434",
        "updateData": {
            "email": "[email protected]"
        },
        "curData": {
            "email": "******"
        },
        "isStressTestPlayer": false,
        "proposalPlayerLevelValue": 0,
        "playerLevelName": "LV1",
        "proposalPlayerLevel": "LV1",
        "realNameBeforeEdit": "SS,SSSSS,SS"
    },
    "priority": "0",
    "entryType": "0",
    "userType": "0",
    "noSteps": true,
    "status": "Approved",
    "processedTimes": 0,
    "inputDevice": 3,
    "device": "2",
    "isSending": false,
    "createTime": "2024-05-09T06:28:12.011Z",
    "expirationTime": "9999-12-31T23:59:59.000Z",
    "settleTime": "2024-05-09T06:28:12.011Z",
    "proposalId": "1003304550",
    "__v": 0
}} //编辑,有填email
  1. 请求回电域名配置
player.callBackToUser('9xxxxxxxxx','2134','1462','0');
  • callBackToUser 内第一个参数是要拨打的电话号码,第二个参数是图片验证码用的随机数字,第三个是图片验证码,第四参数则是线路好不填时为0

响应内容:

data: {"status": 200,"data": true}
  1. 电话号码查找账号
player.inquireAccountByPhoneNumber('1456');
  • inquireAccountByPhoneNumber 内使用的参数是一次性密码

响应内容:

data: {"status": 200,
data: {
          "code": 6309, // 10分钟内有效
          "list": [
              {
                  "name": "dx44224",
                  "phoneNumber": "639xxxxxxxxx",
                  "realName": "",
                  "playerId": "8473",
                  "createTime": "2018-07-26T03:12:36.763Z"
              }
          ]
      }}
  1. 重置玩家密码
player.forgetPassword('4563','abc123');
  • forgetPassword 中使用的第一个参数是一次性验证码,第二个是新的登入密码

响应内容:

data: {status: 200,
  data: {
    playerId:"1103366434",
    playerObjId: "663c62f18400c62f5117fea3",
    text: "密码修改成功"
  }
}
  1. 获取回电域名图片验证
player.getDomainCaptcha();

响应内容:

data: {status: 200,
data: {"randomNumber": 0.06721722742407521, // 确认验证码用
              "b64ImgDataUrl":
              "data:image/jpeg;base64,/9j/4...SZ/9k="  // base 64 图片资料}}
  1. 获取玩家绑定银行卡列表
player.getLinkBankCardList("png");
  • png 图片格式,在返回的内容会包含银行种类的图片,目前只支援 svg 以及 png,可不填写默认为 svg 格式

响应内容:

data: {status: 200,
data: {
      "list": [
    {
        "_id": "65cdeaba41fc8e74bc1847e9",
        "paymentChoice": "1",
        "paymentType": "2",
        "platformObjId": "612d901dcd001d4becbaea2e",
        "playerObjId": "6529460680f4160047cf276a",
        "Maya": {
            "Birthdate": null
        },
        "__v": 0,
        "bankAccount": "091**********123",
        "bankAccountName": "TEST,TEST,TEST",
        "paymentTypeName": "GCash",
        "bankName": "GCash",
        "id": "0001",
        "bankTypeId": "0001",
        "imagePath": "https://cp-images.client88.me/images/cp/images/bank/bank_bg_0001.png"
    },
    {
        "_id": "65cde52e41fc8e74bc17313e",
        "paymentChoice": "1",
        "paymentType": "5",
        "platformObjId": "612d901dcd001d4becbaea2e",
        "playerObjId": "6529460680f4160047cf276a",
        "Maya": {
            "Birthdate": null
        },
        "__v": 0,
        "bankAccount": "091**********123",
        "bankAccountName": "TEST,TEST,TEST",
        "paymentTypeName": "Maya",
        "bankName": "Maya",
        "id": "0004",
        "bankTypeId": "0004",
        "imagePath": "https://cp-images.client88.me/images/cp/images/bank/bank_bg_0004.png"
    },
    {
        "id": "1",
        "isDefault": true,
        "bankName": "China Bank Savings, Inc",
        "bankAccount": "789876**********8432",
        "bankAccountName": "TEST,TEST,TEST",
        "bankAccountProvince": null,
        "bankAccountCity": null,
        "bankAccountDistrict": null,
        "bankAddress": null,
        "bankTypeId": "204",
        "imagePath": "https://cp-images.client88.me/images/cp/images/bank/bank_bg_204.png"
    }
]
    }
  1. 修改生日日期
player.changeBirthday('2000-08-06T01:02:08.957Z');
  • changeBirthday 内的参数是想要更新的日期

响应内容:

data: {status: 200,
  data:{
    "_id": "663c6e9d5ed81ba8c8296e0c",
    "mainType": "UpdatePlayer",
    "type": {
        "_id": "6287162c32f1ac001af32242",
        "expirationDuration": 0,
        "platformId": "612d901dcd001d4becbaea2e",
        "name": "UpdatePlayerInfo",
        "process": "6287162b32f1ac001af320b6",
        "executionType": "executeUpdatePlayerInfo",
        "rejectionType": "rejectUpdatePlayerInfo",
        "__v": 0
    },
    "creator": {
        "type": "player",
        "name": "1103366445",
        "id": "663c6e935ed81ba8c8296ce7"
    },
    "data": {
        "_id": "663c6e935ed81ba8c8296ce7",
        "playerId": "1103366445",
        "platformId": "612d901dcd001d4becbaea2e",
        "playerObjId": "663c6e935ed81ba8c8296ce7",
        "playerName": "1103366445",
        "DOB": "2000-02-04T00:00:00.000Z",
        "remark": "Date of Birth",
        "isIgnoreAudit": true,
        "isStressTestPlayer": false,
        "proposalPlayerLevelValue": 0,
        "playerLevelName": "LV1",
        "proposalPlayerLevel": "LV1",
        "realNameBeforeEdit": ""
    },
    "priority": "0",
    "entryType": "0",
    "userType": "0",
    "noSteps": true,
    "status": "Approved",
    "processedTimes": 0,
    "inputDevice": 3,
    "device": "2",
    "isSending": false,
    "createTime": "2024-05-09T06:35:09.095Z",
    "expirationTime": "9999-12-31T23:59:59.000Z",
    "settleTime": "2024-05-09T06:35:09.095Z",
    "proposalId": "1003304576",
    "__v": 0
  }
}
  1. 设置性别
player.updateGender(true);
  • update 内的参数是 boolean true 男false 女

响应内容:

data: {status: 200, data:true}
  1. 上传头像
player.uploadAvatar("base64 image");
  • 在这里的参数是用户输入的照片

响应内容:

data: {status: 200, data: true}
  1. 更新额外信息
player.updateAdditionalInfo({password:'1234',postcode:'1234',.......});
  • 此接口的请求内容会随着用户点击更新哪些额外信息而改变,以下是有可能会使用到的参数
    address: 玩家地址,IDCardNumber: 身份证号码,postcode: 邮政编号,playerProvince: 省,playerCity: 市 ,nickName: 呢称, nationality: 国籍 ,sourceOfFunds: 资金来源 ,photoId1: 第一身份证,photoId2: 第二身份证,verifyPhoto: 第一身份证, photoId1Type: 第一身份证类型,photoId2Type: 第二身份证类型1,placeOfBirth: 出生地址,natureOfWork: 工作性质, password: 第一次设置密码

响应内容:

data: {status: 200, data: true}
  1. 设置真实姓名
player.setRealName('xxx');
  • 这里面的参数是客户真实名称

响应内容:

data: {status: 200}
  1. 查询重置密码链接
player.checkResetPasswordUrlValidity('xxxxxxxxxx');
  • xxxxxxxxxx这里所需的参数是 token

响应内容:

data: {status: 200}
  1. 查询重置密码链接
player.updatePasswordWithResetPasswordUrl('xxxxxxxxxx','abc123','abc123');
  • xxxxxxxxxx第一个参数是 token,而参数第二个是新的密码,第三个是确认密码

响应内容:

data: {status: 200}
  1. GCash 单月限额
player.getGcashLimit();

响应内容:

data: {status: 200
data: { "gcashLimit": 0,"checkGcashLimit": 0}}
  1. 绑定手机号
player.setPhoneNumber(“639123456789”,”2304”)
  • 这里的参数第一个是手机号,第二个是一次性验证码(需要使用 getSMSCode{purpose:"setPhoneNumber"}来获取)

响应内容:

{status: 200,
data: {number: “639123456789”}}
  1. 获取 KYC 状态
player.getKycStatus()

| Status | 状态 | | :----- | :----------------------------------------------------------------------- | | 1 | 已完成,可以无阻碍使用此账号 | | 2 | 未完成,需要填写,不填写不让进游戏, 存款和提款 | | 3 | 未完成,需要填写,不填写可以进游戏以及存款,但是提款必须填且必须审核通过 | | 4 | 已提交,等待审核,不能进游戏, 存款和提款 | | 5 | 已提交,等待审核,可以进游戏以及存款,但是提款不能使用,需等待审核 | | 6 | 被拒绝,请重新提交,不能进游戏, 存款和提款 |

  • 这里的功能可以根据状态来判断玩家是否可以进入存款,提款以及游戏,使用此接口必须要请求 platform.getConfig()之后,登入/注册或者推送信息 playerInfo 才可去请求此功能

响应内容:

{
    "status": 1, //状态
    "isGameBlocked": false, //游戏是否被阻挡
    "isWithdrawalBlocked": false, //提款是否被阻挡
    "isDepositBlocked": false //存款是否被阻挡
}

游戏

  1. 获取游戏配置
game.getGameConfig({deviceType: 0,getJackpot: true, timestamp: "172039481"})
  • getGameConfig 使用花括号添加参数,所需的参数有必填的 deviceType,deviceType:0-全部, 1-Web, 2-H5, 4-APP,而第一个选填参数是 getJackpot,如果填写 true 会去请求最新头奖金额,默认为 false,第二个选填参数为 timestamp 时间戳 可以不填写。

响应内容

data:{
    "games": [
        {
            "device": 1,
            "title": "casino",
            "displayFormat": 3,
            "displayOrder": 1
        },
        {
            "device": 4,
            "title": "popular",
            "displayFormat": 1,
            "displayOrder": 1
        },
        {
            "device": 2,
            "title": "popular",
            "displayFormat": 3,
            "displayOrder": 1,
            "displayTitle": "Popular Games"
        },
        {
            "device": 1,
            "title": "SabaSport",
            "displayFormat": 3,
            "displayOrder": 2
        },
        {
            "device": 2,
            "title": "Popular Slot Games",
            "displayFormat": 3,
            "displayOrder": 2,
            "displayTitle": "Popular Slot Games"
        },
        {
            "device": 4,
            "title": "Popular Slot Games",
            "displayFormat": 3,
            "displayTitle": "Popular Slot Games",
            "displayOrder": 2
        },
        {
            "device": 1,
            "displayFormat": 5,
            "title": "slotgame",
            "displayOrder": 3
        },
        {
            "title": "Live Casino Games-Best Online Casino",
            "device": 4,
            "displayFormat": 1,
            "displayOrder": 3
        },
        {
            "device": 2,
            "title": "Live Casino Games-Best Online Casino",
            "displayFormat": 3,
            "displayOrder": 3,
            "displayTitle": "Live Games"
        },
        {
            "device": 1,
            "title": "liveslot",
            "displayFormat": 3,
            "displayOrder": 4
        },
        {
            "device": 4,
            "title": "Slot Games",
            "displayFormat": 3,
            "displayOrder": 4,
            "displayTitle": "Slot Games"
        },
        {
            "device": 2,
            "title": "Slot Games",
            "displayFormat": 3,
            "displayOrder": 4,
            "displayTitle": "Slot Game"
        },
        {
            "device": 2,
            "title": "Online Slot Machine-Online Casino Games",
            "displayFormat": 3,
            "displayOrder": 5,
            "displayTitle": "Online Slot Machine"
        },
        {
            "device": 4,
            "title": "JILI",
            "displayFormat": 5,
            "displayOrder": 5
        },
        {
            "device": 4,
            "title": "Online Slot Machine-Online Casino Games",
            "displayFormat": 1,
            "displayOrder": 6
        },
        {
            "device": 2,
            "title": "card555",
            "displayFormat": 3,
            "displayOrder": 6,
            "displayTitle": "Card 1234"
        },
        {
            "device": 4,
            "title": "Sports Games-Best Online Casino",
            "displayFormat": 3,
            "displayOrder": 7
        }
    ],
    "configColorGame": {
        "colorGameEffect": false,
        "titleBanner": "cp/colorgamehosting/mingxing_408/408_alyssa/frame.png",
        "newImage": "cp/colorgamehosting/mingxing_408/408_alyssa/thumb.png"
    },
    "jackpot": {
        "DFDCGRANDJackpot": 600000,
        "DRAGONSGOLDJackpot": 200000,
        "DUOFUJackpot": 100000.87,
        "FORTUNETEEJackport": 300000,
        "GFortuneJackpot": 2195973.87,
        "JINJIJackpot": 100000.87,
        "JJBXGOLDJackpot": 500000,
        "YELLOWDRAGONJackpot": 10000,
        "BACCARATJackpot": 1000000
    }
}
  1. 获取主页游戏分组
game.getHomeGame({deviceType: 2,getJackpot: true, timestamp: "172039481"})
  • 可以参考 getGameConfig 的内容

响应内容

data:{
    "games": [
        {
            "device": 2,
            "title": "popular",
            "displayFormat": 3,
            "displayOrder": 1,
            "children": [],
            "name": "Popular Games",
            "displayName": "popular",
            "games": {
                "gameList": [
                    {
                        "index": 1,
                        "game": {
                            "_id": "662247ed87a2282158d87019",
                            "gameId": "GE-750931640",
                            "name": "Slots Live",
                            "code": "jin ji bao xi",
                            "bigShow": "https://cp-images.client88.me/images/callfpms/612d901dcd001d4becbaea2e/osm-jinjibaoxi.jpg",
                            "smallShow": "https://cp-images.client88.me/images/callfpms/612d901dcd001d4becbaea2e/osm-jinjibaoxi.jpg",
                            "visible": false,
                            "canTrial": false,
                            "type": "9999",
                            "description": "Slots Live",
                            "status": 1,
                            "recommendContent": 0,
                            "gameEntryUrl": "https://www.client88.me/inGame?name=Slots%20Live&title=Popular%20Games",
                            "isGameEntry": true,
                            "certificationStatus": false,
                            "gameEntryGameId": "607C030D-CBFF-4A30-8D0B-FE6622FB4313",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "isTemporaryMaintenance": true,
                            "providerName": "",
                            "providerEngName": "",
                            "providerRestriction": 1
                        },
                        "_id": "66224d7b6ebb7706a0e132e1"
                    },
                    {
                        "index": 2,
                        "game": {
                            "_id": "654c7e1006d9c90020ef5426",
                            "visible": false,
                            "canTrial": false,
                            "description": "JILI SLOT",
                            "status": 1,
                            "recommendContent": 0,
                            "name": "JILI SLOT",
                            "code": "JILI SLOT",
                            "smallShow": "https://cp-images.client88.me/images/callfpms/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "bigShow": "https://cp-images.client88.me/images/callfpms/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "gameEntryUrl": "games/?name=Slot%20Game&sub_mode=JILI",
                            "gameId": "GE-908303629",
                            "isGameEntry": true,
                            "type": "9999",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "isTemporaryMaintenance": true,
                            "providerName": "",
                            "providerEngName": "",
                            "providerRestriction": 1,
                            "certificationStatus": false
                        },
                        "_id": "66224d7b6ebb7706a0e132e2"
                    },
                    {
                        "index": 3,
                        "game": {
                            "_id": "65787b0f770099005a95aa42",
                            "visible": true,
                            "canTrial": false,
                            "description": "Color Game",
                            "status": 1,
                            "recommendContent": 0,
                            "gameId": "52008034-9350-49CF-97AF-B81999FB9DAF",
                            "bigShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/166/53_colorgame-live.png",
                            "smallShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/166/53_colorgame-live.png",
                            "showPriority": 1,
                            "code": "colorgame@31,33-CG01_h5",
                            "name": "Color Game",
                            "playGameType": "2",
                            "aliasCode": "color-game,Color Game Jackpot,31",
                            "sourceURL": "https://cp-images.client88.me/images",
                            "type": "166",
                            "regionName": {
                                "VN": "",
                                "EN": "Color Game",
                                "TH": ""
                            },
                            "provider": "166",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "webp": "https://cp-images.client88.me/images/cpms/ALL_GAME/166/colorgame0413.webp",
                            "images": {
                                "50": "https://cp-images.client88.me/images/cpms/ALL_GAME/166/50_image(8).png"
                            },
                            "changedName": {
                                "50": "Color Game"
                            },
                            "title": "",
                            "certificationStatus": false,
                            "lastCertificationDate": "2024-01-15T01:53:35.079Z",
                            "isTemporaryMaintenance": true,
                            "providerName": "CPCOLORGAME",
                            "providerEngName": "Casino Plus Color Game",
                            "providerRestriction": 1
                        },
                        "_id": "66224d7b6ebb7706a0e132e3"
                    },
                    {
                        "index": 4,
                        "game": {
                            "_id": "65787be36f50da0032f67b5c",
                            "visible": true,
                            "canTrial": false,
                            "description": "Baccarat",
                            "status": 1,
                            "recommendContent": 0,
                            "gameId": "4E5C9BDA-AEBF-4BA6-A124-CCD91609C02F",
                            "bigShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/171/50_New.png",
                            "smallShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/171/50_New.png",
                            "showPriority": 1,
                            "code": "baccarat@1-E001_h5",
                            "name": "Baccarat",
                            "playGameType": "2",
                            "aliasCode": "1",
                            "sourceURL": "https://cp-images.client88.me/images",
                            "type": "171",
                            "regionName": {
                                "VN": "",
                                "EN": "Baccarat",
                                "TH": ""
                            },
                            "provider": "171",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "webp": "https://cp-images.client88.me/images/cpms/ALL_GAME/171/baccarat-live-game0417.webp",
                            "images": {
                                "50": "https://cp-images.client88.me/images/cpms/ALL_GAME/171/50_New.png"
                            },
                            "certificationStatus": false,
                            "lastCertificationDate": "2024-02-16T08:51:07.076Z",
                            "title": "",
                            "isTemporaryMaintenance": true,
                            "providerName": "CPBACCARAT",
                            "providerEngName": "Casino Plus Baccarat",
                            "providerRestriction": 1
                        },
                        "_id": "66224d7b6ebb7706a0e132e4"
                    },
                    {
                        "index": 5,
                        "game": {
                            "_id": "65faab8988d421b5c1c34235",
                            "gameId": "GE-820531837",
                            "name": "FCGAME",
                            "code": "FCGAME",
                            "bigShow": "https://cp-images.client88.me/images/callfpms/612d901dcd001d4becbaea2e/FC总入口图.png",
                            "smallShow": "https://cp-images.client88.me/images/callfpms/612d901dcd001d4becbaea2e/FC总入口图.png",
                            "visible": false,
                            "canTrial": false,
                            "type": "9999",
                            "description": "FCGAME",
                            "status": 1,
                            "recommendContent": 0,
                            "gameEntryUrl": "/games/?name=Online%20Slot%20Machine",
                            "isGameEntry": true,
                            "certificationStatus": false,
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "isTemporaryMaintenance": true,
                            "providerName": "",
                            "providerEngName": "",
                            "providerRestriction": 1
                        },
                        "_id": "66224d7b6ebb7706a0e132e5"
                    },
                    {
                        "index": 6,
                        "game": {
                            "_id": "658a793cbe4c2e0039088698",
                            "visible": true,
                            "canTrial": false,
                            "description": "Good Fortune",
                            "status": 1,
                            "recommendContent": 0,
                            "bigShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/170/osm-goodfortune_v3.jpg",
                            "code": "osmbwjl_h5",
                            "gameId": "E68F1570-EFDC-475E-8E3A-9190EEE92307",
                            "name": "Good Fortune",
                            "showPriority": 1,
                            "smallShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/170/osm-goodfortune_v3.jpg",
                            "title": "",
                            "type": "170",
                            "aliasCode": "osmbwjl",
                            "playGameType": "2",
                            "sourceURL": "https://cp-images.client88.me/images",
                            "webp": "https://cp-images.client88.me/images/cpms/ALL_GAME/170/osm-goodfortune_v3.webp",
                            "regionName": {
                                "VN": "",
                                "EN": "Good Fortune",
                                "TH": ""
                            },
                            "provider": "170",
                            "gameRecommendedSetting": [
                                {
                                    "recommendContent": 0,
                                    "_id": "6593a50af55c440062400422",
                                    "rtp": 0,
                                    "platformObjId": "612d901dcd001d4becbaea2e",
                                    "activityUrl": "",
                                    "gameCode": "",
                                    "introduction": "",
                                    "longIntroduction": "",
                                    "newPageUrl": "",
                                    "onClickAction": null,
                                    "rewardCode": "",
                                    "route": ""
                                }
                            ],
                            "__v": 0,
                            "gameDisplay": null,
                            "activityUrl": "",
                            "gameCode": "",
                            "newPageUrl": "",
                            "onClickAction": "",
                            "rewardCode": "",
                            "route": "",
                            "isTemporaryMaintenance": true,
                            "providerName": "OSM",
                            "providerEngName": "Casino Plus OSM",
                            "providerRestriction": 1,
                            "certificationStatus": false
                        },
                        "_id": "66224d7b6ebb7706a0e132e6"
                    },
                    {
                        "index": 7,
                        "game": {
                            "_id": "65787ae8188823004f016d63",
                            "visible": true,
                            "canTrial": false,
                            "description": "Duo Fu Duo Cai",
                            "status": 1,
                            "recommendContent": 2,
                            "gameId": "D10DA945-8E8A-4AEE-94C5-E347172CA665",
                            "bigShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/170/50_duo-fu-duo-cai-slot2.png",
                            "smallShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/170/50_duo-fu-duo-cai-slot2.png",
                            "showPriority": 1,
                            "code": "osmdfdc_h5",
                            "name": "Duo Fu Duo Cai",
                            "playGameType": "2",
                            "aliasCode": "osmdfdc",
                            "sourceURL": "https://cp-images.client88.me/images",
                            "type": "170",
                            "regionName": {
                                "VN": "",
                                "EN": "Duo Fu Duo Cai",
                                "TH": ""
                            },
                            "provider": "170",
                            "gameRecommendedSetting": [
                                {
                                    "platformObjId": "612d901dcd001d4becbaea2e",
                                    "recommendContent": 2,
                                    "onClickAction": null,
                                    "newPageUrl": "",
                                    "activityUrl": "",
                                    "rewardCode": "",
                                    "route": "",
                                    "gameCode": "",
                                    "introduction": "test",
                                    "longIntroduction": "test",
                                    "_id": "65ea8b5ab1bbd597dd066d73"
                                }
                            ],
                            "__v": 0,
                            "webp": "https://cp-images.client88.me/images/cpms/ALL_GAME/170/50_duo-fu-duo-cai-slot2.webp",
                            "images": {
                                "50": "https://cp-images.client88.me/images/cpms/ALL_GAME/170/50_duo-fu-duo-cai-slot2.png"
                            },
                            "certificationStatus": false,
                            "lastCertificationDate": "2024-03-05T09:08:21.226Z",
                            "activityUrl": "",
                            "gameCode": "",
                            "newPageUrl": "",
                            "onClickAction": "",
                            "rewardCode": "",
                            "route": "",
                            "isTemporaryMaintenance": true,
                            "providerName": "OSM",
                            "providerEngName": "Casino Plus OSM",
                            "providerRestriction": 1
                        },
                        "_id": "66224d7b6ebb7706a0e132e7"
                    },
                    {
                        "index": 8,
                        "game": {
                            "_id": "65fd4be02222449d8daf1470",
                            "gameId": "31A277BE-88DF-44BD-9701-3B30BC0D5D67",
                            "name": "Double Roulette",
                            "title": "",
                            "code": "Double Roulette@34-DR01_h5",
                            "aliasCode": "double-roulette,Double Roulette,Roulette X,34",
                            "bigShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/181/Double Roulette@34-DR01_h5.png",
                            "smallShow": "https://cp-images.client88.me/images/cpms/ALL_GAME/181/Double Roulette@34-DR01_h5.png",
                            "visible": true,
                            "canTrial": false,
                            "type": "181",
                            "description": "Double Roulette",
                            "regionName": {
                                "VN": "",
                                "EN": "Double Roulette",
                                "TH": ""
                            },
                            "provider": "181",
                            "status": 1,
                            "showPriority": 1,
                            "playGameType": "2",
                            "sourceURL": "https://cp-images.client88.me/images",
                            "webp": "https://cp-images.client88.me/images/cpms/ALL_GAME/181/Double Roulette@34-DR01_h5.webp",
                            "recommendContent": 0,
                            "certificationStatus": false,
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "isTemporaryMaintenance": true,
                            "providerName": "DOUBLEROULETTE",
                            "providerEngName": "Double Roulette",
                            "providerRestriction": 1
                        },
                        "_id": "66224d7b6ebb7706a0e132e8"
                    },
                ]
            },
            "groupId": "4677",
            "code": 101
        },
        {
            "device": 2,
            "title": "Slot Popular Games",
            "displayFormat": 3,
            "displayOrder": 2,
            "name": "Slot Popular Games",
            "displayName": "Slot Popular Games",
            "games": {
                "gameList": [
                    {
                        "index": 1,
                        "game": {
                            "_id": "654c7e1006d9c90020ef5426",
                            "visible": false,
                            "canTrial": false,
                            "description": "JILI SLOT",
                            "status": 1,
                            "recommendContent": 0,
                            "name": "JILI SLOT",
                            "code": "JILI SLOT",
                            "smallShow": "https://cp-images.client88.me/images/callfpms/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "bigShow": "https://cp-images.client88.me/images/callfpms/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "gameEntryUrl": "games/?name=Slot%20Game&sub_mode=JILI",
                            "gameId": "GE-908303629",
                            "isGameEntry": true,
                            "type": "9999",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "isTemporaryMaintenance": true,
                            "providerName": "",
                            "providerEngName": "",
                            "providerRestriction": 1,
                            "certificationStatus": false
                        },
                        "_id": "662242d287a2282158d8488e"
                    },
                    {
                        "index": 2,
                        "game": {
                            "_id": "654dac090f2368004803836f",
                            "visible": false,
                            "canTrial": false,
                            "description": "Gamezone",
                            "status": 1,
                            "recommendContent": 0,
                            "name": "Gamezone",
                            "code": "Gamezone",
                            "smallShow": "https://callfpms-ftp.neweb.me/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "bigShow": "https://callfpms-ftp.neweb.me/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "gameEntryUrl": "games?name=Gamezone%20Slots",
                            "gameId": "GE-617743173",
                            "isGameEntry": true,
                            "type": "9999",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "isTemporaryMaintenance": true,
                            "providerName": "",
                            "providerEngName": "",
                            "providerRestriction": 1,
                            "certificationStatus": false
                        },
                        "_id": "662242d287a2282158d8488f"
                    },
                    {
                        "index": 3,
                        "game": {
                            "_id": "654daca40f236800480384be",
                            "visible": false,
                            "canTrial": false,
                            "description": "GAMEZONEtest",
                            "status": 1,
                            "recommendContent": 0,
                            "name": "GAMEZONEtest",
                            "code": "GAMEZONEtest",
                            "smallShow": "https://callfpms-ftp.neweb.me/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "bigShow": "https://callfpms-ftp.neweb.me/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "gameEntryUrl": "games?name=Gamezone%20Slots",
                            "gameId": "GE-589187864",
                            "isGameEntry": true,
                            "type": "9999",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "isTemporaryMaintenance": true,
                            "providerName": "",
                            "providerEngName": "",
                            "providerRestriction": 1,
                            "certificationStatus": false
                        },
                        "_id": "662242d287a2282158d84890"
                    },
                    {
                        "index": 4,
                        "game": {
                            "_id": "654db3c51508010019ac3a87",
                            "visible": false,
                            "canTrial": false,
                            "description": "Gamezonetest",
                            "status": 1,
                            "recommendContent": 0,
                            "name": "Gamezonetest",
                            "code": "Gamezonetest",
                            "smallShow": "https://callfpms-ftp.neweb.me/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "bigShow": "https://callfpms-ftp.neweb.me/612d901dcd001d4becbaea2e/JILISLOT.png",
                            "gameEntryUrl": "games?name=Gamezone%20Slots",
                            "gameId": "GE-100827580",
                            "isGameEntry": true,
                            "type": "9999",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "isTemporaryMaintenance": true,
                            "providerName": "",
                            "providerEngName": "",
                            "providerRestriction": 1,
                            "certificationStatus": false
                        },
                        "_id": "662242d287a2282158d84891"
                    },
                    {
                        "index": 5,
                        "game": {
                            "_id": "6537862a653dd9002e898b72",
                            "visible": false,
                            "canTrial": false,
                            "description": "tesing_pm",
                            "status": 1,
                            "recommendContent": 0,
                            "name": "tesing_pm",
                            "code": "testing_pm",
                            "smallShow": "https://callfpms-ftp.neweb.me/612d901dcd001d4becbaea2e/game_icon_01.png",
                            "bigShow": "https://callfpms-ftp.neweb.me/612d901dcd001d4becbaea2e/game_icon_01.png",
                            "gameEntryUrl": "games?name=Gamezone%20Slots",
                            "gameId": "GE-926509118",
                            "isGameEntry": true,
                            "type": "9999",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "changedName": {
                                "50": "testing_pm"
                            },
                            "isTemporaryMaintenance": true,
                            "providerName": "",
                            "providerEngName": "",
                            "providerRestriction": 1,
                            "certificationStatus": false
                        },
                        "_id": "662242d287a2282158d84892"
                    },
                ]
            },
            "children": [],
            "groupId": "1000004881",
            "code": 129
        },
        {
            "device": 2,
            "title": "Popular Slot Games",
            "displayFormat": 3,
            "displayOrder": 3,
            "name": "Popular Slot Games",
            "displayName": "Popular Slot Games",
            "games": {
                "gameList": [
                    {
                        "index": 1,
                        "game": {
                            "_id": "657933e64e6bd3003fc8cef7",
                            "visible": true,
                            "canTrial": false,
                            "description": "Chin Shi Huang",
                            "status": 1,
                            "recommendContent": 0,
                            "bigShow": "https://cp-images.client88.me/images/cpms/jili/mobile/2.jpg",
                            "code": "2_h5",
                            "gameId": "B8339964-E520-4C33-A9DE-69F60FA8F7A9",
                            "name": "Chin Shi Huang",
                            "showPriority": 1,
                            "smallShow": "https://cp-images.client88.me/images/cpms/jili/mobile/2.jpg",
                            "title": "",
                            "type": "175",
                            "playGameType": "2",
                            "sourceURL": "https://cp-images.client88.me/images",
                            "webp": "https://cp-images.client88.me/images/cpms/jili/mobile/2.webp",
                            "regionName": {
                                "VN": "",
                                "EN": "Chin Shi Huang",
                                "TH": ""
                            },
                            "provider": "175",
                            "gameRecommendedSetting": [],
                            "__v": 0,
                            "aliasCode": "",
                            "certificationStatus": false,
                            "isTemporaryMaintenance": true,
                            "providerName": "JILIBETA",
                            "providerEngName": "JILI BETA",
                            "providerRestriction": 1
                        },
                        "_id": "661910c0cca97085b6c52103"
                    },
                    {
                        "index": 1,
                        "game": {
                            "_id": "657c46251a0ca40055a7c7a8",
                            "visible": true,
                            "canTrial": false,
                            "description": "Boxing King",
                            "status": 1,