first commit
This commit is contained in:
59
plans/create_cursor_workspace_e8a5f935.plan.md
Normal file
59
plans/create_cursor_workspace_e8a5f935.plan.md
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
name: Create Cursor Workspace
|
||||||
|
overview: 在 `/Users/ray/Documents/project/www/slot` 创建一个 Cursor/VS Code workspace 文件,并把该目录下的一级项目文件夹加入 workspace。默认排除 `.vscode` 和普通文件。
|
||||||
|
todos:
|
||||||
|
- id: check-existing
|
||||||
|
content: 检查 `/Users/ray/Documents/project/www/slot/slot.code-workspace` 是否已存在
|
||||||
|
status: completed
|
||||||
|
- id: write-workspace
|
||||||
|
content: 创建或合并 workspace folders 列表
|
||||||
|
status: completed
|
||||||
|
- id: validate-json
|
||||||
|
content: 校验 `.code-workspace` JSON 格式
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Create Slot Workspace
|
||||||
|
|
||||||
|
将在 [`/Users/ray/Documents/project/www/slot/slot.code-workspace`](/Users/ray/Documents/project/www/slot/slot.code-workspace) 创建 workspace 文件,内容使用标准 `.code-workspace` JSON 格式。
|
||||||
|
|
||||||
|
计划加入这些一级非隐藏文件夹:
|
||||||
|
|
||||||
|
- [`backend`](/Users/ray/Documents/project/www/slot/backend)
|
||||||
|
- [`monitor`](/Users/ray/Documents/project/www/slot/monitor)
|
||||||
|
- [`slot-foundation`](/Users/ray/Documents/project/www/slot/slot-foundation)
|
||||||
|
- [`slot_agent`](/Users/ray/Documents/project/www/slot/slot_agent)
|
||||||
|
- [`slot_agent_vue`](/Users/ray/Documents/project/www/slot/slot_agent_vue)
|
||||||
|
- [`slot_center`](/Users/ray/Documents/project/www/slot/slot_center)
|
||||||
|
- [`slot_console`](/Users/ray/Documents/project/www/slot/slot_console)
|
||||||
|
- [`slot_gateway`](/Users/ray/Documents/project/www/slot/slot_gateway)
|
||||||
|
- [`slot_hub`](/Users/ray/Documents/project/www/slot/slot_hub)
|
||||||
|
- [`slot_lib`](/Users/ray/Documents/project/www/slot/slot_lib)
|
||||||
|
- [`slot_notification`](/Users/ray/Documents/project/www/slot/slot_notification)
|
||||||
|
- [`slot_pay`](/Users/ray/Documents/project/www/slot/slot_pay)
|
||||||
|
- [`slot_pwa`](/Users/ray/Documents/project/www/slot/slot_pwa)
|
||||||
|
- [`slot_risk`](/Users/ray/Documents/project/www/slot/slot_risk)
|
||||||
|
- [`slot_sdk`](/Users/ray/Documents/project/www/slot/slot_sdk)
|
||||||
|
- [`slot_user`](/Users/ray/Documents/project/www/slot/slot_user)
|
||||||
|
- [`slot_wallet`](/Users/ray/Documents/project/www/slot/slot_wallet)
|
||||||
|
|
||||||
|
Workspace 文件结构会类似:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{ "path": "backend" },
|
||||||
|
{ "path": "monitor" },
|
||||||
|
{ "path": "slot-foundation" }
|
||||||
|
],
|
||||||
|
"settings": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
实施步骤:
|
||||||
|
|
||||||
|
1. 检查目标文件是否已存在,避免覆盖已有 workspace 配置。
|
||||||
|
2. 如果不存在,创建 [`slot.code-workspace`](/Users/ray/Documents/project/www/slot/slot.code-workspace)。
|
||||||
|
3. 如果已存在,先读取现有内容,再合并缺失的文件夹,保留已有设置。
|
||||||
|
4. 校验生成的 JSON 格式可被 Cursor 打开。
|
||||||
121
plans/docker_环境_cursor_规则_ae19913d.plan.md
Normal file
121
plans/docker_环境_cursor_规则_ae19913d.plan.md
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
---
|
||||||
|
name: Docker 环境 Cursor 规则
|
||||||
|
overview: 建议把 Docker 开发环境信息写成 Cursor 规则,但单独一条、尽量简短;优先放在 slot 项目级规则,只有跨多个仓库共用同一套 Docker 时才放到用户级规则。
|
||||||
|
todos:
|
||||||
|
- id: decide-scope
|
||||||
|
content: 确认 Docker 规则放项目级 (slot) 还是用户级 (~/.cursor/rules)
|
||||||
|
status: completed
|
||||||
|
- id: confirm-php-container
|
||||||
|
content: 确认 slot 后端默认容器 php82 与各服务 working_dir
|
||||||
|
status: completed
|
||||||
|
- id: create-dev-rule
|
||||||
|
content: 新建 dev-environment.mdc(15–30 行,含 compose 路径、容器名、端口、exec 示例)
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Docker 环境是否写入 Cursor 规则
|
||||||
|
|
||||||
|
## 结论
|
||||||
|
|
||||||
|
**值得写进 Cursor 规则**,但**不必**和 [`backend-layering.mdc`](/Users/ray/.cursor/rules/backend-layering.mdc) 混在同一条里,也**不必**默认全部塞进「用户级 + alwaysApply」。
|
||||||
|
|
||||||
|
原因:Agent 在帮你跑 `php`、`composer`、`artisan`、迁移、单测、连 Redis/MySQL 时,若不知道服务在容器里,常会错误地在宿主机执行,或连错端口(例如 MySQL 映射是 `3309:3306`)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 用户级 vs 项目级:怎么选
|
||||||
|
|
||||||
|
| 放置位置 | 路径 | 适用场景 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| **项目级(推荐)** | 例如在 slot 多根工作区根目录建 [`.cursor/rules/dev-environment.mdc`](file:///Users/ray/Documents/project/www/slot/.cursor/rules/dev-environment.mdc) | 只有 slot / `www/slot` 相关仓库用这套 Docker |
|
||||||
|
| **用户级** | [`~/.cursor/rules/dev-environment.mdc`](/Users/ray/.cursor/rules/dev-environment.mdc) | 多个不相关项目都共用 [`/Users/ray/Documents/project/docker/docker-compose.yml`](file:///Users/ray/Documents/project/docker/docker-compose.yml) |
|
||||||
|
|
||||||
|
你当前用户级只有分层规范一条,且 `alwaysApply: true`。Docker 信息属于**运行环境**,和编码规范是不同关注点:
|
||||||
|
|
||||||
|
- **分层规则**:继续 `alwaysApply: true`(跨项目仍有用)
|
||||||
|
- **Docker 规则**:建议 `alwaysApply: false`,或仅在 slot 工作区用项目级规则;避免在写前端、文档、Figma 时也占用上下文
|
||||||
|
|
||||||
|
当前 slot 工作区下**没有** [`.cursor/rules/`](file:///Users/ray/Documents/project/www/slot/.cursor/rules),更适合为 slot 单独加一条 `dev-environment.mdc`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 规则里应写什么(可操作、短)
|
||||||
|
|
||||||
|
根据你的 [`docker-compose.yml`](file:///Users/ray/Documents/project/docker/docker-compose.yml),建议只写 Agent **执行命令时必需** 的信息:
|
||||||
|
|
||||||
|
1. **Compose 位置**:`/Users/ray/Documents/project/docker/docker-compose.yml`
|
||||||
|
2. **容器名 → 用途**(执行命令用 `docker exec`,不要用宿主机 PHP/CLI):
|
||||||
|
- `php82` — PHP 8.2(slot 后端主环境,按你实际版本确认)
|
||||||
|
- `php72` — PHP 7.2(若有老项目)
|
||||||
|
- `goMysql` — MySQL 8(容器内 `3306`,宿主机 **`3309`**)
|
||||||
|
- `redis` — `6379`;`goredis` — 宿主机 `6378`
|
||||||
|
3. **挂载路径**:宿主机 `/Users/ray/Documents/project` → 容器内 `/app`(项目在容器内路径如 `/app/www/slot/backend`)
|
||||||
|
4. **命令约定**(示例,按你项目真实入口改):
|
||||||
|
- PHP:`docker exec -w /app/www/slot/backend php82 php ...`
|
||||||
|
- Composer / artisan:同样在 `php82` 内、对应 `working_dir` 执行
|
||||||
|
- MySQL CLI:`docker exec -it goMysql mysql -uroot -proot ...`(或注明用宿主机 `127.0.0.1:3309`)
|
||||||
|
5. **明确禁止/避免**:不要在 macOS 宿主机直接跑 `php`/`composer`(除非已确认本机也有同版本环境)
|
||||||
|
|
||||||
|
**不建议写进规则的内容**:
|
||||||
|
|
||||||
|
- 完整 `docker-compose.yml` 复制(冗长、易过期)
|
||||||
|
- 所有服务密码细节(compose 里已有;规则里写「以 compose 为准」即可)
|
||||||
|
- RabbitMQ、Milvus 等与当前 slot 任务无关的服务(除非经常用到)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 与现有文档的关系
|
||||||
|
|
||||||
|
- **Cursor 规则**:给 Agent 的「默认假设」,每次对话自动带上(按 `alwaysApply` / `globs`)
|
||||||
|
- **仓库 README / `docs/dev-setup.md`**:给人看的完整说明;规则可写一句「详细步骤见 xxx」
|
||||||
|
|
||||||
|
两者可并存:规则 15–30 行,文档可更长。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 建议的规则骨架(项目级示例)
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
description: Slot 本地 Docker 开发环境(PHP / MySQL / Redis)
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Local Dev (Docker)
|
||||||
|
|
||||||
|
- Compose: `/Users/ray/Documents/project/docker/docker-compose.yml`
|
||||||
|
- Host project root: `/Users/ray/Documents/project` → container `/app`
|
||||||
|
- Run PHP/Composer/Artisan inside container `php82`, not on macOS host.
|
||||||
|
- MySQL: container `goMysql`; from host use `127.0.0.1:3309`.
|
||||||
|
- Redis: container `redis`, host port `6379`.
|
||||||
|
- Example: `docker exec -w /app/www/slot/backend php82 php artisan ...`
|
||||||
|
```
|
||||||
|
|
||||||
|
若放在**用户级**,把 `alwaysApply` 改为 `false`,或标题改成「Project docker (ray)」以免污染非 slot 项目。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 推荐决策
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
Q[多个仓库共用同一套 Docker?]
|
||||||
|
Q -->|是| UserRule["~/.cursor/rules/dev-environment.mdc\nalwaysApply: false"]
|
||||||
|
Q -->|否 仅 slot| ProjRule["www/slot/.cursor/rules/dev-environment.mdc\nalwaysApply: true 在该工作区"]
|
||||||
|
Both[保留 backend-layering 在用户级 alwaysApply]
|
||||||
|
UserRule --> Both
|
||||||
|
ProjRule --> Both
|
||||||
|
```
|
||||||
|
|
||||||
|
**对你当前情况**:slot 多仓库工作区 + Docker 在 `project/docker`,**优先项目级规则**;仅当你打开的其他 Cursor 工作区(非 slot)也依赖同一 compose 时,再复制一份到用户级。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 下一步(你确认后可执行)
|
||||||
|
|
||||||
|
1. 在 [`www/slot/.cursor/rules/`](file:///Users/ray/Documents/project/www/slot/.cursor/rules) 新建 `dev-environment.mdc`(约 20 行)
|
||||||
|
2. 确认 slot 后端默认用 `php82` 还是 `php72`,以及各子服务在容器内的 `working_dir`
|
||||||
|
3. 可选:在 [`docs/`](file:///Users/ray/Documents/project/www/slot/docs) 增加 `dev-setup.md` 供人查阅,规则里链过去
|
||||||
|
|
||||||
|
无需修改现有的 `backend-layering.mdc`。
|
||||||
181
plans/firstcashout_合并代码评审_b7afdfc6.plan.md
Normal file
181
plans/firstcashout_合并代码评审_b7afdfc6.plan.md
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
---
|
||||||
|
name: firstCashout 合并代码评审
|
||||||
|
overview: 你对「merge post + 统一 WithdrawService::apply」的改法方向正确,但当前 WithdrawService 在 package_id>0 时仍执行 checkInfo/手续费/黑规则,且 Pay 失败无回滚,会导致第一档提现不可用或卡在 processing。
|
||||||
|
todos:
|
||||||
|
- id: fc-early-return
|
||||||
|
content: WithdrawService::apply 中 package_id>0 走独立 applyFreeCreditsFirstCashout 并 early return
|
||||||
|
status: completed
|
||||||
|
- id: skip-checkinfo-fc
|
||||||
|
content: FC 分支跳过 checkInfo、getAmountAndFee、黑规则(或产品确认保留项)
|
||||||
|
status: completed
|
||||||
|
- id: pay-fail-rollback
|
||||||
|
content: Pay apply 失败时 handleFirstCashoutResult 回滚 processing
|
||||||
|
status: completed
|
||||||
|
- id: fc-withdrawal-info
|
||||||
|
content: FC 使用 package amount_qf、fee=0、auditType=2 组 WithdrawalInfo
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# firstCashout 合并改动 — 代码评审
|
||||||
|
|
||||||
|
## 你的改动(理解正确)
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Ctrl as WithdrawController
|
||||||
|
participant FC as FreeCreditsLogic
|
||||||
|
participant WS as WithdrawService
|
||||||
|
participant Pay as slot_pay
|
||||||
|
|
||||||
|
Ctrl->>FC: mergeFirstCashoutIntoPost
|
||||||
|
Note over FC: amount + bizType + package_id
|
||||||
|
Ctrl->>WS: apply(DTO)
|
||||||
|
WS->>FC: firstCashout(uid, packageId, orderId)
|
||||||
|
Note over FC: markFirstCashoutProcessing
|
||||||
|
WS->>Pay: apply(WithdrawalInfo)
|
||||||
|
```
|
||||||
|
|
||||||
|
- [`WithdrawController::apply`](slot_console/app/api/controller/WithdrawController.php):有 `package_id` 先 merge,再**同一套** `validate($type)` — 符合预期。
|
||||||
|
- [`mergeFirstCashoutIntoPost`](slot_console/app/api/logic/FreeCreditsLogic.php):补 `amount` / `bizType` / `package_id` — 符合预期。
|
||||||
|
- [`firstCashout`](slot_console/app/api/logic/FreeCreditsLogic.php) 收窄为只 `markFirstCashoutProcessing` + 外部统一 `PayService::apply` — 思路可行。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## P0:FC 仍会走 `checkInfo`,大概率直接失败
|
||||||
|
|
||||||
|
[`WithdrawService::apply`](slot_console/app/service/WithdrawService.php) 当前顺序:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bankInfo = $this->checkBankInfo($applyDTO);
|
||||||
|
$this->checkInfo($applyDTO->type, $applyDTO->amount); // 始终执行
|
||||||
|
// ...
|
||||||
|
if ($applyDTO->package_id > 0) {
|
||||||
|
firstCashout(...); // 永远走不到(checkInfo 已抛错)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`checkInfo` 会校验**钱包可提现余额** ≥ amount([`WithdrawService.php` L333-335](slot_console/app/service/WithdrawService.php))。
|
||||||
|
Free Credits 第一档资金在**活动池**,不在普通 `withdraw` 余额里 → 典型报错 **`Insufficient balance`**。
|
||||||
|
|
||||||
|
**结论**:与需求「不进入普通钱包」冲突,第一档线上基本提不了现。
|
||||||
|
|
||||||
|
**建议**:`package_id > 0`(或 `bizType === free_credit_first_cashout`)时 **跳过** `checkInfo`(及与之绑定的首提 min/max 规则)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## P0:Pay 失败时档位已置为 processing,无回滚
|
||||||
|
|
||||||
|
你现在在 **Pay 之前** 调用 `firstCashout` → `markFirstCashoutProcessing`(status=2)。
|
||||||
|
|
||||||
|
原实现是:mark → `PayService::apply` → **catch 时** `handleFirstCashoutResult($orderId, false)` 恢复 ready。
|
||||||
|
|
||||||
|
当前 [`WithdrawService::apply`](slot_console/app/service/WithdrawService.php) L236 调 pay **没有** try/catch 回滚 → 申请失败时 package 会一直 **processing**,用户无法重试。
|
||||||
|
|
||||||
|
**建议**:
|
||||||
|
|
||||||
|
```php
|
||||||
|
if ($applyDTO->package_id > 0) {
|
||||||
|
$orderId = CommonFn::generateOrderId(4, $userTag->uid);
|
||||||
|
(new FreeCreditsLogic())->firstCashout($userTag->uid, $applyDTO->package_id, $orderId);
|
||||||
|
$withdrawalInfo->orderId = $orderId;
|
||||||
|
$withdrawalInfo->bizType = FreeCreditsLogic::BIZ_TYPE_FIRST_CASHOUT;
|
||||||
|
try {
|
||||||
|
$res = PayService::getInstance()->apply($withdrawalInfo->toArray());
|
||||||
|
return $res;
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
(new FreeCreditsLogic())->handleFirstCashoutResult($orderId, false);
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
(FC 分支应 **early return**,不要继续走下面黑规则 + `getAmountAndFee`。)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## P1:FC 仍走普通手续费 / 黑规则 / auditType
|
||||||
|
|
||||||
|
合并后 FC 路径仍执行:
|
||||||
|
|
||||||
|
- `getAuditType($applyDTO->amount)`、`BlackApiService`、提现倍数检测
|
||||||
|
- `getAmountAndFee($applyDTO->amount, $this->withdrawal)` — 可能扣手续费、按钱包余额改金额
|
||||||
|
|
||||||
|
原 [`firstCashout`](slot_console/app/api/logic/FreeCreditsLogic.php) 约定:
|
||||||
|
|
||||||
|
- `fee = 0`
|
||||||
|
- `auditType = 2`(人工审核)
|
||||||
|
- `amount = package->amount_qf`(千分位,不经手续费逻辑)
|
||||||
|
|
||||||
|
`merge` 写入的 `amount` 是 **展示大单位**(`getNumberFormat(qf)`),再经 `getAmountAndFee` 可能与 pay 侧期望的千分位不一致。
|
||||||
|
|
||||||
|
**建议**:FC 分支单独组 `WithdrawalInfo`:
|
||||||
|
|
||||||
|
| 字段 | FC 取值 |
|
||||||
|
|------|---------|
|
||||||
|
| amount | 从 package 读 `amount_qf`(或 merge 时额外缓存 `_amount_qf`) |
|
||||||
|
| fee | 0 |
|
||||||
|
| auditType | 2 |
|
||||||
|
| bizType | `free_credit_first_cashout` |
|
||||||
|
| 黑规则 | 跳过(或产品确认是否要对 FC 也做) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## P1:`firstCashout` 与 `markFirstCashoutProcessing` 重复校验
|
||||||
|
|
||||||
|
[`firstCashout`](slot_console/app/api/logic/FreeCreditsLogic.php) 内再次查 `STATUS_READY` 后调用 `markFirstCashoutProcessing`,而 `markFirstCashoutProcessing` ** again** 要求 `STATUS_READY`(L343)。
|
||||||
|
逻辑重复但无害;可简化为只调 `markFirstCashoutProcessing`,或只保留一处校验。
|
||||||
|
|
||||||
|
注意:`mergeFirstCashoutIntoPost` 已校验 ready,到 `firstCashout` 时若并发重复提交,第二次会在 mark 阶段失败 — 符合「处理中不可重复提交」。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## P2:行为变化(需产品确认)
|
||||||
|
|
||||||
|
| 项 | 原 FC | 现统一 apply |
|
||||||
|
|----|--------|----------------|
|
||||||
|
| `is_bind_name` | 不校验 | **校验**(L157) |
|
||||||
|
| Redis 5s 频控 | 无 | **有** |
|
||||||
|
| 返回值 | `{order_id, amount}` | pay `apply` 原始结构 |
|
||||||
|
|
||||||
|
若 C 端依赖 `data.order_id` / `data.amount` 展示,需确认 pay 返回是否一致。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 做得好的部分
|
||||||
|
|
||||||
|
- Controller 单入口 + merge post:**正确**。
|
||||||
|
- 去掉独立 FC validator scene:**正确**。
|
||||||
|
- [`FreeCreditsController::firstCashout`](slot_console/app/api/controller/FreeCreditsController.php) 兼容路径与主入口一致:**正确**。
|
||||||
|
- pay 层仍靠 `bizType` 跳过 `withdrawFrozen`:**只要 bizType 确实传到 pay 就没问题**(当前 L184 已设)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 推荐修复结构(最小 diff)
|
||||||
|
|
||||||
|
在 [`WithdrawService::apply`](slot_console/app/service/WithdrawService.php) 开头(绑卡、频控之后):
|
||||||
|
|
||||||
|
```php
|
||||||
|
if ($applyDTO->package_id > 0) {
|
||||||
|
return $this->applyFreeCreditsFirstCashout($applyDTO, $bankInfo);
|
||||||
|
}
|
||||||
|
// 原有普通提现逻辑不变
|
||||||
|
```
|
||||||
|
|
||||||
|
`applyFreeCreditsFirstCashout` 内:
|
||||||
|
|
||||||
|
1. 跳过 `checkInfo`、黑规则、`getAmountAndFee`
|
||||||
|
2. `orderId` → `firstCashout`(mark)→ 组 `WithdrawalInfo`(qf amount, fee=0, auditType=2, bizType)
|
||||||
|
3. try/catch pay + `handleFirstCashoutResult` 回滚
|
||||||
|
|
||||||
|
**不要**在普通流程中间用 `if ($package_id > 0) { firstCashout; }` 再接着跑普通逻辑 — 这是当前问题的根源。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 验收清单
|
||||||
|
|
||||||
|
- [ ] `package_id>0` 且钱包 withdraw=0:能成功提交 pay(不报 Insufficient balance)
|
||||||
|
- [ ] pay 申请失败:package 回到 ready,可再次提现
|
||||||
|
- [ ] pay 成功 + 回调:package completed,player `FIRST_CASH_DONE`
|
||||||
|
- [ ] 普通提现无 `package_id`:行为与改前一致
|
||||||
|
- [ ] `remark`/bizType 在 pay 侧仍为 `free_credit_first_cashout`,不冻结钱包
|
||||||
174
plans/firstcashout_合并提现_837e2d44.plan.md
Normal file
174
plans/firstcashout_合并提现_837e2d44.plan.md
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
---
|
||||||
|
name: firstCashout 合并提现
|
||||||
|
overview: 可以合并:推荐在 Withdraw 入口与 Pay 下单层统一,用 package_id 区分;活动档位状态机仍留在 FreeCreditsLogic,不能把 FC 逻辑硬塞进 WithdrawService::apply 主流程中间。
|
||||||
|
todos:
|
||||||
|
- id: dto-package-id
|
||||||
|
content: WithdrawApplyDTO 增加 package_id;WithdrawValidator 增加 FC scene(package_id 替代 amount)
|
||||||
|
status: completed
|
||||||
|
- id: withdraw-fc-branch
|
||||||
|
content: WithdrawService::apply 增加 applyFreeCreditsFirstCashout early return(跳过 checkInfo/手续费/黑规则)
|
||||||
|
status: completed
|
||||||
|
- id: controller-unify
|
||||||
|
content: WithdrawController::apply 统一入口;FreeCreditsController::firstCashout 改为兼容 alias
|
||||||
|
status: completed
|
||||||
|
- id: bank-persist
|
||||||
|
content: FC 分支复用 checkBankInfo,与普通提现绑卡行为一致
|
||||||
|
status: completed
|
||||||
|
- id: pay-rollback-test
|
||||||
|
content: 补单测/集成测:FC 无 withdraw 余额可提交、Pay 失败回滚 ready
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# firstCashout 能否合并进现有提现逻辑
|
||||||
|
|
||||||
|
## 结论(后端)
|
||||||
|
|
||||||
|
**可以合并,且推荐合并「入口 + 校验 + 绑卡 + Pay 下单」;不应把 Free Credits 编排塞进 [`WithdrawService::apply`](slot_console/app/service/WithdrawService.php) 主流程中间。**
|
||||||
|
|
||||||
|
当前仓库状态:**尚未合并**——仍是双入口:
|
||||||
|
|
||||||
|
| 入口 | 现状 |
|
||||||
|
|------|------|
|
||||||
|
| [`POST /api/free-credits/first-cashout`](slot_console/app/api/controller/FreeCreditsController.php) | `FreeCreditsLogic::firstCashout` 完整编排 |
|
||||||
|
| [`POST /api/withdraw/apply`](slot_console/app/api/controller/WithdrawController.php) | `WithdrawService::apply`,无 `package_id` |
|
||||||
|
|
||||||
|
Pay 层**已经统一**:两类提现最终都走 [`WithdrawalOrderEntity::apply`](slot_pay/app/entity/WithdrawalOrderEntity.php),靠 `bizType=free_credit_first_cashout` 跳过 `withdrawFrozen` 并走独立 MQ 回调。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 为什么「可以」合并
|
||||||
|
|
||||||
|
C 端参数与需求 §11 一致:独立提现页 = 普通提现页精简版,收款字段相同,仅差:
|
||||||
|
|
||||||
|
| 字段 | 普通提现 | Free Credits 第一档 |
|
||||||
|
|------|----------|----------------------|
|
||||||
|
| `amount` | 用户输入 | **不传**,服务端取 package |
|
||||||
|
| `package_id` | 无 | **必填** |
|
||||||
|
|
||||||
|
因此用 **同一 `POST /api/withdraw/apply` + 可选 `package_id`** 区分业务是合理契约。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 为什么不能「整段并入」WithdrawService::apply
|
||||||
|
|
||||||
|
[`WithdrawService::apply`](slot_console/app/service/WithdrawService.php) 当前顺序(L164–219):
|
||||||
|
|
||||||
|
1. `checkBankInfo`
|
||||||
|
2. **`checkInfo`(校验钱包 withdraw 余额 ≥ amount)**
|
||||||
|
3. 黑规则、`getAmountAndFee`(手续费)
|
||||||
|
4. `PayService::apply`
|
||||||
|
|
||||||
|
Free Credits 第一档资金在**活动池**,不在普通 `withdraw` 余额。若在中间插入 `firstCashout` 而不 **early return**,会先被 `checkInfo` 打成 `Insufficient balance`(评审计划已记录为 P0)。
|
||||||
|
|
||||||
|
此外 FC 固定规则与普通提现不同:
|
||||||
|
|
||||||
|
| 项 | 普通提现 | FC 第一档 |
|
||||||
|
|----|----------|-----------|
|
||||||
|
| 金额来源 | 用户 `amount` | `package->amount_qf` |
|
||||||
|
| 手续费 | `getAmountAndFee` | **0** |
|
||||||
|
| 审核 | 动态 `getAuditType` + 黑规则 | **auditType=2** |
|
||||||
|
| 钱包冻结 | 有 | **无**(pay 侧 bizType 分支) |
|
||||||
|
| 活动状态 | 无 | `markFirstCashoutProcessing` / 失败回滚 |
|
||||||
|
| Pay 失败回滚 | 钱包解冻 | **`handleFirstCashoutResult` 恢复 ready** |
|
||||||
|
|
||||||
|
这些差异属于 **Logic 编排**,符合 [`backend-layering`](file:///Users/ray/.cursor/rules/backend-layering.mdc):不应把 `FreeCreditsLogic` 整段搬进 `WithdrawService` 当「又一层 Service」。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 推荐合并结构
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TB
|
||||||
|
Client["POST /api/withdraw/apply"]
|
||||||
|
Client --> Branch{package_id 存在?}
|
||||||
|
Branch -->|否| Normal["WithdrawService::apply 原逻辑"]
|
||||||
|
Branch -->|是| FC["WithdrawService::applyFreeCreditsFirstCashout"]
|
||||||
|
FC --> Mark["FreeCreditsLogic::markFirstCashoutProcessing"]
|
||||||
|
FC --> Pay["PayService::apply bizType=free_credit_first_cashout"]
|
||||||
|
Normal --> Pay2["PayService::apply 普通"]
|
||||||
|
Pay --> PayEntity["slot_pay WithdrawalOrderEntity"]
|
||||||
|
Pay2 --> PayEntity
|
||||||
|
```
|
||||||
|
|
||||||
|
### 合并层(推荐做)
|
||||||
|
|
||||||
|
1. **[`WithdrawController::apply`](slot_console/app/api/controller/WithdrawController.php)**
|
||||||
|
- 有 `package_id` → 走 FC 分支(或 DTO 带 `package_id` 后交给 Service early return)
|
||||||
|
- 无 `package_id` → 现有普通提现
|
||||||
|
|
||||||
|
2. **[`WithdrawValidator`](slot_console/app/api/validator/WithdrawValidator.php)**
|
||||||
|
- 新增 FC scene:与普通 apply 对称,把 `amount` 换成 `package_id`(`SCENE_APPLY_CASH_FC` 等)
|
||||||
|
|
||||||
|
3. **[`WithdrawApplyDTO`](slot_console/app/api/dto/request/WithdrawApplyDTO.php)**
|
||||||
|
- 增加可选 `package_id`
|
||||||
|
|
||||||
|
4. **绑卡**
|
||||||
|
- FC 复用 `WithdrawService::checkBankInfo`(当前 `firstCashout` 只读绑卡、不写库,合并后应对齐普通提现)
|
||||||
|
|
||||||
|
5. **[`FreeCreditsController::firstCashout`](slot_console/app/api/controller/FreeCreditsController.php)**
|
||||||
|
- 保留为 **兼容 alias**(内部转调 withdraw apply),或标记 deprecated
|
||||||
|
|
||||||
|
### 保持分离(必须)
|
||||||
|
|
||||||
|
- [`FreeCreditsLogic`](slot_console/app/api/logic/FreeCreditsLogic.php):`markFirstCashoutProcessing`、`handleFirstCashoutResult`、package 状态机、`assertEligibleParticipant`
|
||||||
|
- [`WithdrawService::applyFreeCreditsFirstCashout`](slot_console/app/service/WithdrawService.php)(新建私有方法):
|
||||||
|
- 跳过 `checkInfo`、黑规则、`getAmountAndFee`
|
||||||
|
- `amount = package->amount_qf`,`fee = 0`,`auditType = 2`
|
||||||
|
- try/catch Pay,失败时 `handleFirstCashoutResult($orderId, false)`
|
||||||
|
|
||||||
|
### 已统一、无需再改
|
||||||
|
|
||||||
|
- **slot_pay**:`bizType` / `remark` 分支(跳过冻结、Success/Fail/Rejected → Console MQ)
|
||||||
|
- **slot_console EventBus**:`FreeCreditsFirstCashoutSuccess/Fail/Rejected` → `handleFirstCashoutResult`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 不推荐的做法
|
||||||
|
|
||||||
|
在 [`WithdrawService::apply`](slot_console/app/service/WithdrawService.php) 中间写:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$this->checkInfo(...);
|
||||||
|
// ...
|
||||||
|
if ($package_id > 0) {
|
||||||
|
(new FreeCreditsLogic())->firstCashout(...);
|
||||||
|
}
|
||||||
|
$amountInfo = $this->getAmountAndFee(...);
|
||||||
|
PayService::apply(...);
|
||||||
|
```
|
||||||
|
|
||||||
|
会导致:余额校验失败、手续费错误、Pay 失败不回滚档位(processing 卡死)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 与「单独提现」需求的关系
|
||||||
|
|
||||||
|
| 需求 | 合并后是否满足 |
|
||||||
|
|------|----------------|
|
||||||
|
| 不进入普通钱包(§15.3) | 是,仍靠 pay `bizType` |
|
||||||
|
| 固定第一档金额(§11.3) | 是,服务端取 package |
|
||||||
|
| 处理中不可重复提交(§5.6) | 是,仍由 package status 控制 |
|
||||||
|
| 成功/失败/拒绝状态(§20.2) | 是,回调逻辑不变 |
|
||||||
|
|
||||||
|
合并的是 **HTTP 入口与收款参数校验**,不是改掉「独立提现」的账务语义。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 实施要点(若执行)
|
||||||
|
|
||||||
|
1. `WithdrawApplyDTO` 增加 `package_id`
|
||||||
|
2. `WithdrawService::apply` 在绑卡 + Redis 频控后 **early return** 到 `applyFreeCreditsFirstCashout`
|
||||||
|
3. FC 分支内:先 `markFirstCashoutProcessing`,再 Pay,catch 回滚
|
||||||
|
4. 单测:FC 在 `withdraw=0` 时可提交;Pay 失败 package 回 ready;普通 apply 无回归
|
||||||
|
5. 文档:`/api/free-credits/first-cashout` → 指向 `/api/withdraw/apply` + `package_id`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 验收清单
|
||||||
|
|
||||||
|
- `package_id>0` 且钱包可提现余额为 0:可成功提交 pay
|
||||||
|
- pay 申请失败:package 回到 `ready`,可重试
|
||||||
|
- pay 回调成功:package `completed`,player `FIRST_CASH_DONE`
|
||||||
|
- 不传 `package_id`:普通提现与现网一致
|
||||||
|
- pay 订单 `remark` 仍为 `free_credit_first_cashout`,不触发 `withdrawFrozen`
|
||||||
135
plans/firstcashout_合并评估_df95dacf.plan.md
Normal file
135
plans/firstcashout_合并评估_df95dacf.plan.md
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
---
|
||||||
|
name: firstCashout 合并评估
|
||||||
|
overview: 客户端入参与普通提现几乎一致(仅多 package_id、不传 amount),推荐在 WithdrawController::apply 做薄入口合并并复用 WithdrawValidator;编排仍留 FreeCreditsLogic,不并入 WithdrawService::apply 内部。
|
||||||
|
todos:
|
||||||
|
- id: merge-withdraw-entry
|
||||||
|
content: WithdrawController::apply 增加 package_id 分支,委托 FreeCreditsLogic::firstCashout;复用 WithdrawValidator 新增 scene(type 1/2/3/6 + package_id,无 amount)
|
||||||
|
status: completed
|
||||||
|
- id: align-bank-persist
|
||||||
|
content: firstCashout 改为复用 WithdrawService::checkBankInfo(或抽 helper),与普通提现一致写绑卡信息
|
||||||
|
status: completed
|
||||||
|
- id: deprecate-fc-endpoint
|
||||||
|
content: /api/free-credits/first-cashout 保留作兼容 alias 或标记 deprecated,文档指向 /api/withdraw/apply?package_id=
|
||||||
|
status: completed
|
||||||
|
- id: keep-logic-split
|
||||||
|
content: FreeCreditsLogic 仍负责 package 状态机 + bizType;WithdrawService::apply 不增加 Free Credits 分支
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# firstCashout 合并进现有提现接口 — 修订评估
|
||||||
|
|
||||||
|
## 用户反馈:客户端参数基本一致
|
||||||
|
|
||||||
|
对照 [`WithdrawValidator`](slot_console/app/api/validator/WithdrawValidator.php) 与 [`FreeCreditsValidator::SCENE_FIRST_CASHOUT`](slot_console/app/api/validator/FreeCreditsValidator.php):
|
||||||
|
|
||||||
|
| 字段 | 普通提现 apply | Free Credits firstCashout |
|
||||||
|
|------|----------------|---------------------------|
|
||||||
|
| `type` | require (1/2/3/6) | require (1/2/3/6) |
|
||||||
|
| `pay_net` | require (1/2/3) | Logic 使用,Validator scene 未含(可补齐) |
|
||||||
|
| `user_name` / `cash_tag` | type=1 时 require | post 传入,Logic 读取 |
|
||||||
|
| `btc` / `usdt` | type=2/3 时 require | 同上 |
|
||||||
|
| `paypal_*` / `email` | type=6 时 require | 同上 |
|
||||||
|
| `amount` | **require,用户输入** | **不传,服务端取 package 金额** |
|
||||||
|
| `package_id` | 无 | **require,活动档位 id** |
|
||||||
|
|
||||||
|
**结论**:C 端独立提现页(需求 §11)本来就是对普通提现页的精简——同一套收款字段,只是隐藏 amount 输入框。从接口契约看,**完全可以用同一个 apply 入口**,用 `package_id` 有无区分业务类型。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 仍建议合并的范围:入口 + 校验 + 组单,不是 WithdrawService 内部
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TB
|
||||||
|
Client["C 端 POST /api/withdraw/apply"]
|
||||||
|
Client --> Branch{package_id 存在?}
|
||||||
|
Branch -->|是| FC["FreeCreditsLogic::firstCashout"]
|
||||||
|
Branch -->|否| WS["WithdrawService::apply"]
|
||||||
|
FC --> Pay["PayService::apply bizType=free_credit_first_cashout"]
|
||||||
|
WS --> Pay2["PayService::apply 普通"]
|
||||||
|
Pay --> PayEntity["WithdrawalOrderEntity::apply 已统一"]
|
||||||
|
Pay2 --> PayEntity
|
||||||
|
```
|
||||||
|
|
||||||
|
### 可以合并(推荐)
|
||||||
|
|
||||||
|
1. **统一入口**:[`WithdrawController::apply`](slot_console/app/api/controller/WithdrawController.php) 检测 `package_id`,有则委托 `FreeCreditsLogic::firstCashout`,无则走 `WithdrawService::apply`。
|
||||||
|
2. **统一校验**:在 `WithdrawValidator` 新增 scene,与普通 apply 对称,仅把 `amount` 换成 `package_id`:
|
||||||
|
- `SCENE_APPLY_CASH_FC` => `['package_id', 'type', 'user_name', 'cash_tag']`
|
||||||
|
- `SCENE_APPLY_BTC_FC` => `['package_id', 'type', 'btc']`
|
||||||
|
- 等
|
||||||
|
3. **统一绑卡写库**:`firstCashout` 目前只读 `UserBankCardModel`;普通提现通过 `WithdrawService::checkBankInfo` 会更新绑卡。合并入口后应 **复用同一绑卡逻辑**,避免两套行为。
|
||||||
|
4. **统一 DTO**:`WithdrawApplyDTO` 增加可选 `package_id` 字段即可,不必维护两套 post 结构。
|
||||||
|
|
||||||
|
### 不应合并进 WithdrawService::apply
|
||||||
|
|
||||||
|
编排差异仍在 Logic 层,不应塞进 [`WithdrawService::apply`](slot_console/app/service/WithdrawService.php):
|
||||||
|
|
||||||
|
| 仍分离的逻辑 | 原因 |
|
||||||
|
|-------------|------|
|
||||||
|
| 金额 | 普通:用户 amount;FC:package->amount_qf |
|
||||||
|
| 余额/手续费/VIP/黑规则 | 普通:checkInfo + getAmountAndFee;FC:跳过 |
|
||||||
|
| 活动状态 | FC:markFirstCashoutProcessing / 失败回滚 |
|
||||||
|
| pay 回调 | 已通过 bizType 在 pay 层分支,无需 console 再分 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 推荐实现(修订后方案 B)
|
||||||
|
|
||||||
|
[`WithdrawController::apply`](slot_console/app/api/controller/WithdrawController.php):
|
||||||
|
|
||||||
|
```php
|
||||||
|
public function apply(Request $request)
|
||||||
|
{
|
||||||
|
$post = $request->post();
|
||||||
|
$type = input('type', 1);
|
||||||
|
|
||||||
|
if (!empty($post['package_id'])) {
|
||||||
|
// 复用 WithdrawValidator 的 FC scene(无 amount)
|
||||||
|
$error = $this->validate(WithdrawValidator::SCENE_APPLY_CASH_FC /* 按 type */, $post);
|
||||||
|
if ($error !== true) {
|
||||||
|
return $this->errorCode(ErrorCode::PARAMS_ERROR, $error);
|
||||||
|
}
|
||||||
|
return $this->success(
|
||||||
|
(new FreeCreditsLogic())->firstCashout(
|
||||||
|
$request->userEntity->uid,
|
||||||
|
(int) $post['package_id'],
|
||||||
|
$post
|
||||||
|
),
|
||||||
|
'Submitted successfully! ...'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 原有普通提现
|
||||||
|
$error = $this->validate($type, $post);
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
[`FreeCreditsLogic::firstCashout`](slot_console/app/api/logic/FreeCreditsLogic.php) 内部改动:
|
||||||
|
|
||||||
|
- 绑卡:改为调用 `WithdrawService` 的 `checkBankInfo`(需将 `checkBankInfo` 改为 `protected` 公开方法,或抽到 helper)。
|
||||||
|
- 其余不变:package 校验、固定金额、`bizType`、状态机。
|
||||||
|
|
||||||
|
[`FreeCreditsController::firstCashout`](slot_console/app/api/controller/FreeCreditsController.php):
|
||||||
|
|
||||||
|
- 保留为 **兼容 alias**(内部同样调 Logic),或直接 deprecated 指向 withdraw apply。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 与初版评估的差异
|
||||||
|
|
||||||
|
| 初版 | 修订 |
|
||||||
|
|------|------|
|
||||||
|
| 方案 A 推荐保持双入口 | **方案 B 升为推荐** — 参数一致,双入口无必要 |
|
||||||
|
| 强调「参数/校验不同故难合并」 | 参数 **高度重合**,差异仅 `package_id` vs `amount`;校验可共用 Validator scene |
|
||||||
|
| 合并障碍在入口层 | 合并障碍仅在 **WithdrawService 内部编排**,入口层应合并 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 验收
|
||||||
|
|
||||||
|
- C 端独立提现页调用 `POST /api/withdraw/apply`,传 `package_id + type + 收款字段`,**不传 amount**
|
||||||
|
- 普通提现不传 `package_id`,行为与现网一致
|
||||||
|
- Free Credits 仍不走 `withdrawFrozen`,回调仍更新 package/player
|
||||||
|
- 绑卡信息与走普通 apply 后一致落库
|
||||||
247
plans/free_credits_activity_edit_454064f6.plan.md
Normal file
247
plans/free_credits_activity_edit_454064f6.plan.md
Normal file
@@ -0,0 +1,247 @@
|
|||||||
|
---
|
||||||
|
name: free credits activity edit
|
||||||
|
overview: 在管理后台活动配置编辑表单中为活动类型 11(首充前免费余额定格与分档释放 / Free Credits)增加专属表单分支,并补齐字典与服务端校验;金额输入沿用 type==10 的「美元小数 → 千分位整数」模式,写入 ext_config 的 _qf 后缀键,与 slot_console `FreeCreditsLogic::configAmount()` 的读优先级一致。
|
||||||
|
todos:
|
||||||
|
- id: dict-activity-type-11
|
||||||
|
content: 字典 sm_system_dict_data 追加 code='activity_type' 的 value=11 / label='Free Credits(首充前免费余额)'(DB 或字典管理页)
|
||||||
|
status: completed
|
||||||
|
- id: edit-vue-type11-form
|
||||||
|
content: edit.vue 增加 v-if=type==11 的表单块(6 字段 + Banner)
|
||||||
|
status: completed
|
||||||
|
- id: edit-vue-skip-goods
|
||||||
|
content: edit.vue 让 type==11 跳过 goods 区块:扩展 onlyGift / 调整「添加赠送」与 goods 卡片的 v-if
|
||||||
|
status: completed
|
||||||
|
- id: edit-vue-submit-conv
|
||||||
|
content: edit.vue submit() 增加 type==11 的金额 ×1000 写入 _qf 键、清空 goods
|
||||||
|
status: completed
|
||||||
|
- id: edit-vue-setform-conv
|
||||||
|
content: edit.vue setFormData() 增加 type==11 的 _qf ÷1000 回填还原
|
||||||
|
status: completed
|
||||||
|
- id: validate-free-credits-ext
|
||||||
|
content: ActivityValidate 增加 checkFreeCreditsExt(extConfig) 方法,含必填、非负、max_unlock_per_recharge≥1、first_cash ≤ recharge_unlock 约束
|
||||||
|
status: completed
|
||||||
|
- id: controller-trigger-ext-check
|
||||||
|
content: ActivityController::save / update 在 checkData 后按 type==11 调用 checkFreeCreditsExt;update 兼容仅改状态请求
|
||||||
|
status: completed
|
||||||
|
- id: verify-end-to-end
|
||||||
|
content: 本地验证:新建/编辑/必填/业务约束/类型切换/C 端 FreeCreditsLogic 读取
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Free Credits 活动后台编辑落地计划
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
|
||||||
|
让运营在「活动管理」编辑弹窗里选活动类型 `11`(首充前免费余额)时,能直接编辑需求文档第 17 节列出的所有配置项;保存后落到 `s_recharge_gift_config.ext_config` JSON 字段,C 端 `FreeCreditsLogic` 立即生效。
|
||||||
|
|
||||||
|
## 现状要点
|
||||||
|
|
||||||
|
- `slot_console` 已实现 `RechargeGiftConfigModel::TYPE_FREE_CREDITS = 11`、`FreeCreditsLogic`、运行时配置读取(`ext_config.{key}_qf` 优先)。
|
||||||
|
- `slot_admin` 后端 [ActivityController](backend/slot_admin/app/game/controller/ActivityController.php) 走 `slotLib\services\ActivityService` 透传到 `slot_console innerapi/activity/*`,`ext_config` 已原样落库,**不需要改动 slot_console**。
|
||||||
|
- 管理前端 [edit.vue](backend/slot_admin_vue/src/views/game/activity/edit.vue) 现仅对 6 / 9 / 10 做了 `v-if` 分支,`type==11` 无任何 UI;字典 `activity_type` 也无 value=11 条目。
|
||||||
|
|
||||||
|
## 字段映射(type=11 专属 `ext_config`)
|
||||||
|
|
||||||
|
UI 输入用美元小数,提交时 ×1000 写入 `_qf` 键(与 type==10 模式一致;`FreeCreditsLogic::configAmount()` 优先读 `_qf`):
|
||||||
|
|
||||||
|
- `win_threshold_qf` ← 首笔赢取门槛(默认 $50)
|
||||||
|
- `recharge_unlock_amount_qf` ← 累计充值解锁第一档(默认 $50)
|
||||||
|
- `first_cash_amount_qf` ← 第一档免打码金额(默认 $20)
|
||||||
|
- `package_amount_qf` ← 后续每档拆分金额(默认 $10)
|
||||||
|
- `subsequent_min_recharge_qf` ← 解锁下一档单笔充值下限(默认 $10)
|
||||||
|
- `max_unlock_per_recharge` ← 整数,每笔充值最多解锁档数(默认 1,**不走 _qf**)
|
||||||
|
- `banner_image` ← Free Play to Go 弹窗 Banner 图片 URL(可空)
|
||||||
|
|
||||||
|
## 改动清单
|
||||||
|
|
||||||
|
### 1. 字典:追加 `activity_type` value=11
|
||||||
|
|
||||||
|
在系统管理「字典管理 → activity_type」以有,不需要再执行了
|
||||||
|
|
||||||
|
### 2. 前端:[backend/slot_admin_vue/src/views/game/activity/edit.vue](backend/slot_admin_vue/src/views/game/activity/edit.vue)
|
||||||
|
|
||||||
|
#### 2.1 增加 type==11 表单块
|
||||||
|
|
||||||
|
参考 [edit.vue line 108-123](backend/slot_admin_vue/src/views/game/activity/edit.vue) type==10 的写法,新增:
|
||||||
|
|
||||||
|
```vue
|
||||||
|
<template v-if="formData.type == 11">
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="首笔赢取门槛($)" help="免费余额曾达到该值后解锁首页 Withdraw" :rules="[{ required: true, message: '必填' }]">
|
||||||
|
<a-input-number v-model="formData.ext_config.win_threshold" placeholder="如 50" :min="0" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="充值解锁门槛($)" help="累计真实充值满该金额释放第一档" :rules="[{ required: true, message: '必填' }]">
|
||||||
|
<a-input-number v-model="formData.ext_config.recharge_unlock_amount" placeholder="如 50" :min="0" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="免打码提现额($)" help="第一档可免打码直接提现金额" :rules="[{ required: true, message: '必填' }]">
|
||||||
|
<a-input-number v-model="formData.ext_config.first_cash_amount" placeholder="如 20" :min="0" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="解锁拆分金额($)" help="后续每档释放金额" :rules="[{ required: true, message: '必填' }]">
|
||||||
|
<a-input-number v-model="formData.ext_config.package_amount" placeholder="如 10" :min="0" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="后续解锁最小充值($)" help="单笔充值达到该金额才解锁下一档">
|
||||||
|
<a-input-number v-model="formData.ext_config.subsequent_min_recharge" placeholder="如 10" :min="0" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="每笔最多解锁档数" help="防止一笔充值解锁多档">
|
||||||
|
<a-input-number v-model="formData.ext_config.max_unlock_per_recharge" placeholder="如 1" :min="1" :precision="0" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="Banner 图片" help="Free Play to Go 底部弹窗 Banner">
|
||||||
|
<sa-upload-image v-model="formData.ext_config.banner_image" :limit="1" :multiple="false" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</template>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2.2 让 type==11 跳过 goods 区块
|
||||||
|
|
||||||
|
- [edit.vue line 60](backend/slot_admin_vue/src/views/game/activity/edit.vue) `onlyGift` computed 追加 `|| formData.type == 11`:
|
||||||
|
|
||||||
|
```js
|
||||||
|
let onlyGift = computed(() => {
|
||||||
|
return formData.type == 7 || formData.type == 8 || formData.type == 9 || formData.type == 11;
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
- [edit.vue line 125](backend/slot_admin_vue/src/views/game/activity/edit.vue) 把「添加赠送」按钮与下方 `<a-row v-else>` 的 goods 卡片包成一组条件,排除 type==10 和 type==11:
|
||||||
|
|
||||||
|
```vue
|
||||||
|
<template v-if="formData.type !== 10 && formData.type !== 11">
|
||||||
|
<a-button type="primary" ... @click="add()">添加赠送</a-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<a-row :gutter="20" v-if="formData.type !== 9 && formData.type !== 10 && formData.type !== 11">
|
||||||
|
...goods 卡片...
|
||||||
|
</a-row>
|
||||||
|
```
|
||||||
|
|
||||||
|
(保留原 type==9 的 exchange 表格 v-if 不变。)
|
||||||
|
|
||||||
|
#### 2.3 `submit()` 中追加 type==11 的金额 ×1000 转换
|
||||||
|
|
||||||
|
[edit.vue line 370](backend/slot_admin_vue/src/views/game/activity/edit.vue) 类似 type==10 的处理,把 6 个美元字段写到 `_qf` 键,整数字段原样保留:
|
||||||
|
|
||||||
|
```js
|
||||||
|
if (formData.type === 11) {
|
||||||
|
const e = data.ext_config || {};
|
||||||
|
const toQf = (v) => v === '' || v == null ? undefined : Math.round(Number(v) * 1000);
|
||||||
|
data.ext_config = {
|
||||||
|
win_threshold_qf: toQf(e.win_threshold),
|
||||||
|
recharge_unlock_amount_qf: toQf(e.recharge_unlock_amount),
|
||||||
|
first_cash_amount_qf: toQf(e.first_cash_amount),
|
||||||
|
package_amount_qf: toQf(e.package_amount),
|
||||||
|
subsequent_min_recharge_qf: toQf(e.subsequent_min_recharge),
|
||||||
|
max_unlock_per_recharge: e.max_unlock_per_recharge == null ? undefined : Math.round(Number(e.max_unlock_per_recharge)),
|
||||||
|
banner_image: e.banner_image || '',
|
||||||
|
};
|
||||||
|
data.goods = [];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2.4 `setFormData()` 中追加 type==11 的回填还原
|
||||||
|
|
||||||
|
[edit.vue line 344-351](backend/slot_admin_vue/src/views/game/activity/edit.vue) 仿照 type==10:
|
||||||
|
|
||||||
|
```js
|
||||||
|
if (data.type === 11 && data.ext_config) {
|
||||||
|
const e = data.ext_config;
|
||||||
|
formData.ext_config = {
|
||||||
|
win_threshold: e.win_threshold_qf != null ? e.win_threshold_qf / 1000 : e.win_threshold,
|
||||||
|
recharge_unlock_amount: e.recharge_unlock_amount_qf != null ? e.recharge_unlock_amount_qf / 1000 : e.recharge_unlock_amount,
|
||||||
|
first_cash_amount: e.first_cash_amount_qf != null ? e.first_cash_amount_qf / 1000 : e.first_cash_amount,
|
||||||
|
package_amount: e.package_amount_qf != null ? e.package_amount_qf / 1000 : e.package_amount,
|
||||||
|
subsequent_min_recharge: e.subsequent_min_recharge_qf != null ? e.subsequent_min_recharge_qf / 1000 : e.subsequent_min_recharge,
|
||||||
|
max_unlock_per_recharge: e.max_unlock_per_recharge ?? 1,
|
||||||
|
banner_image: e.banner_image || '',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 后端校验:[backend/slot_admin/app/game/validate/ActivityValidate.php](backend/slot_admin/app/game/validate/ActivityValidate.php)
|
||||||
|
|
||||||
|
ThinkValidate 对嵌套 JSON 支持有限,采用「在 Controller 按 `type` 触发额外校验」+「Validate 提供专用方法」的模式,避免污染既有 scene。
|
||||||
|
|
||||||
|
#### 3.1 ActivityValidate 增加一个公开方法
|
||||||
|
|
||||||
|
```php
|
||||||
|
/**
|
||||||
|
* Free Credits(type=11)专用 ext_config 校验。
|
||||||
|
*
|
||||||
|
* @param array $extConfig 前端提交的 ext_config,金额已 ×1000 写入 _qf 键
|
||||||
|
* @throws \think\exception\ValidateException
|
||||||
|
*/
|
||||||
|
public function checkFreeCreditsExt(array $extConfig): void
|
||||||
|
{
|
||||||
|
$required = [
|
||||||
|
'win_threshold_qf' => '首笔赢取门槛',
|
||||||
|
'recharge_unlock_amount_qf' => '充值解锁门槛',
|
||||||
|
'first_cash_amount_qf' => '免打码提现额',
|
||||||
|
'package_amount_qf' => '解锁拆分金额',
|
||||||
|
'subsequent_min_recharge_qf' => '后续解锁最小充值',
|
||||||
|
'max_unlock_per_recharge' => '每笔最多解锁档数',
|
||||||
|
];
|
||||||
|
foreach ($required as $key => $label) {
|
||||||
|
if (!isset($extConfig[$key]) || $extConfig[$key] === '' || (int)$extConfig[$key] < 0) {
|
||||||
|
throw new \think\exception\ValidateException("{$label}必须填写且为非负数");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((int)$extConfig['max_unlock_per_recharge'] < 1) {
|
||||||
|
throw new \think\exception\ValidateException('每笔最多解锁档数必须 ≥ 1');
|
||||||
|
}
|
||||||
|
// 业务约束:免打码提现额 ≤ 累计充值解锁门槛
|
||||||
|
if ((int)$extConfig['first_cash_amount_qf'] > (int)$extConfig['recharge_unlock_amount_qf']) {
|
||||||
|
throw new \think\exception\ValidateException('免打码提现额不能超过充值解锁门槛');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3.2 ActivityController save / update 触发
|
||||||
|
|
||||||
|
[ActivityController::save / update](backend/slot_admin/app/game/controller/ActivityController.php) 在 `checkData()` 之后追加:
|
||||||
|
|
||||||
|
```php
|
||||||
|
if ((int)input('type') === 11) {
|
||||||
|
$this->validate->checkFreeCreditsExt((array)input('ext_config', []));
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`update` 里同样判断,且要兼容仅改状态的请求(无 `updateData` 时不校验 ext_config):
|
||||||
|
|
||||||
|
```php
|
||||||
|
if (!empty(input('updateData')) && (int)input('type') === 11) {
|
||||||
|
$this->validate->checkFreeCreditsExt((array)input('ext_config', []));
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 不需要改的部分
|
||||||
|
|
||||||
|
- `slot_console` 侧 `ActivityConfigEntity::updateConfig` 已原样写入 `ext_config`,无变更。
|
||||||
|
- `Consts::ACTIVITY_TYPE_*` 不必新增 11;C 端已通过 `RechargeGiftConfigModel::TYPE_FREE_CREDITS` 引用。
|
||||||
|
- 不新增独立菜单页,复用通用「活动管理」编辑弹窗。
|
||||||
|
|
||||||
|
## 数据流
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
edit[edit.vue type=11 form] -->|"美元×1000 → _qf"| save["POST /game/activity/save|update"]
|
||||||
|
save --> ctrl[ActivityController]
|
||||||
|
ctrl -->|"checkFreeCreditsExt"| validate[ActivityValidate]
|
||||||
|
ctrl --> svc[ActivityService HTTP]
|
||||||
|
svc --> console["slot_console innerapi/activity/update"]
|
||||||
|
console --> entity[ActivityConfigEntity::updateConfig]
|
||||||
|
entity --> db["s_recharge_gift_config.ext_config"]
|
||||||
|
db --> fc["FreeCreditsLogic::configAmount key_qf 优先"]
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 验收
|
||||||
|
|
||||||
|
- 新建 type=11 活动:填写 6 字段 + Banner,保存成功;DB `ext_config` 是 `*_qf` 整数 + `max_unlock_per_recharge` + `banner_image`。
|
||||||
|
- 编辑回填:再次打开同一条活动,美元字段显示为原值(如 50 / 20 / 10),整数字段为 1,Banner 显示已上传图。
|
||||||
|
- 必填校验:清空任一必填项保存,返回明确错误信息(如「首笔赢取门槛必须填写且为非负数」)。
|
||||||
|
- 业务约束:免打码提现额填 60、充值解锁门槛填 50,保存被拒。
|
||||||
|
- 类型切换:type 选 11→1,再切回 11,goods 区块不出现,formData 不污染;保存 type==1 时 `_qf` 字段不会被带到 ext_config。
|
||||||
|
- C 端:调 `FreeCreditsLogic::status($uid)`,门槛 / 第一档金额 / 解锁拆分金额能读到刚配的值。
|
||||||
|
- type 字典:管理后台编辑弹窗活动类型下拉出现「Free Credits(首充前免费余额)」选项。
|
||||||
|
|
||||||
182
plans/free_credits_release_902566c9.plan.md
Normal file
182
plans/free_credits_release_902566c9.plan.md
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
---
|
||||||
|
name: free credits release
|
||||||
|
overview: 为“首充前免费余额定格与分档释放”准备开发方案,按钱包账务、充值提现事件、客户端 API、后台配置统计分阶段落地。重点遵循现有后端分层规则,避免把业务编排错误地下沉到 Service。
|
||||||
|
todos:
|
||||||
|
- id: confirm-wallet-fields
|
||||||
|
content: 按已确认口径使用 deposit_balance + withdraw_balance 作为免费余额
|
||||||
|
status: completed
|
||||||
|
- id: design-schema
|
||||||
|
content: 设计独立 Free Credits 活动主表、档位明细表、流水关联和旧活动 ID 关联
|
||||||
|
status: completed
|
||||||
|
- id: implement-console-core
|
||||||
|
content: 在 slot_console 实现活动领域模型、定格、解锁、Claim 和状态查询 Logic
|
||||||
|
status: pending
|
||||||
|
- id: wire-recharge
|
||||||
|
content: 接入 slot_pay/slot_console 充值成功链路并保证首充定格幂等
|
||||||
|
status: completed
|
||||||
|
- id: wire-cashout
|
||||||
|
content: 实现第一档独立提现订单和回调状态同步
|
||||||
|
status: completed
|
||||||
|
- id: add-console-apis
|
||||||
|
content: 补充大厅状态、活动入口、后台配置统计相关 API
|
||||||
|
status: completed
|
||||||
|
- id: test-acceptance
|
||||||
|
content: 按需求文档核心规则和账务验收补测试/联调用例
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 首充前免费余额定格与分档释放开发准备
|
||||||
|
|
||||||
|
## 目标范围
|
||||||
|
|
||||||
|
本次需求核心实现应以后端账务和状态机为主,前端展示依赖新增/扩展 API。主要涉及:
|
||||||
|
|
||||||
|
- [`/Users/ray/Documents/project/www/slot/slot_console`](slot_console):Free Credits 活动领域模型、Pool、档位、状态机、定格/释放/Claim 编排、大厅/提现页接口、活动入口、配置读取、后台统计入口。
|
||||||
|
- [`/Users/ray/Documents/project/www/slot/slot_wallet`](slot_wallet):只提供钱包原子能力,例如余额扣减/入账、钱包流水、Deposit Balance 入账、Y1 流水任务创建;不放活动领域模型和活动状态机。
|
||||||
|
- [`/Users/ray/Documents/project/www/slot/slot_pay`](slot_pay):充值成功异步通知、第一档独立提现订单。
|
||||||
|
- [`/Users/ray/Documents/project/www/slot/backend/slot_admin`](backend/slot_admin):运营后台配置和统计页,如该项目负责管理端。
|
||||||
|
- 客户端 UI 由前端人员在其它仓库实现,本仓库只提供后端接口和状态数据。
|
||||||
|
|
||||||
|
已有统一活动管理表可作为关联来源:
|
||||||
|
|
||||||
|
- `s_common.s_recharge_gift_config`:现有充值赠送活动主表。
|
||||||
|
- `recharge_gift_player`:现有充值赠送活动参与玩家表。
|
||||||
|
|
||||||
|
本需求不直接复用这两张表承载 Free Credits 账务状态,采用独立 Free Credits 表设计,并保留与旧活动 ID 的关联,避免把“首充前免费余额定格”与已有充值赠送活动规则混在同一张参与表里。
|
||||||
|
|
||||||
|
## 数据表 DDL 草案
|
||||||
|
|
||||||
|
金额字段建议沿用现有活动表中的 `_qf` 口径,按千分位整数保存,避免小数精度问题。
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE TABLE `free_credits_player` (
|
||||||
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`activity_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '关联 s_recharge_gift_config.id',
|
||||||
|
`uid` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||||
|
`source` varchar(64) NOT NULL DEFAULT '' COMMENT '渠道',
|
||||||
|
`model_id` int unsigned NOT NULL DEFAULT '0' COMMENT '游戏模型ID',
|
||||||
|
`home_withdraw_unlocked` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '首页Withdraw是否已解锁 0否 1是',
|
||||||
|
`frozen_amount_qf` bigint unsigned NOT NULL DEFAULT '0' COMMENT '首充时定格金额,千分位',
|
||||||
|
`first_cash_amount_qf` bigint unsigned NOT NULL DEFAULT '0' COMMENT '第一档免打码提现金额,千分位',
|
||||||
|
`first_recharge_order_id` varchar(64) NOT NULL DEFAULT '' COMMENT '触发定格的首笔充值订单号',
|
||||||
|
`first_recharge_time` datetime DEFAULT NULL COMMENT '首笔充值成功时间',
|
||||||
|
`first_cashout_order_id` varchar(64) NOT NULL DEFAULT '' COMMENT '第一档独立提现订单号',
|
||||||
|
`status` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '主状态 0未开始 1首页已解锁 2已定格 3待充值解锁 4第一档可提现 5第一档提现中 6第一档已提现 7后续释放中 10全部完成',
|
||||||
|
`completed_time` datetime DEFAULT NULL COMMENT '全部完成时间',
|
||||||
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uniq_activity_uid` (`activity_id`,`uid`),
|
||||||
|
KEY `idx_uid` (`uid`),
|
||||||
|
KEY `idx_activity_status` (`activity_id`,`status`),
|
||||||
|
KEY `idx_first_recharge_order` (`first_recharge_order_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Free Credits用户活动主表';
|
||||||
|
```
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE TABLE `free_credits_package` (
|
||||||
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`player_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'free_credits_player.id',
|
||||||
|
`activity_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '关联 s_recharge_gift_config.id',
|
||||||
|
`uid` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||||
|
`package_no` int unsigned NOT NULL DEFAULT '0' COMMENT '档位序号,从1开始',
|
||||||
|
`package_type` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '档位类型 1第一档免打码提现 2后续释放档',
|
||||||
|
`amount_qf` bigint unsigned NOT NULL DEFAULT '0' COMMENT '档位金额,千分位',
|
||||||
|
`status` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '档位状态 0锁定 1可操作 2处理中 3已完成 4失败 5风控拒绝',
|
||||||
|
`withdraw_order_id` varchar(64) NOT NULL DEFAULT '' COMMENT '第一档提现订单号',
|
||||||
|
`claim_biz_id` varchar(64) NOT NULL DEFAULT '' COMMENT '后续档Claim入账幂等业务号',
|
||||||
|
`unlocked_time` datetime DEFAULT NULL COMMENT '解锁时间',
|
||||||
|
`claimed_time` datetime DEFAULT NULL COMMENT '领取时间',
|
||||||
|
`completed_time` datetime DEFAULT NULL COMMENT '完成时间',
|
||||||
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uniq_player_package` (`player_id`,`package_no`),
|
||||||
|
UNIQUE KEY `uniq_claim_biz` (`claim_biz_id`),
|
||||||
|
KEY `idx_uid_status` (`uid`,`status`),
|
||||||
|
KEY `idx_activity_status` (`activity_id`,`status`),
|
||||||
|
KEY `idx_withdraw_order` (`withdraw_order_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Free Credits档位明细表';
|
||||||
|
```
|
||||||
|
|
||||||
|
## 建议数据流
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
preDepositUser["未首充用户"] --> winThreshold["免费余额曾达到门槛"]
|
||||||
|
winThreshold --> homeUnlocked["首页 Withdraw 解锁"]
|
||||||
|
preDepositUser --> firstRecharge["任意入口首笔真实充值成功"]
|
||||||
|
firstRecharge --> freezeFreeCredits["定格当前免费余额"]
|
||||||
|
freezeFreeCredits --> freeCreditsPool["slot_console 保存 Free Credits Pool 与档位"]
|
||||||
|
firstRecharge --> walletTotalRecharge["查询钱包累计充值总额"]
|
||||||
|
walletTotalRecharge --> firstReady["累计充值满门槛释放第一档"]
|
||||||
|
firstReady --> firstCashout["第一档独立提现"]
|
||||||
|
firstCashout --> laterPackages["后续档位按充值解锁"]
|
||||||
|
laterPackages --> claimToWallet["Claim 入 Deposit Balance"]
|
||||||
|
claimToWallet --> y1Task["创建 Y1 流水任务"]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 后端落地方案
|
||||||
|
|
||||||
|
1. 在 `slot_console` 新增独立 Free Credits 活动领域模型。
|
||||||
|
- 新增用户池主表,保存 `activity_id`、`uid`、定格金额、首充订单、主状态、首页解锁标记、完成时间等;主表不保存累计充值。
|
||||||
|
- 新增档位明细表,一档一行,保存序号、类型、金额、状态、关联提现单/Claim 流水、解锁/完成时间。
|
||||||
|
- `activity_id` 关联现有 `s_common.s_recharge_gift_config` 或后台活动配置 ID,但 Free Credits 的进度、档位和账务状态不写入 `recharge_gift_player`。
|
||||||
|
- 表归属按 `slot_console` 现有业务库和活动模块规范处理;`slot_wallet` 不新增 Free Credits 活动表。
|
||||||
|
|
||||||
|
2. 在 `slot_console` 增加 Logic 编排定格、解锁、Claim。
|
||||||
|
- Controller 只做请求接收、Validate、DTO、统一响应。
|
||||||
|
- Validate 处理参数必填/类型/枚举。
|
||||||
|
- DTO 只承载已校验字段。
|
||||||
|
- Logic 负责首充定格、查询钱包累计充值总额、档位状态流转、事务和幂等。
|
||||||
|
- Model 负责查询/写入和状态条件更新。
|
||||||
|
- Service 仅用于已有公共能力,如调用钱包原子 API、配置读取、外部系统封装,不新增单纯转发 Service。
|
||||||
|
- 调用 `slot_wallet` 时只请求余额变更、钱包流水、入 Deposit Balance、创建 Y1 任务等钱包能力,不把活动状态写入钱包服务。
|
||||||
|
|
||||||
|
3. 接入充值成功链路。
|
||||||
|
- 现有充值成功链路在 [`/Users/ray/Documents/project/www/slot/slot_pay/app/command/EventRecharge.php`](slot_pay/app/command/EventRecharge.php) 调用钱包充值入账。
|
||||||
|
- 充值成功后由 `slot_pay` 或事件消费者通知 `slot_console`,由 `slot_console` 判断是否首笔真实充值并触发定格。
|
||||||
|
- 定格需要调用 `slot_wallet` 原子能力扣减当前免费余额并写钱包流水,再由 `slot_console` 落 Free Credits Pool 和档位。
|
||||||
|
- 第一档门槛通过调用钱包查询用户累计充值总额判断;`slot_console` 主表不保存累计充值,也不新增充值事件明细表。
|
||||||
|
|
||||||
|
4. 实现第一档独立提现。
|
||||||
|
- 第一档不进入普通钱包余额,创建独立提现订单类型 `free_credit_first_cashout`。
|
||||||
|
- 需要在 `slot_pay` 的提现订单模型/实体中支持新订单类型,提现处理中防重复,成功/失败/拒绝回写档位状态。
|
||||||
|
- 第一档提现成功后关闭首页状态条,但活动入口保留到所有档位完成。
|
||||||
|
|
||||||
|
5. 实现后续档位解锁和 Claim。
|
||||||
|
- 后续每笔符合条件真实充值最多解锁下一档,按配置控制最小充值金额和每笔最多解锁档数。
|
||||||
|
- Claim 由 `slot_console` 校验档位状态和顺序后,调用 `slot_wallet` 将档位金额入 `Deposit Balance`,创建 Deposit Lot 和 Y1 Wager Task。
|
||||||
|
- `slot_console` 负责 Claim 幂等和档位状态流转;`slot_wallet` 负责钱包入账幂等和流水一致性。失败时档位保持 `ready`,重复点击不能重复入账。
|
||||||
|
|
||||||
|
6. 增加客户端查询与操作 API。
|
||||||
|
- 查询用户活动状态:首页状态条、活动入口、Free Play to Go 弹窗需要同一份状态数据。
|
||||||
|
- 操作 API:第一档提现、后续 Claim、后续 Unlock 跳充值。
|
||||||
|
- `slot_console` 可在 [`/Users/ray/Documents/project/www/slot/slot_console/app/napi/controller/LobbyController.php`](slot_console/app/napi/controller/LobbyController.php) 或独立 API 暴露大厅所需数据。
|
||||||
|
|
||||||
|
7. 增加后台配置与统计。
|
||||||
|
- 配置项优先绑定到现有统一活动管理的活动 ID;Free Credits 专属配置包括活动开关、首笔赢取门槛、充值解锁门槛、免打码提现额、拆分金额、后续最小充值、每笔最多解锁档数、Y1 倍数、Banner。
|
||||||
|
- 统计项:定格人数、完成提现人数、全部完成人数、定格总金额、已提现金额、已领取金额、待释放金额。
|
||||||
|
- 筛选排序按文档要求实现。
|
||||||
|
|
||||||
|
## 已确认口径
|
||||||
|
|
||||||
|
- 免费余额 = `deposit_balance + withdraw_balance`,即钱包余额。
|
||||||
|
- 第一档不需要流水,完全绕开普通可提现余额计算。
|
||||||
|
- 第一档解锁通过充值成功异步通知驱动,并调用钱包查询累计充值总额判断是否达到门槛。
|
||||||
|
- Free Credits 定格逻辑以独立活动配置为准。
|
||||||
|
- 客户端 UI 由前端人员处理,本仓库不包含对应页面代码。
|
||||||
|
|
||||||
|
## 关键风险与需确认点
|
||||||
|
|
||||||
|
- 文档中的 `Deposite Balance / Deposite Lot` 建议统一确认是否为历史命名还是拼写问题。
|
||||||
|
|
||||||
|
## 建议开发顺序
|
||||||
|
|
||||||
|
1. 先实现 `slot_console` 活动数据模型、配置读取、状态机和只读查询接口。
|
||||||
|
2. 梳理并补齐 `slot_wallet` 需要暴露的钱包原子能力,包括查询累计充值总额、冻结/扣减免费余额、入 Deposit Balance、创建 Y1 任务和幂等流水。
|
||||||
|
3. 接入充值成功链路,完成 `slot_pay` 到 `slot_console` 的事件通知、首充定格和调用钱包累计充值总额解锁第一档。
|
||||||
|
4. 实现第一档独立提现链路和提现回调到 `slot_console` 的状态同步。
|
||||||
|
5. 实现后续档位解锁、Claim 调用钱包入账和 Y1 流水任务创建。
|
||||||
|
6. 补 `slot_console` 大厅/活动入口接口、后台统计、客户端 UI、文案、埋点和验收用例。
|
||||||
317
plans/free_credits_后台统计页_9d6edc45.plan.md
Normal file
317
plans/free_credits_后台统计页_9d6edc45.plan.md
Normal file
@@ -0,0 +1,317 @@
|
|||||||
|
---
|
||||||
|
name: free credits 后台统计页
|
||||||
|
overview: 实现需求 §18 的 Free Credits 后台统计与展示:在 slot_console 增强 innerapi(加筛选、加列表字段、富化累计充值与档位聚合),slot_lib 新增 FreeCreditsService 并给 WalletService 补一个 statistics 批量方法,slot_admin 新增 FreeCreditsStatsController 代理,slot_admin_vue 新增 views/game/freeCreditsStats/index.vue 一页搞定,顶部统计走 sa-table 的 otherData 模式。
|
||||||
|
todos:
|
||||||
|
- id: slot-console-stats-logic
|
||||||
|
content: slot_console 新建 innerapi/logic/FreeCreditsStatsLogic.php,封装 statistics + list 的查询编排(含 status>=2 口径、批量 package 聚合 SQL)
|
||||||
|
status: completed
|
||||||
|
- id: slot-console-list-enrich
|
||||||
|
content: slot_console FreeCreditsController::list 加筛选 + 字段富化(first_cash_status / progress / claimed / first_cashout / remaining / total_recharge)
|
||||||
|
status: completed
|
||||||
|
- id: slot-console-stats-filter
|
||||||
|
content: slot_console FreeCreditsController::statistics 加 source / first_recharge_time / status 等筛选;frozen_user_count 改为 status>=2
|
||||||
|
status: completed
|
||||||
|
- id: slot-lib-wallet-stats
|
||||||
|
content: slot_lib WalletService 新增 statistics(uids, currency) 方法 → 调 /api/wallet/statistics
|
||||||
|
status: completed
|
||||||
|
- id: slot-lib-free-credits-service
|
||||||
|
content: slot_lib 新建 FreeCreditsService(basePath=innerapi/free-credits,含 list + statistics)
|
||||||
|
status: completed
|
||||||
|
- id: slot-admin-controller
|
||||||
|
content: slot_admin 新建 game/controller/FreeCreditsStatsController.php,index 一次调两个 service 合并 otherData 返回
|
||||||
|
status: completed
|
||||||
|
- id: slot-admin-vue-api
|
||||||
|
content: slot_admin_vue 新建 api/game/freeCreditsStats.js,导出 getPageList
|
||||||
|
status: completed
|
||||||
|
- id: slot-admin-vue-page
|
||||||
|
content: "slot_admin_vue 新建 views/game/freeCreditsStats/index.vue:sa-table + #tableAfterButtons 顶部 7 统计 + 12 列表 + 筛选 + 排序白名单"
|
||||||
|
status: completed
|
||||||
|
- id: menu-permission
|
||||||
|
content: 在 sm_system_menu 加 1 条 L 菜单 + 1 条 B 按钮码(/game/freeCreditsStats/index),并分配角色
|
||||||
|
status: completed
|
||||||
|
- id: manual-verify
|
||||||
|
content: docker 内 A/B/C 三种玩家手测:默认排序、7 项统计、筛选联动、排序白名单、权限拦截
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
## 数据流
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
vue[freeCreditsStats/index.vue sa-table]
|
||||||
|
vue -->|"POST /game/FreeCreditsStats/index"| ctrl[FreeCreditsStatsController]
|
||||||
|
ctrl -->|"FreeCreditsService::list"| svc[slot_lib FreeCreditsService]
|
||||||
|
ctrl -->|"FreeCreditsService::statistics"| svc
|
||||||
|
svc -->|"POST innerapi/free-credits/list"| console[slot_console FreeCreditsController]
|
||||||
|
svc -->|"POST innerapi/free-credits/statistics"| console
|
||||||
|
console -->|"WalletService statistics uids currency"| wallet["slot_wallet api/wallet/statistics"]
|
||||||
|
console -->|"sum on free_credits_package"| db[(s_common.free_credits_player + free_credits_package)]
|
||||||
|
```
|
||||||
|
|
||||||
|
slot_admin Controller 一次代理两个 innerapi,合并成 `{ data, total, otherData: <statistics> }` 给 sa-table,避免前端两次请求。
|
||||||
|
|
||||||
|
## 字段契约(最终对外)
|
||||||
|
|
||||||
|
### `/game/FreeCreditsStats/index` 请求
|
||||||
|
|
||||||
|
筛选(与 §18.3 对齐)
|
||||||
|
|
||||||
|
- `uid` 精确
|
||||||
|
- `source` 字符串(沿用 channel_game_model + source 二级选择)
|
||||||
|
- `activity_id` 可选(默认取当前生效的 type=11 活动)
|
||||||
|
- `first_recharge_time` 范围 `[start, end]` → `whereBetween`
|
||||||
|
- `status` 数组(player.status:0/1/2/3/4/5/6/7/10)
|
||||||
|
- `first_cash_status` 数组(package.status:0/1/2/3/4/5,限定 `package_no=1`)
|
||||||
|
- `is_completed` 0/1(status=10 与否)
|
||||||
|
- `page`, `limit`, `orderBy`, `orderType`
|
||||||
|
|
||||||
|
排序
|
||||||
|
|
||||||
|
- DB 可排序:`frozen_amount_qf`、`first_recharge_time`(默认 `first_recharge_time desc`)
|
||||||
|
- 其它字段(进度、剩余、累计充值)派生,前端不开启排序
|
||||||
|
|
||||||
|
### 响应
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"data": [{
|
||||||
|
"uid": 123,
|
||||||
|
"source": "us_01",
|
||||||
|
"frozen_amount_qf": 78500,
|
||||||
|
"first_cash_amount_qf": 20000,
|
||||||
|
"total_recharge_amount_qf": 30000,
|
||||||
|
"first_cash_status": 3,
|
||||||
|
"progress_done": 3,
|
||||||
|
"progress_total": 7,
|
||||||
|
"status": 7,
|
||||||
|
"remaining_amount_qf": 28500,
|
||||||
|
"claimed_amount_qf": 30000,
|
||||||
|
"first_recharge_time": "2026-05-12 11:23:01",
|
||||||
|
"completed_time": null
|
||||||
|
}],
|
||||||
|
"total": 240,
|
||||||
|
"otherData": {
|
||||||
|
"frozen_user_count": 240,
|
||||||
|
"first_cashout_user_count": 180,
|
||||||
|
"completed_user_count": 35,
|
||||||
|
"frozen_amount_qf": 18650000,
|
||||||
|
"first_cashout_amount_qf": 3520000,
|
||||||
|
"claimed_amount_qf": 8800000,
|
||||||
|
"pending_amount_qf": 6330000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
金额字段一律以 `*_qf`(千分位整数)传到 Vue,Vue 用 `/ 1000` + `toFixed(2)` 显示(与 edit.vue 同口径)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 改动清单
|
||||||
|
|
||||||
|
### 1. slot_console — 增强 innerapi
|
||||||
|
|
||||||
|
文件:[slot_console/app/innerapi/controller/FreeCreditsController.php](slot_console/app/innerapi/controller/FreeCreditsController.php)
|
||||||
|
|
||||||
|
#### 1.1 `statistics()` 加筛选
|
||||||
|
|
||||||
|
参照需求 §18.1,新增可选参数并贯穿到所有子查询:
|
||||||
|
|
||||||
|
- `activity_id`、`source`、`first_recharge_time_start`、`first_recharge_time_end`、`uid`
|
||||||
|
- 子查询 `frozenTotal / completedCount / firstCashoutCount / firstCashoutAmount / claimedAmount` 全部基于同一个 `playerIds` 数组(按筛选后取出)
|
||||||
|
- `frozen_user_count` 口径改为 `status >= STATUS_FROZEN(2)` 的玩家数(与需求 "已创建 Free Credits Pool" 一致;当前实现把 status=1 也计入,定义不准)
|
||||||
|
|
||||||
|
#### 1.2 `list()` 加筛选 + 字段富化
|
||||||
|
|
||||||
|
- 新增筛选参数:`source`、`first_recharge_time` 范围、`status[]`、`first_cash_status[]`、`is_completed`、`orderBy/orderType`(白名单:`first_recharge_time`, `frozen_amount_qf`)
|
||||||
|
- 输出每行追加:
|
||||||
|
- `first_cash_status`:对应 `free_credits_package.status` where `player_id=? AND package_no=1`
|
||||||
|
- `progress_done` / `progress_total`:`SUM(CASE WHEN status=3 THEN 1 ELSE 0 END)` / `COUNT(*)`,一次 `GROUP BY player_id` 跑完
|
||||||
|
- `claimed_amount_qf`:`SUM(amount_qf) WHERE package_type=2 AND status=3 GROUP BY player_id`
|
||||||
|
- `first_cashout_amount_qf`:`SUM(amount_qf) WHERE package_type=1 AND status=3 GROUP BY player_id`
|
||||||
|
- `remaining_amount_qf`:`frozen_amount_qf - first_cashout_amount_qf - claimed_amount_qf`
|
||||||
|
- `total_recharge_amount_qf`:调用 `WalletService::statistics(uids, currency='USD')`,把 `total_deposit` 映射进来。currency 默认 'USD'(活动只面向美国 RMG,currency 字段后续如多币种再扩展)
|
||||||
|
- 一次性聚合查询,避免 N+1:
|
||||||
|
|
||||||
|
```text
|
||||||
|
SELECT player_id,
|
||||||
|
SUM(CASE WHEN status=3 THEN 1 ELSE 0 END) AS progress_done,
|
||||||
|
COUNT(*) AS progress_total,
|
||||||
|
SUM(CASE WHEN package_type=1 AND status=3 THEN amount_qf ELSE 0 END) AS first_cashout_amount_qf,
|
||||||
|
SUM(CASE WHEN package_type=2 AND status=3 THEN amount_qf ELSE 0 END) AS claimed_amount_qf,
|
||||||
|
MAX(CASE WHEN package_no=1 THEN status END) AS first_cash_status
|
||||||
|
FROM s_common.free_credits_package
|
||||||
|
WHERE player_id IN (...)
|
||||||
|
GROUP BY player_id
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 1.3 控制器分层
|
||||||
|
|
||||||
|
按 backend-layering 规则,把 1.1 / 1.2 的查询编排沉到 Logic:新增 [slot_console/app/innerapi/logic/FreeCreditsStatsLogic.php](slot_console/app/innerapi/logic/FreeCreditsStatsLogic.php)(或直接挂在已有 `api/logic/FreeCreditsLogic.php`,建议新建避免膨胀),Controller 只负责接参 / 调 Logic / 返回。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. slot_lib — 新增 FreeCreditsService + 补 WalletService
|
||||||
|
|
||||||
|
#### 2.1 [slot_lib/src/services/FreeCreditsService.php](slot_lib/src/services/FreeCreditsService.php) 新建
|
||||||
|
|
||||||
|
```php
|
||||||
|
class FreeCreditsService extends BaseApiService
|
||||||
|
{
|
||||||
|
use SingletonService;
|
||||||
|
protected $hostKey = 'consoleApiHost';
|
||||||
|
protected $basePath = 'innerapi/free-credits';
|
||||||
|
|
||||||
|
public function statistics(array $params) { return $this->postAction('statistics', $params); }
|
||||||
|
public function list(array $params) { return $this->postAction('list', $params); }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
理由:不与既有 `ActivityService::join/add/update` 混杂;basePath 完全独立,匹配 slot_console 的路由。
|
||||||
|
|
||||||
|
#### 2.2 [slot_lib/src/services/WalletService.php](slot_lib/src/services/WalletService.php) 补 `statistics`
|
||||||
|
|
||||||
|
```php
|
||||||
|
public function statistics(array $uids, string $currency)
|
||||||
|
{
|
||||||
|
return $this->postAction('statistics', ['uids' => $uids, 'currency' => $currency]);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
action 名 `statistics`,URL `{walletApiHost}/api/wallet/statistics`,对应 slot_wallet `WalletController::statistics`。slot_console 侧 `FreeCreditsStatsLogic` 调用此方法。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. slot_admin — 新增代理 Controller
|
||||||
|
|
||||||
|
文件:[backend/slot_admin/app/game/controller/FreeCreditsStatsController.php](backend/slot_admin/app/game/controller/FreeCreditsStatsController.php)
|
||||||
|
|
||||||
|
只做接参 + Service 调用 + 合并:
|
||||||
|
|
||||||
|
```php
|
||||||
|
class FreeCreditsStatsController extends AdminController
|
||||||
|
{
|
||||||
|
public function index(Request $request): Response
|
||||||
|
{
|
||||||
|
$params = $request->all();
|
||||||
|
$params['page'] = (int)$request->get('page', 1);
|
||||||
|
$params['limit'] = (int)$request->get('limit', 20);
|
||||||
|
|
||||||
|
$list = FreeCreditsService::getInstance()->list($params);
|
||||||
|
$stats = FreeCreditsService::getInstance()->statistics($params);
|
||||||
|
|
||||||
|
$list['otherData'] = $stats;
|
||||||
|
return $this->success($list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- 不需要 Validate(参数全部可选;非法值 slot_console 侧拦)
|
||||||
|
- 自动路由路径 `/game/freeCreditsStats/index`
|
||||||
|
- 不新增 `export()` action(V1 不做导出)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. slot_admin_vue — 新页 + API
|
||||||
|
|
||||||
|
#### 4.1 [backend/slot_admin_vue/src/api/game/freeCreditsStats.js](backend/slot_admin_vue/src/api/game/freeCreditsStats.js) 新建
|
||||||
|
|
||||||
|
```js
|
||||||
|
import request from '@/utils/request'
|
||||||
|
const url = '/game/freeCreditsStats'
|
||||||
|
export default {
|
||||||
|
getPageList: (params) => request.get(`${url}/index`, params),
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 4.2 [backend/slot_admin_vue/src/views/game/freeCreditsStats/index.vue](backend/slot_admin_vue/src/views/game/freeCreditsStats/index.vue) 新建
|
||||||
|
|
||||||
|
骨架仿 `views/game/order/recharge/index.vue`:
|
||||||
|
|
||||||
|
- `defineOptions({ name: 'game/freeCreditsStats/index' })`
|
||||||
|
- `<sa-table>` `options.api = api.getPageList`,`options.add` / `options.delete` 关闭
|
||||||
|
- `searchForm`:`uid`、`source`(用 `commonStore.allSourcesOptionsNoAll`)、`first_recharge_time`(`a-range-picker`)、`status`、`first_cash_status`、`is_completed`
|
||||||
|
- 顶部统计走 `#tableAfterButtons`:
|
||||||
|
|
||||||
|
```vue
|
||||||
|
<template #tableAfterButtons>
|
||||||
|
<a-space>
|
||||||
|
<a-typography-text>定格人数:{{ stats.frozen_user_count }}</a-typography-text>
|
||||||
|
<a-typography-text>完成提现人数:{{ stats.first_cashout_user_count }}</a-typography-text>
|
||||||
|
<a-typography-text>全部完成人数:{{ stats.completed_user_count }}</a-typography-text>
|
||||||
|
<a-typography-text>定格总金额:${{ qfToDollar(stats.frozen_amount_qf) }}</a-typography-text>
|
||||||
|
<a-typography-text>已提现金额:${{ qfToDollar(stats.first_cashout_amount_qf) }}</a-typography-text>
|
||||||
|
<a-typography-text>已领取金额:${{ qfToDollar(stats.claimed_amount_qf) }}</a-typography-text>
|
||||||
|
<a-typography-text>待释放金额:${{ qfToDollar(stats.pending_amount_qf) }}</a-typography-text>
|
||||||
|
</a-space>
|
||||||
|
</template>
|
||||||
|
```
|
||||||
|
|
||||||
|
- `stats = computed(() => crudRef.value?.getTableOtherData() ?? {})`
|
||||||
|
- 列定义:12 列对齐 §18.2;`status`、`first_cash_status` 直接用前端 map 表(不新建字典):
|
||||||
|
|
||||||
|
```js
|
||||||
|
const PLAYER_STATUS_MAP = {
|
||||||
|
0: '未触发', 1: 'Home Withdraw 已解锁', 2: '已定格', 3: '充值进行中',
|
||||||
|
4: '第一档可提现', 5: '第一档处理中', 6: '第一档已提现',
|
||||||
|
7: '后续档释放中', 10: '全部完成',
|
||||||
|
}
|
||||||
|
const PACKAGE_STATUS_MAP = {
|
||||||
|
0: '未解锁', 1: '可操作', 2: '处理中', 3: '已完成', 4: '失败', 5: '已拒绝',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- `qfToDollar = (v) => ((Number(v||0))/1000).toFixed(2)`
|
||||||
|
- 不再调单独的 stats 接口,`tableAfterButtons` 数据从 `otherData` 取
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. 字典与菜单
|
||||||
|
|
||||||
|
#### 5.1 字典:不新增
|
||||||
|
|
||||||
|
`status` / `first_cash_status` 直接走前端 map 表,避免与 `RechargeGiftConfigModel` 共用字典污染。
|
||||||
|
|
||||||
|
#### 5.2 菜单:DB 表 `sm_system_menu` 追加(运营在「系统管理 → 菜单管理」操作即可)
|
||||||
|
|
||||||
|
需要的 2 条数据(指引性 SQL,实际可走 UI):
|
||||||
|
|
||||||
|
```sql
|
||||||
|
INSERT INTO sm_system_menu (parent_id, type, title, name, path, component, sort)
|
||||||
|
VALUES (<game_parent_id>, 'L', 'Free Credits 统计',
|
||||||
|
'game/freeCreditsStats/index', '/game/freeCreditsStats',
|
||||||
|
'game/freeCreditsStats/index', 50);
|
||||||
|
INSERT INTO sm_system_menu (parent_id, type, title, code)
|
||||||
|
VALUES (<leaf_id>, 'B', '列表', '/game/freeCreditsStats/index');
|
||||||
|
```
|
||||||
|
|
||||||
|
写完后给「超级管理员 / 运营」角色分配该菜单与按钮码。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 不动的地方
|
||||||
|
|
||||||
|
- `slot_console` 既有 `FreeCreditsLogic` C 端逻辑、`free_credits_player` / `free_credits_package` 表结构、`ext_config` 配置读取等不动
|
||||||
|
- `s_recharge_gift_config` 不需要新增列
|
||||||
|
- `slot_pay` 不新增 innerapi(不需要订单表精确口径,wallet `total_deposit` 已足够)
|
||||||
|
- 现有 `ActivityController` 编辑表单(type=11 分支)已落地,不动
|
||||||
|
- `RechargeOrderController` / `withdrawal` 等无关模块不动
|
||||||
|
|
||||||
|
## 验收(手测)
|
||||||
|
|
||||||
|
按 [dev-environment](.cursor/rules/dev-environment.mdc) 在 docker 内调试:
|
||||||
|
|
||||||
|
1. 准备 3 个测试账号:A 未定格、B 已定格未提现首档、C 全部完成;各 source 至少一个
|
||||||
|
2. 访问 `/game/freeCreditsStats` 列表:
|
||||||
|
- 不传参 → 默认按 `first_recharge_time desc`,A 不出现(status<2 被过滤),B / C 都在
|
||||||
|
- 顶部 7 个统计数字与逐条手算结果一致
|
||||||
|
- 列表里 `total_recharge_amount_qf` 与 `slot_wallet.api/wallet/statistics` 直接拉的 `total_deposit` 一致
|
||||||
|
- `progress_done/total` 等于 DB 中 `free_credits_package` 实际行数
|
||||||
|
3. 筛选:
|
||||||
|
- 选 `source=us_01` 列表与统计同步收敛
|
||||||
|
- 选 `first_recharge_time` 范围,统计 7 项随之变化
|
||||||
|
- 选 `is_completed=1`,列表只剩 C
|
||||||
|
- 选 `first_cash_status=3`,列表只剩第一档已成功的玩家
|
||||||
|
4. 排序:分别点击「定格金额」「定格时间」列头,order 切换;其它字段不可排序
|
||||||
|
5. 权限:用未授权账号访问 → 403;授权后正常
|
||||||
|
6. 仅改活动状态时(已存在的活动编辑场景)回归一遍,确认未触发 type=11 ext 校验路径回归
|
||||||
141
plans/free_credits_老用户隐藏评审_1c0ab623.plan.md
Normal file
141
plans/free_credits_老用户隐藏评审_1c0ab623.plan.md
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
---
|
||||||
|
name: Free Credits 老用户隐藏评审
|
||||||
|
overview: EventBus 写库确定参加、status 只读展示;在此基础上用环境变量 FREE_CREDITS_ENROLL_REG_AFTER 做注册时间门槛——regTime 晚于该时间的用户才有资格参加,否则一律 status=-1 且 EventBus 跳过写池。
|
||||||
|
todos:
|
||||||
|
- id: env-reg-cutoff
|
||||||
|
content: 新增 FREE_CREDITS_ENROLL_REG_AFTER 环境变量与 FreeCreditsLogic::isEligibleByRegTime(uid) 统一门禁
|
||||||
|
status: completed
|
||||||
|
- id: apply-gate-all-paths
|
||||||
|
content: 在 status、syncHomeWithdrawUnlocked、handleFreeCreditInit、advanceAfterRecharge、claim、firstCashout 入口应用注册时间门禁
|
||||||
|
status: completed
|
||||||
|
- id: fix-docs-lobby
|
||||||
|
content: 修正 FreeCreditsController PHPDoc(含 status=-1 含老用户/未达注册门槛);LobbyController 清理无用 import
|
||||||
|
status: completed
|
||||||
|
- id: guard-claim-cashout
|
||||||
|
content: 无资格或无 player 时 claim/firstCashout 返回明确业务错误
|
||||||
|
status: completed
|
||||||
|
- id: verify-reg-cutoff
|
||||||
|
content: 联调:regTime 早于门槛 status=-1 且 EventBus 不建池;晚于门槛走 win/首充完整流程
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Free Credits 老用户隔离:注册时间门槛(计划)
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
|
||||||
|
C 端全量更新后,**注册时间早于活动上线节点的用户视为老用户,不参加、不展示**;**注册时间晚于该节点的新用户**,在现有「EventBus 写库 = 参加」模型下正常走活动。
|
||||||
|
|
||||||
|
「默认参加」含义:**有资格参加**(EventBus 允许建池、status 可读),**不是**无需 EventBus 自动插入 `free_credits_player`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 分层架构(保持不变)
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TB
|
||||||
|
gate{regTime > FREE_CREDITS_ENROLL_REG_AFTER?}
|
||||||
|
gate -->|否| block[不参加: status=-1 EventBus return]
|
||||||
|
gate -->|是| eligible[有资格]
|
||||||
|
eligible --> win[EventBus syncHomeWithdrawUnlocked]
|
||||||
|
eligible --> init[EventBus free_credit_init]
|
||||||
|
eligible --> api[status 只读 player 行]
|
||||||
|
win --> pool[(free_credits_player)]
|
||||||
|
init --> pool
|
||||||
|
api --> pool
|
||||||
|
```
|
||||||
|
|
||||||
|
| 路径 | 行为 |
|
||||||
|
| --- | --- |
|
||||||
|
| **读** `status()` | 未达注册门槛 → `status=-1`;达门槛且无 player 行 → `-1`;有行 → `buildStatus` |
|
||||||
|
| **写** EventBus | 未达注册门槛 → 各 Logic 方法开头直接 return,不建池、不定格、不推进 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 实现要点
|
||||||
|
|
||||||
|
### 1. 环境变量
|
||||||
|
|
||||||
|
在 [`.env`](slot_console/.env) / 部署说明中增加(示例):
|
||||||
|
|
||||||
|
```env
|
||||||
|
# 用户注册时间(Unix 或 Y-m-d H:i:s,建议与 TIMEZONE 一致)晚于此值才可参加 Free Credits
|
||||||
|
FREE_CREDITS_ENROLL_REG_AFTER=2026-05-20 00:00:00
|
||||||
|
```
|
||||||
|
|
||||||
|
- 在 [`config/app.php`](slot_console/config/app.php) 或新建 `config/free_credits.php` 读取:`getenv('FREE_CREDITS_ENROLL_REG_AFTER')`,`strtotime` 解析为 `enroll_reg_after_ts`(启动时或首次调用缓存)。
|
||||||
|
- **未配置时的默认策略(已确认)**:`FREE_CREDITS_ENROLL_REG_AFTER` 为空或未配置 → **全员不参加**(`isEligibleByRegTime` 恒 false,`status=-1`,EventBus 不写池)。
|
||||||
|
|
||||||
|
### 2. 统一门禁方法(建议放在 [`FreeCreditsLogic`](slot_console/app/api/logic/FreeCreditsLogic.php))
|
||||||
|
|
||||||
|
```php
|
||||||
|
/**
|
||||||
|
* 是否具备 Free Credits 参与资格(注册时间晚于环境变量门槛)。
|
||||||
|
*/
|
||||||
|
protected function isEligibleByRegTime(int $uid): bool
|
||||||
|
{
|
||||||
|
$cutoff = self::enrollRegAfterTimestamp(); // 0 表示未配置
|
||||||
|
if ($cutoff <= 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$userInfo = \app\service\user\UserService::getUserInfoEntity($uid);
|
||||||
|
if ($userInfo === null || $userInfo->create_at === '') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$regTime = strtotime($userInfo->create_at);
|
||||||
|
return $regTime !== false && $regTime > $cutoff; // 严格「晚于」
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- **数据来源**:[`app\service\user\UserService::getUserInfoEntity`](slot_console/app/service/user/UserService.php)(调 user 服 `/innerapi/user/info`),与 [`EventBus::registerEvent`](slot_console/app/command/EventBus.php) 等同用法。
|
||||||
|
- **注册时间字段**:[`app\entity\UserInfoEntity::$create_at`](slot_console/app/entity/UserInfoEntity.php)(`Y-m-d H:i:s`),比较前 `strtotime` 为 Unix 秒。
|
||||||
|
- **不用** `UserTagService::tagInfo->regTime`(标签缓存,与账号创建时间可能不一致)。
|
||||||
|
- 备选:若 Logic 内已大量使用 slotLib,可用 `\slotLib\services\UserService::getInstance()->setUid($uid)->getUserInfo()?->regTime`(构造函数内由 `create_at` 解析),但 console 侧优先统一 `app\service\user\UserService`。
|
||||||
|
|
||||||
|
### 3. 调用点(读写对称)
|
||||||
|
|
||||||
|
| 方法 | 未达门槛时 |
|
||||||
|
| --- | --- |
|
||||||
|
| `status()` | 直接 `return ['status' => -1]` |
|
||||||
|
| `syncHomeWithdrawUnlocked()` | `return null` |
|
||||||
|
| `handleFreeCreditInit()` | `return` |
|
||||||
|
| `advanceAfterRecharge()` | `return` |
|
||||||
|
| `claim()` / `firstCashout()` | `throw BusinessException('...')` 或统一文案 |
|
||||||
|
|
||||||
|
**说明**:已达门槛、但库中无 player 行 → 仍为 `status=-1`(尚未被 EventBus 纳入);达门槛且 win 后 → EventBus 建池 → status 非 `-1`。
|
||||||
|
|
||||||
|
### 4. 与「已首充」的关系
|
||||||
|
|
||||||
|
- 注册门槛解决:**老账号 / 老注册** 不进入活动。
|
||||||
|
- 钱包侧 [`maybeSendFreeCreditInit`](slot_wallet/app/api/logic/WalletLogic.php) 仍仅 **首充** 发定格,二者叠加,互不替代。
|
||||||
|
|
||||||
|
### 5. 撤销项
|
||||||
|
|
||||||
|
- 不再单独做 `total_deposit == 0` 的 EventBus 门禁(由注册时间门槛覆盖「老用户」定义)。
|
||||||
|
- 不再要求 `frozen_amount > 0` 才展示(保留 HOME_UNLOCKED 阶段)。
|
||||||
|
|
||||||
|
### 6. 文档与测试
|
||||||
|
|
||||||
|
- 更新 [`FreeCreditsController`](slot_console/app/api/controller/FreeCreditsController.php):`status=-1` = 未参加 / 活动关 / **注册时间早于门槛**。
|
||||||
|
- 单测:mock `regTime` 与 env cutoff,覆盖 eligible / ineligible 的 status 与 freeze 是否被调用。
|
||||||
|
- 联调矩阵见下。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 联调矩阵
|
||||||
|
|
||||||
|
| regTime vs 门槛 | win 达门槛 | 首充定格 | status | EventBus 建池 |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| 早于 | - | - | `-1` | 否 |
|
||||||
|
| 晚于 | 否 | 否 | `-1` | 否 |
|
||||||
|
| 晚于 | 是 | 否 | `1` | sync 建池 |
|
||||||
|
| 晚于 | - | 是 | `3/4` + packages | freeze |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 新 C 端约定(不变)
|
||||||
|
|
||||||
|
- **`status === -1`**:隐藏(含老用户、未达注册门槛、未参加)。
|
||||||
|
- **`status !== -1`**:已参加,按 `FreeCreditsPlayerModel` 状态渲染。
|
||||||
162
plans/free_credits_验收核查_c1eade6d.plan.md
Normal file
162
plans/free_credits_验收核查_c1eade6d.plan.md
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
---
|
||||||
|
name: Free Credits 验收核查
|
||||||
|
overview: 「首充前免费余额定格与分档释放」的后端核心链路(定格、分档、首档提现、后续 Claim、充值事件、钱包账务)已在 slot_console / slot_wallet / slot_pay / slot_lib 落地约 70–80%,但尚未达到需求文档 V1.0 全量验收标准;运营后台、客户端 UI、广播、异常风控、部分 API 字段与自动化测试仍缺失或未对齐。
|
||||||
|
todos:
|
||||||
|
- id: p0-wallet-atomicity
|
||||||
|
content: 补齐 Claim+Y1 原子性/回滚;确认是否需要 Deposit Lot
|
||||||
|
status: pending
|
||||||
|
- id: p0-status-api-fields
|
||||||
|
content: status/buildStatus 增加 total_recharge、show_home_status_bar、show_activity_entry
|
||||||
|
status: pending
|
||||||
|
- id: p0-peak-balance
|
||||||
|
content: 首页解锁「曾达到门槛」:增加峰值记录或可靠触发点
|
||||||
|
status: pending
|
||||||
|
- id: p1-admin-config-stats
|
||||||
|
content: slot_admin 增加 type=11 配置页与统计页(对接 innerapi)
|
||||||
|
status: pending
|
||||||
|
- id: p1-refund-risk
|
||||||
|
content: 实现充值退款/拒付暂停未释放档位(文档 20.1)
|
||||||
|
status: pending
|
||||||
|
- id: p2-frontend-broadcast
|
||||||
|
content: 前端仓实现 UI/广播;本仓可增加 broadcast API
|
||||||
|
status: pending
|
||||||
|
- id: p2-tests
|
||||||
|
content: 按文档 22.1/22.2 补充自动化或验收用例
|
||||||
|
status: pending
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 首充前免费余额定格与分档释放 — 实现完成度核查
|
||||||
|
|
||||||
|
**结论:未实现完。** 后端主流程可联调,但对照 [需求文档](file:///Users/ray/Documents/project/www/slot/docs/requirements/首充前免费余额定格与分档释放需求文档.md) 第 22 节验收标准,仍有若干 **P0 账务/规则缺口** 与大量 **前端/运营/统计** 范围未覆盖。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 实现分布(已落地)
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TB
|
||||||
|
subgraph console [slot_console]
|
||||||
|
RechargeEvent --> FreeCreditsLogic
|
||||||
|
EventBus --> FreeCreditsLogic
|
||||||
|
FreeCreditsLogic --> DB[(free_credits_player/package)]
|
||||||
|
ApiCtrl[FreeCreditsController] --> FreeCreditsLogic
|
||||||
|
Lobby[LobbyController.frontData] --> FreeCreditsLogic
|
||||||
|
Inner[innerapi FreeCreditsController] --> DB
|
||||||
|
end
|
||||||
|
subgraph wallet [slot_wallet]
|
||||||
|
FreeCreditsLogic --> WalletLogic
|
||||||
|
WalletLogic --> freeze[freeCreditsFreeze]
|
||||||
|
WalletLogic --> claim[freeCreditsClaim]
|
||||||
|
claim --> Y1[createTask SOURCE_TYPE_FREE]
|
||||||
|
end
|
||||||
|
subgraph pay [slot_pay]
|
||||||
|
firstCashout[firstCashout API] --> WithdrawalOrder
|
||||||
|
WithdrawalOrder --> MQ[FreeCreditsFirstCashout*]
|
||||||
|
MQ --> EventBus
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
| 模块 | 关键文件 | 覆盖的需求章节 |
|
||||||
|
|------|----------|----------------|
|
||||||
|
| 领域与状态机 | [FreeCreditsLogic.php](file:///Users/ray/Documents/project/www/slot/slot_console/app/api/logic/FreeCreditsLogic.php) | 5.3–5.9 核心规则 |
|
||||||
|
| 数据表 | [install.sql](file:///Users/ray/Documents/project/www/slot/slot_console/db/install.sql) L36–86 | 活动池 + 档位 |
|
||||||
|
| 活动配置 | [RechargeGiftConfigModel.php](file:///Users/ray/Documents/project/www/slot/slot_console/app/model/common/RechargeGiftConfigModel.php) `TYPE_FREE_CREDITS=11` | 17 配置(读库) |
|
||||||
|
| 客户端 API | [FreeCreditsController.php](file:///Users/ray/Documents/project/www/slot/slot_console/app/api/controller/FreeCreditsController.php) | status / claim / firstCashout |
|
||||||
|
| 大厅聚合 | [LobbyController.php](file:///Users/ray/Documents/project/www/slot/slot_console/app/napi/controller/LobbyController.php) `free_credits` | 7 状态条数据源(部分) |
|
||||||
|
| 充值事件 | [RechargeEvent.php](file:///Users/ray/Documents/project/www/slot/slot_console/app/command/event/RechargeEvent.php) | 5.3 首充定格、5.5 累计充值解锁 |
|
||||||
|
| 首页解锁 | [EventBus.php](file:///Users/ray/Documents/project/www/slot/slot_console/app/command/EventBus.php) win/bonus 等 → `syncHomeWithdrawUnlocked` | 5.2 |
|
||||||
|
| 钱包原子能力 | [WalletLogic.php](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php) | 15.2–15.4 |
|
||||||
|
| 首档提现 | [WithdrawalOrderEntity.php](file:///Users/ray/Documents/project/www/slot/slot_pay/app/entity/WithdrawalOrderEntity.php) + [EventWithdrawal.php](file:///Users/ray/Documents/project/www/slot/slot_pay/app/command/EventWithdrawal.php) | 5.6、15.3、20.2 |
|
||||||
|
| 运营统计 API | [innerapi/FreeCreditsController.php](file:///Users/ray/Documents/project/www/slot/slot_console/app/innerapi/controller/FreeCreditsController.php) | 18.1–18.2(简化版) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 按需求章节对照(22.1 核心规则)
|
||||||
|
|
||||||
|
| 验收项(文档 22.1) | 实现情况 | 说明 |
|
||||||
|
|---------------------|----------|------|
|
||||||
|
| 未达 $50 点 Withdraw 提示 | **前端** | 后端 `status` 返回 `win_threshold` / `home_withdraw_unlocked`,无专用提示 API |
|
||||||
|
| 曾达 $50 后输回仍解锁 | **部分** | 已解锁用户靠 `home_withdraw_unlocked=1` 保持;**未持久化历史峰值**,仅在 MQ 事件时若 `balance >= threshold` 才写库,存在漏解锁边界(例如达峰后无 win/bonus 类事件即输掉) |
|
||||||
|
| 任意入口首充定格 | **是** | `RechargeEvent` + `handleRecharge`,`frozenAmount = balance_after - wallet_amount` |
|
||||||
|
| 首充失败不定格 | **是** | 仅充值成功 MQ 触发 |
|
||||||
|
| 定格后余额扣除、活动展示 | **是** | `freeCreditsFreeze` + player/package 记录 |
|
||||||
|
| 累计未满 $50 第一档不可提现 | **是** | 首包 `STATUS_LOCKED` 直至 `wallet.r >= recharge_unlock_amount` |
|
||||||
|
| 累计满 $50 第一档可提现 | **是** | `advanceByRecharge` 解锁 package_no=1 |
|
||||||
|
| 定格 < $20 时第一档=定格额 | **是** | `min(frozen, first_cash_amount)` |
|
||||||
|
| 第一档提现成功后关首页状态条 | **后端未显式字段** | 有 `STATUS_FIRST_CASH_DONE`,但 `buildStatus` **未返回** `show_home_status_bar` 等 UI 开关,需前端自行推断 |
|
||||||
|
| 后续充值只解锁下一档 | **是** | `max_unlock_per_recharge` + `nextLockedReleasePackage` |
|
||||||
|
| Claim 入 Deposit + Y1 | **部分** | 入 deposit_balance + `createTask(SOURCE_TYPE_FREE)`;**无 Deposit Lot**(文档 15.4、22.2) |
|
||||||
|
| 全部完成关活动入口 | **部分** | `STATUS_COMPLETED=10`;API 未返回 `show_activity_entry` 布尔字段 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 按需求章节对照(22.2 账务)
|
||||||
|
|
||||||
|
| 验收项 | 实现情况 | 风险 |
|
||||||
|
|--------|----------|------|
|
||||||
|
| 定格有钱包流水 | **是** | `BIZ_TYPE_FREE_CREDITS_FREEZE` |
|
||||||
|
| 定格前后余额正确 | **是** | `addLog` 记录 |
|
||||||
|
| 第一档不进普通钱包 | **是** | 独立 `free_credit_first_cashout`,跳过 `withdrawFrozen` |
|
||||||
|
| Claim 创建 Deposit Lot | **否** | 全仓库无 `DepositLot`/`deposit_lot` 实现 |
|
||||||
|
| Claim 创建 Y1 | **是** | 但 `createTask` 在钱包事务 **commit 之后**;失败仅打日志,**不满足** 文档 20.3「流水任务失败整体回滚」 |
|
||||||
|
| 重复回调不重复定格 | **是** | `frozen_amount_qf > 0` 跳过 |
|
||||||
|
| 重复 Claim 不重复入账 | **部分** | package 状态 + `claim_biz_id` 唯一;钱包层 **未见 biz_id 幂等查重** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 明确未实现 / 未对齐项
|
||||||
|
|
||||||
|
### P0(影响验收或资金一致性)
|
||||||
|
|
||||||
|
1. **Deposit Lot**:文档 15.4 / 22.2 要求 Claim 后创建;当前仅 `inc` deposit + Y1 task。
|
||||||
|
2. **Claim 与 Y1 原子性**:`freeCreditsClaim` 先 commit 入账,再 `createTask`;与 20.3 冲突。
|
||||||
|
3. **充值退款/拒付暂停档位**(文档 20.1):`FreeCreditsLogic` 无 refund/chargeback 处理。
|
||||||
|
4. **status API 缺累计充值进度**:定格后 UI 需要 `$9.99 / $50`(文档 6.3、7.3),`buildStatus` 未返回 `total_recharge`(内部用 `wallet.r`,未透出)。
|
||||||
|
5. **「曾经达到 $50」**:无 `peak_balance` 字段;依赖事件驱动 `syncHomeWithdrawUnlocked`,与 5.2 字面规则不完全一致。
|
||||||
|
|
||||||
|
### P1(运营与配置)
|
||||||
|
|
||||||
|
6. **后台配置模块**(文档 17):`backend/slot_admin` / `slot_admin_vue` **无** `TYPE_FREE_CREDITS=11` 的 CRUD 页面;仅能手工维护 `s_recharge_gift_config.ext_config`。
|
||||||
|
7. **后台统计页**(文档 18):仅有 [innerapi](file:///Users/ray/Documents/project/www/slot/slot_console/app/innerapi/controller/FreeCreditsController.php) 简化接口;列表缺 **渠道、时间范围、第一档状态、排序项、累计充值、完成进度** 等字段/筛选项。
|
||||||
|
8. **可配置 Y1 倍数**(文档 17 `后续档打码倍数`):代码写死 `createTask(0, fee, SOURCE_TYPE_FREE)`,未读 `ext_config`。
|
||||||
|
9. **状态机 `STATUS_FROZEN=2`**:模型定义了但 Logic **从未赋值**(定格后直接 `DEPOSIT_PENDING` / `FIRST_CASH_READY`)。
|
||||||
|
|
||||||
|
### P2(产品体验 / 文档其他章节)
|
||||||
|
|
||||||
|
10. **客户端 UI**(文档 6–14):`slot_pwa` 等仓库 **零引用** `free_credits`;首页状态条、Free Play to Go、独立提现页、广播模块均未实现(原开发计划也标明前端另仓)。
|
||||||
|
11. **广播模块**(文档 13):无最近 10 条提现/领取记录 API。
|
||||||
|
12. **注册赠送改 $30**(文档 19):与本活动解耦,**未在本需求代码变更中验证**是否已改配置/落地页。
|
||||||
|
13. **自动化测试**:无 FreeCredits 相关单测/集成测试。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 与现有开发计划的一致性
|
||||||
|
|
||||||
|
[free_credits_release 计划](file:///Users/ray/.cursor/plans/free_credits_release_902566c9.plan.md) 中 `implement-console-core` 仍为 **pending**,与代码现状(Logic 已较完整)不一致;`test-acceptance` 标 completed 但仓库内 **无测试文件**,建议以文档 22 节手工/自动化用例重新验收。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 建议验收顺序(若需补齐)
|
||||||
|
|
||||||
|
1. **手工走通 P0 账务用例**:首充定格幂等、满 $50 解锁、首档提现回调、顺序 Claim、重复 Claim/回调。
|
||||||
|
2. **补齐 status 字段**:`total_recharge`、`show_home_status_bar`、`show_activity_entry`、`current_balance`。
|
||||||
|
3. **对齐钱包**:Deposit Lot(若钱包规范要求)、Claim+Y1 同事务或补偿回滚。
|
||||||
|
4. **运营**:slot_admin 增加 type=11 配置页 + 统计页对接 innerapi。
|
||||||
|
5. **前端仓**:按文档 6–14 接 API(本 monorepo 外)。
|
||||||
|
6. **补测试**:覆盖 22.1 / 22.2 表格各行。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 总览评分(仅供沟通)
|
||||||
|
|
||||||
|
| 范围 | 完成度(估) |
|
||||||
|
|------|-------------|
|
||||||
|
| 后端核心状态机 + 充值/提现/Claim 链路 | ~75–85% |
|
||||||
|
| 钱包账务与文档完全一致 | ~60% |
|
||||||
|
| 客户端 API 字段/UI 支撑 | ~50% |
|
||||||
|
| 运营后台配置与统计 | ~25% |
|
||||||
|
| 前端 UI / 文案 / 广播 | ~0%(本仓库) |
|
||||||
|
| 自动化测试 | ~0% |
|
||||||
|
|
||||||
|
**综合:需求文档 V1.0 不能判定为「已全部实现」;可判定为「后端 MVP 已具备,待补齐账务细节、运营与前端后全量验收」。**
|
||||||
78
plans/is_end派奖结算改造_14ce4dc5.plan.md
Normal file
78
plans/is_end派奖结算改造_14ce4dc5.plan.md
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
---
|
||||||
|
name: is_end派奖结算改造
|
||||||
|
overview: 基于现有 BetFunding/WinService 实现,新增 is_end 分支:中间派奖仅累计不入账,结束派奖统一按 Round Final Settlement 入账;并对中间派奖增加 biz_id 严格幂等。
|
||||||
|
todos:
|
||||||
|
- id: dto-validator-is-end
|
||||||
|
content: 扩展 DTO 与校验器,支持 is_end 并强制 win 场景 round_id 校验
|
||||||
|
status: pending
|
||||||
|
- id: redis-win-keys
|
||||||
|
content: 新增 pending/dedupe Redis key 生成方法与 TTL 约定
|
||||||
|
status: pending
|
||||||
|
- id: logic-win-branching
|
||||||
|
content: 在 WalletLogic::win 中实现 is_end=0 累计与 is_end=1 最终结算分支
|
||||||
|
status: pending
|
||||||
|
- id: idempotency-regression
|
||||||
|
content: 补充关键回归场景说明并验证与现有幂等不冲突
|
||||||
|
status: pending
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# is_end 驱动的派奖结算改造计划
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
让 `win` 接口支持第三方 `is_end` 语义:
|
||||||
|
- `is_end=0`:仅记录/累计本局派奖,不做钱包入账、不做 Lot 终态收敛
|
||||||
|
- `is_end=1`:将本次派奖 + 已累计派奖合并后,执行一次 Final Settlement(现有 `WinService::execute`)
|
||||||
|
|
||||||
|
## 现状结论(基于代码)
|
||||||
|
- 入口路由在 [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php) 的 `type=win -> win()`。
|
||||||
|
- Final Settlement 主流程在 [app/service/wallet/WinService.php](app/service/wallet/WinService.php)。
|
||||||
|
- 当前 `win` 默认即 Final Settlement,不区分中间派奖事件。
|
||||||
|
- 下注资金事实表在 [app/model/multi/WalletBetFundingModel.php](app/model/multi/WalletBetFundingModel.php)。
|
||||||
|
|
||||||
|
## 实现方案(按你选择)
|
||||||
|
### 1) 入参扩展与校验
|
||||||
|
- 在 [app/api/dto/request/wallet/WalletUpdateRequestDTO.php](app/api/dto/request/wallet/WalletUpdateRequestDTO.php) 增加字段:`is_end`(默认 `1`,仅允许 `0|1`)。
|
||||||
|
- 在 [app/validator/Wallet2Validator.php](app/validator/Wallet2Validator.php):
|
||||||
|
- 增加 `is_end` 校验规则(整数且取值 `0/1`)。
|
||||||
|
- 将 `win` 也纳入 `round_id` 必传校验(当前仅 bet 必传)。
|
||||||
|
|
||||||
|
### 2) Redis Key 设计
|
||||||
|
- 在 [app/service/RedisKeyManagerService.php](app/service/RedisKeyManagerService.php) 新增两个 key 生成器:
|
||||||
|
- `wallet:win:pending:{uid}:{currency}:{round_id}`:累计未结算派奖金额
|
||||||
|
- `wallet:win:dedupe:{uid}:{currency}:{round_id}:{biz_id}`:中间派奖幂等标记
|
||||||
|
- 过期策略建议:`pending` 48h,`dedupe` 72h(与重放窗口对齐)。
|
||||||
|
|
||||||
|
### 3) win 主流程分支
|
||||||
|
- 修改 [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php) 的 `win()`:
|
||||||
|
- `is_end=0`:
|
||||||
|
- 命中 dedupe key 则直接返回当前钱包(幂等)
|
||||||
|
- 未命中则将 `fee` 累加到 pending key,写 dedupe key,返回当前钱包(不写 `BIZ_TYPE_WIN` 流水)
|
||||||
|
- `is_end=1`:
|
||||||
|
- 读取 pending 累计并与本次 `fee` 合并为 `finalWinAmount`
|
||||||
|
- 用 `finalWinAmount` 调用现有 `WinService::execute`
|
||||||
|
- 事务提交后清理 pending key(失败不清)
|
||||||
|
|
||||||
|
### 4) 幂等与一致性
|
||||||
|
- `is_end=1` 继续沿用现有 `wallet_log(uid,biz_id,biz_type=win)` 幂等。
|
||||||
|
- `is_end=0` 使用 Redis dedupe key 防重,避免重复累计。
|
||||||
|
- 若 `is_end=1` 无待分配 funding,保持当前行为(报错),便于暴露上游时序问题。
|
||||||
|
|
||||||
|
### 5) 兼容与回归
|
||||||
|
- 默认 `is_end=1`,兼容未传该字段的旧调用。
|
||||||
|
- 回归场景:
|
||||||
|
- 单次结算(只发 `is_end=1`)
|
||||||
|
- 多次派奖(多条 `is_end=0` + 一条 `is_end=1`)
|
||||||
|
- `is_end=0` 重放同 biz_id 不重复累计
|
||||||
|
- `is_end=1` 重放同 biz_id 不重复入账
|
||||||
|
- `is_end=1` 失败后 pending 不丢失
|
||||||
|
|
||||||
|
## 关键改动文件
|
||||||
|
- [app/api/dto/request/wallet/WalletUpdateRequestDTO.php](app/api/dto/request/wallet/WalletUpdateRequestDTO.php)
|
||||||
|
- [app/validator/Wallet2Validator.php](app/validator/Wallet2Validator.php)
|
||||||
|
- [app/service/RedisKeyManagerService.php](app/service/RedisKeyManagerService.php)
|
||||||
|
- [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php)
|
||||||
|
|
||||||
|
## 风险与边界
|
||||||
|
- 该方案不新增 `wallet_game_round` / `wallet_game_round_event` 持久化表;中间派奖仅 Redis 暂存,审计粒度弱于 DB 事件流。
|
||||||
|
- 若某局长期无 `is_end=1`,pending 依赖 TTL 过期清理。后续可升级为 DB 事件表方案。
|
||||||
57
plans/is_end结算回退方案_180cfb46.plan.md
Normal file
57
plans/is_end结算回退方案_180cfb46.plan.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
---
|
||||||
|
name: is_end结算回退方案
|
||||||
|
overview: 取消“中间派奖实时余额可见化”调整,回退到严格 Final Settlement 方案:is_end=0 仅累计,is_end=1 才入账与状态收敛。
|
||||||
|
todos:
|
||||||
|
- id: dto-validator-is-end
|
||||||
|
content: 增加 is_end 字段及 win round_id 强校验
|
||||||
|
status: completed
|
||||||
|
- id: pending-dedupe-keys
|
||||||
|
content: 新增 pending 与 dedupe Redis key 并接入 is_end=0 累计
|
||||||
|
status: completed
|
||||||
|
- id: win-final-merge
|
||||||
|
content: is_end=1 合并 pending 后调用现有 WinService 结算并清理缓存
|
||||||
|
status: completed
|
||||||
|
- id: regression-check
|
||||||
|
content: 回归验证多次派奖累计、最终结算与幂等行为
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# is_end 结算回退方案(不做中间余额更新)
|
||||||
|
|
||||||
|
## 变更决策
|
||||||
|
取消这部分:
|
||||||
|
- 多次派奖期间(`is_end=0`)对第三方返回余额进行实时更新
|
||||||
|
- 对 `wallet` 查询叠加 pending 金额
|
||||||
|
|
||||||
|
保留并执行:
|
||||||
|
- `is_end=0`:仅做中间派奖累计,不改钱包余额、不做 Lot 收敛
|
||||||
|
- `is_end=1`:合并累计派奖后一次 Final Settlement(调用现有 win 主流程)
|
||||||
|
|
||||||
|
## 实现边界
|
||||||
|
- 严格遵循 [doc/win.md](doc/win.md) 的“Final Settlement 才做真实入账”原则
|
||||||
|
- 不引入展示层余额叠加逻辑,避免展示余额与真实可下注余额不一致
|
||||||
|
|
||||||
|
## 具体改造
|
||||||
|
1. DTO / 校验
|
||||||
|
- [app/api/dto/request/wallet/WalletUpdateRequestDTO.php](app/api/dto/request/wallet/WalletUpdateRequestDTO.php) 增加 `is_end`(默认 `1`)
|
||||||
|
- [app/validator/Wallet2Validator.php](app/validator/Wallet2Validator.php)
|
||||||
|
- 增加 `is_end` 仅允许 `0/1`
|
||||||
|
- `win` 场景强制 `round_id` 必传
|
||||||
|
|
||||||
|
2. Redis 累计与幂等(仅中间派奖)
|
||||||
|
- [app/service/RedisKeyManagerService.php](app/service/RedisKeyManagerService.php) 增加 key:
|
||||||
|
- `wallet:win:pending:{uid}:{currency}:{round_id}`
|
||||||
|
- `wallet:win:dedupe:{uid}:{currency}:{round_id}:{biz_id}`
|
||||||
|
- `is_end=0` 命中 dedupe 则忽略,未命中则累计 pending
|
||||||
|
|
||||||
|
3. win 结算分支
|
||||||
|
- [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php)
|
||||||
|
- `is_end=0`:只累计并返回当前真实钱包余额
|
||||||
|
- `is_end=1`:读取 pending 并与本次 `fee` 合并后走现有 `WinService::execute`,成功后清理 pending
|
||||||
|
|
||||||
|
## 验收
|
||||||
|
- 多条 `is_end=0` 不触发真实入账
|
||||||
|
- 一条 `is_end=1` 触发一次最终结算,金额=中间累计+末笔
|
||||||
|
- 中间派奖重复 `biz_id` 不重复累计
|
||||||
|
- Final 失败时 pending 不丢失,可重试
|
||||||
141
plans/phpdoc_cursor_规则_1ee55114.plan.md
Normal file
141
plans/phpdoc_cursor_规则_1ee55114.plan.md
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
---
|
||||||
|
name: PHPDoc Cursor 规则
|
||||||
|
overview: 在 Cursor 全局规则中新增 PHP PHPDoc 严格规范(类、方法、常量全覆盖),与现有 backend-layering 规则并列,并明确适用范围与模板,避免与「不写显而易见注释」的原则冲突。
|
||||||
|
todos:
|
||||||
|
- id: create-php-doc-mdc
|
||||||
|
content: "新建 /Users/ray/.cursor/rules/php-doc.mdc(globs: **/*.php,严格 PHPDoc 正文 + 示例)"
|
||||||
|
status: completed
|
||||||
|
- id: verify-rule-active
|
||||||
|
content: 在 Cursor 中打开任意 .php 文件,确认规则被注入;用 WalletLogic 缺注释方法做一次试写验证
|
||||||
|
status: completed
|
||||||
|
- id: optional-readme-sync
|
||||||
|
content: (可选)将 PHPDoc §3.4 同步到 slot_wallet 等 README,与 Cursor 规则保持一致
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 新增 PHPDoc 严格 Cursor 规则
|
||||||
|
|
||||||
|
## 结论:要加,但不要写成「所有符号一刀切」的空话
|
||||||
|
|
||||||
|
你选择了 **严格全覆盖**。建议在 Cursor 里加一条 **独立规则文件**,与现有的 [`backend-layering.mdc`](/Users/ray/.cursor/rules/backend-layering.mdc) 并列,而不是塞进 layering 里(职责不同:一个管分层,一个管文档)。
|
||||||
|
|
||||||
|
**不建议**写成模糊的「所有都要 PHPDoc」——应写清 **哪些符号、最少哪些 tag、何时可写短句**。否则 Agent 会在 trivial 代码上堆 `@param int $uid uid` 这类无意义注释,与 [`slot_agent/README.md`](/Users/ray/Documents/project/www/slot/slot_agent/README.md) 第 9.3 节「不解释显而易见语句」打架。
|
||||||
|
|
||||||
|
## 现状
|
||||||
|
|
||||||
|
| 来源 | PHPDoc 要求 |
|
||||||
|
|------|-------------|
|
||||||
|
| [`.cursor/rules/`](/Users/ray/.cursor/rules/) | 仅有 layering + dev-environment,**无 PHPDoc** |
|
||||||
|
| [`slot_agent/README.md`](/Users/ray/Documents/project/www/slot/slot_agent/README.md) §6.2 | 已要求:业务类说明、公开方法说明、参数/返回值说明 |
|
||||||
|
| 实际代码(如 [`WalletLogic.php`](/Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php)) | **不一致**:`run`/`register` 有块注释,`initWalletWithoutMoney`、`getBalance` 无 |
|
||||||
|
|
||||||
|
终端里曾出现给 `slot_wallet/README.md` 增加 §3.4 PHPDoc 的 diff,但当前 README **尚未落地**该节——规范应优先进 **Cursor rule**(Agent 每次都会读),README 可作为人类文档二次同步(可选)。
|
||||||
|
|
||||||
|
## 推荐规则文件
|
||||||
|
|
||||||
|
**路径**:[`/Users/ray/.cursor/rules/php-doc.mdc`](/Users/ray/.cursor/rules/php-doc.mdc)
|
||||||
|
|
||||||
|
**Frontmatter 建议**:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
description: PHP PHPDoc requirements for all classes, methods, and constants
|
||||||
|
globs: "**/*.php"
|
||||||
|
alwaysApply: false
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
- 用 `globs: **/*.php`:编辑 PHP 时自动注入,不污染 Vue/TS 会话
|
||||||
|
- `alwaysApply: false`:与 layering 的 `true` 区分,减少非 PHP 任务 token
|
||||||
|
|
||||||
|
## 规则正文(严格版,建议写入 mdc)
|
||||||
|
|
||||||
|
### 1. 适用范围
|
||||||
|
|
||||||
|
- **新增或修改**的 PHP 文件中的:**class / interface / trait / enum**、**所有方法**(`public` / `protected` / `private`)、**所有类常量**(`const`)
|
||||||
|
- 适用目录:`slot_*`、`backend/**` 下 PHP 业务代码
|
||||||
|
- **不追溯**改历史未动代码;但 **本次 diff 触及的符号** 若缺 PHPDoc,须一并补齐
|
||||||
|
|
||||||
|
### 2. 最低 PHPDoc 内容
|
||||||
|
|
||||||
|
| 符号 | 必须包含 |
|
||||||
|
|------|----------|
|
||||||
|
| 类 / 接口 / Trait | 一行职责说明;复杂类可加 `@package`(可选) |
|
||||||
|
| 方法 | 职责说明 + 每个参数的 `@param` + `@return`;有 `throw` 的须 `@throws` |
|
||||||
|
| 类常量 | 一行说明业务含义(单位、枚举语义、与配置/表字段对应关系) |
|
||||||
|
| 属性(若新增) | `@var` 或 typed property + 一行说明(仅当类型/语义不直观时) |
|
||||||
|
|
||||||
|
已有 **PHP 8+ 标量/对象类型声明** 时,`@param`/`@return` 仍要保留(与你选的 strict 一致),但 **描述句可短**,禁止空块或只复制类型名。
|
||||||
|
|
||||||
|
### 3. 禁止项(与 slot_agent 注释原则对齐)
|
||||||
|
|
||||||
|
- 禁止无 `@param` / `@return` 的空 `/** */`
|
||||||
|
- 禁止 `@param int $id id` 式同义反复;语义、单位、边界写进描述
|
||||||
|
- 禁止用 PHPDoc 替代 Validate / Logic 里的业务校验说明
|
||||||
|
|
||||||
|
### 4. 分层补充(与 layering 一致)
|
||||||
|
|
||||||
|
对以下层 **额外** 要求写清业务语义(不仅是类型):
|
||||||
|
|
||||||
|
- **Controller**:接口用途、幂等/鉴权前提(若有)
|
||||||
|
- **Logic**:用例步骤、事务边界、失败时行为
|
||||||
|
- **Service**:复用场景、调用方约束
|
||||||
|
- **Model**:查询条件、分表键、金额字段单位
|
||||||
|
- **DTO / Validate**:字段含义、与上游参数映射
|
||||||
|
|
||||||
|
### 5. 示例模板(写入规则供 Agent 照抄)
|
||||||
|
|
||||||
|
```php
|
||||||
|
/**
|
||||||
|
* 首充前冻结免费余额。
|
||||||
|
*
|
||||||
|
* @return WalletEntity|null 成功返回钱包实体;无需冻结时返回 null
|
||||||
|
* @throws WalletException 余额不足或钱包不存在
|
||||||
|
*/
|
||||||
|
public function freeCreditsFreeze(): ?WalletEntity
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
/** 释放档位:单位分,对应配置 free_credits.release_tiers */
|
||||||
|
public const RELEASE_TIER_MIN = 100;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 与工具链的关系(可选,本期可不做的)
|
||||||
|
|
||||||
|
Cursor rule **不能**在 CI 里自动 fail。若以后要机器 enforce,再单独加:
|
||||||
|
|
||||||
|
- PHPStan + `phpstan/phpdoc-parser` 或
|
||||||
|
- PHPCS `Squiz.Commenting` / 自定义 sniff
|
||||||
|
|
||||||
|
本期仅 Cursor 规则即可满足「Agent 写码时遵守」。
|
||||||
|
|
||||||
|
## 实施步骤
|
||||||
|
|
||||||
|
1. 新建 [`php-doc.mdc`](/Users/ray/.cursor/rules/php-doc.mdc),按上文写入 frontmatter + 正文
|
||||||
|
2. 在 Cursor Settings → Rules 确认该规则对 PHP 文件生效(`globs` 匹配)
|
||||||
|
3. (可选)把相同 §3.4 同步进 [`slot_wallet/README.md`](/Users/ray/Documents/project/www/slot/slot_wallet/README.md) 与其它服务 README,供人工 review 对照
|
||||||
|
4. 用一次小改动验证:例如在 `WalletLogic` 给无注释的 `getBalance` 补 PHPDoc,看 Agent 是否自动遵循
|
||||||
|
|
||||||
|
## 风险与预期
|
||||||
|
|
||||||
|
- **Diff 变大**:strict 下每个新方法多 5–15 行注释,属预期成本
|
||||||
|
- **历史债**:全库补 doc 工作量巨大;规则应写明 **仅 touch 到的符号**,避免 Agent 一次性重构整文件
|
||||||
|
- **类型重复**:strict 仍保留 `@param`/`@return` 类型,利于 IDE/静态分析;描述聚焦「为什么/单位/边界」
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph rules [Cursor Rules]
|
||||||
|
layering[backend-layering.mdc]
|
||||||
|
phpdoc[php-doc.mdc]
|
||||||
|
devenv[dev-environment.mdc]
|
||||||
|
end
|
||||||
|
subgraph code [PHP 改动]
|
||||||
|
edit[编辑 PHP 文件]
|
||||||
|
agent[Agent 生成/修改代码]
|
||||||
|
end
|
||||||
|
edit --> phpdoc
|
||||||
|
edit --> layering
|
||||||
|
agent --> phpdoc
|
||||||
|
agent --> layering
|
||||||
|
```
|
||||||
84
plans/phpunit_钱包链路测试_003ec505.plan.md
Normal file
84
plans/phpunit_钱包链路测试_003ec505.plan.md
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
name: PHPUnit 钱包链路测试
|
||||||
|
overview: 补齐本仓库的 PHPUnit 基建,并新增 register/bet/win 集成测试用例,默认在本地 php82 容器执行、连接真实依赖,以 HTTP 结果与余额变化作为核心断言。
|
||||||
|
todos:
|
||||||
|
- id: setup-phpunit
|
||||||
|
content: 补齐 PHPUnit 基建(composer require-dev、phpunit.xml、tests/bootstrap.php)
|
||||||
|
status: completed
|
||||||
|
- id: implement-feature-test
|
||||||
|
content: 实现 register/bet/win 集成测试与幂等/异常断言
|
||||||
|
status: completed
|
||||||
|
- id: run-in-container
|
||||||
|
content: 在 php82 容器执行测试并根据结果修正
|
||||||
|
status: completed
|
||||||
|
- id: document-runbook
|
||||||
|
content: 补充测试执行说明与可选增强项
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# PHPUnit Register/Bet/Win 测试落地计划
|
||||||
|
|
||||||
|
## 默认口径(基于当前信息)
|
||||||
|
- 测试框架:PHPUnit(当前仓库尚无 `phpunit.xml` 和 `tests/`)。
|
||||||
|
- 执行环境:本地 `php82` 容器。
|
||||||
|
- 依赖模式:默认连本地真实 MySQL/Redis(贴近联调)。
|
||||||
|
- 断言范围:默认先做 API 返回与余额变化断言;DB 深断言作为第二阶段可选扩展。
|
||||||
|
|
||||||
|
## 现状结论
|
||||||
|
- 缺少 PHPUnit 基建:未发现 `phpunit*.xml` 与 `tests/` 目录。
|
||||||
|
- `register/bet/win` 入口与逻辑已具备:
|
||||||
|
- 接口入口:[app/api/controller/WalletController.php](app/api/controller/WalletController.php)
|
||||||
|
- 业务编排:[app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php)
|
||||||
|
- 注册服务:[app/service/wallet/RegisterService.php](app/service/wallet/RegisterService.php)
|
||||||
|
|
||||||
|
## 实施步骤
|
||||||
|
1. **补测试基建**
|
||||||
|
- 在 `require-dev` 增加 `phpunit/phpunit`。
|
||||||
|
- 新增 `phpunit.xml`(定义 `tests/` 目录、bootstrap、环境变量覆盖)。
|
||||||
|
- 新增 `tests/bootstrap.php`(加载自动加载与测试环境初始化)。
|
||||||
|
|
||||||
|
2. **新增钱包链路集成测试**
|
||||||
|
- 新建测试文件:[tests/Feature/WalletRegisterBetWinTest.php](tests/Feature/WalletRegisterBetWinTest.php)
|
||||||
|
- 用例覆盖:
|
||||||
|
- `register` 成功(通过 `wallet/update` + `type=register`)
|
||||||
|
- `bet` 成功并校验扣款后余额变化
|
||||||
|
- `win is_end=0` 中间派奖仅影响待结算展示
|
||||||
|
- `win is_end=1` 最终结算落账
|
||||||
|
- `bet` 重复 `biz_id` 幂等
|
||||||
|
- `win` 重复 `biz_id` 幂等
|
||||||
|
- `bet/win` 缺 `round_id` 参数错误
|
||||||
|
- `win` 非法 `is_end` 参数错误
|
||||||
|
|
||||||
|
3. **测试数据与可重复执行设计**
|
||||||
|
- 每个测试生成独立 `uid/round_id/biz_id/trace_id`(时间戳+随机后缀),避免脏数据冲突。
|
||||||
|
- 用例内封装统一请求方法(POST JSON)与响应断言助手,降低重复代码。
|
||||||
|
- 优先按顺序单线程执行此特性测试,避免并发串扰。
|
||||||
|
|
||||||
|
4. **执行与验证**
|
||||||
|
- 在容器内执行:`docker compose exec -T php82 php vendor/bin/phpunit --filter WalletRegisterBetWinTest`
|
||||||
|
- 验证输出:
|
||||||
|
- 所有用例通过
|
||||||
|
- 幂等场景无重复记账(通过返回余额不重复变化来断言)
|
||||||
|
|
||||||
|
5. **第二阶段可选增强(不在首版强制)**
|
||||||
|
- 增加 DB 断言(`wallet_log`、`wallet_fund_lot`、`wallet_bet_funding`)与 Redis pending key 清理断言。
|
||||||
|
- 将该测试纳入 CI job(需环境可用性与测试隔离策略先达成一致)。
|
||||||
|
|
||||||
|
## 目标结构图
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
testBootstrap[phpunitBootstrap] --> featureTest[WalletRegisterBetWinTest]
|
||||||
|
featureTest --> registerStep[register_update]
|
||||||
|
registerStep --> betStep[bet]
|
||||||
|
betStep --> winMidStep[win_is_end_0]
|
||||||
|
winMidStep --> winFinalStep[win_is_end_1]
|
||||||
|
winFinalStep --> idemCheck[idempotencyChecks]
|
||||||
|
idemCheck --> negativeCheck[invalidParamsChecks]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 受影响文件(计划新增/修改)
|
||||||
|
- [composer.json](composer.json)
|
||||||
|
- [phpunit.xml](phpunit.xml)
|
||||||
|
- [tests/bootstrap.php](tests/bootstrap.php)
|
||||||
|
- [tests/Feature/WalletRegisterBetWinTest.php](tests/Feature/WalletRegisterBetWinTest.php)
|
||||||
11
plans/phpunit_集成测试落地_3c120775.plan.md
Normal file
11
plans/phpunit_集成测试落地_3c120775.plan.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
name: PHPUnit 集成测试落地
|
||||||
|
overview: 补齐本仓库 PHPUnit 基建,并新增 register/bet/win 集成测试(连接真实 MySQL/Redis)与关键 DB 断言,支持在本地 php82 容器执行。
|
||||||
|
todos: []
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Register/Bet/Win PHPUnit 实施计划
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
- 新增可
|
||||||
81
plans/sdk_taskprogress_封装_5c8676e2.plan.md
Normal file
81
plans/sdk_taskprogress_封装_5c8676e2.plan.md
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
---
|
||||||
|
name: SDK taskProgress 封装
|
||||||
|
overview: 将 slot_sdk(或你们的 SDK 仓库)加入工作区后,可按现有 Wallet Client 模式直接实现 `player-task/task-progress` 的调用封装;wallet 侧接口文档已就绪,可作为契约来源。
|
||||||
|
todos:
|
||||||
|
- id: add-sdk-workspace
|
||||||
|
content: 用户将 slot_sdk 加入 Cursor 工作区并告知仓库路径
|
||||||
|
status: completed
|
||||||
|
- id: explore-sdk-patterns
|
||||||
|
content: 阅读 SDK 现有 Wallet Client / HTTP 封装与错误处理约定
|
||||||
|
status: completed
|
||||||
|
- id: implement-client
|
||||||
|
content: 新增 taskProgress 方法、路径常量、请求/响应类型(对齐 player-task-progress-api.md)
|
||||||
|
status: completed
|
||||||
|
- id: add-tests-or-example
|
||||||
|
content: 按 SDK 惯例补单测或调用示例(若项目有测试目录)
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# SDK 工作区加入后的直接开发方案
|
||||||
|
|
||||||
|
## 结论
|
||||||
|
|
||||||
|
**可以。** 当前工作区只有 [slot-wallet](file:///Users/ray/Documents/project/www/ray/slot-wallet),已具备接口契约文档 [doc/player-task-progress-api.md](doc/player-task-progress-api.md) 与实现对照(`PlayerTaskController`、`PlayerTaskQueryService` 等)。把 **SDK 仓库** 作为第二个根目录(或 monorepo 子目录)加入工作区后,我可以:
|
||||||
|
|
||||||
|
1. 阅读 SDK 里现有 Wallet/HTTP Client 的命名、基类、错误处理、DTO 约定;
|
||||||
|
2. 新增 `taskProgress`(或团队统一命名)方法、路径常量、请求/响应类型;
|
||||||
|
3. 若有单测/示例,补一条调用示例或 Feature 测试;
|
||||||
|
4. 保证字段 **snake_case** 与 HTTP JSON 一致,成功判定 `code === 0`。
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph workspace [Cursor Workspace]
|
||||||
|
Wallet[slot-wallet]
|
||||||
|
SDK[slot_sdk]
|
||||||
|
end
|
||||||
|
Doc[player-task-progress-api.md]
|
||||||
|
Wallet --> Doc
|
||||||
|
SDK -->|reads patterns| SDK
|
||||||
|
Doc -->|contract| SDK
|
||||||
|
SDK -->|POST player-task/task-progress| Wallet
|
||||||
|
```
|
||||||
|
|
||||||
|
## 你需要做的准备
|
||||||
|
|
||||||
|
| 项 | 说明 |
|
||||||
|
|----|------|
|
||||||
|
| 加入工作区 | Cursor:**File → Add Folder to Workspace**,选中 SDK 仓库根目录 |
|
||||||
|
| 告知路径 | 例如 `company/ray/slots/slot_sdk`(与你们实际目录一致即可) |
|
||||||
|
| 语言确认 | 若是 PHP `slot_sdk`、Go、TS 等,我会跟现有 Client 语言一致,不另起一套风格 |
|
||||||
|
|
||||||
|
无需改 wallet 代码即可开始 SDK 开发;wallet 接口已实现完毕。
|
||||||
|
|
||||||
|
## 我会按什么写(预期产出)
|
||||||
|
|
||||||
|
以 SDK 现有 Wallet Client 为模板(具体类名需打开 SDK 后确认),典型改动:
|
||||||
|
|
||||||
|
- **路径常量**:`player-task/task-progress`
|
||||||
|
- **请求**:`uid`, `currency`(可选统一附带 `trace_id` 若其他接口都有)
|
||||||
|
- **响应模型**:`summary` + `bonus_tasks[]` + `deposit_tasks[]`,字段与 [doc/player-task-progress-api.md](doc/player-task-progress-api.md) §5 一致
|
||||||
|
- **错误**:复用 SDK 已有 `WalletApiError` / `code !== 0` 处理
|
||||||
|
|
||||||
|
## 跨仓库发布(团队规范)
|
||||||
|
|
||||||
|
按 [`.cursor/rules/slot-wallet-layers-and-delivery.mdc`](file:///Users/ray/Documents/project/www/ray/slot-wallet/.cursor/rules/slot-wallet-layers-and-delivery.mdc) §8–9:
|
||||||
|
|
||||||
|
1. **先在 SDK 仓库** `commit` → `push`;
|
||||||
|
2. 消费方(如 slot-wallet 若通过 composer 依赖 SDK)再 `composer update` 并锁 `composer.lock`。
|
||||||
|
|
||||||
|
当前 [composer.json](file:///Users/ray/Documents/project/www/ray/slot-wallet/composer.json) **尚未**声明 `slot_sdk` 依赖,说明 SDK 可能独立发布或由其他服务引用——这不影响我在 SDK 仓库内直接编码。
|
||||||
|
|
||||||
|
## 建议的确认项(加入工作区后第一条消息说明即可)
|
||||||
|
|
||||||
|
1. SDK 仓库在本机的**绝对路径**或文件夹名;
|
||||||
|
2. 方法命名偏好:`taskProgress` / `getPlayerTaskProgress` / 与现有 `wallet()` 等方法对齐;
|
||||||
|
3. 是否需要 **foundation 常量**(如 `source_type`)进 SDK,还是仅透传 int。
|
||||||
|
|
||||||
|
## 不在本次默认范围
|
||||||
|
|
||||||
|
- 修改 wallet 服务端实现(已满足 PRD §26.1);
|
||||||
|
- 自动 `composer update` 到其他服务(除非你明确要求并给出目标仓库)。
|
||||||
16
plans/slot_workspace_82c92cd4.plan.md
Normal file
16
plans/slot_workspace_82c92cd4.plan.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
name: slot workspace
|
||||||
|
overview: 在 `/Users/ray/Documents/project/www/slot` 创建一个 Cursor/VS Code workspace 文件,并把该目录下一级项目文件夹加入 workspace。默认排除隐藏目录 `.vscode`,不递归加入嵌套子目录。
|
||||||
|
todos: []
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 创建 Slot Workspace
|
||||||
|
|
||||||
|
将创建 `[slot.code-workspace](/Users/ray/Documents/project/www/slot/slot.code-workspace)`,内容使用标准 VS Code/Cursor workspace JSON:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{ "path": "backend" },
|
||||||
|
{ "path": "monitor" }
|
||||||
165
plans/status_接口字段精简_8ba244ad.plan.md
Normal file
165
plans/status_接口字段精简_8ba244ad.plan.md
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
---
|
||||||
|
name: status 接口字段精简
|
||||||
|
overview: 对照需求文档精简 C 端 status/claim 响应字段,并将所有金额由千分位(qf)转为大单位(与全站 getNumberFormat 一致);innerapi 仍返回 qf 全量。
|
||||||
|
todos:
|
||||||
|
- id: package-list-for-client
|
||||||
|
content: FreeCreditsPackageModel::listForClient() 返回精简字段,amount 经 getNumberFormat 转大单位
|
||||||
|
status: completed
|
||||||
|
- id: slim-build-status
|
||||||
|
content: buildStatus 去掉 activity_id;顶层金额与 packages 均转大单位
|
||||||
|
status: completed
|
||||||
|
- id: format-first-cashout-amount
|
||||||
|
content: firstCashout 响应 data.amount 同步转大单位(Pay 入参仍用 qf)
|
||||||
|
status: completed
|
||||||
|
- id: update-controller-phpdoc
|
||||||
|
content: 更新 FreeCreditsController PHPDoc:金额为展示单位 float,非千分位
|
||||||
|
status: completed
|
||||||
|
- id: client-status-test
|
||||||
|
content: 单测断言字段白名单及 78500 qf → 78.5 等大单位转换
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Free Credits status 接口字段精简
|
||||||
|
|
||||||
|
## 结论
|
||||||
|
|
||||||
|
**可以且应该精简。** 当前 [`buildStatus()`](slot_console/app/api/logic/FreeCreditsLogic.php) 直接 `toArray()` 透出库表列,超出需求文档中 C 端 UI 所需信息;[`activity_id`](slot_console/app/api/logic/FreeCreditsLogic.php) 仅用于后台/内部关联,C 端无展示或交互用途。
|
||||||
|
|
||||||
|
你已确认:
|
||||||
|
|
||||||
|
- **只做删减**,不新增 `total_deposit`(累计充值进度由 C 端从钱包侧获取)。
|
||||||
|
- **金额转大单位**:C 端接口不再返回千分位整数,统一转为展示金额(与 [`AgentController::formatAmountToFloat`](slot_console/app/api/controller/AgentController.php)、[`CommonFn::getNumberFormat`](slot_lib/src/common/CommonFn.php) 一致,默认 `moneyFormat=1000`、`moneyDot=2`,如 qf `78500` → `78.5`)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 需求文档 vs 当前响应
|
||||||
|
|
||||||
|
需求文档([首充前免费余额定格与分档释放需求文档.md](docs/requirements/首充前免费余额定格与分档释放需求文档.md))描述的是 **UI 行为**,未定义 JSON 契约,但可反推 C 端必需数据:
|
||||||
|
|
||||||
|
| UI 场景(文档章节) | C 端需要的数据 |
|
||||||
|
| --- | --- |
|
||||||
|
| 是否展示活动(`status === -1` 隐藏) | `status` |
|
||||||
|
| 首页 Withdraw 是否曾达赢取门槛(§5.2、§7) | `home_withdraw_unlocked` |
|
||||||
|
| 池总额 / 入口副标题「$78.50 pending」(§6.3–6.6、§9.3、§14.2) | `frozen_amount` |
|
||||||
|
| 问号弹窗 / 第一档金额(§8、§10) | `first_cash_amount`、`recharge_unlock_amount` |
|
||||||
|
| 档位列表 Withdraw / Unlock / Claim / Claimed(§9.3、§10–12) | `packages[]`:`id`、`package_type`、`amount`、`status` |
|
||||||
|
| 发起 claim / 第一档提现(现有 API) | `packages[].id` → POST `package_id` |
|
||||||
|
|
||||||
|
**当前多出的字段:**
|
||||||
|
|
||||||
|
- 顶层:`activity_id`(`recharge_gift_config.id`,仅 innerapi/编排用)
|
||||||
|
- `packages[]` 全表列:`player_id`、`activity_id`、`uid`、`withdraw_order_id`、`claim_biz_id`、`unlocked_time`、`claimed_time`、`completed_time`、`create_time`、`update_time`
|
||||||
|
- `package_no` 可保留(便于调试与稳定排序展示),也可仅靠数组顺序;建议 **保留**(成本低、与 DB 序号一致)
|
||||||
|
|
||||||
|
**命名与单位:** packages 字段由 `amount_qf` 改为 **`amount`**;顶层与各档 **`amount` 均为大单位 float**(非 qf),C 端可直接用于 `$78.50` 类文案,无需再 `/1000`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 目标响应契约(C 端)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": 4,
|
||||||
|
"home_withdraw_unlocked": 1,
|
||||||
|
"frozen_amount": 78.5,
|
||||||
|
"first_cash_amount": 20,
|
||||||
|
"recharge_unlock_amount": 50,
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"id": 101,
|
||||||
|
"package_no": 1,
|
||||||
|
"package_type": 1,
|
||||||
|
"amount": 20,
|
||||||
|
"status": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`status === -1` 时仍仅 `{ "status": -1 }`(与现逻辑一致)。
|
||||||
|
|
||||||
|
**转换规则(实现):**
|
||||||
|
|
||||||
|
```php
|
||||||
|
// 与全站 C 端金额一致;qf 为库表 / 内部逻辑整数
|
||||||
|
private function formatClientAmount(int $amountQf): float
|
||||||
|
{
|
||||||
|
return (float) CommonFn::getNumberFormat($amountQf);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- 应用于:`frozen_amount`、`first_cash_amount`、`recharge_unlock_amount`、`packages[].amount`。
|
||||||
|
- **`firstCashout` 成功响应** `data.amount` 同样转大单位;调用 Pay / 钱包时仍传 qf,仅 JSON 对外转换。
|
||||||
|
- **innerapi / 单测写库** 仍使用 `_qf` 整数,不在 DB 层改单位。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 实现方案
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
statusApi[status_claim_firstCashout]
|
||||||
|
buildStatus[buildStatus]
|
||||||
|
clientDto[toClientStatusDto]
|
||||||
|
modelFull[listByPlayerId_toArray]
|
||||||
|
innerapi[innerapi_list]
|
||||||
|
statusApi --> buildStatus --> clientDto
|
||||||
|
buildStatus --> modelFull
|
||||||
|
innerapi --> modelFull
|
||||||
|
```
|
||||||
|
|
||||||
|
1. **Logic 层统一转换**([`FreeCreditsLogic`](slot_console/app/api/logic/FreeCreditsLogic.php))
|
||||||
|
- 新增 `formatClientAmount(int $amountQf): float`(封装 `CommonFn::getNumberFormat`)。
|
||||||
|
- 供 `buildStatus`、`listForClient`(或 Model 回调)、`firstCashout` 响应共用。
|
||||||
|
|
||||||
|
2. **Model 层 C 端 packages**([`FreeCreditsPackageModel`](slot_console/app/model/common/FreeCreditsPackageModel.php))
|
||||||
|
- 新增 `listForClient(int $playerId, callable $formatAmount): array` 或 Logic 内 `array_map`:只输出 `id`、`package_no`、`package_type`、`amount`(大单位)、`status`。
|
||||||
|
- 保留 `listByPlayerId()` 供 innerapi、dev、集成测试。
|
||||||
|
|
||||||
|
3. **收口 DTO**(`buildStatus`)
|
||||||
|
- 去掉 `activity_id`。
|
||||||
|
- 顶层三金额字段经 `formatClientAmount`;`packages` 用 `listForClient`。
|
||||||
|
- `status()`、`claim()` 经 `buildStatus` 返回,结构一致。
|
||||||
|
|
||||||
|
4. **firstCashout 响应**
|
||||||
|
- `return ['order_id' => ..., 'amount' => $this->formatClientAmount($package->amount_qf)]`。
|
||||||
|
|
||||||
|
5. **更新文档**([`FreeCreditsController`](slot_console/app/api/controller/FreeCreditsController.php) PHPDoc)
|
||||||
|
- 删除「千分位整数、展示时除以 1000」描述;改为「金额为大单位 float,精度见 `moneyDot`」。
|
||||||
|
|
||||||
|
6. **单测**
|
||||||
|
- 新增 `FreeCreditsClientStatusTest`:字段白名单 + `78500` qf → `78.5` 转换断言。
|
||||||
|
|
||||||
|
7. **不改动**
|
||||||
|
- [`innerapi/controller/FreeCreditsController`](slot_console/app/innerapi/controller/FreeCreditsController.php) 仍返回全量 `toArray()`。
|
||||||
|
- `FreeCreditsFreezeDev` 等内部工具继续用 `listByPlayerId`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 字段对照表(精简前后)
|
||||||
|
|
||||||
|
| 字段 | 精简前 | 精简后 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `activity_id` | 有 | **删** | C 端不需要 |
|
||||||
|
| `status` | 有 | 有 | 主状态机 |
|
||||||
|
| `home_withdraw_unlocked` | 有 | 有 | §5.2 |
|
||||||
|
| `frozen_amount` | qf 整数 | **float 大单位** | 如 78.5 |
|
||||||
|
| `first_cash_amount` | qf 整数 | **float 大单位** | 如 20 |
|
||||||
|
| `recharge_unlock_amount` | qf 整数 | **float 大单位** | 如 50 |
|
||||||
|
| `packages[].id` | 有 | 有 | claim/cashout |
|
||||||
|
| `packages[].package_no` | 有 | 有 | 序号展示 |
|
||||||
|
| `packages[].package_type` | 有 | 有 | 1=提现档 2=领取档 |
|
||||||
|
| `packages[].amount` | `amount_qf`(qf) | `amount`(**float 大单位**) | 重命名 + 转换 |
|
||||||
|
| `firstCashout.data.amount` | qf | **float 大单位** | 与 status 一致 |
|
||||||
|
| `packages[].status` | 有 | 有 | UI 状态 |
|
||||||
|
| `packages[].player_id/uid/...` | 有 | **删** | 内部字段 |
|
||||||
|
| `packages[].withdraw_order_id` 等 | 有 | **删** | 轮询靠主 `status` + package `status` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 风险与协调
|
||||||
|
|
||||||
|
- **Breaking change**:C 端需改为直接使用大单位金额(不再 `/1000`);删除 `activity_id`、`amount_qf` 及 packages 审计字段。
|
||||||
|
- **精度**:与 `ShareConfigService::moneyDot` / `moneyFormat` 绑定,勿手写 `/1000`,避免与 VIP/钱包接口不一致。
|
||||||
|
- **累计充值进度**:不纳入本次接口;C 端继续从钱包统计接口取(钱包侧金额亦通常为大单位)。
|
||||||
70
plans/status_返回_help_e344e40a.plan.md
Normal file
70
plans/status_返回_help_e344e40a.plan.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
name: status 返回 help
|
||||||
|
overview: 在 Free Credits C 端 status 接口(及 claim 同源 buildStatus)中增加 help 字段,读取活动配置表 recharge_gift_config.help,供问号说明弹窗等展示;status=-1 仍不返回 help。
|
||||||
|
todos:
|
||||||
|
- id: build-status-help
|
||||||
|
content: FreeCreditsLogic::buildStatus 增加 help 字段(读 config->help)
|
||||||
|
status: completed
|
||||||
|
- id: update-phpdoc
|
||||||
|
content: FreeCreditsController::status PHPDoc 补充 help 说明
|
||||||
|
status: completed
|
||||||
|
- id: unit-test-help
|
||||||
|
content: FreeCreditsClientStatusTest 白名单与透传断言
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# status 接口增加 help 返回
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
|
||||||
|
`GET /api/free-credits/status`(以及 `claim` 成功后的同源响应)在 `status !== -1` 时增加 **`help`(string)**,内容来自运营在后台活动编辑里填写的 **「帮助说明」**([`recharge_gift_config.help`](slot_console/app/model/common/RechargeGiftConfigModel.php))。
|
||||||
|
|
||||||
|
`status === -1` 时保持仅 `{ "status": -1 }`,不附带 help。
|
||||||
|
|
||||||
|
## 改动点
|
||||||
|
|
||||||
|
### 1. [`FreeCreditsLogic::buildStatus()`](slot_console/app/api/logic/FreeCreditsLogic.php)
|
||||||
|
|
||||||
|
在现有返回数组中增加:
|
||||||
|
|
||||||
|
```php
|
||||||
|
'help' => is_null($config) ? '' : strval($config->help ?? ''),
|
||||||
|
```
|
||||||
|
|
||||||
|
- `buildStatus` 已接收 `$config`(`activeConfig` 查出的 type=11 活动行),无需额外查库。
|
||||||
|
- 不做 §8 模板占位符替换(轻量方案);C 端可用已有 `frozen_amount` / `recharge_unlock_amount` / `first_cash_amount` 自行替换,或原样展示运营配置的富文本/多行文案。
|
||||||
|
|
||||||
|
### 2. [`FreeCreditsController`](slot_console/app/api/controller/FreeCreditsController.php) PHPDoc
|
||||||
|
|
||||||
|
在 `status` 方法成功字段列表中补充:
|
||||||
|
|
||||||
|
- `help` (string) 活动规则说明,来自后台「帮助说明」
|
||||||
|
|
||||||
|
### 3. 单测 [`FreeCreditsClientStatusTest`](slot_console/tests/Unit/FreeCreditsClientStatusTest.php)
|
||||||
|
|
||||||
|
- `PLAYER_TOP_KEYS` 增加 `help`
|
||||||
|
- 用例:`FreeCreditsConfigStub` 设置 `help` 属性,`assertSame` 透传
|
||||||
|
|
||||||
|
## 数据流
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
admin[slot_admin 活动编辑 help 文本框]
|
||||||
|
db[(recharge_gift_config.help)]
|
||||||
|
logic[buildStatus]
|
||||||
|
api["/api/free-credits/status"]
|
||||||
|
admin --> db --> logic --> api
|
||||||
|
```
|
||||||
|
|
||||||
|
## 验收
|
||||||
|
|
||||||
|
- 后台 type=11 活动填写「帮助说明」并保存后,已参加用户 `status` 响应含相同 `help` 字符串
|
||||||
|
- `status=-1` 响应无 `help` 字段
|
||||||
|
- 单元测试通过;`claim` 返回结构同步含 `help`(复用 `buildStatus`)
|
||||||
|
|
||||||
|
## 不在本次范围
|
||||||
|
|
||||||
|
- `ext_config` 独立说明模板、动态金额替换服务端拼装
|
||||||
|
- `banner_image` 透出(如需可另开)
|
||||||
|
- 前端问号弹窗 UI
|
||||||
106
plans/status_配置与未充值_f37679fd.plan.md
Normal file
106
plans/status_配置与未充值_f37679fd.plan.md
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
name: status 配置与未充值
|
||||||
|
overview: 修复 slot_console FreeCreditsLogic::status:无玩家池时返回 status=0 及活动配置;C 端新增 win_threshold(不含 initial_amount、home_withdraw_unlocked)。Logic 已按需求变更实现,待对齐单测与 PHPDoc。
|
||||||
|
todos:
|
||||||
|
- id: logic-pre-enrollment
|
||||||
|
content: FreeCreditsLogic:buildPreEnrollmentStatus;status() 无 player 时返回配置态(已完成)
|
||||||
|
status: completed
|
||||||
|
- id: logic-build-status-fields
|
||||||
|
content: buildStatus / buildConfigClientFields 仅透出 win_threshold(不含 initial_amount、home_withdraw_unlocked)(已完成)
|
||||||
|
status: completed
|
||||||
|
- id: align-phpdoc
|
||||||
|
content: FreeCreditsController PHPDoc 与 buildConfigClientFields 注释:删除 initial_amount、home_withdraw_unlocked;移除无用 DEFAULT_INITIAL_AMOUNT
|
||||||
|
status: completed
|
||||||
|
- id: align-unit-tests
|
||||||
|
content: FreeCreditsClientStatusTest / FreeCreditsEligibilityTest 白名单与断言与现实现一致
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Free Credits status 接口修复计划(需求变更版)
|
||||||
|
|
||||||
|
## 需求确认(2026-05-21)
|
||||||
|
|
||||||
|
**C 端 `GET /api/free-credits/status` 约定:**
|
||||||
|
|
||||||
|
- **包含**:`win_threshold`(来自 `ext_config.win_threshold_qf`)
|
||||||
|
- **不包含**:`initial_amount`、`home_withdraw_unlocked`
|
||||||
|
- 注册赠送金额:仍由 `game_base.user_register_reward` 等其它接口提供
|
||||||
|
- 首页 Withdraw 解锁:C 端用 `status`(如 `STATUS_HOME_UNLOCKED=1`)或钱包余额 + `win_threshold` 自行判断;库表 `home_withdraw_unlocked` 仍由 `syncHomeWithdrawUnlocked` 维护,仅不下发 API
|
||||||
|
|
||||||
|
后台 type=11 的 `initial_amount_qf` 配置保留(运营后台用),**不**经 status 透出。
|
||||||
|
|
||||||
|
## 问题根因
|
||||||
|
|
||||||
|
[`FreeCreditsLogic::status()`](slot_console/app/api/logic/FreeCreditsLogic.php) 原逻辑在无 `free_credits_player` 时返回 `{ status: -1 }`,导致首充前 C 端无法展示活动(`status !== -1` 为展示开关)。
|
||||||
|
|
||||||
|
## 目标行为
|
||||||
|
|
||||||
|
| 场景 | status | 返回顶层字段 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 无资格 / 无 type=11 配置 | `-1` | 仅 `status` |
|
||||||
|
| 有资格 + 有配置 + **无 player** | `0` | `status`, `frozen_amount`, `first_cash_amount`, `win_threshold`, `recharge_unlock_amount`, `help`, `packages`(空数组) |
|
||||||
|
| 有资格 + 有配置 + **有 player** | 玩家真实值 | 同上 + 玩家 `frozen_amount` / `first_cash_amount` / `packages` |
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
statusReq[GET status] --> eligible{资格+活动配置?}
|
||||||
|
eligible -->|否| notVisible["status=-1"]
|
||||||
|
eligible -->|是| player{有 player 行?}
|
||||||
|
player -->|无| preConfig["status=0 + win_threshold 等"]
|
||||||
|
player -->|有| fullStatus["buildStatus 玩家态"]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 已实现 Logic(当前代码,无需再改字段集)
|
||||||
|
|
||||||
|
[`FreeCreditsLogic.php`](slot_console/app/api/logic/FreeCreditsLogic.php) 已与上表一致:
|
||||||
|
|
||||||
|
- `status()`:无 player → `buildPreEnrollmentStatus($config)`
|
||||||
|
- `buildConfigClientFields()`:仅 `win_threshold`、`recharge_unlock_amount`、`help`
|
||||||
|
- `buildStatus()` / `buildPreEnrollmentStatus()`:**不**返回 `initial_amount`、`home_withdraw_unlocked`
|
||||||
|
|
||||||
|
## 待办:对齐文档与单测
|
||||||
|
|
||||||
|
### 1. PHPDoc — [`FreeCreditsController.php`](slot_console/app/api/controller/FreeCreditsController.php)
|
||||||
|
|
||||||
|
- 删除 `initial_amount`、`home_withdraw_unlocked` 字段说明
|
||||||
|
- 明确 `status=0` 时仍返回 `win_threshold`、`recharge_unlock_amount`、`help`
|
||||||
|
|
||||||
|
### 2. 清理 Logic 注释/死代码 — [`FreeCreditsLogic.php`](slot_console/app/api/logic/FreeCreditsLogic.php)
|
||||||
|
|
||||||
|
- 删除未使用的 `DEFAULT_INITIAL_AMOUNT` 常量(若仍保留)
|
||||||
|
- `buildConfigClientFields` 的 `@return` 改为仅含 `win_threshold`、`recharge_unlock_amount`、`help`
|
||||||
|
|
||||||
|
### 3. 单测
|
||||||
|
|
||||||
|
| 文件 | 改动 |
|
||||||
|
| --- | --- |
|
||||||
|
| [`FreeCreditsClientStatusTest.php`](slot_console/tests/Unit/FreeCreditsClientStatusTest.php) | `PLAYER_TOP_KEYS` 改为:`status`, `frozen_amount`, `first_cash_amount`, `win_threshold`, `recharge_unlock_amount`, `help`, `packages`;移除 `initial_amount`、`home_withdraw_unlocked` 断言 |
|
||||||
|
| [`FreeCreditsEligibilityTest.php`](slot_console/tests/Unit/FreeCreditsEligibilityTest.php) | `testStatusReturnsPreEnrollmentConfigWhenNoPlayer`:断言 `win_threshold=50`,**不**断言 `initial_amount` / `home_withdraw_unlocked` |
|
||||||
|
|
||||||
|
运行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker exec -w /app/www/slot/slot_console php82 vendor/bin/phpunit tests/Unit/FreeCreditsClientStatusTest.php tests/Unit/FreeCreditsEligibilityTest.php
|
||||||
|
```
|
||||||
|
|
||||||
|
## C 端约定(供联调)
|
||||||
|
|
||||||
|
- **展示开关**:`data.status !== -1`;首充前为 `status === 0`
|
||||||
|
- **进度条上限**:`win_threshold`
|
||||||
|
- **注册赠送**:**不要**从 status 取;走注册/大厅配置接口
|
||||||
|
- **Withdraw 解锁**:**不要**依赖 `home_withdraw_unlocked` 字段;用 `status` 或余额逻辑
|
||||||
|
|
||||||
|
## 不在本次范围
|
||||||
|
|
||||||
|
- status 返回 `initial_amount` / `home_withdraw_unlocked`
|
||||||
|
- 注册发奖改读 `ext_config.initial_amount_qf`
|
||||||
|
- slot_pwa / gateway 前端改动
|
||||||
|
- backend 后台 `initial_amount_qf` 编辑能力(已存在)
|
||||||
|
|
||||||
|
## 验收清单
|
||||||
|
|
||||||
|
1. 无 player:`status=0`,含 `win_threshold`、`recharge_unlock_amount`、`help`,`packages=[]`,**无** `initial_amount`、`home_withdraw_unlocked` 键
|
||||||
|
2. 有 player:含玩家态金额 + 同上配置字段
|
||||||
|
3. 无资格/无配置:`status=-1`
|
||||||
|
4. 单测全部通过
|
||||||
131
plans/type11_活动初始金额_ee0e1a75.plan.md
Normal file
131
plans/type11_活动初始金额_ee0e1a75.plan.md
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
---
|
||||||
|
name: type11 活动初始金额
|
||||||
|
overview: 在活动类型 11(Free Credits)后台编辑表单中新增「活动初始金额」字段,以美元小数录入、落库为 ext_config.initial_amount_qf;同步补齐 slot_admin 校验与列表展示。数据经现有 ActivityService 透传至 slot_console,本任务不改 slot_console 业务逻辑。
|
||||||
|
todos:
|
||||||
|
- id: edit-vue-initial-amount
|
||||||
|
content: edit.vue:type=11 表单项 + setFormData/submit 的 initial_amount ↔ initial_amount_qf 转换
|
||||||
|
status: completed
|
||||||
|
- id: index-vue-display
|
||||||
|
content: index.vue:type=11 列表 ext_config 展示活动初始金额
|
||||||
|
status: completed
|
||||||
|
- id: validate-initial-amount
|
||||||
|
content: ActivityValidate::checkFreeCreditsExt 增加 initial_amount_qf 必填与非负校验
|
||||||
|
status: completed
|
||||||
|
- id: manual-verify
|
||||||
|
content: 本地验证新建/编辑/回填/必填/列表展示
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 活动类型 11 增加「活动初始金额」后台配置
|
||||||
|
|
||||||
|
## 背景与范围
|
||||||
|
|
||||||
|
- 需求来源:[首充前免费余额定格与分档释放需求文档.md](docs/requirements/首充前免费余额定格与分档释放需求文档.md) 第 19 节将注册赠送调整为 `$30`;运营需在 **活动类型 11** 的配置里维护「用户注册时的初始金额」。
|
||||||
|
- **已确认键名**:`initial_amount`(表单) / `initial_amount_qf`(落库,千分位整数)。
|
||||||
|
- **范围**:仅 [backend/slot_admin](backend/slot_admin) 与 [backend/slot_admin_vue](backend/slot_admin_vue);`ActivityController` 已透传 `ext_config` 至 `slot_console`,无需改 `slot_console` / `slot_lib`(新字段会原样写入 `s_recharge_gift_config.ext_config` JSON)。
|
||||||
|
|
||||||
|
## 现状(可复用)
|
||||||
|
|
||||||
|
type=11 专属编辑已在 [edit.vue](backend/slot_admin_vue/src/views/game/activity/edit.vue) 实现 6 个金额字段 + Banner,模式为:
|
||||||
|
|
||||||
|
- 编辑:`setFormData` 将 `*_qf ÷ 1000` 还原为美元小数
|
||||||
|
- 提交:`submit` 将美元小数 `× 1000` 写入 `*_qf`
|
||||||
|
- 校验:[ActivityValidate::checkFreeCreditsExt](backend/slot_admin/app/game/validate/ActivityValidate.php) 在 [ActivityController](backend/slot_admin/app/game/controller/ActivityController.php) `save` / `update(updateData)` 时触发
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
editVue["edit.vue submit"] --> adminApi["slot_admin ActivityController"]
|
||||||
|
adminApi --> activitySvc["slotLib ActivityService"]
|
||||||
|
activitySvc --> consoleInner["slot_console innerapi/activity"]
|
||||||
|
consoleInner --> extConfig["ext_config JSON"]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 字段定义
|
||||||
|
|
||||||
|
| UI 标签 | 表单字段 | 落库字段 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 活动初始金额($) | `ext_config.initial_amount` | `initial_amount_qf` | 用户注册时赠送的免费余额金额;placeholder 建议 `30`(对齐需求文档 $30) |
|
||||||
|
|
||||||
|
金额处理与现有 6 项一致:`Math.round(Number(v) * 1000)`,回填优先读 `_qf`。
|
||||||
|
|
||||||
|
## 改动清单
|
||||||
|
|
||||||
|
### 1. 编辑表单 — [edit.vue](backend/slot_admin_vue/src/views/game/activity/edit.vue)
|
||||||
|
|
||||||
|
在 `v-if="formData.type == 11"` 区块 **最上方** 增加表单项(置于「首笔赢取门槛」之前):
|
||||||
|
|
||||||
|
```vue
|
||||||
|
<a-form-item
|
||||||
|
label="活动初始金额($)"
|
||||||
|
help="用户注册时赠送的免费余额金额"
|
||||||
|
:rules="[{ required: true, message: '必填' }]">
|
||||||
|
<a-input-number v-model="formData.ext_config.initial_amount" placeholder="如 30" :min="0"/>
|
||||||
|
</a-form-item>
|
||||||
|
```
|
||||||
|
|
||||||
|
**`setFormData`(type===11 分支)** 增加映射:
|
||||||
|
|
||||||
|
```js
|
||||||
|
initial_amount: e.initial_amount_qf != null ? e.initial_amount_qf / 1000 : e.initial_amount,
|
||||||
|
```
|
||||||
|
|
||||||
|
**`submit`(type===11 分支)** 在 `data.ext_config` 中增加:
|
||||||
|
|
||||||
|
```js
|
||||||
|
initial_amount_qf: toQf(e.initial_amount),
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 列表展示(可选但建议)— [index.vue](backend/slot_admin_vue/src/views/game/activity/index.vue)
|
||||||
|
|
||||||
|
在 type===11 的 `ext_config` 模板中增加一行,复用已有 `formatExtAmount`:
|
||||||
|
|
||||||
|
```vue
|
||||||
|
<div>活动初始金额: ${{ formatExtAmount(record.ext_config.initial_amount_qf, record.ext_config.initial_amount) }}</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 后端校验 — [ActivityValidate.php](backend/slot_admin/app/game/validate/ActivityValidate.php)
|
||||||
|
|
||||||
|
在 `checkFreeCreditsExt()` 的 `$required` 数组追加:
|
||||||
|
|
||||||
|
```php
|
||||||
|
'initial_amount_qf' => '活动初始金额',
|
||||||
|
```
|
||||||
|
|
||||||
|
校验规则与现有金额字段一致:必填、非负整数(千分位)。若业务要求注册赠送必须大于 0,可将条件改为 `(int)$extConfig[$key] <= 0` 时报错(与运营确认;默认可先仅要求 `>= 0`,与「首笔赢取门槛」等一致)。
|
||||||
|
|
||||||
|
更新方法 PHPDoc:由「6 个金额字段」改为「7 个金额相关字段」。
|
||||||
|
|
||||||
|
### 4. 无需改动的文件
|
||||||
|
|
||||||
|
- [ActivityController.php](backend/slot_admin/app/game/controller/ActivityController.php):已按 type===11 调用 `checkFreeCreditsExt`,无需新增分支。
|
||||||
|
- `slot_console` / `slot_lib`:本任务只落库配置;注册发奖仍走 `game_base.user_register_reward`,后续若要从 type=11 的 `initial_amount_qf` 读配置,属独立 console 改造。
|
||||||
|
|
||||||
|
## 数据流示意
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Op as 运营后台
|
||||||
|
participant Vue as edit.vue
|
||||||
|
participant Val as ActivityValidate
|
||||||
|
participant DB as ext_config JSON
|
||||||
|
|
||||||
|
Op->>Vue: 填写 initial_amount=30
|
||||||
|
Vue->>Val: submit initial_amount_qf=30000
|
||||||
|
Val->>DB: 校验通过并保存
|
||||||
|
Note over DB: 后续 console 可用 configAmount(config,'initial_amount',default)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 验证步骤
|
||||||
|
|
||||||
|
1. 新建/编辑 type=11 活动:可见「活动初始金额」,默认 placeholder 30。
|
||||||
|
2. 保存后 DB/API 返回的 `ext_config` 含 `initial_amount_qf`(如 30 → 30000)。
|
||||||
|
3. 再次打开编辑:回填为 30(美元)。
|
||||||
|
4. 必填校验:留空提交应被 `checkFreeCreditsExt` 拦截。
|
||||||
|
5. 列表页 type=11 行展示「活动初始金额」。
|
||||||
|
6. 仅改状态(`updateData` 为空)的 update 请求仍不触发 ext 校验(现有逻辑保持不变)。
|
||||||
|
|
||||||
|
## 风险与说明
|
||||||
|
|
||||||
|
- **与注册发奖未联动**:本任务只完成后台配置录入;`UserRegisterEventService` 仍读 `game_base.user_register_reward`,改活动配置不会自动改变注册到账,需后续 console 改造读取 `initial_amount_qf`。
|
||||||
|
- **全量覆盖 ext_config**:`edit.vue` submit 对 type=11 会重建整个 `ext_config` 对象;新增字段必须同时写入 submit 与 setFormData,避免编辑时丢失其它键(当前实现已是全量重建,与现有一致)。
|
||||||
53
plans/wallet-bet-win-api-split_8d6f7dea.plan.md
Normal file
53
plans/wallet-bet-win-api-split_8d6f7dea.plan.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
name: wallet-bet-win-api-split
|
||||||
|
overview: 评估并规划将 bet/win 从统一 update 入口中显式拆分为独立 API,同时保留兼容性与幂等语义。
|
||||||
|
todos:
|
||||||
|
- id: add-bet-win-controller-endpoints
|
||||||
|
content: 新增 wallet/bet 与 wallet/win 控制器入口,保留 update 兼容
|
||||||
|
status: completed
|
||||||
|
- id: split-validator-dto
|
||||||
|
content: 拆分 bet/win DTO 与校验场景,减少 type 分支耦合
|
||||||
|
status: completed
|
||||||
|
- id: proxy-update-for-compat
|
||||||
|
content: 让 update 的 bet/win 分支复用新入口流程,确保行为完全一致
|
||||||
|
status: completed
|
||||||
|
- id: docs-and-migration
|
||||||
|
content: 补充 README/doc 迁移说明与灰度/下线节奏
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Bet/Win API 拆分评估与迁移计划
|
||||||
|
|
||||||
|
## 结论
|
||||||
|
- 对资金域来说,**对外 API 语义上拆分 `bet` / `win` 会更好**:可读性、接入防错、风控审计与权限隔离都会更清晰。
|
||||||
|
- 但不建议直接废弃 `update`;建议采用“**新增独立接口 + `update` 兼容转发 + 渐进下线**”的迁移路线,避免影响现有上游与历史幂等键。
|
||||||
|
|
||||||
|
## 现状依据
|
||||||
|
- 当前只有一个入口 [`app/api/controller/WalletController.php`](app/api/controller/WalletController.php) 的 `update()`,通过 `type` 分发。
|
||||||
|
- 分发逻辑在 [`app/api/logic/WalletLogic.php`](app/api/logic/WalletLogic.php) 的 `ACTION_METHOD_MAP`,`bet/win` 已是独立业务方法。
|
||||||
|
- 入参模型 [`app/api/dto/request/wallet/WalletUpdateRequestDTO.php`](app/api/dto/request/wallet/WalletUpdateRequestDTO.php) 同时承载多类交易,`round_id`、`is_end` 仅对 bet/win 有意义。
|
||||||
|
- 校验器 [`app/validator/Wallet2Validator.php`](app/validator/Wallet2Validator.php) 也是“单场景 + 按 type 条件校验”,存在语义混杂。
|
||||||
|
|
||||||
|
## 目标形态
|
||||||
|
- 提供显式 API:`wallet/bet`、`wallet/win`(自动路由下对应 Controller 方法)。
|
||||||
|
- `wallet/update` 保留为兼容入口:内部仅做 DTO 转换与分发,不承载新能力。
|
||||||
|
- 资金与幂等规则保持不变:仍以 `biz_id` + `type`(必要时叠加 `round_id`)确保可追溯与幂等。
|
||||||
|
|
||||||
|
## 实施步骤
|
||||||
|
1. 在 [`app/api/controller/WalletController.php`](app/api/controller/WalletController.php) 新增 `bet()` 与 `win()` 方法,复用统一返回封装。
|
||||||
|
2. 拆分请求 DTO 与校验场景:
|
||||||
|
- 新增 bet/win 专用 DTO(从 `WalletUpdateRequestDTO` 中抽取必要字段)。
|
||||||
|
- 在 [`app/validator/Wallet2Validator.php`](app/validator/Wallet2Validator.php) 增加 `SCENE_BET`、`SCENE_WIN`,去掉“按 type 再二次判断”的耦合。
|
||||||
|
3. 在 Logic 层保持复用:
|
||||||
|
- Controller 仍调用 [`app/api/logic/WalletLogic.php`](app/api/logic/WalletLogic.php) 现有 `bet()` / `win()` 实现,避免资金路径重写。
|
||||||
|
- `update()` 对 bet/win 请求改为调用新入口共享流程(或内部代理),确保行为一致。
|
||||||
|
4. 文档与对接迁移:
|
||||||
|
- 在 [`README.md`](README.md) 与 [`doc/wallet.md`](doc/wallet.md) 补充“新接口 + 兼容期 + 下线节奏”。
|
||||||
|
- 给上游约定迁移窗口,监控 `update(type=bet|win)` 调用量后再决定是否下线。
|
||||||
|
|
||||||
|
## 验证要点
|
||||||
|
- 幂等:重复 `biz_id` 命中行为与现状一致。
|
||||||
|
- Round:`win` 的 `is_end=0/1` 中间派奖与最终结算语义不变。
|
||||||
|
- 资金正确性:下注扣款顺序、派奖分配、流水字段不变。
|
||||||
|
- 可回滚:任一阶段可回退为仅使用 `update` 入口。
|
||||||
45
plans/win返回余额叠加pending_151a7ce9.plan.md
Normal file
45
plans/win返回余额叠加pending_151a7ce9.plan.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
name: win返回余额叠加pending
|
||||||
|
overview: 仅在 win 派奖流程中,对返回给第三方的余额叠加本局 pending 派奖,解决连续派奖期间玩家看到余额不增长的问题;不改其他接口。
|
||||||
|
todos:
|
||||||
|
- id: win-response-overlay
|
||||||
|
content: 仅在 win is_end=0 返回值叠加 pendingRoundAmount 到 w/withdraw
|
||||||
|
status: completed
|
||||||
|
- id: idempotent-display-check
|
||||||
|
content: 确认 dedupe 命中时返回余额不重复增长
|
||||||
|
status: completed
|
||||||
|
- id: final-settlement-regression
|
||||||
|
content: 确认 is_end=1 结算与 pending 清理行为不受影响
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# win 派奖返回余额叠加 pending(仅 win 场景)
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
在不改变真实账务入账时机(仍以 `is_end=1` Final Settlement 为准)的前提下,让第三方在连续派奖时拿到“可展示余额”:
|
||||||
|
- `is_end=0`:返回余额包含本局 pending
|
||||||
|
- 其他场景:不改
|
||||||
|
|
||||||
|
## 当前问题定位
|
||||||
|
在 [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php) 的 `win()` 中:
|
||||||
|
- `is_end=0` 已做 pending 累计
|
||||||
|
- 但返回值仍是 DB 真实余额(未叠加 pending),导致第三方展示不变
|
||||||
|
|
||||||
|
## 最小改动方案
|
||||||
|
仅修改 [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php) 的 `win()`:
|
||||||
|
1. 在 `is_end=0` 分支中,累计完成后读取 `pendingRoundAmount = getPendingWinByRound()`。
|
||||||
|
2. 返回给第三方时,将 `withdraw`/`w` 做展示叠加:
|
||||||
|
- `w = wallet.withdraw_balance + pendingRoundAmount`
|
||||||
|
- `withdraw = wallet.withdraw_balance + pendingRoundAmount`
|
||||||
|
3. `deposit` / `bonus` 保持真实值(不动)。
|
||||||
|
4. `is_end=1` 维持现有逻辑:合并 pending 后走真实结算并清理 pending。
|
||||||
|
|
||||||
|
## 兼容与风险
|
||||||
|
- 仅影响 `type=win` 的返回体,不影响 DB、Lot、流水、下注规则。
|
||||||
|
- 若第三方把 `w` 当“可立即下注余额”,会产生语义差异(展示值 > 真实可用);但你当前业务前提是第三方只负责展示。
|
||||||
|
|
||||||
|
## 验收点
|
||||||
|
- 连续 `is_end=0`:返回 `w/withdraw` 逐次增长(包含 pending)
|
||||||
|
- 重复 `biz_id` 的 `is_end=0`:返回值不重复增长
|
||||||
|
- `is_end=1` 后:返回值与真实结算后余额一致,pending 被清理
|
||||||
91
plans/中间派奖余额可见化_175ab934.plan.md
Normal file
91
plans/中间派奖余额可见化_175ab934.plan.md
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
---
|
||||||
|
name: 中间派奖余额可见化
|
||||||
|
overview: 在保持 Final Settlement 真账口径不变的前提下,让 is_end=0 中间派奖实时反映到三方读取的余额(接口返回和钱包查询)。
|
||||||
|
todos:
|
||||||
|
- id: pending-win-keys
|
||||||
|
content: 设计并接入 pending round/total 与 dedupe Redis key
|
||||||
|
status: pending
|
||||||
|
- id: win-is-end-branch
|
||||||
|
content: 实现 is_end=0 累计展示、is_end=1 合并结算与清理
|
||||||
|
status: pending
|
||||||
|
- id: wallet-query-overlay
|
||||||
|
content: 让 wallet 查询叠加 pending total 返回最新展示余额
|
||||||
|
status: pending
|
||||||
|
- id: dto-validator-update
|
||||||
|
content: 补齐 is_end DTO 与 win round_id 校验
|
||||||
|
status: pending
|
||||||
|
- id: regression-cases
|
||||||
|
content: 验证多次派奖余额可见、最终结算、幂等与失败重试场景
|
||||||
|
status: pending
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 中间派奖余额可见化(is_end)改造计划
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
解决“多次派奖时三方读取余额不更新”的问题,同时保持 `win.md` 的核心原则:
|
||||||
|
- 真正入账、Lot 回流、转化/解锁只在 `is_end=1`(Final Settlement)执行
|
||||||
|
- `is_end=0` 仅做中间派奖累计与展示余额更新
|
||||||
|
|
||||||
|
## 核心思路
|
||||||
|
在 Redis 维护“待结算派奖池(Pending Win)”,并把它叠加到对外返回余额:
|
||||||
|
- DB 里的 `withdraw/deposit/bonus` 仍保持真实账
|
||||||
|
- 对外给三方的余额 = 真实账 + pendingWin
|
||||||
|
|
||||||
|
这样能保证:
|
||||||
|
- 三方实时看到余额变化
|
||||||
|
- 不破坏现有 `WinService` 的 Round Final Settlement 账务逻辑
|
||||||
|
|
||||||
|
## 具体改造
|
||||||
|
|
||||||
|
### 1) 新增 Pending Win 缓存层
|
||||||
|
修改 [app/service/RedisKeyManagerService.php](app/service/RedisKeyManagerService.php):新增 key
|
||||||
|
- `wallet:win:pending:round:{uid}:{currency}:{round_id}`(每局中间派奖累计)
|
||||||
|
- `wallet:win:pending:total:{uid}:{currency}`(用户币种维度累计,供快速读余额)
|
||||||
|
- `wallet:win:dedupe:{uid}:{currency}:{round_id}:{biz_id}`(中间派奖严格幂等)
|
||||||
|
|
||||||
|
### 2) win 分支行为
|
||||||
|
修改 [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php) 的 `win()`:
|
||||||
|
- `is_end=0`:
|
||||||
|
- 命中 dedupe 直接返回
|
||||||
|
- 未命中则 `INCRBY pending:round` 与 `INCRBY pending:total`
|
||||||
|
- 返回余额时把 `pending:total` 叠加到 `withdraw`(仅对外展示)
|
||||||
|
- 不调用 `WinService::execute`、不写 `BIZ_TYPE_WIN`
|
||||||
|
- `is_end=1`:
|
||||||
|
- 读取 `pending:round`,`finalWin = fee + pendingRound`
|
||||||
|
- 用 `finalWin` 调用现有 [app/service/wallet/WinService.php](app/service/wallet/WinService.php)
|
||||||
|
- 成功后清理 `pending:round` 并从 `pending:total` 扣除对应值
|
||||||
|
- 返回余额按真实账(此时 pending 已回收)
|
||||||
|
|
||||||
|
### 3) 钱包查询返回也要可见化
|
||||||
|
修改 [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php) 的 `query()` 返回:
|
||||||
|
- 将 `pending:total` 叠加到返回字段 `w/withdraw`
|
||||||
|
- 这样第三方无论读 `win` 返回还是调用 `wallet` 查询,都看到“最新展示余额”
|
||||||
|
|
||||||
|
### 4) DTO/校验补齐
|
||||||
|
- 在 [app/api/dto/request/wallet/WalletUpdateRequestDTO.php](app/api/dto/request/wallet/WalletUpdateRequestDTO.php) 增加 `is_end`(默认 1)
|
||||||
|
- 在 [app/validator/Wallet2Validator.php](app/validator/Wallet2Validator.php) 增加:
|
||||||
|
- `is_end` 仅允许 `0/1`
|
||||||
|
- `win` 场景强制 `round_id` 必传
|
||||||
|
|
||||||
|
## 一致性与幂等
|
||||||
|
- `is_end=0`:Redis dedupe(biz_id 级)防重复累计
|
||||||
|
- `is_end=1`:延续现有 `wallet_log(uid,biz_id,biz_type=win)` 幂等
|
||||||
|
- 若 Final 失败,不清 pending,便于重试恢复
|
||||||
|
|
||||||
|
## 风险说明(需明确)
|
||||||
|
- 该方案是“展示余额实时、真账延后”:若上游把展示余额当可立即可下注余额,可能出现下注时余额校验不一致。
|
||||||
|
- 若你需要“中间派奖立即可下注”,则要走另一套方案(中间账临时入库 + Final 对冲重分配),改动会显著更大。
|
||||||
|
|
||||||
|
## 改动文件
|
||||||
|
- [app/service/RedisKeyManagerService.php](app/service/RedisKeyManagerService.php)
|
||||||
|
- [app/api/dto/request/wallet/WalletUpdateRequestDTO.php](app/api/dto/request/wallet/WalletUpdateRequestDTO.php)
|
||||||
|
- [app/validator/Wallet2Validator.php](app/validator/Wallet2Validator.php)
|
||||||
|
- [app/api/logic/WalletLogic.php](app/api/logic/WalletLogic.php)
|
||||||
|
|
||||||
|
## 验收场景
|
||||||
|
- 多次 `is_end=0` 后,`win` 返回余额递增
|
||||||
|
- 多次 `is_end=0` 后,`wallet` 查询余额递增
|
||||||
|
- `is_end=1` 触发后,final 入账金额 = 中间累计 + 最后一笔
|
||||||
|
- 重放同一 `is_end=0` `biz_id` 不重复累计
|
||||||
|
- 重放同一 `is_end=1` `biz_id` 不重复结算
|
||||||
228
plans/任务进度筛选对接_acbb7213.plan.md
Normal file
228
plans/任务进度筛选对接_acbb7213.plan.md
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
---
|
||||||
|
name: 任务进度筛选对接
|
||||||
|
overview: 新增独立分页接口 `player-task/task-list`(筛选 task_type + status + page/page_size),供前端双下拉表格使用;保留现有 `player-task/task-progress` 全量快照不变。同步 slot_sdk 与 API 文档。
|
||||||
|
todos:
|
||||||
|
- id: wallet-model-paginate
|
||||||
|
content: WalletFundLotModel 新增 paginatePlayerTaskLots(按 lot_type/status 分页)
|
||||||
|
status: completed
|
||||||
|
- id: wallet-task-list-api
|
||||||
|
content: 新增 taskList 全链路(Validator/DTO/Logic/Service/Controller)
|
||||||
|
status: completed
|
||||||
|
- id: sdk-task-list
|
||||||
|
content: slot_sdk 新增 taskList 请求/响应实体与 WalletService 方法
|
||||||
|
status: completed
|
||||||
|
- id: api-doc-list
|
||||||
|
content: 新增 doc/player-task-list-api.md(含前端双下拉 + 分页说明)
|
||||||
|
status: completed
|
||||||
|
- id: feature-tests-list
|
||||||
|
content: Feature 测试:筛选、分页、参数校验;task-progress 回归不变
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 玩家任务进度:新增分页列表接口
|
||||||
|
|
||||||
|
## 背景与目标
|
||||||
|
|
||||||
|
- **现有** [`player-task/task-progress`](doc/player-task-progress-api.md):只读全量快照(`bonus_tasks` + `deposit_tasks` + `summary`),**不改契约**,继续给大厅/SDK 轻量查询用。
|
||||||
|
- **新增** `player-task/task-list`:面向 **前端操作页**(双下拉 + 表格),支持 **类型筛选、状态筛选、分页**。
|
||||||
|
|
||||||
|
前端操作区:
|
||||||
|
|
||||||
|
| 下拉框 | 选项 | 说明 |
|
||||||
|
|--------|------|------|
|
||||||
|
| 任务类型 | **Bonus** / **Deposit** | 必填,二选一 |
|
||||||
|
| 状态 | **全部** + Waiting / Active / PendingConversion / PlayedOut | `status=0` 或不传 = 全部可见态 |
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TB
|
||||||
|
subgraph keep [保持不变]
|
||||||
|
TP["POST task-progress"]
|
||||||
|
TP --> Full["bonus_tasks + deposit_tasks 全量"]
|
||||||
|
end
|
||||||
|
subgraph newApi [新增]
|
||||||
|
TL["POST task-list"]
|
||||||
|
TL --> Filter["task_type + status"]
|
||||||
|
TL --> Page["page + page_size"]
|
||||||
|
Page --> List["list + 分页元数据"]
|
||||||
|
end
|
||||||
|
UI[前端表格页] --> TL
|
||||||
|
Lobby[大厅轻量展示] --> TP
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 新接口契约
|
||||||
|
|
||||||
|
### 1.1 路由
|
||||||
|
|
||||||
|
| 项 | 值 |
|
||||||
|
|----|-----|
|
||||||
|
| Method | `POST` |
|
||||||
|
| Path | `player-task/task-list` |
|
||||||
|
| Controller | [`PlayerTaskController::taskList`](app/api/controller/PlayerTaskController.php)(新增方法) |
|
||||||
|
|
||||||
|
### 1.2 请求参数
|
||||||
|
|
||||||
|
| 字段 | 类型 | 必填 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| `uid` | int | 是 | 用户 ID |
|
||||||
|
| `currency` | string | 是 | 币种,如 `TGO` |
|
||||||
|
| `task_type` | string | **是** | `bonus` \| `deposit` |
|
||||||
|
| `status` | int | 否 | `0` 或省略 = 全部玩家可见态;`1`/`2`/`3`/`5` = 单态 |
|
||||||
|
| `page` | int | 否 | 页码,默认 `1`,最小 `1` |
|
||||||
|
| `page_size` | int | 否 | 每页条数,默认 `20`,建议上限 `100` |
|
||||||
|
|
||||||
|
校验([`PlayerTaskValidator`](app/validator/PlayerTaskValidator.php) 新 scene `list`):
|
||||||
|
|
||||||
|
- `uid`:`require|integer`
|
||||||
|
- `currency`:`require`
|
||||||
|
- `task_type`:`require|in:bonus,deposit`
|
||||||
|
- `status`:`integer|in:0,1,2,3,5`(可空,默认 0)
|
||||||
|
- `page`:`integer|egt:1`(可空)
|
||||||
|
- `page_size`:`integer|between:1,100`(可空)
|
||||||
|
|
||||||
|
**前端映射**:
|
||||||
|
|
||||||
|
| UI | 请求 |
|
||||||
|
|----|------|
|
||||||
|
| Bonus | `"task_type": "bonus"` |
|
||||||
|
| Deposit | `"task_type": "deposit"` |
|
||||||
|
| 全部 | 不传 `status` 或 `"status": 0` |
|
||||||
|
| Waiting / Active / … | `status` = `1` / `2` / `3` / `5` |
|
||||||
|
| 翻页 | 修改 `page`(切换筛选时重置 `page=1`) |
|
||||||
|
|
||||||
|
### 1.3 成功响应 `data`
|
||||||
|
|
||||||
|
与仓库 [`SearchShardService`](app/service/search/shard/SearchShardService.php) 分页习惯对齐(`data` → `list`):
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"task_type": "bonus",
|
||||||
|
"list": [ /* PlayerTaskItem,与 task-progress 任务项字段相同 */ ],
|
||||||
|
"total": 15,
|
||||||
|
"page": 1,
|
||||||
|
"page_size": 20,
|
||||||
|
"last_page": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- `list[]` 元素结构 **复用** [`PlayerTaskItemEntity::toApiArray()`](app/entity/wallet/PlayerTaskItemEntity.php)(与 `task-progress` 单条一致)。
|
||||||
|
- 排序:`consume_priority_at ASC`, `lot_id ASC`(与现 [`listPlayerTaskLots`](app/model/multi/WalletFundLotModel.php) 一致)。
|
||||||
|
- 状态范围:默认仍为 PRD §26.1 四态 `[1,2,3,5]`;**不含** Completed/Cancelled/Reversed(与 `task-progress` 一致)。
|
||||||
|
|
||||||
|
### 1.4 与 `task-progress` 的分工
|
||||||
|
|
||||||
|
| 接口 | 场景 | 返回 |
|
||||||
|
|------|------|------|
|
||||||
|
| `task-progress` | 一次拿全量两类任务 + 计数汇总 | `summary` + `bonus_tasks` + `deposit_tasks` |
|
||||||
|
| `task-list` | 表格页:选定类型 + 状态 + 翻页 | 单维 `list` + 分页字段 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. wallet 实现要点
|
||||||
|
|
||||||
|
### 2.1 Model
|
||||||
|
|
||||||
|
在 [`WalletFundLotModel`](app/model/multi/WalletFundLotModel.php) 新增:
|
||||||
|
|
||||||
|
```php
|
||||||
|
/**
|
||||||
|
* 分页查询玩家任务 Lot。
|
||||||
|
* @return array{list: array, total: int, page: int, page_size: int, last_page: int}
|
||||||
|
*/
|
||||||
|
public function paginatePlayerTaskLots(
|
||||||
|
string $currency,
|
||||||
|
int $lotType,
|
||||||
|
array $statuses,
|
||||||
|
int $page,
|
||||||
|
int $pageSize
|
||||||
|
): array
|
||||||
|
```
|
||||||
|
|
||||||
|
- `statuses` 为空时直接返回空分页(与 `listPlayerTaskLots` 一致)。
|
||||||
|
- 使用 ThinkORM `paginate($pageSize, false, ['page' => $page])`,再将 `data` 重命名为 `list`。
|
||||||
|
|
||||||
|
### 2.2 Service
|
||||||
|
|
||||||
|
在 [`PlayerTaskQueryService`](app/service/wallet/PlayerTaskQueryService.php) 新增 `queryTaskList(...)`:
|
||||||
|
|
||||||
|
- `task_type` 字符串 → `LOT_TYPE_BONUS` / `LOT_TYPE_DEPOSIT`
|
||||||
|
- `status` → `PLAYER_VISIBLE_STATUSES` 或单元素数组
|
||||||
|
- 调用 Model 分页后,`buildTaskItems()` 组装 `list`
|
||||||
|
|
||||||
|
### 2.3 分层文件(新增/扩展)
|
||||||
|
|
||||||
|
| 层级 | 文件 |
|
||||||
|
|------|------|
|
||||||
|
| DTO | `app/api/dto/request/PlayerTaskListRequestDTO.php`(新建) |
|
||||||
|
| Validator | `PlayerTaskValidator` 增加 `SCENE_LIST` |
|
||||||
|
| Logic | `PlayerTaskLogic::taskList()` |
|
||||||
|
| Controller | `PlayerTaskController::taskList()` |
|
||||||
|
|
||||||
|
**不修改** `PlayerTaskProgressRequestDTO` / `taskProgress` 逻辑。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. slot_sdk
|
||||||
|
|
||||||
|
新增(与 wallet 字段 snake_case 一致):
|
||||||
|
|
||||||
|
| 类型 | 文件 |
|
||||||
|
|------|------|
|
||||||
|
| 请求 | `PlayerTaskListRequestEntity.php` |
|
||||||
|
| 响应 | `PlayerTaskListResponseEntity.php`(含 `list`、`total`、`page`、`page_size`、`last_page`、`task_type`) |
|
||||||
|
|
||||||
|
[`WalletService`](slot_sdk/src/service/wallet/WalletService.php) 新增:
|
||||||
|
|
||||||
|
```php
|
||||||
|
public function taskList(PlayerTaskListRequestEntity $entity): ?PlayerTaskListResponseEntity
|
||||||
|
// POST api/player-task/task-list
|
||||||
|
```
|
||||||
|
|
||||||
|
`taskProgress` / `PlayerTaskProgressRequestEntity` **保持不变**。
|
||||||
|
|
||||||
|
发布:slot_sdk commit → push → slot-wallet `composer update`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 文档
|
||||||
|
|
||||||
|
- **新建** [`doc/player-task-list-api.md`](doc/player-task-list-api.md):路由、入参、响应、前端双下拉 + 翻页交互、与 `task-progress` 对比、curl 示例。
|
||||||
|
- [`doc/player-task-progress-api.md`](doc/player-task-progress-api.md) 顶部增加「列表分页请用 task-list」交叉引用。
|
||||||
|
- [`doc/wallet.md`](doc/wallet.md) §26.1 补充 `task-list` 一行说明。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 测试
|
||||||
|
|
||||||
|
新建 `tests/Feature/PlayerTaskListTest.php`(造数参考 [`WalletRegisterBetWinTest`](tests/Feature/WalletRegisterBetWinTest.php)):
|
||||||
|
|
||||||
|
| 用例 | 断言 |
|
||||||
|
|------|------|
|
||||||
|
| `task_type=bonus` + 默认分页 | `list` 非空项字段完整;`total >= len(list)` |
|
||||||
|
| `status=2` | `list` 内 `status` 均为 2 |
|
||||||
|
| `page=2` + `page_size=1` | 第二页与总数一致 |
|
||||||
|
| 缺 `task_type` | `40003` |
|
||||||
|
| `page_size=101` | `40003` |
|
||||||
|
| `task-progress` 仍返回双数组 | 回归,不受新接口影响 |
|
||||||
|
|
||||||
|
容器内执行:`docker compose exec -T php82` + 项目 PHPUnit 命令。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 不在本次范围
|
||||||
|
|
||||||
|
- 修改 `task-progress` 入参或响应
|
||||||
|
- 任务类型「全部」合并在一个列表
|
||||||
|
- 运营后台终态(Completed 等)纳入筛选
|
||||||
|
- 前端页面实现(本仓库无前端)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. 关键文件一览
|
||||||
|
|
||||||
|
| 仓库 | 变更 |
|
||||||
|
|------|------|
|
||||||
|
| slot-wallet | `PlayerTaskController`、`PlayerTaskLogic`、`PlayerTaskQueryService`、`WalletFundLotModel`、`PlayerTaskValidator`、新 DTO、`doc/player-task-list-api.md`、Feature 测试 |
|
||||||
|
| slot_sdk | 新 Entity ×2、`WalletService::taskList`、`readme.md` |
|
||||||
227
plans/异步事件单元测试_0dbff6a0.plan.md
Normal file
227
plans/异步事件单元测试_0dbff6a0.plan.md
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
---
|
||||||
|
name: 异步事件单元测试
|
||||||
|
overview: 结合 slot_console 现有 Free Credits 测试实践,说明异步 MQ 事件应分层测试:不直连 RabbitMQ,优先测 Logic 编排,再补 Event 解析与 EventBus 路由;并给出可新增的示例用例结构。
|
||||||
|
todos:
|
||||||
|
- id: entity-test
|
||||||
|
content: 新增 FreeCreditInitEntityTest:字段映射与 resolveWalletAmount 回退
|
||||||
|
status: completed
|
||||||
|
- id: bus-factory
|
||||||
|
content: 新增 tests/Support/ConsoleBusMessageFactory 统一构造 MQBusEntity 载荷
|
||||||
|
status: completed
|
||||||
|
- id: extend-logic-tests
|
||||||
|
content: 扩展 FreeCreditsHandleFreeCreditInitTest:幂等、无配置、异常路径
|
||||||
|
status: completed
|
||||||
|
- id: optional-event-inject
|
||||||
|
content: (可选)FreeCreditInitEvent 注入 Logic + Event 单测
|
||||||
|
status: completed
|
||||||
|
- id: optional-eventbus-nack
|
||||||
|
content: (可选)EventBus deal 单测:TYPE_FREE_CREDIT_INIT 成功 ack / 失败 nack
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 异步事件单元测试写法(slot_console)
|
||||||
|
|
||||||
|
## 当前架构
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Wallet as slot_wallet
|
||||||
|
participant MQ as RabbitMQ_console_bus
|
||||||
|
participant Bus as EventBus_deal
|
||||||
|
participant Ev as FreeCreditInitEvent
|
||||||
|
participant Logic as FreeCreditsLogic
|
||||||
|
|
||||||
|
Wallet->>MQ: JSON uid/type/data
|
||||||
|
MQ->>Bus: AMQPMessage
|
||||||
|
Bus->>Ev: case TYPE_FREE_CREDIT_INIT
|
||||||
|
Ev->>Ev: FreeCreditInitEntity
|
||||||
|
Ev->>Logic: handleFreeCreditInit
|
||||||
|
Logic->>Logic: freezeFirstRecharge + wallet RPC
|
||||||
|
```
|
||||||
|
|
||||||
|
**结论**:异步只发生在 MQ 传输层;单测应测 **消息解析 → 路由 → 业务编排**,而不是启动真实 `event:bus` 或 RabbitMQ。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 项目里已有的做法(推荐延续)
|
||||||
|
|
||||||
|
### 1. 单元测试:直接测 Logic(主路径)
|
||||||
|
|
||||||
|
现有 [`tests/Unit/FreeCreditsHandleFreeCreditInitTest.php`](/Users/ray/Documents/project/www/slot/slot_console/tests/Unit/FreeCreditsHandleFreeCreditInitTest.php) 已覆盖 `free_credit_init` 的**业务结果**,等价于事件消费后的效果:
|
||||||
|
|
||||||
|
- [`FreeCreditsLogicHarness`](/Users/ray/Documents/project/www/slot/slot_console/tests/Support/FreeCreditsLogicHarness.php):注入 `userContext` / `activeConfig` / `walletService`
|
||||||
|
- [`RecordingWalletService`](/Users/ray/Documents/project/www/slot/slot_console/tests/Support/RecordingWalletService.php):记录 `freeCreditsFreeze`,不发 HTTP
|
||||||
|
- [`FreeCreditsConfigStub`](/Users/ray/Documents/project/www/slot/slot_console/tests/Support/FreeCreditsConfigStub.php):活动配置桩
|
||||||
|
|
||||||
|
断言示例(已有):
|
||||||
|
|
||||||
|
- 定格金额 = `balance_before_qf`
|
||||||
|
- `biz_id` = `free_credits_freeze:{orderId}`
|
||||||
|
- `balance_before_qf <= 0` 时不调用 freeze
|
||||||
|
|
||||||
|
**运行**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd slot_console && ./vendor/bin/phpunit --testsuite Unit
|
||||||
|
```
|
||||||
|
|
||||||
|
提现三类事件同理:[`tests/Integration/FreeCreditsLogicCashoutResultTest.php`](/Users/ray/Documents/project/www/slot/slot_console/tests/Integration/FreeCreditsLogicCashoutResultTest.php) 直接调 `handleFirstCashoutResult`,不经过 EventBus。
|
||||||
|
|
||||||
|
### 2. 集成测试:需要 DB 时
|
||||||
|
|
||||||
|
[`FreeCreditsDbTestCase`](/Users/ray/Documents/project/www/slot/slot_console/tests/Integration/FreeCreditsDbTestCase.php):`RUN_DB_TESTS=1` 才跑,默认事务回滚。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
RUN_DB_TESTS=1 ./vendor/bin/phpunit --testsuite Integration --filter FreeCredits
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 建议的分层(按投入产出排序)
|
||||||
|
|
||||||
|
| 层级 | 测什么 | 是否必需 | 依赖 |
|
||||||
|
|------|--------|----------|------|
|
||||||
|
| A. Entity | `FreeCreditInitEntity` 字段映射、`resolveWalletAmount()` 回退 | 推荐 | 无 |
|
||||||
|
| B. Logic | `handleFreeCreditInit` / `handleFirstCashoutResult` 编排 | **已有,继续扩展** | Harness + RecordingWallet |
|
||||||
|
| C. Event | `FreeCreditInitEvent::handle` 把 `MQBusEntity` 转成 Logic 参数 | 可选 | 需可注入 Logic(见下) |
|
||||||
|
| D. EventBus | `deal()` 按 `type` 分发、失败 nack | 少量即可 | Mock `AMQPMessage` |
|
||||||
|
| E. E2E | 真 MQ + wallet 发消息 | 手工/脚本,非单测 | 环境 |
|
||||||
|
|
||||||
|
**原则**:B 覆盖 90% 风险;A 防 payload 字段错;C/D 防「路由写错 type」和「实体解析漏字段」。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 可新增的测试示例
|
||||||
|
|
||||||
|
### A. Entity 单测(纯数组 → 实体)
|
||||||
|
|
||||||
|
新建 `tests/Unit/FreeCreditInitEntityTest.php`:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$entity = new FreeCreditInitEntity([
|
||||||
|
'balance_before_qf' => 15000,
|
||||||
|
'wallet_amount' => 0,
|
||||||
|
'amount' => 5000,
|
||||||
|
'biz_id' => 'order_1',
|
||||||
|
]);
|
||||||
|
$this->assertSame(15000, $entity->balance_before_qf);
|
||||||
|
$this->assertSame(5000, $entity->resolveWalletAmount()); // wallet_amount 为 0 时回退 amount
|
||||||
|
```
|
||||||
|
|
||||||
|
对应生产代码:[`app/entity/mq/FreeCreditInitEntity.php`](/Users/ray/Documents/project/www/slot/slot_console/app/entity/mq/FreeCreditInitEntity.php)。
|
||||||
|
|
||||||
|
### B. 构造 MQ 载荷辅助方法
|
||||||
|
|
||||||
|
在 `tests/Support/` 增加工厂,统一模拟 wallet 发出的 body:
|
||||||
|
|
||||||
|
```php
|
||||||
|
public static function consoleBusMessage(int $uid, string $type, array $data): MQBusEntity
|
||||||
|
{
|
||||||
|
return new MQBusEntity(['uid' => $uid, 'type' => $type, 'data' => $data]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// free_credit_init 示例
|
||||||
|
public static function freeCreditInitBus(int $uid, int $balanceBefore, int $walletAmount, string $bizId): MQBusEntity
|
||||||
|
{
|
||||||
|
return self::consoleBusMessage($uid, MQBusEntity::TYPE_FREE_CREDIT_INIT, [
|
||||||
|
'balance_before_qf' => $balanceBefore,
|
||||||
|
'wallet_amount' => $walletAmount,
|
||||||
|
'biz_id' => $bizId,
|
||||||
|
'source' => 'test',
|
||||||
|
'currency' => 'INR',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
与 [`WalletLogic::sendConsoleBus`](/Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php) 字段保持一致。
|
||||||
|
|
||||||
|
### C. Event 层单测(当前结构的限制)
|
||||||
|
|
||||||
|
[`FreeCreditInitEvent`](/Users/ray/Documents/project/www/slot/slot_console/app/command/event/FreeCreditInitEvent.php) 内部写死 `new FreeCreditsLogic()`,**无法在不改代码的情况下 mock Logic**。
|
||||||
|
|
||||||
|
两种做法(二选一):
|
||||||
|
|
||||||
|
1. **小重构(推荐)**:Event 构造函数注入 `FreeCreditsLogic`,单测传入 `FreeCreditsLogicHarness`。
|
||||||
|
2. **不测 Event**:认为 Event 只有 5 行胶水,由 B 层保证;仅加 A 层测 data 解析。
|
||||||
|
|
||||||
|
若采用 1,示例:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$bus = ConsoleBusMessageFactory::freeCreditInitBus($uid, 15000, 5000, 'order_1');
|
||||||
|
$harness = (new FreeCreditsLogicHarness())->inject($context, $config, $wallet);
|
||||||
|
(new FreeCreditInitEvent($harness))->handle($bus);
|
||||||
|
$this->assertCount(1, $wallet->freezeCalls);
|
||||||
|
```
|
||||||
|
|
||||||
|
### D. EventBus 路由单测(少量)
|
||||||
|
|
||||||
|
Mock `PhpAmqpLib\Message\AMQPMessage`:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$message = $this->createMock(AMQPMessage::class);
|
||||||
|
$message->method('getBody')->willReturn(json_encode([
|
||||||
|
'uid' => 90088002,
|
||||||
|
'type' => MQBusEntity::TYPE_FREE_CREDIT_INIT,
|
||||||
|
'data' => ['balance_before_qf' => 15000, 'wallet_amount' => 5000, 'biz_id' => 'x'],
|
||||||
|
]));
|
||||||
|
$message->expects($this->once())->method('ack'); // 成功应 ack
|
||||||
|
|
||||||
|
$bus = new EventBus();
|
||||||
|
// 若 Logic 仍 new 在 Event 内,需配合 C 的注入或接受集成测
|
||||||
|
$bus->deal($message);
|
||||||
|
```
|
||||||
|
|
||||||
|
**nack 场景**([`EventBus.php` L164-167](/Users/ray/Documents/project/www/slot/slot_console/app/command/EventBus.php)):Logic 抛异常时,`TYPE_FREE_CREDIT_INIT` 应 `nack(true)` 且不 `ack`。可让 Harness 的 `freeCreditsFreeze` 抛异常,断言 `$message->expects($this->once())->method('nack')->with(true)`。
|
||||||
|
|
||||||
|
注意:`EventBus` 依赖多,路由测试宜 **只测 switch 分支 + ack/nack**,业务细节仍放 B。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四个 Free Credits 相关 type 怎么测
|
||||||
|
|
||||||
|
| MQ type(常量) | 单测重点 | 现有覆盖 |
|
||||||
|
|-----------------|----------|----------|
|
||||||
|
| `TYPE_FREE_CREDIT_INIT` | 定格金额、biz_id、幂等跳过 | `FreeCreditsHandleFreeCreditInitTest` |
|
||||||
|
| `TYPE_FREE_CREDITS_FIRST_CASHOUT_SUCCESS` | 档位 completed、player 状态 | `FreeCreditsLogicCashoutResultTest` |
|
||||||
|
| `TYPE_FREE_CREDITS_FIRST_CASHOUT_FAIL` | 失败回滚逻辑 | 可补 case |
|
||||||
|
| `TYPE_FREE_CREDITS_FIRST_CASHOUT_REJECTED` | rejected → ready | 已有 reject case |
|
||||||
|
|
||||||
|
EventBus 里前三类目前 **直接调 Logic**(未走独立 Event 类),单测继续打 Logic 即可;常量定义在 [`MQBusEntity`](/Users/ray/Documents/project/www/slot/slot_console/app/entity/mq/MQBusEntity.php)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 不建议在单测里做的
|
||||||
|
|
||||||
|
- 启动 `php webman event:bus` 或连接真实 RabbitMQ
|
||||||
|
- 跨服务联调 wallet → console(留给脚本如 `scripts/run_free_credits_first_freeze.php` 或手工验收)
|
||||||
|
- 在单测里依赖 `UserTagService::getByUid`(用 Harness 注入 context)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 推荐落地顺序(若你要补测试)
|
||||||
|
|
||||||
|
1. 补 `FreeCreditInitEntityTest`(A)
|
||||||
|
2. 补 `ConsoleBusMessageFactory`(B 辅助)
|
||||||
|
3. 扩展 `FreeCreditsHandleFreeCreditInitTest`:无活动配置、已定格幂等、Logic 抛错
|
||||||
|
4. (可选)`FreeCreditInitEvent` 注入 Logic + Event 单测(C)
|
||||||
|
5. (可选)`EventBusFreeCreditInitTest` 只测 ack/nack(D)
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
subgraph unit [Unit 无 MQ]
|
||||||
|
E[EntityTest]
|
||||||
|
L[LogicHarnessTest]
|
||||||
|
end
|
||||||
|
subgraph optional [Optional]
|
||||||
|
Ev[EventTest]
|
||||||
|
Bus[EventBusRoutingTest]
|
||||||
|
end
|
||||||
|
subgraph integration [Integration RUN_DB_TESTS]
|
||||||
|
DB[DbTestCase]
|
||||||
|
end
|
||||||
|
E --> L
|
||||||
|
L --> Ev
|
||||||
|
Ev --> Bus
|
||||||
|
L --> DB
|
||||||
|
```
|
||||||
56
plans/拆分win派奖文档_adbf09a1.plan.md
Normal file
56
plans/拆分win派奖文档_adbf09a1.plan.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
name: 拆分win派奖文档
|
||||||
|
overview: 将 wallet PRD 中与 win(派奖)强相关的需求从主文档拆分到独立文档,降低耦合并保持规则可追踪。计划默认采用“从 wallet.md 迁移到 win.md,并在原处保留索引入口”的方式。
|
||||||
|
todos:
|
||||||
|
- id: identify-win-sections
|
||||||
|
content: 标记 wallet.md 中所有 win(派奖)主规则与引用依赖段落
|
||||||
|
status: completed
|
||||||
|
- id: create-win-doc
|
||||||
|
content: 创建 win.md 并迁移/重组派奖规则、流程与示例
|
||||||
|
status: completed
|
||||||
|
- id: refactor-wallet-doc
|
||||||
|
content: 在 wallet.md 用摘要+链接替换已迁移内容并更新目录
|
||||||
|
status: completed
|
||||||
|
- id: consistency-pass
|
||||||
|
content: 统一术语与交叉引用,确保无重复冲突定义
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 将 win(派奖)需求拆分到独立文档
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
把 [doc/wallet.md](doc/wallet.md) 中“win(派奖)”相关需求整理到新文档 [doc/win.md](doc/win.md),并保证两份文档职责清晰:
|
||||||
|
- `wallet.md` 保留钱包总规则与对外索引
|
||||||
|
- `win.md` 承载派奖、Round 结算、出资分配等细则
|
||||||
|
|
||||||
|
## 拆分范围(默认)
|
||||||
|
从 [doc/wallet.md](doc/wallet.md) 迁移以下“win 主体”内容到 [doc/win.md](doc/win.md):
|
||||||
|
- §12 `Slots 多次派奖与最终结算规则`
|
||||||
|
- §20 中 win 强相关子流程:
|
||||||
|
- `20.4 Round 多次派奖`
|
||||||
|
- `20.5 Round 最终结算`
|
||||||
|
- 与派奖直接相关且需避免重复维护的规则片段(在 `wallet.md` 中改为引用):
|
||||||
|
- §10.3 `派奖归属规则`
|
||||||
|
- §11 中 `Round 总派奖` 分配示例
|
||||||
|
- §16.2 `派奖按比例拆分余数`
|
||||||
|
|
||||||
|
## 文档结构调整
|
||||||
|
- 在 [doc/wallet.md](doc/wallet.md):
|
||||||
|
- 保留“钱包主规则”定位
|
||||||
|
- 将迁移段落替换为简要摘要 + 指向 [doc/win.md](doc/win.md) 的链接
|
||||||
|
- 更新目录,新增 `win` 文档入口
|
||||||
|
- 在 [doc/win.md](doc/win.md):
|
||||||
|
- 新建“win(派奖)需求”专题文档
|
||||||
|
- 按“背景 → 结算时序 → 分配规则 → 边界条件 → 示例流程”重组内容
|
||||||
|
- 明确与 `Lot`、`Task`、`Withdrawable` 的关系,保留必要术语一致性(Round/FinalSettlement/AllocatedPayout)
|
||||||
|
|
||||||
|
## 一致性与可维护性约束
|
||||||
|
- 术语与口径与 [doc/wallet.md](doc/wallet.md) 保持一致(Bonus/Deposit/Withdrawable、Final Settlement、PlayedOut)
|
||||||
|
- 避免双份正文维护:同一规则只在一个文档定义,另一侧做引用
|
||||||
|
- 若保留示例在两文档同时出现,仅保留“简版示意”在 `wallet.md`,完整口径放 `win.md`
|
||||||
|
|
||||||
|
## 验收标准
|
||||||
|
- [doc/win.md](doc/win.md) 可单独说明“派奖”完整业务规则
|
||||||
|
- [doc/wallet.md](doc/wallet.md) 删除/替换原 win 细节后仍可作为钱包总览
|
||||||
|
- 两文档目录和交叉链接可直接跳转,且不存在明显冲突描述
|
||||||
73
plans/测试_register_bet_win_6f8e8ea1.plan.md
Normal file
73
plans/测试_register_bet_win_6f8e8ea1.plan.md
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
name: 测试 register bet win
|
||||||
|
overview: 设计一套不改代码的联调测试方案,覆盖 register、bet、win(含中间派奖+最终结算)主流程、幂等与关键校验。输出可直接执行的请求序列和验收点。
|
||||||
|
todos:
|
||||||
|
- id: collect-endpoints
|
||||||
|
content: 整理 register/bet/win 的可调用入口与参数最小集合
|
||||||
|
status: completed
|
||||||
|
- id: define-test-cases
|
||||||
|
content: 设计主链路、幂等、参数异常三类用例
|
||||||
|
status: completed
|
||||||
|
- id: prepare-request-templates
|
||||||
|
content: 产出按执行顺序排列的请求模板与预期结果
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# Register/Bet/Win 测试计划
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
- 用最小链路验证 `register -> bet -> win` 的资金变更与返回口径。
|
||||||
|
- 覆盖 `win` 的两阶段结算(`is_end=0` 中间派奖、`is_end=1` 最终结算)。
|
||||||
|
- 覆盖关键风控点:幂等(重复 `biz_id`)、参数校验(`round_id`、`is_end`、金额)。
|
||||||
|
|
||||||
|
## 关键实现依据(用于制定用例)
|
||||||
|
- 接口入口与兼容关系:[`app/api/controller/WalletController.php`](app/api/controller/WalletController.php)
|
||||||
|
- `wallet/bet`、`wallet/win` 为独立入口;`wallet/update(type=bet|win)` 复用同链路。
|
||||||
|
- 业务分发与资金处理:[`app/api/logic/WalletLogic.php`](app/api/logic/WalletLogic.php)
|
||||||
|
- `register` 走 `RegisterService::execute`。
|
||||||
|
- `bet` 按 `biz_id` 做幂等。
|
||||||
|
- `win`:`is_end=0` 只累计待结算金额,`is_end=1` 才真正入账并清理缓存。
|
||||||
|
- 注册落账与 Lot 初始化:[`app/service/wallet/RegisterService.php`](app/service/wallet/RegisterService.php)
|
||||||
|
- 注册会初始化钱包、统计行,并按 `fee/bonus` 创建 Deposit/Bonus Lot。
|
||||||
|
- 请求参数约束:[`app/validator/Wallet2Validator.php`](app/validator/Wallet2Validator.php)
|
||||||
|
- bet/win 必传 `round_id`,`is_end` 仅支持 `0/1`。
|
||||||
|
|
||||||
|
## 测试范围与步骤
|
||||||
|
1. **准备阶段**
|
||||||
|
- 选一个全新 `uid`(避免历史账干扰)。
|
||||||
|
- 固定 `currency/source/organization`,并准备唯一 `biz_id` 生成规则(例如带时间戳)。
|
||||||
|
|
||||||
|
2. **主链路测试(Happy Path)**
|
||||||
|
- 调 `wallet/update` 发起 `register`(`type=register`,带 `fee` 与 `bonus`)。
|
||||||
|
- 调 `wallet/wallet` 查询余额基线。
|
||||||
|
- 调 `wallet/bet`(带 `round_id`)验证扣款与返回结构。
|
||||||
|
- 调 `wallet/win` 且 `is_end=0`:确认返回中 `withdraw` 临时增加(待结算展示),但不落最终账。
|
||||||
|
- 调 `wallet/win` 且 `is_end=1`:确认最终入账,并清理该 `round_id` 的待结算累计。
|
||||||
|
|
||||||
|
3. **幂等与异常场景**
|
||||||
|
- 重放同一 `bet.biz_id`:应命中幂等,余额不重复变化。
|
||||||
|
- 重放同一 `win.biz_id`:应命中幂等,余额不重复变化。
|
||||||
|
- 缺失 `round_id` 调 bet/win:应返回参数错误。
|
||||||
|
- 传非法 `is_end`(如 2):应返回参数错误。
|
||||||
|
|
||||||
|
4. **验收口径**
|
||||||
|
- 余额变化符合顺序:下注优先扣 Bonus,再 Deposit,再 Withdraw。
|
||||||
|
- `win` 仅在最终结算时落地资金结果;中间派奖只累计。
|
||||||
|
- 重复请求无重复记账,返回语义稳定。
|
||||||
|
|
||||||
|
## 建议请求流(逻辑顺序图)
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
registerCall[register(update)] --> walletCheck1[wallet_query]
|
||||||
|
walletCheck1 --> betCall[bet]
|
||||||
|
betCall --> winMid[win_is_end_0]
|
||||||
|
winMid --> walletCheck2[wallet_query]
|
||||||
|
walletCheck2 --> winFinal[win_is_end_1]
|
||||||
|
winFinal --> walletCheck3[wallet_query]
|
||||||
|
walletCheck3 --> idemReplay[replay_same_biz_id]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 交付物
|
||||||
|
- 一份可直接在 Postman/curl 执行的请求模板(含示例 body)。
|
||||||
|
- 一份对照清单:每一步的“预期返回 + 余额期望 + 幂等期望”。
|
||||||
82
plans/测试报告可追踪输出_4fd907ad.plan.md
Normal file
82
plans/测试报告可追踪输出_4fd907ad.plan.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
name: 测试报告可追踪输出
|
||||||
|
overview: 在现有 WalletRegisterBetWinTest 上增加“可追踪测试报告”:每次执行输出并落盘 uid/round_id/biz_id/余额快照,失败时可直接按用户复现。
|
||||||
|
todos:
|
||||||
|
- id: add-reporter-support
|
||||||
|
content: 新增 WalletTestRunContext 与 WalletTestReporter(JSON+Markdown 落盘)
|
||||||
|
status: completed
|
||||||
|
- id: wire-test-class
|
||||||
|
content: 改造 WalletRegisterBetWinTest:记录 uid/round/biz_id,tearDown 输出摘要
|
||||||
|
status: completed
|
||||||
|
- id: config-and-doc
|
||||||
|
content: phpunit.xml 增加 WALLET_TEST_UID/REPORT_DIR;更新 doc 执行说明
|
||||||
|
status: completed
|
||||||
|
- id: verify-run
|
||||||
|
content: 容器执行 phpunit 并确认控制台+报告文件含 uid
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 钱包集成测试可追踪报告方案
|
||||||
|
|
||||||
|
## 问题
|
||||||
|
当前 [tests/Feature/WalletRegisterBetWinTest.php](tests/Feature/WalletRegisterBetWinTest.php) 每个用例都会 `makeUid()` 生成随机用户,PHPUnit 默认只显示 `OK (3 tests, 37 assertions)`,**看不到本次用了哪个 `uid`、`round_id`、`biz_id`**,联调排障和 DB 核对都不方便。
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
- 跑完测试后,**控制台**能看到每个用例的测试用户与关键业务 ID。
|
||||||
|
- **落盘一份报告**(JSON + 可读 Markdown),便于复制 `uid` 去查库或手工 curl 复现。
|
||||||
|
- 可选:通过环境变量固定 `uid`,便于反复验证同一用户。
|
||||||
|
|
||||||
|
## 实现方案
|
||||||
|
|
||||||
|
### 1. 新增测试上下文与报告器
|
||||||
|
新增 [tests/Support/WalletTestRunContext.php](tests/Support/WalletTestRunContext.php):
|
||||||
|
- 字段:`testName`, `uid`, `currency`, `roundId`, `bizIds`(register/bet/win_mid/win_final), `traceId`, `steps[]`(每步 API、code、余额快照), `status`, `errorMsg`。
|
||||||
|
|
||||||
|
新增 [tests/Support/WalletTestReporter.php](tests/Support/WalletTestReporter.php):
|
||||||
|
- `startRun()` / `recordStep()` / `finishTest()` / `writeReport()`
|
||||||
|
- 报告目录:`runtime/test-reports/`(文件名含时间戳,如 `wallet-register-bet-win-20260515-160530.json` 与同名 `.md`)
|
||||||
|
- Markdown 表格示例列:用例名 | uid | round_id | biz_id 列表 | 结果 | 最终余额(deposit/withdraw/b)
|
||||||
|
|
||||||
|
### 2. 改造现有 Feature 测试
|
||||||
|
在 [tests/Feature/WalletRegisterBetWinTest.php](tests/Feature/WalletRegisterBetWinTest.php) 中:
|
||||||
|
- `setUp()`:初始化 reporter;若存在 `WALLET_TEST_UID` 则使用该固定 uid(否则继续随机)。
|
||||||
|
- 每个 `test*` 开始:创建 `WalletTestRunContext` 并记录 uid/round_id/biz_id。
|
||||||
|
- `postJson()` / `wallet()`:成功后把 `code`、关键 `data`、查询余额写入 `steps`。
|
||||||
|
- `tearDown()`:标记 pass/fail,调用 `writeReport()`;**向 STDOUT 打印一行摘要**(PHPUnit 控制台可见),例如:
|
||||||
|
- `[WalletTest] testRegisterBetWinFlow uid=90012345 round=r_... bet=bet_... => PASS`
|
||||||
|
|
||||||
|
失败时 assertion message 附带 context 摘要,便于一眼定位用户。
|
||||||
|
|
||||||
|
### 3. 配置与文档
|
||||||
|
- [phpunit.xml](phpunit.xml) 增加可选 env:
|
||||||
|
- `WALLET_TEST_UID`(空=随机)
|
||||||
|
- `WALLET_TEST_REPORT_DIR`(默认 `runtime/test-reports`)
|
||||||
|
- `WALLET_TEST_VERBOSE`(`1` 时打印每步明细)
|
||||||
|
- 更新 [doc/register-bet-win-test.md](doc/register-bet-win-test.md) §7:
|
||||||
|
- 报告路径说明
|
||||||
|
- 固定 uid 复现示例:`WALLET_TEST_UID=90012345 docker compose exec ... phpunit ...`
|
||||||
|
|
||||||
|
### 4. 执行验证
|
||||||
|
容器内执行:
|
||||||
|
```bash
|
||||||
|
docker compose exec -T -w /app/www/ray/slot-wallet php82 php vendor/bin/phpunit --filter WalletRegisterBetWinTest
|
||||||
|
```
|
||||||
|
验收:
|
||||||
|
- 控制台出现每个用例的 `uid` 摘要行
|
||||||
|
- `runtime/test-reports/` 生成 `.json` + `.md`
|
||||||
|
- 测试仍全部通过(3 tests)
|
||||||
|
|
||||||
|
## 报告结构示意
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
testCase[WalletRegisterBetWinTest] --> context[WalletTestRunContext]
|
||||||
|
context --> reporter[WalletTestReporter]
|
||||||
|
reporter --> stdout[ConsoleSummary]
|
||||||
|
reporter --> jsonFile[runtime/test-reports/*.json]
|
||||||
|
reporter --> mdFile[runtime/test-reports/*.md]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 不在本阶段做的(可选后续)
|
||||||
|
- HTML 可视化报告、CI artifact 上传
|
||||||
|
- DB 直连断言(wallet_log / wallet_fund_lot)
|
||||||
59
plans/玩家任务进度查询_bf651c60.plan.md
Normal file
59
plans/玩家任务进度查询_bf651c60.plan.md
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
name: 玩家任务进度查询
|
||||||
|
overview: 新增一个面向玩家的只读接口,返回当前 Bonus/Deposit 任务及其打码进度与详情,数据口径以 PRD 定义的 `wallet_fund_lot` 为准。保持现有资金主流程不变,仅补充查询链路与文档说明。
|
||||||
|
todos:
|
||||||
|
- id: define-player-task-endpoint
|
||||||
|
content: 新建独立玩家任务查询 Controller(不改 WalletController),并完成入参校验与统一返回
|
||||||
|
status: pending
|
||||||
|
- id: add-lot-query-service
|
||||||
|
content: 在 wallet 域新增只读查询服务,按 PRD 聚合 bonus/deposit 当前任务视图并计算进度字段
|
||||||
|
status: pending
|
||||||
|
- id: extend-fund-lot-model
|
||||||
|
content: 在 WalletFundLotModel 增加面向玩家任务页的查询方法(按币种、lot_type、状态过滤与排序)
|
||||||
|
status: pending
|
||||||
|
- id: document-api-contract
|
||||||
|
content: 更新 doc/wallet.md,补充玩家任务进度查询接口契约与状态语义
|
||||||
|
status: pending
|
||||||
|
- id: verify-key-scenarios
|
||||||
|
content: 按基础与边界场景验证返回结构、进度计算和状态映射
|
||||||
|
status: pending
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 玩家查看Bonus/Deposit任务与打码进度计划
|
||||||
|
|
||||||
|
## 目标与口径
|
||||||
|
- 提供玩家侧查询能力:查看“当前仍在生命周期内”的 `Bonus` 与 `Deposit` 任务,以及每条任务的进度与关键详情。
|
||||||
|
- 数据源以 [`/Users/ray/Documents/project/www/ray/slot-wallet/app/model/multi/WalletFundLotModel.php`](/Users/ray/Documents/project/www/ray/slot-wallet/app/model/multi/WalletFundLotModel.php) 为准,不再使用旧 `wager_task` 作为玩家任务主视图。
|
||||||
|
- 任务状态遵循 PRD(`Waiting/Active/PendingConversion/PlayedOut` 等),并输出前端可直接消费的进度字段。
|
||||||
|
|
||||||
|
## 接口设计(新增)
|
||||||
|
- 新建独立 Controller 承载玩家查询接口(建议新增 [`/Users/ray/Documents/project/www/ray/slot-wallet/app/api/controller/PlayerTaskController.php`](/Users/ray/Documents/project/www/ray/slot-wallet/app/api/controller/PlayerTaskController.php) 并提供 `taskProgress` 方法),不在 [`/Users/ray/Documents/project/www/ray/slot-wallet/app/api/controller/WalletController.php`](/Users/ray/Documents/project/www/ray/slot-wallet/app/api/controller/WalletController.php) 增加行为。
|
||||||
|
- 入参:`uid`、`currency`(可复用 [`/Users/ray/Documents/project/www/ray/slot-wallet/app/validator/WalletValidator.php`](/Users/ray/Documents/project/www/ray/slot-wallet/app/validator/WalletValidator.php) 现有校验,或为新 Controller 补充专用 scene/validator)。
|
||||||
|
- 出参建议:
|
||||||
|
- `summary`:当前 `bonus_task_count`、`deposit_task_count`。
|
||||||
|
- `bonus_tasks[]` 与 `deposit_tasks[]`:每条含 `lot_id`、`lot_no`、`status`、`status_text`、`source_type`、`source_id`、`original_amount`、`remaining_amount`、`required_wager`、`current_wager`、`left_wager`、`progress_rate`、`created_at`、`completed_at`、`brief`。
|
||||||
|
- “当前任务”默认筛选为:`status in (Waiting, Active, PendingConversion, PlayedOut)`;不返回 `Completed/Cancelled/Reversed`(避免历史噪音)。
|
||||||
|
|
||||||
|
## 分层落地
|
||||||
|
- Logic/Service 层新增只读查询编排(建议放在 wallet 域 service,控制器不直接拼查询):
|
||||||
|
- 查询指定用户指定币种的 Deposit/Bonus Lots;
|
||||||
|
- 按类型分组并按 `consume_priority_at, id` 排序;
|
||||||
|
- 统一计算衍生字段:
|
||||||
|
- `left_wager = max(required_wager - current_wager, 0)`
|
||||||
|
- `progress_rate = required_wager > 0 ? min(current_wager / required_wager, 1) : 1`
|
||||||
|
- 统一状态文案映射(与 PRD 对齐)。
|
||||||
|
- Model 层在 [`/Users/ray/Documents/project/www/ray/slot-wallet/app/model/multi/WalletFundLotModel.php`](/Users/ray/Documents/project/www/ray/slot-wallet/app/model/multi/WalletFundLotModel.php) 补充专用查询方法(如按币种+lot_type+status 列表查询),保持 Controller/Logic 不下沉 SQL 细节。
|
||||||
|
|
||||||
|
## 文档与兼容
|
||||||
|
- 在 [`/Users/ray/Documents/project/www/ray/slot-wallet/doc/wallet.md`](/Users/ray/Documents/project/www/ray/slot-wallet/doc/wallet.md) 的 API 建议章节补充“玩家任务进度查询”示例(字段说明与状态语义)。
|
||||||
|
- 明确该接口是玩家视图;旧 [`/Users/ray/Documents/project/www/ray/slot-wallet/app/api/controller/TaskController.php`](/Users/ray/Documents/project/www/ray/slot-wallet/app/api/controller/TaskController.php) 维持兼容,不做破坏式改造。
|
||||||
|
|
||||||
|
## 验证计划
|
||||||
|
- 基础场景:同时存在 Bonus/Deposit Active 任务,返回分组正确、进度计算正确。
|
||||||
|
- 边界场景:
|
||||||
|
- `required_wager=0`(进度应视为 100%);
|
||||||
|
- `current_wager > required_wager`(进度封顶 100%);
|
||||||
|
- 仅有 PlayedOut Bonus(仍应展示,方便玩家理解“已用完未转化”);
|
||||||
|
- 无当前任务(返回空数组与计数 0)。
|
||||||
|
- 一致性检查:字段值与 `wallet_fund_lot` 原始记录一致,且状态解释符合 PRD。
|
||||||
148
plans/跨服务_slot_sdk_约束_4e4faf5a.plan.md
Normal file
148
plans/跨服务_slot_sdk_约束_4e4faf5a.plan.md
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
---
|
||||||
|
name: 跨服务 slot_sdk 约束
|
||||||
|
overview: 在用户级 Cursor 规则目录新增一条「跨服务通信」约束,用统一、可操作的术语规定:业务服务之间的 HTTP 互调必须经 `slot/sdk`(`slotsdk`)完成,并与现有 `backend-layering` 规则互补而不重复。
|
||||||
|
todos:
|
||||||
|
- id: create-mdc
|
||||||
|
content: 新建 /Users/ray/.cursor/rules/cross-service-sdk.mdc(alwaysApply + 术语与调用规范)
|
||||||
|
status: completed
|
||||||
|
- id: consistency-check
|
||||||
|
content: 对照 backend-layering.mdc 确认交叉引用一致、无重复分层表
|
||||||
|
status: completed
|
||||||
|
- id: optional-readme
|
||||||
|
content: (可选)在 slot_sdk/readme.md 增加简短架构说明
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 跨服务通信 Cursor 用户级约束
|
||||||
|
|
||||||
|
## 背景与目标
|
||||||
|
|
||||||
|
当前用户级规则在 [`/Users/ray/.cursor/rules/`](file:///Users/ray/.cursor/rules/) 已有:
|
||||||
|
|
||||||
|
- [`backend-layering.mdc`](file:///Users/ray/.cursor/rules/backend-layering.mdc) — 单服务内 Controller / Logic / Service 分层
|
||||||
|
- [`dev-environment.mdc`](file:///Users/ray/.cursor/rules/dev-environment.mdc) — Docker 本地开发
|
||||||
|
- [`php-doc.mdc`](file:///Users/ray/.cursor/rules/php-doc.mdc) — PHPDoc 规范
|
||||||
|
|
||||||
|
[`backend-layering.mdc`](file:///Users/ray/.cursor/rules/backend-layering.mdc) 仅在 Service 层职责里顺带提到「sdk」,**没有**规定跨服务 HTTP 的入口、命名与新增 API 的流程。本次新增**独立规则**(单一职责,符合 create-rule 实践),`alwaysApply: true`,与现有三条规则一致。
|
||||||
|
|
||||||
|
代码库事实(供规则用语对齐):
|
||||||
|
|
||||||
|
- 包名:`slot/sdk`,命名空间 `slotsdk\`,仓库 [`slot_sdk`](file:///Users/ray/Documents/project/www/slot/slot_sdk)
|
||||||
|
- 典型消费方:`slot_admin`、`slot_agent`、`slot_console`、`slot_pwa`(composer 依赖 `slot/sdk`)
|
||||||
|
- 典型被调方:`slot_wallet`、`slot_user`、`slot_center` 等,对外暴露 `innerapi/*`、`api/*`
|
||||||
|
- 推荐调用链:`new {Domain}Client($config)->service()->{method}(...)`
|
||||||
|
- 项目内已有表述:[`slot_agent/doc/feature_agent.md`](file:///Users/ray/Documents/project/www/slot/slot_agent/doc/feature_agent.md) —「代理服不直连用户域表,统一通过 `slot_sdk` 调用户服 innerapi」
|
||||||
|
|
||||||
|
按你的选择:**规则只约束新代码走 slot_sdk,不写 InnerCurlService / slot_lib 等 legacy 迁移条款。**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 术语优化(写入规则正文)
|
||||||
|
|
||||||
|
| 避免说法 | 推荐说法 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 后端服务之间调用 / 中转 | **跨服务 HTTP 调用** | 明确是进程间 HTTP,不是本地 Logic/Service |
|
||||||
|
| 通过 slot/sdk 中转 | **经 slot_sdk 调用** | `slot_sdk` = 客户端库;被调服务仍直接处理请求,库不做业务中转 |
|
||||||
|
| SDK / 封装 | **slot_sdk(`slot/sdk`)** | 与 composer 包名、仓库目录一致 |
|
||||||
|
| 各服务自己拼 URL | **在 slot_sdk 增加 `{Domain}Service` 方法** | 路径与 DTO 单点维护 |
|
||||||
|
| `app\service\WalletService` | **本地 WalletService** vs **slotsdk WalletService** | 防止与 SDK 类名混淆 |
|
||||||
|
|
||||||
|
核心定义(规则开篇 1 段):
|
||||||
|
|
||||||
|
> **slot_sdk** 是跨服务 HTTP 客户端库(`composer` 包 `slot/sdk`,命名空间 `slotsdk\`),用于**调用方服务**访问**被调服务**的 `innerapi/*` 或 `api/*` 接口。它不是独立部署的微服务。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 拟新增文件
|
||||||
|
|
||||||
|
**路径:** [`/Users/ray/.cursor/rules/cross-service-sdk.mdc`](/Users/ray/.cursor/rules/cross-service-sdk.mdc)
|
||||||
|
|
||||||
|
**Frontmatter:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
description: 跨服务 HTTP 须经 slot_sdk(slot/sdk)调用,禁止在业务服务内散落直连
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**正文结构(约 35–45 行,中文为主):**
|
||||||
|
|
||||||
|
### 1. 适用范围
|
||||||
|
|
||||||
|
- 一个 Webman 服务需要 HTTP 访问另一个服务的 `innerapi` / `api` 时适用。
|
||||||
|
- **被调服务**自身实现 Controller/Logic/Model,**不**为「被别人调」而引入 `slot/sdk`。
|
||||||
|
- **调用方**若需调第三个服务,必须通过 `slot/sdk`(不在业务代码里手写 Guzzle/curl/拼 host+path)。
|
||||||
|
|
||||||
|
### 2. 标准调用方式
|
||||||
|
|
||||||
|
```php
|
||||||
|
use slotsdk\Config as SDKConfig;
|
||||||
|
use slotsdk\service\wallet\WalletClient;
|
||||||
|
|
||||||
|
$config = new SDKConfig([
|
||||||
|
'host' => ShareConfigService::get('walletApiHost'),
|
||||||
|
'headers' => ['server-name' => config('app.server_name')],
|
||||||
|
]);
|
||||||
|
$result = (new WalletClient($config))->service()->getStatistics($uids, $currency);
|
||||||
|
```
|
||||||
|
|
||||||
|
要点:
|
||||||
|
|
||||||
|
- Host 来自 center 下发的 `*ApiHost`(如 `walletApiHost`、`userApiHost`)。
|
||||||
|
- 请求头带 `server-name`,值为**当前调用方**服务名。
|
||||||
|
- 非零 `code` 由 `slotsdk\exception\ApiException` 抛出,调用方在 Logic/Gateway 层处理。
|
||||||
|
|
||||||
|
### 3. 新增 / 变更远程接口的流程
|
||||||
|
|
||||||
|
1. 在 [`slot_sdk/src/service/{domain}/`](file:///Users/ray/Documents/project/www/slot/slot_sdk/src/service/) 增加 `{Domain}Service` 方法、路径常量、必要时 `entity/*Entity`。
|
||||||
|
2. 在调用方 Logic 或 `*GatewayService` 中调用;Controller 保持薄。
|
||||||
|
3. **禁止**在 `slot_admin` / `slot_agent` 等多仓库重复写同一路径字符串。
|
||||||
|
|
||||||
|
### 4. 与 backend-layering 的衔接(1–2 句)
|
||||||
|
|
||||||
|
- 跨服务访问在调用方落在 **Service 或 `*GatewayService`**,Logic 编排用例;不把 HTTP 细节散落在 Controller。
|
||||||
|
- 与 [`backend-layering.mdc`](file:///Users/ray/.cursor/rules/backend-layering.mdc) 中「Service 可承载 sdk」一致;本规则专门约束**跨服务边界**,不重复写分层表。
|
||||||
|
|
||||||
|
### 5. 命名与混淆规避
|
||||||
|
|
||||||
|
- SDK:`slotsdk\service\{domain}\{Domain}Client`、`{Domain}Service`、`entity\{Name}Entity`。
|
||||||
|
- 本地:`app\service\*`;若同名,用 `SDKConfig`、完整 namespace 或 import alias。
|
||||||
|
- 消费方封装重复调用:`UserReferralGatewayService` 这类 `*GatewayService` 模式。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 与现有规则的关系
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph userRules [用户级 .cursor/rules]
|
||||||
|
layering[backend-layering]
|
||||||
|
crossSdk[cross-service-sdk 新增]
|
||||||
|
docker[dev-environment]
|
||||||
|
phpdoc[php-doc]
|
||||||
|
end
|
||||||
|
layering -->|"单服务内分层"| Logic
|
||||||
|
crossSdk -->|"服务间 HTTP"| slot_sdk
|
||||||
|
slot_sdk --> innerapi[被调服务 innerapi/api]
|
||||||
|
```
|
||||||
|
|
||||||
|
- **不修改** [`backend-layering.mdc`](file:///Users/ray/.cursor/rules/backend-layering.mdc):避免一条规则过长;仅在 `cross-service-sdk` 末尾用交叉引用衔接。
|
||||||
|
- **不修改** [`dev-environment.mdc`](file:///Users/ray/.cursor/rules/dev-environment.mdc) / [`php-doc.mdc`](file:///Users/ray/.cursor/rules/php-doc.mdc)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 实施步骤(确认计划后执行)
|
||||||
|
|
||||||
|
1. 创建 [`cross-service-sdk.mdc`](/Users/ray/.cursor/rules/cross-service-sdk.mdc),填入上述 frontmatter 与正文。
|
||||||
|
2. 通读四条 `alwaysApply` 规则,确认无矛盾表述(尤其 Service 层与 Gateway 分工)。
|
||||||
|
3. (可选)在 [`slot_sdk/readme.md`](file:///Users/ray/Documents/project/www/slot/slot_sdk/readme.md) 补 5–10 行架构说明并链到 Cursor 规则 — **仅当你希望仓库内也有文档镜像**;非本次必需。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 验收标准
|
||||||
|
|
||||||
|
- 新开 Cursor 会话、编辑任意 slot PHP 文件时,Agent 应自动带上「跨服务须经 slot_sdk、新 API 先改 slot_sdk」约束。
|
||||||
|
- 术语统一使用:**跨服务 HTTP**、**调用方 / 被调方**、**slot_sdk**,避免「中转」「服务间随便 HTTP」等模糊说法。
|
||||||
|
- 规则正文不含 legacy 迁移条款(按你的选择)。
|
||||||
223
plans/首充定格资金修复_ac2c16c6.plan.md
Normal file
223
plans/首充定格资金修复_ac2c16c6.plan.md
Normal file
@@ -0,0 +1,223 @@
|
|||||||
|
---
|
||||||
|
name: 首充定格资金修复
|
||||||
|
overview: 本次仅改 slot_wallet 与 slot_console。wallet 删除 Recharge bus、首充发 free_credit_init;console 消费该事件完成定格。pay 等其它服务不在本次范围。
|
||||||
|
todos:
|
||||||
|
- id: wallet-remove-recharge-bus
|
||||||
|
content: 删除 WalletLogic recharge/rechargeSign 中 sendConsoleBus('Recharge')
|
||||||
|
status: completed
|
||||||
|
- id: wallet-send-free-credit-init
|
||||||
|
content: recharge + rechargeSign 首充时发送 free_credit_init(inc/改账前采 balance_before_qf)
|
||||||
|
status: completed
|
||||||
|
- id: wallet-remove-create-wager-first-recharge
|
||||||
|
content: CreateWagerTask 删除 version1/version2 首充特殊打码分支,首充走普通充值打码
|
||||||
|
status: completed
|
||||||
|
- id: console-event-bus-handler
|
||||||
|
content: EventBus case free_credit_init + FreeCreditInitEvent
|
||||||
|
status: completed
|
||||||
|
- id: console-free-credit-init-logic
|
||||||
|
content: handleFreeCreditInit;RechargeEvent 移除首充定格,保留档位推进
|
||||||
|
status: completed
|
||||||
|
- id: console-safe-freeze-order
|
||||||
|
content: freezeFirstRecharge 先 RPC 后落库;上限与幂等
|
||||||
|
status: completed
|
||||||
|
- id: mq-reliability
|
||||||
|
content: free_credit_init 失败 nack/requeue(仅 console EventBus)
|
||||||
|
status: completed
|
||||||
|
- id: tests-and-repair
|
||||||
|
content: wallet/console 单测与集成测;FreeCreditsFreezeDev 补偿(console)
|
||||||
|
status: completed
|
||||||
|
isProject: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 首充定格资金操作修复方案(修订 v4)
|
||||||
|
|
||||||
|
## 变更范围(硬约束)
|
||||||
|
|
||||||
|
**本次仅编辑以下仓库/服务,不修改任何其它服务(含 slot_pay、slot_lib 等):**
|
||||||
|
|
||||||
|
| 在范围内 | 不在范围内 |
|
||||||
|
|----------|------------|
|
||||||
|
| `slot_wallet` | `slot_pay` |
|
||||||
|
| `slot_console` | `slot_lib`、`slot_agent`、… |
|
||||||
|
|
||||||
|
> `Recharge` 总线消息假定由 **pay 或其它既有链路** 发送;本次不从 wallet 重复发送,也**不改 pay** 去补发。若线上 pay 未发 `Recharge`,统计/档位问题需另开 pay 任务,**不纳入本 PR**。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 设计原则
|
||||||
|
|
||||||
|
> **情愿用户定格失败,也不能让系统亏钱。**
|
||||||
|
|
||||||
|
| 服务(本次) | 职责 |
|
||||||
|
|--------------|------|
|
||||||
|
| **slot_wallet** | 入账;首充发 **`free_credit_init`**;**删除** `Recharge` bus;**移除** `CreateWagerTask` 旧首充打码拆分 |
|
||||||
|
| **slot_console** | 消费 `free_credit_init` → 定格扣款 + 活动落库;`RechargeEvent` **不再**做首充定格 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 目标架构
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Ext as 外部_pay等_本次不改
|
||||||
|
participant Wallet as slot_wallet
|
||||||
|
participant MQ as console_bus
|
||||||
|
participant Console as slot_console
|
||||||
|
|
||||||
|
Ext->>Wallet: recharge / rechargeSign
|
||||||
|
Wallet->>Wallet: 采 balance_before_qf,入账
|
||||||
|
Wallet->>MQ: free_credit_init
|
||||||
|
Ext->>MQ: Recharge(本次不实现)
|
||||||
|
MQ->>Console: FreeCreditInitEvent
|
||||||
|
Console->>Wallet: freeCreditsFreeze RPC
|
||||||
|
Console->>Console: player/package 落库
|
||||||
|
MQ->>Console: RechargeEvent(既有逻辑,无定格)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 实现步骤
|
||||||
|
|
||||||
|
### 1. slot_wallet
|
||||||
|
|
||||||
|
#### 1.1 删除 `Recharge` bus
|
||||||
|
|
||||||
|
从 [`WalletLogic::recharge()`](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php)、[`rechargeSign()`](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php) 移除:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$this->sendConsoleBus('Recharge', $this->requestDTO->recharge);
|
||||||
|
```
|
||||||
|
|
||||||
|
保留 `sendConsoleBus('reward', ...)` 及其它非 Recharge 类型(本次不动)。
|
||||||
|
|
||||||
|
#### 1.2 `maybeSendFreeCreditInit()` + 扩展 `sendConsoleBus`
|
||||||
|
|
||||||
|
- 改账/ `inc()` **前**:`balance_before_qf`、`is_first_recharge`(`total_deposit == 0`,在 `statModel->inc` 之前判断)。
|
||||||
|
- 改账成功后:`is_first_recharge && balance_before_qf > 0` 时发送:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$this->sendConsoleBus('free_credit_init', 0, [
|
||||||
|
'balance_before_qf' => $balanceBeforeQf,
|
||||||
|
'recharge_amount' => $this->requestDTO->recharge,
|
||||||
|
]);
|
||||||
|
```
|
||||||
|
|
||||||
|
- [`sendConsoleBus()`](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php) 增加可选参数 `array $extraData = []`。
|
||||||
|
|
||||||
|
#### 1.3 `recharge()` 与 `rechargeSign()` 均接入
|
||||||
|
|
||||||
|
签到购买 [`rechargeSign()`](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php) 与普通 [`recharge()`](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php) 使用同一套 `maybeSendFreeCreditInit()` 逻辑。
|
||||||
|
|
||||||
|
#### 1.4 移除 `CreateWagerTask` 旧首充打码逻辑(已废弃)
|
||||||
|
|
||||||
|
[`app/command/CreateWagerTask.php`](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/command/CreateWagerTask.php) 在 **Free Credits 上线前** 于首充时本地拆分余额打码,与现「console 定格 + 分档释放」重复且易冲突,**本次删除**。
|
||||||
|
|
||||||
|
**旧逻辑位置**(条件均为 `RechargeExchangeService::total` 累计充值等于本笔 `recharge_amount`,即首充):
|
||||||
|
|
||||||
|
| 方法 | 行号(约) | 行为 |
|
||||||
|
|------|-----------|------|
|
||||||
|
| `version1()` | L87–140 | `SOURCE_TYPE_FIRST_RECHARGE` 任务 + `SOURCE_TYPE_FREE` 免打码任务 + `SOURCE_TYPE_FIRST_LEFT`「首充剩余」打码 |
|
||||||
|
| `version2()` | L186–244 | 首充充值/赠送打码 + `SOURCE_TYPE_FIRST_LEFT`(`first_recharge_left` 系数) |
|
||||||
|
|
||||||
|
**与新方案关系**:
|
||||||
|
|
||||||
|
- 充值前免费余额 → 由 console `free_credit_init` → `freeCreditsFreeze` 扣出活动池(不再在 wallet 侧拆 `FREE` / `FIRST_LEFT` 任务)。
|
||||||
|
- 免打码第一档 / 后续释放 → 由 console `FreeCreditsLogic` + `freeCreditsClaim` 创建 Y1(`WalletLogic::freeCreditsClaim` 内 `createTask`)。
|
||||||
|
- 首充**本笔充值金额**的打码 → 与其它充值相同,走 `elseif ($dto->required_wager > 0)` 通用分支即可。
|
||||||
|
|
||||||
|
**改动要点**:
|
||||||
|
|
||||||
|
1. 删除 `version1` / `version2` 中整段 `if ($entity->recharge > 0 && $entity->recharge == $dto->recharge_amount) { ... }`。
|
||||||
|
2. 首充与普通充值统一落入后续 `elseif ($dto->required_wager > 0)`(`version1` L142+、`version2` L246+)。
|
||||||
|
3. **保留**其中对 `SOURCE_TYPE_BUY_SIGN`(购买签到解锁额度为 0)的处理——该逻辑在 `elseif` 分支内已有,无需首充专用块。
|
||||||
|
4. 删除后确认无引用孤立的 `SOURCE_TYPE_FIRST_RECHARGE` / `SOURCE_TYPE_FIRST_LEFT` 首充专用路径(常量可保留供历史任务读)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. slot_console
|
||||||
|
|
||||||
|
#### 2.1 EventBus 注册 `free_credit_init`
|
||||||
|
|
||||||
|
[`EventBus::deal()`](file:///Users/ray/Documents/project/www/slot/slot_console/app/command/EventBus.php) 增加显式分支(类名不能走 default 动态加载):
|
||||||
|
|
||||||
|
```php
|
||||||
|
case 'free_credit_init':
|
||||||
|
(new FreeCreditInitEvent())->handle($busEntity);
|
||||||
|
break;
|
||||||
|
```
|
||||||
|
|
||||||
|
新建 [`app/command/event/FreeCreditInitEvent.php`](file:///Users/ray/Documents/project/www/slot/slot_console/app/command/event/FreeCreditInitEvent.php)。
|
||||||
|
|
||||||
|
#### 2.2 `FreeCreditsLogic::handleFreeCreditInit`
|
||||||
|
|
||||||
|
- 入参:`uid`、`balance_before_qf`、`wallet_amount`、`orderId`(来自 bus `data`)。
|
||||||
|
- `frozenAmount = max(balance_before_qf, 0)`;**不以**充值后再读余额反推为主路径。
|
||||||
|
- 活动未开启 / 已定格 → 幂等 return。
|
||||||
|
- 调用调整后的 `freezeFirstRecharge()`。
|
||||||
|
|
||||||
|
#### 2.3 调整 `freezeFirstRecharge`(先扣款、后落库)
|
||||||
|
|
||||||
|
[`freezeFirstRecharge()`](file:///Users/ray/Documents/project/www/slot/slot_console/app/api/logic/FreeCreditsLogic.php):
|
||||||
|
|
||||||
|
1. 幂等:已有 `free_credits_freeze:{orderId}` 流水则跳过 RPC。
|
||||||
|
2. `frozenAmount = min(事件金额, RPC 前当前可扣余额)`;≤0 不扣。
|
||||||
|
3. **先** `freeCreditsFreeze` RPC,**后** `Db::transaction` 写 player/packages。
|
||||||
|
4. RPC 失败 → 不落库,**抛异常**。
|
||||||
|
|
||||||
|
#### 2.4 `RechargeEvent` 去掉首充定格
|
||||||
|
|
||||||
|
[`RechargeEvent::handle()`](file:///Users/ray/Documents/project/www/slot/slot_console/app/command/event/RechargeEvent.php) **删除** L73-82 对 `handleRecharge` 的调用(首充定格改由 `free_credit_init` 触发)。
|
||||||
|
|
||||||
|
保留并可继续调用 **仅档位推进** 的逻辑,例如:
|
||||||
|
|
||||||
|
- 新增 `FreeCreditsLogic::advanceAfterRecharge($uid, $walletAmount)`,或
|
||||||
|
- `handleRecharge` 内去掉首充 `freezeFirstRecharge` 分支,仅保留 `advanceByRecharge`(供既有 `Recharge` 消息使用)。
|
||||||
|
|
||||||
|
统计、黑名单、代理首充等 **RechargeEvent 现有代码不动**(本次范围外行为保持)。
|
||||||
|
|
||||||
|
#### 2.5 MQ 可靠性(仅 console)
|
||||||
|
|
||||||
|
- `FreeCreditInitEvent` / `free_credit_init`:异常上抛;`EventBus` 对该 type 失败时 **nack/requeue**(需对齐现有 consumer)。
|
||||||
|
- `Recharge` 路径统计块仍可独立 try/catch(本次不改 pay 发消息前提)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. 测试(仅 wallet + console)
|
||||||
|
|
||||||
|
| 用例 | 位置 |
|
||||||
|
|------|------|
|
||||||
|
| wallet 删除 Recharge bus | slot_wallet |
|
||||||
|
| wallet 首充发 `free_credit_init`(含 rechargeSign) | slot_wallet |
|
||||||
|
| 首充不再走 CreateWagerTask 特殊分支 | slot_wallet CreateWagerTask |
|
||||||
|
| `FreeCreditInitEvent` 定格成功 | slot_console 集成测 |
|
||||||
|
| RPC 失败不落库 / 先扣后落库 / 幂等 | slot_console |
|
||||||
|
| `RechargeEvent` 不再触发定格 | 调整 [`FreeCreditsHandleRechargeTest`](file:///Users/ray/Documents/project/www/slot/slot_console/tests/Unit/FreeCreditsHandleRechargeTest.php) 等 |
|
||||||
|
|
||||||
|
**不新增** pay 侧联调用例。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 关键改动文件(仅此两份)
|
||||||
|
|
||||||
|
**slot_wallet**
|
||||||
|
|
||||||
|
- [`app/api/logic/WalletLogic.php`](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/api/logic/WalletLogic.php)
|
||||||
|
- [`app/command/CreateWagerTask.php`](file:///Users/ray/Documents/project/www/slot/slot_wallet/app/command/CreateWagerTask.php)
|
||||||
|
|
||||||
|
**slot_console**
|
||||||
|
|
||||||
|
- [`app/command/EventBus.php`](file:///Users/ray/Documents/project/www/slot/slot_console/app/command/EventBus.php)
|
||||||
|
- `app/command/event/FreeCreditInitEvent.php`(新建)
|
||||||
|
- [`app/api/logic/FreeCreditsLogic.php`](file:///Users/ray/Documents/project/www/slot/slot_console/app/api/logic/FreeCreditsLogic.php)
|
||||||
|
- [`app/command/event/RechargeEvent.php`](file:///Users/ray/Documents/project/www/slot/slot_console/app/command/event/RechargeEvent.php)
|
||||||
|
- 相关 tests(console 仓内)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 验收标准(本 PR)
|
||||||
|
|
||||||
|
- **wallet**:`recharge` / `rechargeSign` 不再发送 `type=Recharge`;首充且 inc 前有免费余额时发送 `free_credit_init`,`balance_before_qf` 正确。
|
||||||
|
- **wallet**:首充不再触发 `CreateWagerTask` 的 `FIRST_RECHARGE` / `FREE` / `FIRST_LEFT` 拆分,仅按本笔充值/赠送金额走通用打码任务。
|
||||||
|
- **console**:收到 `free_credit_init` 后完成定格扣款与落库;扣款 ≤ 事件金额且 ≤ 可扣余额;幂等。
|
||||||
|
- **console**:`RechargeEvent` 不再执行首充定格;已定格用户经 `Recharge` 仍可 `advanceByRecharge`(依赖外部 pay 发消息,**本 PR 不验证 pay**)。
|
||||||
|
- **范围**:`git diff` 仅涉及 `slot_wallet`、`slot_console` 路径。
|
||||||
1
plugins/cache/cursor-public/figma/a742f0a700a7772ff5ed85f7c9fc1dad5afa9fcc
vendored
Submodule
1
plugins/cache/cursor-public/figma/a742f0a700a7772ff5ed85f7c9fc1dad5afa9fcc
vendored
Submodule
Submodule plugins/cache/cursor-public/figma/a742f0a700a7772ff5ed85f7c9fc1dad5afa9fcc added at a742f0a700
6
projects/1776824844777/terminals/1.txt
Normal file
6
projects/1776824844777/terminals/1.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
pid: 32065
|
||||||
|
cwd: /Users/ray
|
||||||
|
---
|
||||||
|
❯
|
||||||
|
~ ❯ base 10:27:38
|
||||||
6
projects/1776824844777/terminals/2.txt
Normal file
6
projects/1776824844777/terminals/2.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
pid: 32405
|
||||||
|
cwd: /Users/ray
|
||||||
|
---
|
||||||
|
❯
|
||||||
|
~ ❯ base 10:27:48
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,12 @@
|
|||||||
|
The cursor-app-control MCP allows you to control the Cursor application itself. Use it to:
|
||||||
|
- Move the current agent to a new root workspace directory (move_agent_to_root) — use this after creating a worktree or whenever the conversation should continue from a different workspace root
|
||||||
|
- Move the current agent to a verbatim clone of the current workspace (move_agent_to_cloned_root) — use this ONLY when the target is a sibling clone already on the agent's branch (for example from cursorfs-clone); skips the migration git fetch / ff-merge that the generic move performs
|
||||||
|
- Create a new project at a given path (create_project) — creates the directory if missing and initializes a git repository. Use this to bootstrap a new project before moving to it with move_agent_to_root
|
||||||
|
- Open a resource by URI in Glass (open_resource) — opens files in the right-hand editor panel (workspace paths or anything under ~/.cursor), focuses terminals, opens output channels, opens web links according to the Glass browser setting, or delegates other schemes to the default workbench opener
|
||||||
|
- Manage personal rules in Cursor Settings (manage_personal_rules) — list, add, update, or delete user rules after asking what the user wants Cursor to remember
|
||||||
|
|
||||||
|
Use move_agent_to_root when you want the current conversation to adopt a different root workspace directory. This updates the visible work surface and the default cwd for new terminals.
|
||||||
|
Use move_agent_to_cloned_root when the target is a freshly-made sibling clone of the current workspace.
|
||||||
|
Use create_project when you need to create a brand new project directory with an initialized git repository.
|
||||||
|
Use open_resource when you need to reveal a file, terminal, output channel, or URL for the current agent.
|
||||||
|
Use manage_personal_rules for onboarding and preference-learning workflows. Always list first to avoid duplicate memories, and only write rules the user has agreed should be remembered.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"serverIdentifier": "cursor-app-control",
|
||||||
|
"serverName": "cursor-app-control"
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "create_project",
|
||||||
|
"description": "Create a new project at the given path. Creates the directory if it does not exist and initializes a git repository. Use this to bootstrap a new project before moving the agent to it with move_agent_to_root.",
|
||||||
|
"arguments": {
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"path": {
|
||||||
|
"description": "Absolute path where the new project should be created (e.g. \"/Users/name/projects/my-new-app\")",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"path"
|
||||||
|
],
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"name": "move_agent_to_cloned_root",
|
||||||
|
"description": "Move the current agent to a root workspace directory that is a verbatim clone of the current workspace (for example produced by `cursorfs-clone`) and is already on the agent's recorded branch. Skips the migration-path `git fetch` and ff-merge that `move_agent_to_root` performs. Use ONLY when you already know the target is a sibling clone of the current workspace on the same branch; otherwise use `move_agent_to_root`.",
|
||||||
|
"arguments": {
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"anyOf": [
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"rootPath": {
|
||||||
|
"description": "Absolute path to the directory that should become the agent root workspace (e.g. \"/Users/name/projects/my-app\")",
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"rootPath"
|
||||||
|
],
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"rootPaths": {
|
||||||
|
"description": "Array of absolute paths used to create/switch to a multi-root workspace.",
|
||||||
|
"minItems": 1,
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"rootPaths"
|
||||||
|
],
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"name": "move_agent_to_root",
|
||||||
|
"description": "Move the current agent to a new root workspace directory. Use this after creating a worktree or whenever the conversation should continue from a different workspace root.",
|
||||||
|
"arguments": {
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"anyOf": [
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"rootPath": {
|
||||||
|
"description": "Absolute path to the directory that should become the agent root workspace (e.g. \"/Users/name/projects/my-app\")",
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"rootPath"
|
||||||
|
],
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"rootPaths": {
|
||||||
|
"description": "Array of absolute paths used to create/switch to a multi-root workspace.",
|
||||||
|
"minItems": 1,
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"rootPaths"
|
||||||
|
],
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
The cursor-ide-browser is an MCP server that allows you to navigate the web and interact with the page. Use this for frontend/webapp development and testing code changes.
|
||||||
|
|
||||||
|
CORE WORKFLOW:
|
||||||
|
1. Start by understanding the user's goal and what success looks like on the page.
|
||||||
|
2. Use browser_tabs with action "list" to inspect open tabs and URLs before acting.
|
||||||
|
3. Use browser_snapshot before any interaction to inspect the current page structure and obtain refs.
|
||||||
|
4. Use browser_take_screenshot for standalone visual verification or screenshot-based coordinate clicks. For browser_mouse_click_xy, capture a fresh viewport screenshot for the same tab and then issue the click immediately using coordinates from that screenshot. Do not reuse older screenshot coordinates. If any other browser tool runs first, capture a new viewport screenshot before calling browser_mouse_click_xy.
|
||||||
|
5. After any action that could change the page structure or URL (click, type, fill, fill_form, select, hover, press key, drag, browser_navigate, browser_navigate_back, wait, dialog response, or lazy-loaded scroll), take a fresh browser_snapshot before the next structural action unless you are certain the page did not change.
|
||||||
|
|
||||||
|
AGENTIC PAGE NAVIGATION:
|
||||||
|
1. When you know the destination, use browser_navigate directly to that URL.
|
||||||
|
2. Use browser_navigate_back for browser history. Keep track of the current URL from tool output or snapshot metadata so you can navigate directly when needed.
|
||||||
|
3. Work top-down: identify the relevant page region, dialog, form, or menu in the snapshot first, then target a specific ref inside it.
|
||||||
|
4. Prefer one deliberate action followed by verification over exploratory thrashing.
|
||||||
|
5. Use browser_search to locate text before blindly scrolling through large pages.
|
||||||
|
6. Use browser_hover to reveal tooltips, dropdown menus, or hidden content before interacting with revealed elements.
|
||||||
|
7. Use browser_scroll with scrollIntoView: true before clicking elements that may be offscreen or obscured.
|
||||||
|
8. Use browser_fill to replace existing content (works on both input fields and contenteditable elements) and browser_type to append text or trigger typing-related handlers.
|
||||||
|
9. If multiple elements share the same role and name, choose the exact ref from the snapshot instead of guessing. Use [nth=N] only as a hint to tell duplicate elements apart.
|
||||||
|
|
||||||
|
AVOID RABBIT HOLES:
|
||||||
|
1. Do not repeat the same failing action more than once without new evidence such as a fresh snapshot, a different ref, a changed page state, or a clear new hypothesis.
|
||||||
|
2. IMPORTANT: If four attempts fail or progress stalls, stop acting and report what you observed, what blocked progress, and the most likely next step.
|
||||||
|
3. Prefer gathering evidence over brute force. If the page is confusing, use browser_snapshot, browser_console_messages, browser_network_requests, or a screenshot to understand it before trying more actions.
|
||||||
|
4. If you encounter a blocker such as login, passkey/manual user interaction, permissions, captchas, destructive confirmations, missing data, or an unexpected state, stop and report it instead of improvising repeated actions.
|
||||||
|
5. Do not get stuck in wait-action-wait loops. Every retry should be justified by something newly observed.
|
||||||
|
|
||||||
|
CRITICAL - Lock/unlock workflow:
|
||||||
|
1. browser_lock requires an existing browser tab - you CANNOT call browser_lock with action: "lock" before browser_navigate
|
||||||
|
2. Correct order: browser_navigate -> browser_lock({ action: "lock" }) -> (interactions) -> browser_lock({ action: "unlock" })
|
||||||
|
3. If a browser tab already exists (check with browser_tabs list), call browser_lock with action: "lock" FIRST before any interactions
|
||||||
|
4. Only call browser_lock with action: "unlock" when completely done with ALL browser operations for this turn
|
||||||
|
|
||||||
|
IMPORTANT - Waiting strategy:
|
||||||
|
When waiting for page changes (navigation, content loading, animations, etc.), prefer short incremental waits (1-3 seconds) with browser_snapshot checks in between rather than a single long wait. For example, instead of waiting 10 seconds, do: wait 2s -> snapshot -> check if ready -> if not, wait 2s more -> snapshot again. This allows you to proceed as soon as the page is ready rather than always waiting the maximum time.
|
||||||
|
|
||||||
|
PERFORMANCE PROFILING:
|
||||||
|
- browser_profile_start/stop: CPU profiling with call stacks and timing data. Use to identify slow JavaScript functions.
|
||||||
|
- Profile data is written to ~/.cursor/browser-logs/. Files: cpu-profile-{timestamp}.json (raw profile in Chrome DevTools format) and cpu-profile-{timestamp}-summary.md (human-readable summary).
|
||||||
|
- IMPORTANT: When investigating performance issues, read the raw cpu-profile-*.json file to verify summary data. Key fields: profile.samples.length (total samples), profile.nodes[].hitCount (per-node hits), profile.nodes[].callFrame.functionName (function names). Cross-reference with the summary to confirm findings before making optimization recommendations.
|
||||||
|
|
||||||
|
VISION:
|
||||||
|
- Snapshot and interaction tools can optionally attach a page screenshot by setting take_screenshot_afterwards: true. The screenshot provides visual context (layout, colors, state); the aria snapshot provides element refs required for targeting actions. Use both together: the screenshot shows what the page looks like, the snapshot tells you how to interact with it. Prefer refs from the snapshot for interactions; the one screenshot-based exception is browser_mouse_click_xy, which must use coordinates from a fresh viewport screenshot captured immediately before the click for that tab. Any other browser tool call invalidates that screenshot cache.
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
- browser_snapshot returns snapshot YAML and is the main source of truth for page structure.
|
||||||
|
- Refs are opaque handles tied to the latest browser_snapshot for that tab. If a ref stops working, take a fresh snapshot instead of guessing.
|
||||||
|
- Native dialogs (alert/confirm/prompt) never block automation. By default, confirm() returns true and prompt() returns the default value. To test different responses, call browser_handle_dialog BEFORE the triggering action: use accept: false for "Cancel", or promptText: "value" for custom prompt input.
|
||||||
|
- Iframe content is not accessible - only elements outside iframes can be interacted with.
|
||||||
|
- For nested scroll containers, use browser_scroll with scrollIntoView: true before clicking elements that may be obscured.
|
||||||
|
- When you stop to report a blocker, include the current page, the target you were trying to reach, the blocker you observed, and the best next action. If the blocker requires manual user interaction, ask the user to take over at that point rather than assuming it in advance.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"serverIdentifier": "cursor-ide-browser",
|
||||||
|
"serverName": "cursor-ide-browser"
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_click",
|
||||||
|
"description": "Perform click on a web page. Supports single/double click, different mouse buttons, modifier keys, position offsets, and hold duration.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Human-readable element description used to obtain permission to interact with the element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Exact target element reference from the page snapshot"
|
||||||
|
},
|
||||||
|
"doubleClick": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to perform a double click instead of a single click"
|
||||||
|
},
|
||||||
|
"button": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"left",
|
||||||
|
"right",
|
||||||
|
"middle"
|
||||||
|
],
|
||||||
|
"description": "Mouse button to click. Defaults to \"left\"."
|
||||||
|
},
|
||||||
|
"modifiers": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Control",
|
||||||
|
"Shift",
|
||||||
|
"Alt",
|
||||||
|
"Meta",
|
||||||
|
"ControlOrMeta"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"description": "Modifier keys to hold during click. \"ControlOrMeta\" uses Ctrl on Windows/Linux and Cmd on Mac."
|
||||||
|
},
|
||||||
|
"offsetX": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Horizontal offset from element's left edge in pixels. If omitted, clicks at horizontal center."
|
||||||
|
},
|
||||||
|
"offsetY": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Vertical offset from element's top edge in pixels. If omitted, clicks at vertical center."
|
||||||
|
},
|
||||||
|
"holdDurationMs": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Duration to hold the mouse button down before releasing, in milliseconds. Useful for long-press interactions. Defaults to 0 (immediate release)."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"element",
|
||||||
|
"ref"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_console_messages",
|
||||||
|
"description": "Returns all console messages",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_drag",
|
||||||
|
"description": "Perform a drag and drop operation. Drags from a source element to a target element or coordinates.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"sourceRef": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Reference of the element to drag from"
|
||||||
|
},
|
||||||
|
"targetRef": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Reference of the element to drop onto"
|
||||||
|
},
|
||||||
|
"targetX": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "X coordinate to drop at (relative to viewport). Use with targetY instead of targetRef for coordinate-based drops."
|
||||||
|
},
|
||||||
|
"targetY": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Y coordinate to drop at (relative to viewport). Use with targetX instead of targetRef for coordinate-based drops."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"sourceRef"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_fill",
|
||||||
|
"description": "Clear and fill a value into an input element. Unlike browser_type which appends text, this clears the existing value first and sets the new value atomically. Use this when you want to replace the entire content of an input field.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Human-readable element description used to obtain permission to interact with the element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Exact target element reference from the page snapshot"
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Value to fill into the element (replaces any existing content)"
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"element",
|
||||||
|
"ref",
|
||||||
|
"value"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_fill_form",
|
||||||
|
"description": "Fill multiple form fields at once. Each field uses ref + value. By default, each field is cleared before setting the new value.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"fields": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Human-readable element description used to obtain permission to interact with the element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Exact target element reference from the page snapshot"
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Value to fill into the field"
|
||||||
|
},
|
||||||
|
"clear": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to clear existing content before filling. Defaults to true."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"element",
|
||||||
|
"ref",
|
||||||
|
"value"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
},
|
||||||
|
"take_screenshot_afterwards": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "When true, takes a screenshot after the fill completes. Defaults to false."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"fields"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_get_bounding_box",
|
||||||
|
"description": "Get bounding box details for an element.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Human-readable element description used to obtain permission to inspect the element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Exact target element reference from the page snapshot"
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"element",
|
||||||
|
"ref"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_handle_dialog",
|
||||||
|
"description": "Configure how native browser dialogs (alert, confirm, prompt) are handled. Dialogs are non-blocking in this environment - they return immediately without showing a visible dialog. Use this tool BEFORE triggering an action that shows a dialog to configure what value it should return. Also returns recent dialog history.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"accept": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "For confirm() dialogs: true to simulate clicking OK (returns true), false to simulate clicking Cancel (returns false). Default behavior is true."
|
||||||
|
},
|
||||||
|
"promptText": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "For prompt() dialogs: the text value to return. If not specified, prompt() returns the default value provided by the page."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"accept"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_highlight",
|
||||||
|
"description": "Temporarily highlight an element for visual debugging.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Human-readable element description used to obtain permission to inspect the element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Exact target element reference from the page snapshot"
|
||||||
|
},
|
||||||
|
"durationMs": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Highlight duration in milliseconds. Defaults to 2000."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"element",
|
||||||
|
"ref"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_hover",
|
||||||
|
"description": "Hover over element on page",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Human-readable element description used to obtain permission to interact with the element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Exact target element reference from the page snapshot"
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"element",
|
||||||
|
"ref"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_lock",
|
||||||
|
"description": "Lock or unlock the browser to control whether the user can interact while you work. Set action to \"lock\" or \"unlock\". When locked, the user can still click \"Take Control\" to unlock if needed.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"action": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"lock",
|
||||||
|
"unlock"
|
||||||
|
],
|
||||||
|
"description": "Whether to lock or unlock the browser for user interaction."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"action"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_mouse_click_xy",
|
||||||
|
"description": "Click left, middle, or right mouse button using coordinates from a fresh viewport screenshot captured immediately before this call for the same tab. Do not reuse older screenshot coordinates. If any other browser tool runs first, this call will fail until you capture a new viewport screenshot.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"x": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "X coordinate from the fresh viewport screenshot captured immediately before this call for this tab, measured in screenshot pixels."
|
||||||
|
},
|
||||||
|
"y": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Y coordinate from the fresh viewport screenshot captured immediately before this call for this tab, measured in screenshot pixels."
|
||||||
|
},
|
||||||
|
"button": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"left",
|
||||||
|
"right",
|
||||||
|
"middle"
|
||||||
|
],
|
||||||
|
"description": "Mouse button to click. Defaults to \"left\"."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"x",
|
||||||
|
"y"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_navigate",
|
||||||
|
"description": "Navigate to a URL. By default reuses an existing tab; set newTab: true to open in a new tab.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"url": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL to navigate to"
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"active",
|
||||||
|
"side"
|
||||||
|
],
|
||||||
|
"description": "IMPORTANT: Set to \"side\" if user mentions \"side\", \"beside\", \"side panel\", or \"side by side\". Opens browser in side editor group. Defaults to \"active\" (current editor group)."
|
||||||
|
},
|
||||||
|
"take_screenshot_afterwards": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "When true, takes a screenshot after navigation completes. Defaults to false."
|
||||||
|
},
|
||||||
|
"newTab": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "When true, creates a new tab before navigating instead of reusing an existing tab. Defaults to false."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"url"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_navigate_back",
|
||||||
|
"description": "Go back to the previous page in browser history. Returns an error if there is no previous page to navigate to.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_network_requests",
|
||||||
|
"description": "Returns all network requests since loading the page",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_press_key",
|
||||||
|
"description": "Press a key on the keyboard. Supports key combinations with modifiers using \"+\" syntax.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"key": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Key to press. Single keys: \"a\", \"Enter\", \"Escape\", \"Tab\", \"Backspace\", \"Delete\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\", \"PageUp\", \"PageDown\", \"Home\", \"End\", \"F1\"-\"F12\", \"Space\". Key combinations with modifiers using \"+\": \"Control+s\", \"Ctrl+Shift+p\", \"Alt+Tab\", \"Meta+a\" (Cmd on Mac). Modifier aliases: Control/Ctrl, Shift, Alt/Option, Meta/Command/Cmd/Win."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"key"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_profile_start",
|
||||||
|
"description": "Start CPU profiling to capture call stack timing data. Use browser_profile_stop to end profiling and get results.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_profile_stop",
|
||||||
|
"description": "Stop CPU profiling and return the profile data including call stacks, timing, and samples.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_resize",
|
||||||
|
"description": "Resize the browser window",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"width": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Width of the browser window"
|
||||||
|
},
|
||||||
|
"height": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Height of the browser window"
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"width",
|
||||||
|
"height"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_scroll",
|
||||||
|
"description": "Scroll the page or a specific element. Use this to bring elements into view, scroll to content, or navigate long pages. Can scroll in any direction by specifying delta values or using directional shortcuts.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Element reference to scroll into view, or to scroll within (for scrollable containers)"
|
||||||
|
},
|
||||||
|
"direction": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"up",
|
||||||
|
"down",
|
||||||
|
"left",
|
||||||
|
"right"
|
||||||
|
],
|
||||||
|
"description": "Direction to scroll. Shorthand for setting deltaX/deltaY."
|
||||||
|
},
|
||||||
|
"amount": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Amount to scroll in pixels when using direction. Defaults to 300."
|
||||||
|
},
|
||||||
|
"deltaX": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Horizontal scroll amount in pixels. Positive scrolls right, negative scrolls left."
|
||||||
|
},
|
||||||
|
"deltaY": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Vertical scroll amount in pixels. Positive scrolls down, negative scrolls up."
|
||||||
|
},
|
||||||
|
"scrollIntoView": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true and ref is provided, scrolls the element into view instead of scrolling within it. Defaults to true when ref is provided without delta values."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_search",
|
||||||
|
"description": "Search for text on the current page, similar to Cmd+F / Ctrl+F. Highlights all matches, scrolls to the first match, and returns a screenshot showing the match in context along with the count and positions of matches found.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"query": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The text to search for on the page"
|
||||||
|
},
|
||||||
|
"caseSensitive": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether the search should be case-sensitive. Defaults to false."
|
||||||
|
},
|
||||||
|
"navigateToMatch": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Navigate to a specific match by index (0-based). If not provided, navigates to the first match."
|
||||||
|
},
|
||||||
|
"clearHighlights": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, clears all search highlights without performing a new search. Use this to remove previous search highlights."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_select_option",
|
||||||
|
"description": "Select an option in a dropdown. Matching priority: exact value match, then exact label match, then partial label match. The snapshot now shows available options for select elements.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Human-readable element description used to obtain permission to interact with the element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Exact target element reference from the page snapshot"
|
||||||
|
},
|
||||||
|
"values": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": "Array of values to select. Matches against option value first, then label text, then partial label. Use exact values from the snapshot options list when available."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"element",
|
||||||
|
"ref",
|
||||||
|
"values"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_snapshot",
|
||||||
|
"description": "Capture accessibility snapshot of the current page, this is better than screenshot",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
},
|
||||||
|
"interactive": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "When true, only include interactive elements in the snapshot. Defaults to false."
|
||||||
|
},
|
||||||
|
"maxDepth": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Maximum depth for snapshot output. Defaults to 20."
|
||||||
|
},
|
||||||
|
"compact": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "When true, outputs a more compact snapshot format. Defaults to false."
|
||||||
|
},
|
||||||
|
"selector": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Optional CSS selector to scope the snapshot to a subtree."
|
||||||
|
},
|
||||||
|
"includeDiff": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "When true, include a diff vs the previous snapshot for this tab. Defaults to false."
|
||||||
|
},
|
||||||
|
"take_screenshot_afterwards": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "When true, takes a screenshot after snapshot completes. Defaults to false."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_tabs",
|
||||||
|
"description": "List, create, close, or select a browser tab",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"action": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"list",
|
||||||
|
"new",
|
||||||
|
"close",
|
||||||
|
"select"
|
||||||
|
],
|
||||||
|
"description": "Operation to perform"
|
||||||
|
},
|
||||||
|
"index": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Tab index. Required for \"select\". Optional for \"close\" (defaults to current tab)."
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"active",
|
||||||
|
"side"
|
||||||
|
],
|
||||||
|
"description": "IMPORTANT: Set to \"side\" if user mentions \"side\", \"beside\", \"side panel\", or \"side by side\". Opens browser in side editor group. Only for action \"new\". Defaults to \"active\"."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"action"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_take_screenshot",
|
||||||
|
"description": "Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"type": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Image format for the screenshot. Default is png."
|
||||||
|
},
|
||||||
|
"filename": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "File name to save the screenshot to. Defaults to page-{timestamp}.{png|jpeg} if not specified."
|
||||||
|
},
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Description of the element, if taking a screenshot of an element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "CSS selector for the element, if taking a screenshot of an element"
|
||||||
|
},
|
||||||
|
"fullPage": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Cannot be used with element screenshots."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_type",
|
||||||
|
"description": "Type text into editable element",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"element": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Human-readable element description used to obtain permission to interact with the element"
|
||||||
|
},
|
||||||
|
"ref": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Exact target element reference from the page snapshot"
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Text to type into the element"
|
||||||
|
},
|
||||||
|
"clear": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to clear existing content before typing. Use this to replace the current value instead of appending to it. Defaults to false."
|
||||||
|
},
|
||||||
|
"submit": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to submit entered text (press Enter after)"
|
||||||
|
},
|
||||||
|
"slowly": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to type one character at a time. Useful for triggering key handlers in the page. By default entire text is filled in at once."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"element",
|
||||||
|
"ref",
|
||||||
|
"text"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"name": "browser_wait_for",
|
||||||
|
"description": "Wait for text to appear or disappear, or wait a specified time. Note: time is in SECONDS, not milliseconds.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"time": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Time to wait in SECONDS (e.g., 2 for 2 seconds, 0.5 for 500ms). Use for fixed delays."
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Wait for this text to appear on the page."
|
||||||
|
},
|
||||||
|
"textGone": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Wait for this text to disappear from the page."
|
||||||
|
},
|
||||||
|
"timeout": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Maximum time to wait for text conditions in MILLISECONDS. Defaults to 30000 (30 seconds)."
|
||||||
|
},
|
||||||
|
"viewId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Target browser tab ID. If omitted, uses the last interacted tab."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"serverIdentifier": "plugin-figma-figma",
|
||||||
|
"serverName": "plugin-figma-figma"
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
The MCP server needs authentication. You must call the `mcp_auth` tool for server "plugin-figma-figma" through your MCP tool-calling interface using an empty arguments object `{}` soon so the user can access all of the tools this MCP server offers.
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "mcp_auth",
|
||||||
|
"description": "Authenticate this MCP server so its tools can be used. Call this tool through your MCP tool-calling interface when the server needs authentication.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {},
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
pid: 2385
|
||||||
|
cwd: "/private/tmp/hgapi-probe"
|
||||||
|
command: "cd /Users/ray/Documents/project/pop/hgapi-scrape && python3 scrape_game.py vswaysbufking 2>&1 | tee scrape.log | head -80"
|
||||||
|
started_at: 2026-05-20T07:46:43.886Z
|
||||||
|
running_for_ms: 1395516
|
||||||
|
---
|
||||||
|
[*] Symbol : vswaysbufking
|
||||||
|
[*] Base URL : https://hgppdemogamesfree.hgapi.com/gs2c/common/v1/games-html5/games/vs/vswaysbufking/desktop
|
||||||
|
[*] Output dir : /Users/ray/Documents/project/pop/hgapi-scrape/vswaysbufking
|
||||||
|
+ bootstrap.js (101920 bytes)
|
||||||
|
+ build.js (3206753 bytes)
|
||||||
|
+ style.css (19631 bytes)
|
||||||
|
+ customizations.info (0 bytes)
|
||||||
|
+ packages/zh_desktop.json (274146 bytes)
|
||||||
|
+ packages/zh_GUI_desktop.json (1256731 bytes)
|
||||||
|
! skip packages/en_desktop.json: GET failed after 3 attempts: https://hgppdemogamesfree.hgapi.com/gs2c/common/v1/games-html5/games/vs/vswaysbufking/desktop/packages/en_desktop.json (HTTP Error 404: Not Found)
|
||||||
|
! skip packages/en_GUI_desktop.json: GET failed after 3 attempts: https://hgppdemogamesfree.hgapi.com/gs2c/common/v1/games-html5/games/vs/vswaysbufking/desktop/packages/en_GUI_desktop.json (HTTP Error 404: Not Found)
|
||||||
|
+ client/resources.json (133798 bytes)
|
||||||
|
+ client/game.json (28393 bytes)
|
||||||
|
[*] game/GUI* -> 7 chunks
|
||||||
|
[*] game/GUI_resources* -> 2 chunks
|
||||||
|
[*] game/game* -> 8 chunks
|
||||||
|
[*] game/main_resources* -> 23 chunks
|
||||||
|
[*] game/other_resources* -> 1 chunks
|
||||||
|
game/GUI: chunks=7 merged=5985211B inline_decoded=0 external_refs=65
|
||||||
|
game/GUI_resources: chunks=2 merged=963833B inline_decoded=18 external_refs=11
|
||||||
|
game/game: chunks=8 merged=5729809B inline_decoded=0 external_refs=238
|
||||||
|
game/main_resources: chunks=23 merged=23471664B inline_decoded=55 external_refs=27
|
||||||
|
game/other_resources: chunks=1 merged=327406B inline_decoded=13 external_refs=3
|
||||||
|
client/resources.json: inline_decoded=6 external_refs=1
|
||||||
|
client/game.json: inline_decoded=0 external_refs=7
|
||||||
|
[*] Total unique external resource ids: 336
|
||||||
|
progress: 50/336 ok=0 miss=50
|
||||||
|
progress: 100/336 ok=0 miss=100
|
||||||
|
progress: 150/336 ok=0 miss=150
|
||||||
|
progress: 200/336 ok=0 miss=200
|
||||||
|
progress: 250/336 ok=0 miss=250
|
||||||
|
progress: 300/336 ok=6 miss=294
|
||||||
|
progress: 336/336 ok=6 miss=330
|
||||||
|
[*] Report: /Users/ray/Documents/project/pop/hgapi-scrape/vswaysbufking/_scrape_report.json
|
||||||
|
[*] Done.
|
||||||
|
Exception ignored while finalizing file <http.client.HTTPResponse object at 0x106f04f40>:
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/opt/homebrew/Cellar/python@3.14/3.14.0_1/Frameworks/Python.framework/Versions/3.14/lib/python3.14/http/client.py", line 432, in close
|
||||||
|
super().close() # set "closed" flag
|
||||||
|
File "/opt/homebrew/Cellar/python@3.14/3.14.0_1/Frameworks/Python.framework/Versions/3.14/lib/python3.14/http/client.py", line 445, in flush
|
||||||
|
self.fp.flush()
|
||||||
|
ValueError: I/O operation on closed file.
|
||||||
|
|
||||||
|
---
|
||||||
|
exit_code: 0
|
||||||
|
elapsed_ms: 1399432
|
||||||
|
ended_at: 2026-05-20T08:10:03.318Z
|
||||||
|
---
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
pid: 21016
|
||||||
|
cwd: "/Users/ray/Documents/project/pop/hgapi-scrape"
|
||||||
|
command: "cd /Users/ray/Documents/project/pop/hgapi-scrape && \\\nrm -rf vswaysbufking scrape.log && \\\npython3 -u scrape_game.py vswaysbufking > scrape.log 2>&1 &\necho \"started pid=$!\""
|
||||||
|
started_at: 2026-05-20T08:08:13.189Z
|
||||||
|
running_for_ms: 2003
|
||||||
|
---
|
||||||
|
started pid=21069
|
||||||
|
|
||||||
|
---
|
||||||
|
exit_code: 0
|
||||||
|
elapsed_ms: 6543
|
||||||
|
ended_at: 2026-05-20T08:08:19.732Z
|
||||||
|
---
|
||||||
5
projects/Users-ray-Documents-project-pop/terminals/5.txt
Normal file
5
projects/Users-ray-Documents-project-pop/terminals/5.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
pid: 97928
|
||||||
|
cwd: /Users/ray/Documents/project/pop
|
||||||
|
---
|
||||||
|
~/Doc/project/pop ❯ base 15:30:12
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
pid: 15814
|
||||||
|
cwd: "/Users/ray/Documents/project/pop/hgapi-scrape"
|
||||||
|
command: "cd /Users/ray/Documents/project/pop/hgapi-scrape && \\\nrm -rf vswaysbufking scrape.log && \\\npython3 -u scrape_game.py vswaysbufking > scrape.log 2>&1 &\necho \"started pid=$!\""
|
||||||
|
started_at: 2026-05-20T08:03:55.186Z
|
||||||
|
running_for_ms: 3817
|
||||||
|
---
|
||||||
|
started pid=15841
|
||||||
|
|
||||||
|
---
|
||||||
|
exit_code: 0
|
||||||
|
elapsed_ms: 7427
|
||||||
|
ended_at: 2026-05-20T08:04:02.613Z
|
||||||
|
---
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
pid: 26608
|
||||||
|
cwd: "/Users/ray/Documents/project/pop/hgapi-scrape/vswaysbufking"
|
||||||
|
command: "cd /Users/ray/Documents/project/pop/hgapi-scrape && \\\nrm -rf vswaysbufking scrape.log && \\\npython3 -u scrape_game.py vswaysbufking > scrape.log 2>&1 &\necho \"started pid=$!\""
|
||||||
|
started_at: 2026-05-20T08:14:45.353Z
|
||||||
|
running_for_ms: 2819
|
||||||
|
---
|
||||||
|
started pid=26635
|
||||||
|
|
||||||
|
---
|
||||||
|
exit_code: 0
|
||||||
|
elapsed_ms: 7319
|
||||||
|
ended_at: 2026-05-20T08:14:52.672Z
|
||||||
|
---
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
pid: 29106
|
||||||
|
cwd: "/Users/ray/Documents/project/pop/hgapi-scrape"
|
||||||
|
command: "export PATH=\"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin:$PATH\"\ncd /Users/ray/Documents/project/pop/hgapi-scrape && \\\npython3 -u scrape_game.py vswaysbufking > scrape.log 2>&1 &\necho \"started pid=$!\""
|
||||||
|
started_at: 2026-05-20T08:17:06.381Z
|
||||||
|
running_for_ms: 2014
|
||||||
|
---
|
||||||
|
started pid=29122
|
||||||
|
|
||||||
|
---
|
||||||
|
exit_code: 0
|
||||||
|
elapsed_ms: 6442
|
||||||
|
ended_at: 2026-05-20T08:17:12.823Z
|
||||||
|
---
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
|
|||||||
|
{"role":"user","message":{"content":[{"type":"text","text":"<timestamp>Wednesday, Apr 29, 2026, 10:07 AM (UTC+8)</timestamp>\n<user_query>\n我把规范写到那个文件里面,你会自动执行?\n</user_query>"}]}}
|
||||||
|
{"role":"assistant","message":{"content":[{"type":"text","text":"不会对任意文件“自动执行”。\n\n我通常只会在这两种情况下按文件里的规范做事:\n1. 你在当前对话里明确让我参考它,比如“先读 `readme.md`,按里面规范执行”。\n2. 这个规范已经被配置成持续生效的规则,比如 Cursor rule、skill,或者项目里明确约定会被优先读取的规范文件。\n\n所以如果你只是把要求写进 `readme.md`,我**不一定会自动去读并执行**;最稳妥的方式还是直接说一句:\n`按 readme.md 里的规范做`\n或者\n`先读 readme.md,再继续`\n\n如果你想要“以后每次都默认按这个规范来”,我可以帮你把它整理成 Cursor 的持久规则。"}]}}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"serverIdentifier": "plugin-figma-figma",
|
||||||
|
"serverName": "plugin-figma-figma"
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
The MCP server needs authentication. You must call the `mcp_auth` tool for server "plugin-figma-figma" through your MCP tool-calling interface using an empty arguments object `{}` soon so the user can access all of the tools this MCP server offers.
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"name": "mcp_auth",
|
||||||
|
"description": "Authenticate this MCP server so its tools can be used. Call this tool through your MCP tool-calling interface when the server needs authentication.",
|
||||||
|
"arguments": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {},
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
"plugin": "figma",
|
||||||
|
"marketplace": "cursor-public",
|
||||||
|
"pluginId": "657",
|
||||||
|
"marketplaceId": "34"
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
pid: 15504
|
||||||
|
cwd: /Users/ray/Documents/project/www/ray/slot-activity
|
||||||
|
---
|
||||||
|
❯
|
||||||
|
~/Doc/p/w/r/slot-activity ray/signin ❯ base 16:27:12
|
||||||
@@ -0,0 +1,725 @@
|
|||||||
|
Vendors A-Z (G)
|
||||||
|
|
||||||
|
# Vendor Name begins with 'g'
|
||||||
|
|
||||||
|
| 1 | [G Gaming](https://www.igamingsuppliers.com/vendor/g-gaming/) Gibraltar, Gibraltar G Gaming is an iGaming company which develops slot games, scratchcards, video lotteries and more for the online real money games market. Categories: Other, Mobile Gaming, Lottery Software, Other, Other |
|
||||||
|
| --- | --- |
|
||||||
|
| 2 | [G Lighting](https://www.casinovendors.com/vendor/g-lighting/) St. Louis, Missouri Category: Systems |
|
||||||
|
| 3 | [G&D Consulting](https://www.igamingsuppliers.com/vendor/g-d-consulting/) Montes de Oca, San José, Costa Rica We are a leading law firm in Costa Rica with strong influence in Latin America. Our expertise expands especially in incorporation services, licensing and compliance for industries such as online gaming, cryptocurrency projects, DeFi, Web3, family offices, asset management, a... Category: Licensing and Regulation |
|
||||||
|
| 4 | [G&D Currency Technology](https://www.casinovendors.com/vendor/g-d-currency-technology/) Sterling, Virginia Billions of people place their trust in the value and authenticity of their banknotes. WIth our unique skills, we create innovative and secure foundations for monetary transactions. From forgery-proof currency design to the highly efficient processing of banknotes, all the w... Category: Currency Management Services |
|
||||||
|
| 5 | [G&G Closed Circuit Events LLC](https://www.casinovendors.com/vendor/g-g-closed-circuit-events-llc/) Campbell, California G&G Closed Circuit Events is the leader in providing boxing and Bellator events to commercial establishments like bars, restaurants, nightclubs and casinos. We have been serving the entire United States with quality Pay-per-view programming since 2009 through partnerships wi... Category: Pay-per-view |
|
||||||
|
| 6 | [G&K Services](https://www.casinovendors.com/vendor/g-k-services/) Hopkins, Minnesota Category: Supplies, Uniforms |
|
||||||
|
| 7 | [G.E.T. Enterprises](https://www.casinovendors.com/vendor/g-e-t-enterprises/) Houston, Texas Manufacturer of melamine dinnerware, plastic drinkware, hardwood and chrome tray stands for the casino food and beverage industry. Private labeling and custom logos are available upon request. Category: Equipment, Dinnerware |
|
||||||
|
| 8 | [G.H.I. Solutions, Inc. - Gaming Hospitality Information Solutions](https://www.casinovendors.com/vendor/g-h-i-solutions-inc-gaming-hospitality-information-solutions/) Las Vegas, Nevada G.H.I. Solutions is a company where our passion for technology and business process improvement translates into a more profitable business for you. We are a team of leading experts in the gaming and hospitality industries, and with decades of combined experience, we know ... Categories: Consulting, Computer Systems, Database Marketing, Consulting, Consulting |
|
||||||
|
| 9 | [G.Partners](https://www.igamingaffiliateprograms.com/affiliate-program/g-partners/) Category: Affiliate Programs |
|
||||||
|
| 10 | [G2 Database Marketing](https://www.casinovendors.com/vendor/g2-database-marketing/) Abita Springs, Louisiana With nearly 25 years in the casino industry and over 30 years of marketing management and analysis experience, we have the in-depth, hands on experience and record for success that will help you meet your bottom line objectives. Category: Database Marketing, Consulting |
|
||||||
|
| 11 | [Gable](https://www.casinovendors.com/vendor/gable/) Baltimore, Maryland As a leader in a new era of visual communications, Gable stands at the intersection of technology and craftsmanship, integrating digital displays, audiovisual, signage, and lighting into the most complex environments. We have the people, technology and experience to develop,... Category: Large Screen |
|
||||||
|
| 12 | [Gabsys](https://www.igamingsuppliers.com/vendor/gabsys/) Gabsys is a company that provides betting, gambling products and solutions along with industry best practice with new approaches tailored to meet your business needs. Categories: Sportsbook Software, Platform Providers, Gambling Operations |
|
||||||
|
| 13 | [Gaelco](https://www.casinovendors.com/vendor/gaelco/) Barcelona, Spain Gaelco is one of the most important video game developers and publishers in the world. Our recognised professional experience allows us to produce ever more entertaining and exciting games, providing players with unforgettable thrills and emotion. The secret of our success ... Category: Other |
|
||||||
|
| 14 | [Gafcon, Inc.](https://www.casinovendors.com/vendor/gafcon-inc/) San Diego, California Gafcon, Inc. offers a full range of Gaming and Hospitality Preconstruction and Construction related Professional Services, including Program Management, Construction Management, Reconstruction Services and Legal Support. Category: Management Services, General Contracting |
|
||||||
|
| 15 | [Gaff Tapes](https://www.casinovendors.com/vendor/gaff-tapes/) San Antonio, Texas We sell Adhesive products such as gaffers tape and spike tape used in Casino concerts and exhibitions. For over 20 years, Gaff Tapes has been catering to Las Vegas casinos such as the LVH, Caesars, and many more. We sell our products for 40% less than our competitors, no sal... Category: Other |
|
||||||
|
| 16 | [GAFFG - Gaming Affiliates Guide](https://www.igamingsuppliers.com/vendor/gaffg-gaming-affiliates-guide/) Gaffg.com is a portal for webmasters and affiliates in the online gambling industry. Of course any content that is relevant for online marketing will be present and any useful information about the online gaming business as a whole. This site aims to be the market place for ... Category: Other |
|
||||||
|
| 17 | [Gage Corporation, International](https://www.casinovendors.com/vendor/gage-corporation-international/) Sparta, Wisconsin The Gage Corporation, International serves architects and designers around the globe with distinctive metal architectural products. Gage is recognized worldwide as a premier supplier of specialty metal architectural products. Category: Metal |
|
||||||
|
| 18 | [Gaging.com](https://www.casinovendors.com/vendor/gaging-com/) Las Vegas, Nevada We are based in Las Vegas and specialize in product knowledge and after-sales service and training. We carry a wide range of industrial products and have over twenty-five years of measurement experience. Download our free Dice Micrometer instructions for Fowler & VIS micro... Category: Tools |
|
||||||
|
| 19 | [Galantz SRL](https://www.casinovendors.com/vendor/galantz-srl/) Buenos Aires, Capital federal, Argentina The Company is a very competitive provider of cash handling equipment with an excellent after sale service. Category: Counterfeit Detectors |
|
||||||
|
| 20 | [Galaxia Electronics Co., Ltd.](https://www.casinovendors.com/vendor/galaxia-electronics-co-ltd/) Seoul, South Korea Galaxia Electronics is the sister company of the Hyosung Group and we are the leading company of LED Display and LED Media Facade manufactuere in Korea. Category: LED Systems |
|
||||||
|
| 21 | [Galaxion LLC](https://www.casinovendors.com/vendor/galaxion-llc/) Odessa, Ukraine Galaxion is a Ukrainian company engaged in the field of gaming business: operation, sales, distributing, manufacturing and servicing of gaming equipment and components. Category: Amusement Equipment, Casino Software |
|
||||||
|
| 22 | [Galaxsys LLC](https://www.igamingsuppliers.com/vendor/galaxsys-llc/) Yerevan, Armenia Galaxsys offers a wide range of fast and skill games in the iGaming industry. Our game portfolio has been developed to allow our partners to increase their overall offering, improve both player acquisition and retention, and generate profitable growth. Category: Skill Games Software |
|
||||||
|
| 23 | [Galaxy 88 Ltd](https://www.casinovendors.com/vendor/galaxy-88-ltd/) London, United Kingdom Category: |
|
||||||
|
| 24 | [Galaxy Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/galaxy-affiliates/) London, England, United Kingdom Category: Affiliate Programs |
|
||||||
|
| 25 | [Galaxy Control Systems](https://www.casinovendors.com/vendor/galaxy-control-systems/) Walkesville, Maryland Category: Other, Other |
|
||||||
|
| 26 | [Galaxy Entertainment Group](https://www.casinovendors.com/vendor/galaxy-entertainment-group/) Central, Hong Kong Galaxy Entertainment Group (“GEG” or the “Group”) is one of the world’s leading resorts, hospitality and gaming companies. GEG is listed on the Hong Kong Stock Exchange and is a constituent of the Hang Seng Index. GEG is one of the three original concessionaires in Macau... Category: Other |
|
||||||
|
| 27 | [Galaxy Event Productions](https://www.casinovendors.com/vendor/galaxy-event-productions/) Sunrise, Florida Galaxy Event Production specializes in award winning, turnkey casino shows and entertainment. We are a full production company that will enhance your casino events! We specialize in grand openings and casino reopening's. We add new high energy to poker tournaments. Be sure ... Category: Theatrical Company, Promotions |
|
||||||
|
| 28 | [Galaxy Gaming](https://www.casinovendors.com/vendor/galaxy-gaming/) Las Vegas, Nevada "Delivering the finest gaming products and experiences in the galaxy" with table games such as the World's most popular side bet,"Lucky Ladies", 21+3, High Card Flush, World Poker Tour Heads Up Hold'em, Emperor's Challenge Pai Gow Poker and more. Also, offering players a ch... Category: New Game Manufacturer, Table Game Manufacturer |
|
||||||
|
| 29 | [Galaxy Plaza Ltd.](https://www.casinovendors.com/vendor/galaxy-plaza-ltd/) Vratsa, Vraca, Bulgaria Galaxy Plaza Ltd. is a Bulgarian private company, established in 1996 and specialized in design, production, delivery and installation of the fully furnishing for houses, stores, hotels, bars, coffee-houses, restaurants and offices. We have also a sheet metal processin... Category: Furnishings |
|
||||||
|
| 30 | [Galaxy Sign Source LLC](https://www.casinovendors.com/vendor/galaxy-sign-source-llc/) Chapel Hill, North Carolina Galaxy Sign Source is a newly formed company under the leadership of a management team who share over 100 years of combined expertise in sign sales, design and fabrication. Our research and manufacturing facility is located in China and this enables us to offer significant ... Category: Neon |
|
||||||
|
| 31 | [Galaxy4games](https://www.igamingsuppliers.com/vendor/galaxy4games/) Tallinn, Estonia Galaxy4Games team is based on high-skilled game industry professionals. Our experience spans match3, match2, farm, hidden objects, physics puzzles, and bingo projects along with different metagame mixes. Our main rules are fast development to test CPI, each stage optimiza... Categories: Software Development, Mobile Gaming, Mobile Gaming |
|
||||||
|
| 32 | [GalaxyText](https://www.casinovendors.com/vendor/galaxytext/) Dorvai, Quebec, Canada Offering SMS text message marketing along with mobile apps and mobile websites for casinos of all sizes. Category: E-messaging Systems |
|
||||||
|
| 33 | [Galera Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/galera-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 34 | [Galewind Software Corp.](https://www.igamingsuppliers.com/vendor/galewind-software-corp/) Vancouver, British Columbia, Canada Our Adobe Flash application provides the ease of use of a non-download Casino with the rich graphics and fluid animation of a download product. Our offerings include the Practice Casino (shown here), a Bonus and/or Rebate Casino, and a full-featured Tournament Casino. All o... Category: Casino Software |
|
||||||
|
| 35 | [Gallagher Briody-Butler](https://www.casinovendors.com/vendor/gallagher-briody-butler/) Princeton, New Jersey Category: Other |
|
||||||
|
| 36 | [Gallant Background Checks](https://www.casinovendors.com/vendor/gallant-background-checks/) Owasso, Oklahoma Nation Wide background and drug testing services.Certified Business T.E.R.O Tribal Employment Rights Office through Cherokee Nation, Osage, Creek Tribes. We give tribal discounts as a way to give back to the tribes and to help the Indian Community. Our company has Integrity ... Category: Employee Screening, Security and Fraud |
|
||||||
|
| 37 | [Gallery Digital Signage](https://www.casinovendors.com/vendor/gallery-digital-signage/) Fairfield, New Jersey Gallery™ Digital Signage Solutions provides a unique combination of multimedia technology that will inform and effectively engage your audience. The Gallery™ Digital Signage software offering varies from single use to multiple use options showcased through a wide range of ki... Category: Monitors |
|
||||||
|
| 38 | [Gallery Street](https://www.casinovendors.com/vendor/gallery-street/) Roswell, Georgia Gallery Street is an e-commerce site that features an online fine art gallery and the capability to purchase museum quality giclee prints and innovative decor accessories based on art in the gallery. Gallery Street is the only online company that gives visitors access to an ... Category: Art, Wallcoverings |
|
||||||
|
| 39 | [Galls LLC](https://www.casinovendors.com/vendor/galls-llc/) Lexington, Kentucky Galls is your reliable source for quality, in-stock public safety equipment and uniforms. Like you, we're quick, efficient and effective. We understand that the demanding needs of your profession drive your purchasing decisions, so we demand the quality gear you require to d... Category: Uniforms |
|
||||||
|
| 40 | [Galston Associates](https://www.casinovendors.com/vendor/galston-associates/) Trimdon Village, England, United Kingdom Category: Other |
|
||||||
|
| 41 | [Gamanza Group](https://www.igamingsuppliers.com/vendor/gamanza-group/) OPERATORS & GAME DESIGNERS: TAKE CONTROL OF YOUR GAMES & EXCELERATE YOUR BUSINESS! We develop a state of the art DIY- & AGGREGATION GAMING PLATFORM. It contains: a great DYI Toolkit, which gives YOU the outstanding tools to design and easy assemble your own games. Surely ... Category: Platform Providers, Casino Software |
|
||||||
|
| 42 | [Gamatron](https://www.igamingsuppliers.com/vendor/gamatron/) Category: Casino Software |
|
||||||
|
| 43 | [Gambatria](https://www.casinovendors.com/vendor/gambatria/) Las Vegas, Nevada Gambatria (formerly known as Compu-Flyers) has more than 20 years of gaming analysis experience. The company was founded by Lenny Frome, considered for many years to be the premier analyst in the industry. The company is now run by his son Elliot, who has more than 15 year... Category: Game Design |
|
||||||
|
| 44 | [Gambee d.o.o. - Superior Gaming Experience](https://www.casinovendors.com/vendor/gambee-d-o-o-superior-gaming-experience/) Sezana, Slovenia Gambee is dedicated to providing cutting-edge solutions in the area of electronic and automated casino games. Our current focus lies in the design, production and support for advanced electronic table games and slot machines. Our solutions are successfully installed and used... Category: Table Games |
|
||||||
|
| 45 | [GamBetNews](https://www.casinovendors.com/vendor/gambetnews/) Cork, Munster, Ireland GamBet News, formerly Coin Op News Europe, is one of the oldest trade publications in the world for the gaming, betting, casino, bingo and lottery businesses. With unparalleled experience in the industry, GamBet News continues the tradition of providing the very best in up t... Category: Gaming Information, Business Publications |
|
||||||
|
| 46 | [Gamble Beast](https://www.igamingsuppliers.com/vendor/gamble-beast/) Gamble Beast is a market-leading provider of technology solutions to the sports betting and gaming industry supporting both the online and the land-based operations. We have combined together a strong and knowledgeable group of professionals with proven industry expertise... Categories: Platform Providers, Gambling Operations, Sportsbook Software |
|
||||||
|
| 47 | [Gamble Zen Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gamble-zen-partners/) Category: Affiliate Programs |
|
||||||
|
| 48 | [GambleFi Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gamblefi-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 49 | [GambleID, LLC.](https://www.igamingsuppliers.com/vendor/gambleid-llc/) Houston, Texas GambleID (TSEVO) is a leading provider of Payment & Player Compliance solutions focused on online gaming. Our turn-key solution for daily fantasy sports, social gaming, regulated online poker, casino, and sports book operators features all of the payment management, cust... Categories: Software, Geolocation Services, Consulting |
|
||||||
|
| 50 | [GambleOn](https://www.igamingaffiliateprograms.com/affiliate-program/gambleon/) Category: Affiliate Programs |
|
||||||
|
| 51 | [Gamblers Anonymous International Service Office](https://www.casinovendors.com/vendor/gamblers-anonymous-international-service-office/) Gamblers Anonymous is a fellowship of men and women who share their experience, strength and hope with each other that they may solve their common problem and help others to recover from a gambling problem. Category: Other |
|
||||||
|
| 52 | [Gambler's Book Club](https://www.casinovendors.com/vendor/gambler-s-book-club/) Las Vegas, Nevada Since 1964, the world leading resource, largest and oldest bookshop specializing in books, computer software, and videos on gambling, casino management, employee training and all aspects of sports handicapping. Wholesale 70 titles, retails over 2,200. Open Monday-Saturday 9... Categories: Videos, Other, Books |
|
||||||
|
| 53 | [Gamblers General Store, Inc.](https://www.casinovendors.com/vendor/gamblers-general-store-inc/) Las Vegas, Nevada 6,000 items for the home gambler. A full line of chips, casino value, roulette, tournament, promotion in a variety of colors, weights and sizes. A new line of Casino and homestyle roulette wheels: 32 in., 30 in., and 19 in. Award wheels, dice, cards, custom poker chips, ta... Category: Home Gaming Products, Poker Chips |
|
||||||
|
| 54 | [GamblersPick](https://www.casinovendors.com/vendor/gamblerspick/) Or Yehuda, Israel GamblersPick.com is a community-driven online casinos portal that provides comprehensive information about all aspects of online gambling at online casinos. From industry news to casino and bonus reviews, as well as tips, tricks, and advice to enhance your chances of winning... Categories: Consumer Portals, Directories, Internet |
|
||||||
|
| 55 | [GambleStakes Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gamblestakes-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 56 | [Gamblify ApS](https://www.igamingsuppliers.com/vendor/gamblify-aps/) Copenhagen, Denmark Gamblify ApS is a privately owned, independent company that produces hardware and software solutions for the gambling industry. The current product portfolio consists of a slot-machine platform, a betting terminal solution and an online casino. Category: Software Development, Casino Software |
|
||||||
|
| 57 | [Gambling Affiliation](https://www.financeaffiliateprograms.com/affiliate-program/gambling-affiliation/) Sliema, Malta Gambling-Affiliation.com, also known as Net Business Ltd, was created in 2006 by two french entrepreneurs. It offers its affiliates and brands an independent platform where both parties find a unique place to send and receive traffic dedicated to the iGaming industry. The fi... Category: Affiliate Programs |
|
||||||
|
| 58 | [Gambling Consulting](https://www.igamingsuppliers.com/vendor/gambling-consulting/) Boulogne, Île-de-France, France Gambling Consulting is specialized in E.U Gambling Markets. Experienced in all Marketing means to reach your targeted audience and increase your customer database at the lowest cost. Our pledge is to promote the highest professionalism and ethical standard. Category: Consulting |
|
||||||
|
| 59 | [Gambling Craft](https://www.igamingaffiliateprograms.com/affiliate-program/gambling-craft/) Gambling Craft is a reliable affiliate program with in house developed casino brands, affiliate platform and games currently in development. The team consists of iGaming experts with 10 years of experience in the industry. There are more than 300 employees that work with one... Category: Affiliate Programs |
|
||||||
|
| 60 | [Gambling Insider](https://www.casinovendors.com/vendor/gambling-insider/) London, England, United Kingdom Gambling Insider is the free premier event-driven B2B magazine for the gaming industry, delivering first-class industry knowledge, market analysis and trends, and in-depth interviews with those in the know. Members include top-level CEOs, COOs, directors, business owners and... Category: Magazines |
|
||||||
|
| 61 | [Gambling Invest](https://www.casinovendors.com/vendor/gambling-invest/) Providence, Grand' Anse (Mahé), Seychelles GamblingInvest.com is a domain names marketplace completely dedicated to gambling-related domains. From betting domains to casino and sportsbook names, from igaming domains to poker domains, at GamblingInvest.com companies and individuals within the gambling industry can ... Categories: Other, Other, Other, Other, Domain Registration |
|
||||||
|
| 62 | [Gambling Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gambling-partners/) Category: Affiliate Programs |
|
||||||
|
| 63 | [Gambling Soft](https://www.igamingsuppliers.com/vendor/gambling-soft/) Tyumen, Tyumen, Russia Gambling Soft is a relatively young casino software company from Russia. We tried to create a unique and competitive product at a low price, and we succeeded! We offer complete solutions for the iGaming business: slots, games with live dealers, casino sites, turnkey casin... Categories: Casino Software, Casino Software, Affiliate Program Software, Software |
|
||||||
|
| 64 | [Gambling Therapy](https://www.casinovendors.com/vendor/gambling-therapy/) Gambling Therapy is a Global Online Helproom for anybody affected by problem gambling. It is available in 28 different languages and mirrors all those languages that are offered by the gambling operators. Gambling Therapy offers forums, live advice, help and support, e-mail ... Category: Problem Gambling Treatment, Problem Gambling |
|
||||||
|
| 65 | [Gambling Turkey](https://www.igamingsuppliers.com/vendor/gambling-turkey/) Sliema, Malta, Malta Gambling Turkey, the ultimate iGaming digital marketing agency, helps businesses reach their full potential in the Turkish market with superpower of inside knowledge and tailor-made digital marketing services, including SEO, Link building, Web & Graphic design, Copywriting, ... Categories: Social Media, Consulting, Consulting, Translation Services, Website Content, Services |
|
||||||
|
| 66 | [Gambling Wages](https://www.igamingaffiliateprograms.com/affiliate-program/gambling-wages/)*Highest Revenue Sharing in the Industry for the Lifetime of Your Players *Access to Your Own Account Manager with Complete Tracking and Reporting *Fresh Content! *On-Time Payments! *Cutting Edge Marketing Technology and Effective Tools to Maximize Returns *2-Tier ... Category: Affiliate Programs |
|
||||||
|
| 67 | [GamblingDomains.io](https://www.igamingsuppliers.com/vendor/gamblingdomains-io/) GamblingDomains.io is the premier marketplace for gambling domains. We cover all the main gambling verticals including casino, bingo, sportsbetting, poker and lottery. Our domains include some that are well over 10 years old as well as ones that have an existing backlink pro... Category: Other, Domain Registration |
|
||||||
|
| 68 | [GamblingProfesional](https://www.igamingsuppliers.com/vendor/gamblingprofesional/) Montevideo, Montevideo, Uruguay GamblingProfesional is an independent Spanish speaking community, link between affiliates, affiliate programs, agencies and professionals involved in the online gambling and financial products market. Its administrators are not owners, nor do they have direct dependence bond... Category: Business Portals |
|
||||||
|
| 69 | [Gamblo Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gamblo-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 70 | [Gamdom Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gamdom-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 71 | [Game Box Builders](https://www.casinovendors.com/vendor/game-box-builders/) Greensboro, North Carolina Our company is owned and operated by leaders in the gaming industry. Game Box Builders is staffed by experienced engineers, designers, and cabinetry experts. Our facilities are equipped with state-of-the-art manufacturing technologies to meet the personalized demands of our ... Categories: Electronic Games, New Game Manufacturer, Bases-Cabinets-Stands (Wood) |
|
||||||
|
| 72 | [Game Design Automation Pty Ltd](https://www.casinovendors.com/vendor/game-design-automation-pty-ltd/), New South Wales, Australia Tools for the design of advanced slot machine mathematics and development of game prototypes. Categories: Game Design, Design, Other |
|
||||||
|
| 73 | [Game Guys LLC](https://www.casinovendors.com/vendor/game-guys-llc/) New Orleans, Louisiana Poker Productions offers a complete line of quality casino games for rent. Our friendly, knowledgeable and patient dealers will entertain and teach you guest how to play. Our prices are affordable and our customer service is second to none. We have been serving our customers... Category: Casino Party Rental |
|
||||||
|
| 74 | [Game Interaction Group BV](https://www.igamingsuppliers.com/vendor/game-interaction-group-bv/) AMESTERDAM, Netherlands Game Interaction Group, provides gaming operators with a complete and modular gaming platform in order to meet all customers’ requirements, no matter how big or small these might be. Thanks to 15 years experience in the i-gaming industry, we understand that lowering opera... Category: Other, Platform Providers |
|
||||||
|
| 75 | [Game Media Works (GMW)](https://www.igamingsuppliers.com/vendor/game-media-works-gmw/) Category: Casino Software, Gambling Operations |
|
||||||
|
| 76 | [Game Media Works](https://www.igamingsuppliers.com/vendor/game-media-works/) Larnaca, Cyprus Category: Platform Providers |
|
||||||
|
| 77 | [Game Show America](https://www.casinovendors.com/vendor/game-show-america/) Sun Prairie, Wisconsin Game Show America offers a number of exciting interactive floor promotions to draw traffic to your casino. We work with you and your promotions and marketing team to provide the best promotions possible to increase player loyalty. Each one of our game promotions are thorough... Category: Promotions |
|
||||||
|
| 78 | [Game Show Gurus](https://www.casinovendors.com/vendor/game-show-gurus/) Hoffman Estates, Illinois Game Shows are Winners With Your Guests, Which Means a Jackpot for Your Casino. Casinos can use our game shows for many things: •Entertainment Stages •Player Development •Floor Promotions •Traffic Building •Private Events/Banquets. We are very easy to work with and cost effe... Categories: Multi-media Productions, Stage Equipment, Production, Promotions |
|
||||||
|
| 79 | [Game Shows Alive](https://www.casinovendors.com/vendor/game-shows-alive/) Coral Springs, Florida Game Shows Alive can emulate, create and produce TV style game shows for use at any type of event. We offer full production anywhere in the United States. Category: Production |
|
||||||
|
| 80 | [Game Stands, LLC](https://www.casinovendors.com/vendor/game-stands-llc/) El Cajon, California Game Stands has a proven track record with over 24 years of experience. Integrity along with a solutions based focus gives Games Stands a unique opportunity to add value to our customers' business. Categories: Electronic Games, Accessories, Parts |
|
||||||
|
| 81 | [Game Time Amusement and Billiards](https://www.casinovendors.com/vendor/game-time-amusement-and-billiards/) Tempe, Arizona We have over 50 years experience in the Amusement and Gaming industry. We wholesale slot and video lottery machines worldwide as well as provide consulting in different applications. Category: Consulting, Amusement Equipment |
|
||||||
|
| 82 | [Game World Event Services, LLC.](https://www.casinovendors.com/vendor/game-world-event-services-llc/) St Charles, Missouri Game World Event Services specializes in corporate parties and trade shows. We carry a full line of professional grade casino equipment as well as simulators, video games, pool tables, inflatables, carnival and arcade activities. All of the equipment we offer is owned and op... Category: Amusement Equipment |
|
||||||
|
| 83 | [Game360](https://www.igamingsuppliers.com/vendor/game360/) Rome, Italy Game360, part of SG Digital, has developed a comprehensive, self made and proprietary platform which supports multichannel gaming by providing interfaces over web, mobile, tablet and other devices like smart tvs. This platform includes content management, customer relatio... Category: Platform Providers, Gambling Operations |
|
||||||
|
| 84 | [Game-Ace](https://www.igamingsuppliers.com/vendor/game-ace/) Kharkiv, Ukraine Game-Ace Creative Studio is a game development division of Program-Ace, headquartered in Eastern Ukraine. We are a talented and creative team of designers, artists, producers, programmers, and managers who are focused on crafting addictive games that amaze and excite players... Category: Casino Software |
|
||||||
|
| 85 | [Gameacon](https://www.casinovendors.com/vendor/gameacon/), New Jersey At its core, every casino has its theme and the demographics to which it caters. But today's, and the future's customers of the casino industry have grown up in a very technical world. They believe in different philosophies and look for an overall immersive experience to en... Category: Other, Conferences |
|
||||||
|
| 86 | [GameAnalytics Ltd](https://www.casinovendors.com/vendor/gameanalytics-ltd/) Edinburgh, Scotland, United Kingdom GamesAnalytics believes there is a new doctrine in games: Player Relationship Management. Founded in 2010, we bring together extensive expertise from both the games and data mining industries to offer cross-platform predictive analytics technology solutions. Headquartered in... Category: Other |
|
||||||
|
| 87 | [GameArt](https://www.igamingsuppliers.com/vendor/gameart/) Ta' Xbiex, Malta GameArt is an independent online casino software provider and developer, providing innovative games and cutting-edge solutions dedicated to online and landbased gaming operators. The company was founded in 2013 by a group of serial entrepreneurs who have had successful exper... Categories: Gambling Operations, Software Development, Casino Software, Mobile Gaming, Other |
|
||||||
|
| 88 | [GameBridge Services Limited](https://www.igamingsuppliers.com/vendor/gamebridge-services-limited/) Douglas, Isle of Man GameBridge provides everything you need to launch and grow your iGaming business - player management, bonuses, payments, CRM, risk & compliance, analytics, gamification, native apps, and much more - all in one platform. Ready for real-money casinos, sweepstakes, crypto gamin... Category: Gambling Operations, Platform Providers |
|
||||||
|
| 89 | [Gameburger Studios](https://www.igamingsuppliers.com/vendor/gameburger-studios/) Gameburger Studios is a game development studio launched in 2019 which is dedicated to producing premium games with all the trimmings. The company supplies their online games exclusively to Microgaming. Category: Casino Software |
|
||||||
|
| 90 | [GameCo](https://www.casinovendors.com/vendor/gameco/) New York, New York GameCo LLC is a pioneering company uniting the experience of playing video games with the excitement of gambling by creating the world’s first Video Game Gambling Machines (VGM™). Video Game Gambling combines the fun and interactivity of video games with the thrill and an... Category: Slot Machines |
|
||||||
|
| 91 | [GameColony.com Affiliate Program](https://www.igamingaffiliateprograms.com/affiliate-program/gamecolony-com-affiliate-program/) Category: Affiliate Programs |
|
||||||
|
| 92 | [Gamecraft](https://www.casinovendors.com/vendor/gamecraft/) Rydalmere, New South Wales, Australia Gamecraft develop progressive jackpot link strategies to increase gaming machine performance and revenue. Our main effort is to create value by achieving a sustained increase in turnover to gaming machine operations. Category: Other, Progressive Jackpot Equipment |
|
||||||
|
| 93 | [GamedayMath](https://www.igamingsuppliers.com/vendor/gamedaymath/) Orlando, Florida GamedayMath is a bettor’s guide to getting an edge against the sportsbooks. With us, there is unlimited earning potential with our affiliate program. There's no ceiling on how much you can earn, offering you the freedom to maximize your income. The more effort and skill you ... Category: Sportsbook Software |
|
||||||
|
| 94 | [Gamefish Global](https://www.igamingsuppliers.com/vendor/gamefish-global/) Sydney, New South Wales, Australia Gamefish Global is a premium casino game development and distribution provider. Category: Casino Software, Casino Software |
|
||||||
|
| 95 | [Gamegram Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gamegram-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 96 | [GameGrow Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gamegrow-partners/) Category: Affiliate Programs |
|
||||||
|
| 97 | [GameHouse](https://www.igamingsuppliers.com/vendor/gamehouse/) At GameHouse, we believe it’s good to game. That’s why we are dedicated to a single mission: to enrich lives through games and experiences that people love to play and share. As the largest developer, publisher, and distributor of casual games with millions of players around... Categories: Software Development, Casino Software, Mobile Gaming, Other |
|
||||||
|
| 98 | [Gameiom Technologies Limited](https://www.igamingsuppliers.com/vendor/gameiom-technologies-limited/) Douglas, Isle of Man GAMEIOM has two main objectives: firstly, to provide an aggregation platform that allows game developers a quick and viable route to market; and secondly, to provide content, including proprietary products, that excites and engages players from all over the globe. We are ... Category: Platform Providers, Casino Software |
|
||||||
|
| 99 | [GameOn Consultants Limited](https://www.igamingsuppliers.com/vendor/gameon-consultants-limited/) Onchan, Isle of Man GameOn Consultants offers a wide range of services from advice and assistance with implementation of products and licensing, sourcing and managing white label solutions; developing product set up requirements, devising bonus and loyalty strategies, fraud and risk analysis an... Categories: Licensing and Regulation, Consulting, Security and Fraud, Consulting |
|
||||||
|
| 100 | [GameOn Marketing Limited](https://www.igamingsuppliers.com/vendor/gameon-marketing-limited/) Isle of Man, United Kingdom Categories: Other, Search Engine Optimization, Trade Shows and Conferences |
|
||||||
|
| 101 | [GameOn Marketing](https://www.igamingaffiliateprograms.com/affiliate-program/gameon-marketing/) Onchan, Isle of Man GameOn Affiliates, a division of GameOn International Limited, provides gaming clients with tailored affiliate management services and excellent customer value. We specialise in taking the extra step by focusing directly on the player acquisition journey, from affiliate recr... Categories: Affiliate Programs, Consulting, Consulting |
|
||||||
|
| 102 | [GamePlan Consultants Pty. Ltd.](https://www.casinovendors.com/vendor/gameplan-consultants-pty-ltd/) Burleigh Heads, Queensland, Australia Our entire focus in training and consulting is based on the CRM philosophy. We believe that CRM starts with the right people, and the way in which the casino treats its own people. Internal marketing is thus a major thrust of our organization wherein we blend marketing and H... Category: Consulting |
|
||||||
|
| 103 | [Gameplay Interactive](https://www.igamingsuppliers.com/vendor/gameplay-interactive/) Gameplay Interactive provide the most engaging and gaming experience for your players consists of many online gaming product including the industry leader in Live Dealers Casino, 3D Slot and Games, Lottery (Keno and iLotto), Sportsbetting, P2P games such as Poker Mahjong pro... Categories: Casino Software, Poker Software, Live Dealer, Sportsbook Software, Gambling Operations |
|
||||||
|
| 104 | [Gameplay Media GmbH](https://www.igamingsuppliers.com/vendor/gameplay-media-gmbh/) Frankfurt, Germany GamePlay Media GmbH is a media buying & planning agency for the entertainment sector. The range of services includes all aspects of online marketing like social media, SEM, SEO, real-time bidding (RTB) and display, affiliates and newsletter marketing. Category: Social Media |
|
||||||
|
| 105 | [Gamer Casino Seating](https://www.casinovendors.com/vendor/gamer-casino-seating/) Parkmore Sandton, Gauteng, South Africa Gamer Entertainment Products is a South African based company, specializing in the manufacturer of customized casino slot and table seating. Gamer Entertainment is is a vibrant, young and innovative manufacturer of casino table and slot seating whose creative designs emphasi... Categories: Bases-Cabinets-Stands (Wood), Bases-Cabinets-Stands (Metal), Other |
|
||||||
|
| 106 | [Gameroom Gallery](https://www.casinovendors.com/vendor/gameroom-gallery/) Ridgeland, Mississippi We are Central Mississippi's oldest and largest pool table and Gaming supplier. We offer a full array of casino supplies, game seating, barstools, combination game tables, billiard table lights, wall art, pool cues, air hockey, foosball tables, restaurant seating and amuseme... Categories: Casino, Furnishings, Furnishings |
|
||||||
|
| 107 | [Gameroomdepot](https://www.casinovendors.com/vendor/gameroomdepot/) anjou, Quebec, Canada Categories: Equipment, Blackjack Tables, Equipment, Equipment, Other, Chips, Manufacturer |
|
||||||
|
| 108 | [Games Global Limited](https://www.igamingsuppliers.com/vendor/games-global-limited/) Douglas, Isle of Man Games Global is a supplier of unique and innovative iGaming content. Bringing together some of online gaming's biggest and brightest stars, the Games Global portfolio is home to thousands of titles from 50+ studio partners. Category: Casino Software |
|
||||||
|
| 109 | [Games Marketing Services](https://www.casinovendors.com/vendor/games-marketing-services/) Paris, France In the advisory field, Games Marketing Services’ approach is market and customer orientated. In-depth analysis and understanding of customer objectives allow suitable solutions in terms of means, structure and deadlines. The proximity that defines each of GMS missions result... Category: Multi-media Productions |
|
||||||
|
| 110 | [Games Valley](https://www.igamingsuppliers.com/vendor/games-valley/) Cluj Napoca, Romania Games Valley delivers a modern, technology-led approach to game aggregation, designed to meet the needs of today’s iGaming operators. Our team brings decades of hands-on industry knowledge, which has shaped a resilient and scalable infrastructure built for high performance. ... Category: Other |
|
||||||
|
| 111 | [Games Warehouse](https://www.casinovendors.com/vendor/games-warehouse/) Pride Park, England, United Kingdom Games Warehouse has grown to become the leading supplier of pay-to-play video entertainment terminals in the UK. The Company has developed an ever-expanding portfolio of gaming and skill/entertainment products targeted at its core UK customer base and beyond. We are co... Categories: Game Design, Casino Software, Mobile Gaming |
|
||||||
|
| 112 | [GameScale Europe Limited](https://www.igamingsuppliers.com/vendor/gamescale-europe-limited/) St. Paul's Bay, Malta GameScale provides a unique gaming platform designed for running a successful online gaming business. Our mission is to provide you with the best technology, which is custom, suited to your present and future needs. We can build exclusive software to specification or help yo... Categories: Live Dealer, Casino Software, Sportsbook Software, Racebook Software |
|
||||||
|
| 113 | [GAMESERVICE S.C.](https://www.casinovendors.com/vendor/gameservice-s-c/) Krosno, Poland Gameservice company is one of the members of Gameservice Group, with headquarters in Haczów, Poland. It is engaged in the manufacture of highly advanced gaming machines. In its designs, the company uses exclusively components from renowned and world-wide acknowledged comp... Category: Slot Machines |
|
||||||
|
| 114 | [GamesGuru Pvt. Ltd.](https://www.igamingsuppliers.com/vendor/gamesguru-pvt-ltd/) New Delhi, Delhi, India Established in 2016, Games Guru is India's driving diversion development organization, giving Casino Game Development and Casino art production services to the worldwide Casino games industry with master's games engineers, design and creation directors working in our workpla... Categories: Casino Software, Poker Software, Bingo Software, Betting Exchange Software, Skill Games Software, Consulting |
|
||||||
|
| 115 | [Gamesman Limited](https://www.casinovendors.com/vendor/gamesman-limited/) West Sussex, United Kingdom Illuminated push-buttons & reel mechanisms. Category: Parts |
|
||||||
|
| 116 | [GameSpring Co. Ltd.](https://www.casinovendors.com/vendor/gamespring-co-ltd/) Seoul, South Korea Casino / Poker game development specialist. Texas Holdem, Badugi, Omaha, High-Low resizing, multitable, replay and even straddle and more features. Online baccarat, blackjack, roulette, taisai, caribbean poker, casino war, slotmachine and World unique squeeze baccarat Se... Categories: Poker Software, Casino Software, Multi-player Games |
|
||||||
|
| 117 | [GamesScorekeeper](https://www.igamingsuppliers.com/vendor/gamesscorekeeper/) Aarhus, Århus, Denmark Today GameScorekeeper delivers esports data and content solutions to some of the leading players in the esports market. Our clients range from betting operators to media companies and fantasy leagues. With extensive coverage of the three biggest esports, CS: GO, League of... Category: Other, Gambling Operations |
|
||||||
|
| 118 | [Gamesys Limited](https://www.igamingsuppliers.com/vendor/gamesys-limited/) London, England, United Kingdom Gamesys develops proprietary multi-platform gaming software consisting of Instant Win, Bingo and Casino Games along with quality promotional and account management tools such as software and design, system security, hosting and maintenance, game development, reporting and Eb... Category: Bingo Software, Casino Software |
|
||||||
|
| 119 | [Gamevy Limited](https://www.igamingsuppliers.com/vendor/gamevy-limited/) London, England, United Kingdom Gamevy is an award-winning, licensed supplier and operator producing a high- quality, select range of real-money games. The company believes in combining skill, chance and life-changing jackpots for the ultimate in fun. Categories: Casino Software, Skill Games Software, Lottery Software, Mobile Gaming |
|
||||||
|
| 120 | [Gamewise](https://www.igamingsuppliers.com/vendor/gamewise/) Miami, Florida Gamewise is a turnkey digital gambling, sportsbook, and gaming infrastructure solution. Category: Gambling Operations |
|
||||||
|
| 121 | [Gaminator](https://www.igamingsuppliers.com/vendor/gaminator/) San Francisco, California Gaminator Casino is a renowned iGaming provider that offers investors a full range of solutions for launching and supporting gaming start-ups. Having started as a small enterprise, the company has achieved stunning success and gained recognition in several markets at once: t... Category: Casino Software |
|
||||||
|
| 122 | [Gaming & Entertainment Touch Technology](https://www.casinovendors.com/vendor/gaming-entertainment-touch-technology/) Las Vegas, Nevada We stock over 45,000 Touch Sensors in our Inventory and we Guarantee to have the lowest prices on Touch Sensors. Our Casino Air products, SmartPower Systems, and Ceronix Monitors are 3 more great ways we offer to save you time and money. Please visit us at www.get-t.net and ... Categories: Touchscreens, LCD, Monitors, Surge Suppression, Power Sources, Air Filtration Systems |
|
||||||
|
| 123 | [Gaming & Leisure](https://www.casinovendors.com/vendor/gaming-leisure/) Las Vegas, Nevada Gaming & Leisure® (G&L) is dedicated to the betterment of the gaming and hospitality industry in all that we do. G&L platforms and offerings provide 360° insight into every industry aspect and reaches owners, operators and the business partners who serve them domestically an... Categories: Other, Magazines, Consulting, Other |
|
||||||
|
| 124 | [Gaming & Resort Development, Inc.](https://www.casinovendors.com/vendor/gaming-resort-development-inc/) Laguna Woods, California The company has a 25 year history of providing comprehensive development & operational consulting, including highly regarded feasibility study services, for casino & resort projects worldwide, and for Tribal Communities in the U.S. & Canada. Categories: Development: Indian Gaming, Market Research and Development, Consulting, Feasibility Studies, Consulting, Consulting |
|
||||||
|
| 125 | [Gaming Analytics, Inc.](https://www.casinovendors.com/vendor/gaming-analytics-inc/) Berkeley, California Gaming Analytics offers software solutions that help casino operators make strategic improvements to the casino floor. GA saves time with AI doing the hard work for you. Category: Software Development |
|
||||||
|
| 126 | [Gaming Arts, LLC](https://www.casinovendors.com/vendor/gaming-arts-llc/) Las Vegas, Nevada Gaming Arts, a leader in "Life Changing" gaming products, is dedicated to bringing innovation and excitement to the Gaming industry. The Gaming Arts management team includes leaders in the field with many decades of experience to the younger tech savvy, providing a managemen... Category: Other |
|
||||||
|
| 127 | [Gaming Associates](https://www.casinovendors.com/vendor/gaming-associates/) Bella Vista, New South Wales, Australia Gaming Associates provide payment card industry (PCI), regulatory compliance, corporate governance and compliance, enterprise risk management to casinos, lottery operators, regulators, bet exchanges, bookmakers... Gaming is our business. PCI certification and implementation.... Categories: Consulting, Consulting, Consulting, Other, Consulting |
|
||||||
|
| 128 | [Gaming Books International](https://www.casinovendors.com/vendor/gaming-books-international/) Las Vegas, Nevada Have been selling these books since 1985 and they continue to be in demand because they are easy to understand and are priced right at $3.50 Retail. These are humorous and informative books on Las Vegas games. Category: Gaming Information |
|
||||||
|
| 129 | [Gaming Capital Group](https://www.casinovendors.com/vendor/gaming-capital-group/) Newcastle, Oklahoma Gaming is a highly challenging environment for traditional lenders. Often, new projects must struggle to find the right financing mix to get their project off the ground. Gaming equipment manufacturers and distributors often need growth capital based on their equipment ass... Categories: Leasing, Other, Financing |
|
||||||
|
| 130 | [Gaming Cards LTD](https://www.casinovendors.com/vendor/gaming-cards-ltd/) Santa Ana, California Category: Playing Cards |
|
||||||
|
| 131 | [Gaming Consultants International](https://www.casinovendors.com/vendor/gaming-consultants-international/) Dingley, Victoria, Australia Internationally recognised gaming consultants with extensive experience in slot machines, slot systems, performance analysis and improvement, technical standards, government relations and overall casino/gaming project management. Category: Consulting |
|
||||||
|
| 132 | [Gaming Corps](https://www.igamingsuppliers.com/vendor/gaming-corps/), Sweden Gaming Corps is a Swedish video game and interactive entertainment company with offices and development resources in Stockholm, Austin and Malta. Category: Casino Software, Casino Software |
|
||||||
|
| 133 | [Gaming Entertainment](https://www.igamingsuppliers.com/vendor/gaming-entertainment/) Sofia, Sofija-Grad, Bulgaria As a company we are constantly striving to evolve, with a team of seasoned rockstars in the iGaming industry, we make sure to stay one step ahead of the curve. We are constantly monitoring the ever changing landscape of the scene and quickly adapt our operations and vision t... Category: Platform Providers, Gambling Operations |
|
||||||
|
| 134 | [Gaming Equipment Manufacturing (GEM)](https://www.casinovendors.com/vendor/gaming-equipment-manufacturing-gem/) Khimki, Moskva, Russia Gaming tables, chairs, wheels, accessories. Categories: Table Game Manufacturer, Slot Stools, Equipment, Chips, CCTV Systems |
|
||||||
|
| 135 | [Gaming Floor](https://www.casinovendors.com/vendor/gaming-floor/) London, England, United Kingdom Gaming floor is a leading worldwide resource for casino trade and industry news. Content includes daily headline newslinks and press releases. Product and suppliers, stock prices, operator web site listings by coutry & continent, conference and exhibition dates, casino emplo... Categories: Gaming Information, Internet, Education |
|
||||||
|
| 136 | [Gaming Gifts](https://www.casinovendors.com/vendor/gaming-gifts/) Las Vegas, Nevada GAMING GIFTS - Supplier and manufacturer of Exquisite Casino Gaming Gifts & Awards. The sculpted, polished beauty of our crystal pieces make them unique, one-of-a-kind gifts for your all your Special Events & Tournaments. These popular designs of the Royal Flush, Blackjack, ... Categories: Gift Merchandise, Imprinted Products, Promotions |
|
||||||
|
| 137 | [Gaming in EU](https://www.igamingsuppliers.com/vendor/gaming-in-eu/) Gemert, Netherlands Gaming in EU organizes organizes the annual Gaming in Spain, Gaming in Germany and Gaming in Holland conferences. The conferences offer knowledge and networking to everyone who is professionally involved in the gaming industry: from business executives to independent consult... Categories: Trade Shows and Conferences, Trade Shows and Conferences, Trade Shows and Conferences, Business Publications, Business Publications, Business Publications |
|
||||||
|
| 138 | [Gaming in Holland](https://www.casinovendors.com/vendor/gaming-in-holland/) Gaming in Holland is the leading platform for Gaming and Lotteries in the Netherlands. With weekly local News updates and the Yearly Conference, we reach all industry decision makers in this space. Category: Gaming Information |
|
||||||
|
| 139 | [Gaming Informatics LLC](https://www.casinovendors.com/vendor/gaming-informatics-llc/) Madison, Wisconsin Auditing and Compliance software for casino operations and regularly bodies (Tribal Commissions, State, Federal) Categories: Indian Gaming, Auditing, Accounting: Slots |
|
||||||
|
| 140 | [Gaming Innovation Group Limited](https://www.igamingsuppliers.com/vendor/gaming-innovation-group-limited/) St. Julians, Malta At GiG, we pride ourselves in what we do. More than 700 GiGsters from 35 different countries are going all in to make a whole industry open and connected, like never before. We do great stuff and never settle for anything ordinary. We are game changers, because what else is ... Categories: Platform Providers, Sportsbook Software, Other |
|
||||||
|
| 141 | [Gaming Intelligence](https://www.casinovendors.com/vendor/gaming-intelligence/) London, England, United Kingdom Category: Gaming Information |
|
||||||
|
| 142 | [Gaming Laboratories International, LLC (GLI)](https://www.casinovendors.com/vendor/gaming-laboratories-international-llc-gli/) Lakewood, New Jersey Compliance is the heart of what Gaming Laboratories International (GLI®) does for suppliers, regulators, and operators worldwide. In 707 jurisdictions, companies turn to GLI for help with their compliance challenges in the areas of land-based gaming, iGaming, lottery, and cy... Categories: On-site Inspections, Training, General, Test and Measurement Equipment, Consulting, Auditing |
|
||||||
|
| 143 | [Gaming Licensing](https://www.igamingsuppliers.com/vendor/gaming-licensing/) Willemstad, Curaçao Licensing of all iGaming Products — online casinos, sports betting, poker, lotteries, and bingo. Quick and cost effective licensing solution for your igaming business. Category: Licensing and Regulation, Consulting |
|
||||||
|
| 144 | [Gaming Mail](https://www.igamingsuppliers.com/vendor/gaming-mail-1/) Basingstoke, England, United Kingdom We provide engaging offline gaming brand experiences that deliver. We manage the process for direct mail campaigns from end to end. From the strategic acquisition of printed goods to promoting your brand or product in the most efficient and cost-effective way possible Category: Direct Marketing |
|
||||||
|
| 145 | [Gaming Mail](https://www.igamingsuppliers.com/vendor/gaming-mail/) Basingstoke, England, United Kingdom Category: Direct Marketing |
|
||||||
|
| 146 | [Gaming Media Group Inc](https://www.casinovendors.com/vendor/gaming-media-group-inc/) Louisville, Kentucky Gaming Media Group is the publisher of Southern & Midwest Gaming and Destinations, a bi-monthly print and digital magazine widely regarded as the premier resource for casino and travel news throughout the Midwest and South. Every issue delivers expert insights, valuable tips... Category: Magazines |
|
||||||
|
| 147 | [Gaming Point Partner](https://www.igamingaffiliateprograms.com/affiliate-program/gaming-point-partner/) Category: Affiliate Programs |
|
||||||
|
| 148 | [Gaming Realms](https://www.igamingsuppliers.com/vendor/gaming-realms/) London, England, United Kingdom Gaming Realms creates and develops interactive next-generation online gaming applications, focused on delivery via mobile, tablet and desktop computers. Its principle businesses are BingoGodz, a multi-platform real money social bingo game; Bejig, an award-winning designer an... Categories: Gambling Operations, Casino Software, Mobile Gaming |
|
||||||
|
| 149 | [Gaming Recruiters, LLC](https://www.casinovendors.com/vendor/gaming-recruiters-llc/) Saint Louis, Missouri Recruiting services exclusively for the gaming industry since the 90's. Our expertise is identifying difficult to find candidates that fit specific needs and qualifications. We recruit all gaming disciplines including Finance, Marketing, IT, F&B, HR, Cage, Compliance, COO,... Categories: Recruitment, Consulting, Consulting, Staffing Services |
|
||||||
|
| 150 | [Gaming Signs](https://www.casinovendors.com/vendor/gaming-signs/) Buenos Aires, Buenos Aires, Argentina We are a leading manufacturer of indoor and outdoor signage for entertainment areas with unique design and use of materials at just 2/3 of price of other major companies. The Art Department combines their skill and technical experience with the knowledge of the player’s p... Categories: Exterior, Interior, LED Systems, LED, Slot Meters, LED Systems, LED, LED |
|
||||||
|
| 151 | [Gaming Solutions LLC](https://www.casinovendors.com/vendor/gaming-solutions-llc/) Albuquerque, New Mexico Gaming Solutions, LLC has been operating in New Mexico and Arizona for three (3) years. Founded by Lauralyn McCarthy, President of New Mexico Gaming, LLC, we offer over 50 years of gaming and high tech expertise. Our industry contacts and partnerships make Gaming Solutions a... Categories: Parts, Slot Systems, LED Systems, Kiosks, Control Room, Design, Progressive Meters, Videowalls |
|
||||||
|
| 152 | [Gaming Supplies LLC](https://www.casinovendors.com/vendor/gaming-supplies-llc/) Batumi, Georgia Gaming Supplies LLC sells casino equipment from Batumi, Georgia. Our warehouse holds over 80 casino product types, casino spare parts. We manufacture casino products, such as roulette balltrack leveler, card shredder, baccarat playing cards, baccarat and roulette displays. Category: Equipment |
|
||||||
|
| 153 | [Gaming Supply Company](https://www.casinovendors.com/vendor/gaming-supply-company/) Manassas Park, Virginia The company has been in business for over 12 years, selling quality products. They are a Deutsche Wurlitzer Distributor. They have many items priced from $9.60 to $8000.000. They offer warranties and service items. Very friendly family owned business. Category: Other |
|
||||||
|
| 154 | [Gaming Support USA](https://www.casinovendors.com/vendor/gaming-support-usa/) Las Vegas, Nevada Gaming Support is a premier supplier of products and services to the global gaming industry with offices in Nevada, The Netherlands and Belgium. Founded in 2000, the company delivers tried and tested, industry-leading solutions that grow gaming revenues and cut costs for ca... Categories: Bonus Systems, Digital, Controllers, Video, Accessories, Interior |
|
||||||
|
| 155 | [Gaming Technologies](https://www.casinovendors.com/vendor/gaming-technologies/) Vraca, Vraca, Bulgaria Gaming Technologies is a Bulgarian company, dedicated in manufacturing of gaming machines for casinos and arcades. Categories: New Game Manufacturer, Slot Systems, Equipment, Progressive Jackpot Equipment |
|
||||||
|
| 156 | [Gaming Technology Solutions - GTS](https://www.igamingsuppliers.com/vendor/gaming-technology-solutions-gts/) Ipswich, England, United Kingdom Gaming Technology Solutions (GTS), a Playtech company, is a leading global supplier of end-to-end soft gaming solutions for delivery to IP enabled devices and iTV boxes. GTS has become the market leader in the end-to-end delivery of on-line soft gaming solutions. Building on... Category: Mobile Gaming, Casino Software |
|
||||||
|
| 157 | [Gaming Tickets, Inc.](https://www.casinovendors.com/vendor/gaming-tickets-inc/) Columbus, North Carolina IGT approved supplier of cashless slot machine tickets - Gaming Tickets, Inc. provides thermal gaming tickets for use in your 'ticket-in/ticket-out' slot machines (i.e., FutureLogic, Ithaca, and Nanoptix Printers). GTI tickets are 65mm x 156mm and/or 62mm x 120mm. We feature... Categories: TITO Tickets, Tickets, Player Tracking Systems, Ticket Printing, Tickets, Printers, Distributors, Player Tracking Cards, Promotional Tickets, Manufacturing, Bungie Coils and String Cords, Players Club Merchandise, Novelty Supplies, Receipt Paper Rolls, Tickets, Ticket Printing, In-room Access |
|
||||||
|
| 158 | [Gaming Today](https://www.casinovendors.com/vendor/gaming-today/) Las Vegas, Nevada GamingToday has had its finger on the pulse of the gaming industry for nearly 40 years. Its motto, News You Can Bet On, applies to both sides of the table – news for casino customers as well as casino executives. Its specialty printing offers tight turn around, accuracy and ... Category: Gaming Information, Other |
|
||||||
|
| 159 | [Gaming USA Corp.](https://www.casinovendors.com/vendor/gaming-usa-corp/) Paramus, New Jersey The Gaming Industry Weekly Report is about to begin its 16th year of publication and is the oldest gaming stock and gaming information newsletter. The Gaming Industry Daily Report is in its 12th year and was the first daily report focusing on the gaming industry. We soon ... Category: Newsletters |
|
||||||
|
| 160 | [Gaming1 Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gaming1-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 161 | [Gaming1](https://www.igamingsuppliers.com/vendor/gaming1/) Brussels, Belgium Gaming1 is an online full service provider specialised in development of platforms and online casino games adapted to local markets. Based in Brussels, Gaming1 is an ultra-dynamic and innovative company resulting from the partnership between one of the most prestigious we... Categories: Casino Software, Bingo Software, Live Dealer, Mobile Gaming |
|
||||||
|
| 162 | [GamingCables.com](https://www.casinovendors.com/vendor/gamingcables-com/) Las Vegas, Nevada GamingCables.Com was founded in 2010 by Wayne J Shafer, we are located in Las Vegas, Nevada. We offer production services of LED assemblies, wire harnesses and cable assemblies for gaming companies. Parent company KNEXTEC LLC visit knextec.com Categories: Cable Assembly, Wire Harnesses, Electro-mechanical Assembly, Manufacturing, LED, Manufacturer, Connectors, Cable Assembly, LED |
|
||||||
|
| 163 | [GamingLicense.com](https://www.igamingsuppliers.com/vendor/gaminglicense-com/) Nicosia, Cyprus Our team provides expert iGaming license support to clients globally, navigating complex applications and ensuring seamless iGaming compliance with all international regulatory standards. With over 60 years of combined industry expertise, our journey began with 25 years o... Category: Licensing and Regulation |
|
||||||
|
| 164 | [Gamingmatic](https://www.casinovendors.com/vendor/gamingmatic/) Professional Gaming Terminal Manufacturer Category: Video Lottery Terminals |
|
||||||
|
| 165 | [GamingSoft](https://www.igamingsuppliers.com/vendor/gamingsoft/) Makati City, National Capital Region, Philippines GamingSoft is a vendor neutral casino software supplier to various eGaming operators of different sizes across Australia, Eastern Europe and Asia Pacific Countries. We provide casino products like live casino software, slots & games, sportsbooks software, poker, keno, financ... Categories: Gambling Operations, Casino Software, Sportsbook Software, Live Dealer |
|
||||||
|
| 166 | [Gamingtec](https://www.igamingsuppliers.com/vendor/gamingtec/) London, England, United Kingdom Gamingtec is an independent software platform provider. We offer complex turnkey solutions to B2B iGaming partners. Category: Gambling Operations |
|
||||||
|
| 167 | [Gamix Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gamix-partners/) Category: Affiliate Programs |
|
||||||
|
| 168 | [GammaStack](https://www.igamingsuppliers.com/vendor/gammastack/) Wilmington, Delaware GammaStack is the leading provider of fantasy sports and sports betting software. Extending its services in the field of eSports, its has become top rated company for eSports Software Platform development. The company also supplies customized software solutions and whitelabl... Category: Sportsbook Software |
|
||||||
|
| 169 | [GammaTek](https://www.casinovendors.com/vendor/gammatek/) Glendale, Arizona GammaTek's Baccarat displays are designed to appeal to Asian customers, using a column "run-based" method for displaying Baccarat results. GammaTek's Roulette displays are designed for remote casino sites where reliability is key. Our LED displays don't have a tricky ele... Category: Table Top Systems |
|
||||||
|
| 170 | [Gamomat Development GmbH](https://www.casinovendors.com/vendor/gamomat-development-gmbh/) Berlin, Berlin, Germany We are a German specialist gaming content design company with many years of experience across a range of key global markets. Profound knowledge, innovation and passion are reflected in our games - we develop products for the international markets and we are proud to include ... Category: Casino Software, Game Design |
|
||||||
|
| 171 | [Gamshy](https://www.igamingsuppliers.com/vendor/gamshy/) Rome, Italy Category: Casino Software |
|
||||||
|
| 172 | [Gamtec International Ltd](https://www.casinovendors.com/vendor/gamtec-international-ltd/) Denham, England, United Kingdom Gamtec Ltd. was established in 1986 with the purpose of bringing new technology and innovative concepts to the casino market. Our patented casino cash recorder set a new benchmark in MIS. This was further enhanced when Grips of Austria purchased the rights and produced the... Categories: Chips, Synthetic Gaming Layouts, Equipment, Accessories, Blackjack Tables, Equipment |
|
||||||
|
| 173 | [Gamucci Ltd.](https://www.casinovendors.com/vendor/gamucci-ltd/) Soho, England, United Kingdom Category: Specialty Items |
|
||||||
|
| 174 | [Gamzix](https://www.igamingsuppliers.com/vendor/gamzix/) Birkirkara, Malta Gamzix is a Maltese game provider that delivers vibrant slot games and scalable solutions. The provider’s signature Hold the Spin mechanic has become a player favorite, known for keeping the thrill going round after round. Category: Casino Software |
|
||||||
|
| 175 | [GAN - GameAccount Network](https://www.igamingsuppliers.com/vendor/gan-gameaccount-network/) London, England, United Kingdom GameAccount Network is the leading network of skill-based games where players compete against each other, not the house. For several years we’ve been looking beyond poker to identify and supply the world’s leading operators with a suite of games which appeal to and excite ga... Categories: Skill Games Software, Casino Software, Platform Providers, Gambling Operations |
|
||||||
|
| 176 | [Ganapati PLC](https://www.igamingsuppliers.com/vendor/ganapati-plc/) London, England, United Kingdom Bringing a new edge to iGaming, Ganapati is an established multinational company with a reputation for compelling and immersive content uniquely borne out of both Europe and Asia. Effectively implementing strategic sport sponsorship and brand opportunities, Ganapati consider... Category: Casino Software, Mobile Gaming |
|
||||||
|
| 177 | [Gander Group](https://www.casinovendors.com/vendor/gander-group/) Costa Mesa, California An Inc. 5000 company, Gander Group partners with internationally recognized brands and hundreds of casinos across America to provide trend-forward product development and merchandising solutions. Category: Promotions, Market Research and Development |
|
||||||
|
| 178 | [Ganlot, inc.](https://www.casinovendors.com/vendor/ganlot-inc/) New Taipei City, Taiwan Ganlot's range of industrial gaming boards includes specific function which is specifically designed for gaming application such as casino slot games, EGM, Roulette, VLT and AWP. Our core value is to offer the widest and flexible selection of industrial grades products inclu... Categories: Manufacturing, Circuit Board Assembly, Consulting |
|
||||||
|
| 179 | [Ganz Security / CBC Americas Corp.](https://www.casinovendors.com/vendor/ganz-security-cbc-americas-corp/) Cary, North Carolina Ganz Security by CBC is a global leader in the design, development and manufacture of world-class, trend setting security solutions. The Ganz brand offers integrated solutions across multiple market segments and includes an extensive selection of products including IP and an... Category: CCTV Systems |
|
||||||
|
| 180 | [GAO Engineering Inc.](https://www.casinovendors.com/vendor/gao-engineering-inc/) Toronto, Ontario, Canada GAO Engineering Inc. is a single stop resource for quality, market-proven products including GAO ICE's, Flash Programmers, Universal Programmers, Emulators, DSP and Microprocessor Evaluation Boards, Embedded Linux Boards, FPGA+Linux Boards, ARM IDE's, Software Development Ki... Category: Software Development |
|
||||||
|
| 181 | [GaoXin Modern Intelligent System Co., Ltd](https://www.casinovendors.com/vendor/gaoxin-modern-intelligent-system-co-ltd/) Shenzhen, China Established in 1993, Gaoxin Modern Intelligent System Co., Ltd (GXMIS for short) is one of the world's leading turnkey solution provider of automated fare collection systems for public transport including bus, bus rapid transit, light rail, commuter rail, heavy rail, ferry a... Category: Access Control, Kiosks |
|
||||||
|
| 182 | [GAR Products](https://www.casinovendors.com/vendor/gar-products/) Lakewood, New Jersey GAR Products® is a family owned and operated corporation specializing in quality seating, table tops, and table bases for all levels of the hospitality and design industries. Founded in 1956 by Morris H. Garfunkle (Mr. GAR), GAR Products®, now entering its third generation o... Categories: Restaurant, Bases, Casino |
|
||||||
|
| 183 | [Garavelli Enterprises, Inc.](https://www.casinovendors.com/vendor/garavelli-enterprises-inc/) Memphis, Tennessee Garavelli Enterprises, Inc. is a woman owned, small business, manufacturer and supplier. Airport Seating Alliance is a division that supplies high quality public seating and custom power charging solutions to international and regional airports, transportation centers, gove... Category: Benches |
|
||||||
|
| 184 | [Gardenia Software Systems, Inc.](https://www.casinovendors.com/vendor/gardenia-software-systems-inc/) Milford, Ohio Gardenia Software Systems was founded in June, 1989 for the purpose of developing and licensing PC-based software solutions to help streamline cash and document processing operations for enterprises handling large sums of cash and other media types in the gaming, banking, an... Category: Cash Processing, Consulting |
|
||||||
|
| 185 | [Garfinkel Publications](https://www.casinovendors.com/vendor/garfinkel-publications/) Vancouver, British Columbia, Canada Over 20 years experience of working with Native art and artists. We offer an extensive variety of different products, and maintain quality and affordable pricing. We can provide custom services, name drops, and work with our images or your logo. Category: Wearables |
|
||||||
|
| 186 | [GarJen Corp](https://www.casinovendors.com/vendor/garjen-corp/) Bonney Lake, Washington At GarJen Corp we are in the business of developing promotional products that are designed to create a positive product experience, create a positive word of mouth buzz and designed to keep your casino and bingo hall name in front of your players every day. Over 30 years of... Category: Promotional Items |
|
||||||
|
| 187 | [Garland Writing Instruments](https://www.casinovendors.com/vendor/garland-writing-instruments/) Coventry, Rhode Island Garland celebrates 80 years of manufacturing quality writing instruments. Our USA-Made Photo Logo Writing Instruments are highly recognizable by Garland's patented flared top design, which can showcase any full-color logo or image. Garland's complete product line includes ... Categories: Specialties, Promotional Items, Promotions, Promotions, Lapel Pins, Incentives and Awards, Recruitment, Training, General, Seminars: Employee Relations, Gift Merchandise, Souvenirs |
|
||||||
|
| 188 | [Garment Machinery Company](https://www.casinovendors.com/vendor/garment-machinery-company/) Needham, Massachusetts We are New England's Oldest Commercial Laundry Equipment Distributor, since 1939. We sell, install, and service most brands. We are always eager to earn the business. Category: Laundry Equipment |
|
||||||
|
| 189 | [Garner Holt Productions, Inc.](https://www.casinovendors.com/vendor/garner-holt-productions-inc/) San Bernardino, California Garner Holt Productions is known for outstanding design and manufacture of animatronic figures, museum quality static animals, animated props, show action equipment, sets and scenery, and also Creative Design. Clients include Mohegan Sun, Caesars, McDonalds, and Disney park... Category: Animation and Animatronics |
|
||||||
|
| 190 | [Garrett Leather Corp.](https://www.casinovendors.com/vendor/garrett-leather-corp/) Buffalo, New York Garrett Leather is a wholesale distributor of Italian upholstery leather. Over 500 colors are available for immediate shipment. Most orders ship within 24 hours of purchase. Designers may also order custom leather area rugs, made from Garrett's leather, steerhide, wovens, b... Category: Fabrics, Other |
|
||||||
|
| 191 | [Garrett Metal Detectors](https://www.casinovendors.com/vendor/garrett-metal-detectors/) Garland, Texas Garrett Metal Detectors offers you the best products and training that you need to run an effective security checkpoint. From airports and prisons to public venues and nightclubs, our hand-held, walk-through and ground search metal detection products meet the most stringent ... Category: Monitoring |
|
||||||
|
| 192 | [Garrison Flood Control Systems, LLC.](https://www.casinovendors.com/vendor/garrison-flood-control-systems-llc/) New York, New York Garrison™ Flood Control is a New York-based manufacturer and distributor of a complete line of flood control products that help prevent, mitigate and combat flood damage using a series of economical flood control products. Garrison products prevent, contain, divert, and re-r... Category: Engineering |
|
||||||
|
| 193 | [Garron Lottery Products, Inc.](https://www.casinovendors.com/vendor/garron-lottery-products-inc/) Baltimore, Maryland Category: Drawing Equipment |
|
||||||
|
| 194 | [Garuda Promo & Branding Solutions](https://www.casinovendors.com/vendor/garuda-promo-branding-solutions/) Los Angeles, California Garuda Promo and Branding Solutions are led by a team of skilled professionals with years of experience in promotional items, advertising specialties. Together with a sourcing platform of over 3500 vendor partners, we have manufacturing capabilities that cover any custom pro... Categories: Promotional Items, Coin Melting, Exhibit Supplies, Specialty Items, Personal Protection Equipment, Personal Protection Equipment |
|
||||||
|
| 195 | [Gary Green Gaming](https://www.casinovendors.com/vendor/gary-green-gaming/) Boca Raton, Florida Well-known casino industry luminary; star of the television series "CASINO INSIDER"; author of several books on the industry. One of the industry's most publicized and successful track records of development, finance, and management using our copyrighted and patented oper... Categories: Consulting, Consulting, Continuity Programs, Other |
|
||||||
|
| 196 | [Gary Panks Associates](https://www.casinovendors.com/vendor/gary-panks-associates/) Scottsdale, Arizona Category: Architecture, Landscape |
|
||||||
|
| 197 | [Gary Platt Manufacturing, LLC](https://www.casinovendors.com/vendor/gary-platt-manufacturing-llc/) Reno, Nevada Every Gary Platt chair is hand-crafted to perfect the player gaming experience through Unsurpassed Comfort. With over 40 years in delivering state-of-the-art ergonomically sculpted seating, the new generation of X2-Tended play seating continues to push the bounds of excellen... Categories: Casino, Benches, Other, Furniture Manufacturer, Casino, Slot Stools |
|
||||||
|
| 198 | [Gary Taylor Creative Group](https://www.casinovendors.com/vendor/gary-taylor-creative-group/) Los Angeles, California Why the Gary Taylor Creative Group? We offer 15 years of unparalleled service along with award winning work that builds brands and drives sales. We have valuable casino and event marketing experience working with The Venetian resort in Las Vegas. Our clients’ success is what... Category: Full Service Agency |
|
||||||
|
| 199 | [GasanMamo Insurance](https://www.igamingsuppliers.com/vendor/gasanmamo-insurance/) Gzira, Malta Category: Other |
|
||||||
|
| 200 | [Gaspar's Fine Architectural](https://www.casinovendors.com/vendor/gaspar-s-fine-architectural/) North Hollywood, California Gaspar's Fine Architectural Metal Works is a manufacturing company with an old world craftsman heritage and a vision for the future. We specialize in architectural exterior and interior elements, as well as unique furniture parts, fabricated by hand in copper, brass, and she... Category: Interior Design |
|
||||||
|
| 201 | [Gasser Chair Company, Inc.](https://www.casinovendors.com/vendor/gasser-chair-company-inc/) Youngstown, Ohio A Million Ways to Dazzle. Most chairs are designed to fill a space. Gasser chairs are designed to elevate it. For more than 70 years we’ve been designing, building and perfecting the art of commercial seating, using only the highest quality materials. When you buy a Gasser ... Categories: Casino, Slot Stools, Restaurant |
|
||||||
|
| 202 | [Gassis Energy](https://www.casinovendors.com/vendor/gassis-energy/) Atlantic City, New Jersey From 1970 until today, our family business has grown into a recognized and well respected company that has served New Jersey with pride and respect. We have constructed homes and also have built and managed major projects in New Jersey, Pennsylvania and New York. We provide ... Category: General Contracting |
|
||||||
|
| 203 | [GastonRed Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gastonred-affiliates/), Malta Category: Affiliate Programs |
|
||||||
|
| 204 | [Gate To Wire Solutions, Inc.](https://www.casinovendors.com/vendor/gate-to-wire-solutions-inc/) Toronto, Ontario, Canada Gate To Wire Solutions, Inc. (G2W) is a comprehensive service provider and advisory organization to horse racing and pari-mutuel wagering interests in Latin America, comprised of seasoned industry executives whose combined experience is being re-focused on the Latin American... Categories: Wagering, Simulcast Systems, Consulting |
|
||||||
|
| 205 | [Gates Capital Management](https://www.casinovendors.com/vendor/gates-capital-management/) New York, New York Category: Consulting |
|
||||||
|
| 206 | [Gateway Digital](https://www.igamingsuppliers.com/vendor/gateway-digital/) Zoetermeer, Netherlands - Experience of working with one of the top 3 iGaming companies - Registered vendor in the New Jersey Division of Gaming Enforcement - Enterprise - Excellent price-to-quality ratio of game development - Innovation and adaptation of latest technologies - Team of QA engine... Category: Software Development |
|
||||||
|
| 207 | [Gateway FS Construction Services](https://www.casinovendors.com/vendor/gateway-fs-construction-services/) Red Bud, Illinois Gateway FS Construction Services is a leader in the southern Illinois counties of Monroe, Randolph, Clinton, Washington, Perry and St. Clair providing construction service to customers for over 40 years in the areas of Grain Drying and Aeration Systems including Sukup, Shivv... Category: General Contracting |
|
||||||
|
| 208 | [Gaudium](https://www.casinovendors.com/vendor/gaudium/) Olomouc, Czech Republic Recruitment agency Category: Recruitment |
|
||||||
|
| 209 | [Gayle Force Enterprises](https://www.casinovendors.com/vendor/gayle-force-enterprises/) Westlake Village, California Gayle Force is one of the leading talent buyers in the competitive casino entertainment market. The service we provide is so much more than a typical talent-buyer for a casino role, including assistance with marketing, venue management and ticketing. We provide our clients w... Category: Talent Buying, Production |
|
||||||
|
| 210 | [GBE Technologies (gbet)](https://www.igamingsuppliers.com/vendor/gbe-technologies-gbet/) Dublin, Ireland GBE Technologies was established in 1999 with a goal to develop a global exchange platform for the trading of sports bets. Gbet has built its technology around a networked Broker-Exchange model, and it licences its broker software platform to gaming operators globally. Th... Category: Gambling Operations, Betting Exchange Software |
|
||||||
|
| 211 | [GBGroup](https://www.igamingsuppliers.com/vendor/gbgroup/) Chester, England, United Kingdom GBGroup combines individual identity data with technology to provide our clients with the Identity Intelligence they need to make good business decisions based on trust. Category: Security and Fraud |
|
||||||
|
| 212 | [GBL LED Lighting Inc](https://www.casinovendors.com/vendor/gbl-led-lighting-inc/) Vancouver, British Columbia, Canada With over 10 years designing & manufacturing quality LED bulbs for the Gaming and Casino market, we can bring a vibrant atmosphere to your Space. Long OEM and Private Label history! Category: LED |
|
||||||
|
| 213 | [GBL](https://www.igamingsuppliers.com/vendor/gbl/) Kitchener, Ontario, Canada Since 2014, we've helped the iGaming industry capitalize on the rapidly growing digital currency market. We recognized the need to help operators improve their payment efficiency and also lower the overall time and cost of processing a transaction through the use of Bitcoin.... Category: Software, Platform Providers |
|
||||||
|
| 214 | [GBS Linens](https://www.casinovendors.com/vendor/gbs-linens/) Anaheim, California We have been in business for over 20 years providing table linens and laundry services to the Special Events and Food Industry. As a manufacturer, we offer a quick turnaround on purchases and we boast one of the largest rental inventories in our industry. Our linens are de... Category: Table Linens |
|
||||||
|
| 215 | [GC Gaming Curacao](https://www.casinovendors.com/vendor/gc-gaming-curacao/) Willemstad, Colorado Curacao has long been recognized as one of the preferred locations for eGaming operators to base their operations. This success has been due to a combination of factors, such as a progressive legislative system, political stability, first rate telecommunications facilities a... Categories: Mobile Gaming, Compliance, Hosting, Business Brokers, Tokens |
|
||||||
|
| 216 | [GCM Partner](https://www.financeaffiliateprograms.com/affiliate-program/gcm-partner/) Category: Affiliate Programs |
|
||||||
|
| 217 | [GD'Tronics](https://www.casinovendors.com/vendor/gd-tronics/) Keratsini - Piraeus, Greece We design and market professional monitors for non-stop operation ranging from open frame to multimedia monitors. Applications of our monitors include information kiosks, public information displays, gaming & gabling machines. Category: Monitors, Open Frame |
|
||||||
|
| 218 | [GE Interlogix, Kalatel Division](https://www.casinovendors.com/vendor/ge-interlogix-kalatel-division/) Corvallis, Oregon Meeting your security needs - As the need to protect people and property continues to increase, GE Interlogix keeps pace with innovations in security technology. Because we are part of GE, we have the resources of one of the largest companies in America behind us. We put t... Categories: Digital Video Recorders, Multiplexers, CCTV Systems, High-speed Domes, Pan and Tilt Devices, Digital Video Management Systems, Video Multiplexers |
|
||||||
|
| 219 | [Gear for Sports](https://www.casinovendors.com/vendor/gear-for-sports/) Lenexa, Kansas Gear For Sports is a leading national manufacturer of customized sportswear apparel. Graphics are designed with the individual client's needs in mind. The company provides low minimums and fast turnarounds. Categories: Luggage, Logoed, Promotional Products, Apparel, Logoed |
|
||||||
|
| 220 | [Geding Information Inc](https://www.casinovendors.com/vendor/geding-information-inc/) Dongguan, Guangdong, China Company established in October, 1982 started with business of setting up security surveillance system and CCTV system engineering projects. In 1994 for expansion, company started running agency business, importing and selling the reed switches and electronic components and p... Categories: Position Sensors, Position Sensors, Position Sensors, Position Sensors |
|
||||||
|
| 221 | [Geeks of Technology](https://www.casinovendors.com/vendor/geeks-of-technology/) Hollywood, Florida Well-rounded, Florida-based technology expert integrator, providing the gaming industry with Design and Installation services for AudioVisual Systems, Lighting and Climate Controls, Motorized Windows Treatments, Touch Panel Controls, Automation and IT Services. Categories: Controls, Design, Audio Systems, Integration Services, Networking, Communication Systems, Networking Equipment |
|
||||||
|
| 222 | [Gefim Sas](https://www.casinovendors.com/vendor/gefim-sas/) Misinto, Michigan GEFIM offers electronice machines entirely made by painted steel, chrome or gold plated provided with the most important mechanical security that is very reliable. We have 10 years experience in planning and construction of game machines. Besides, each machine, thanks to its... Category: Bases-Cabinets-Stands (Metal) |
|
||||||
|
| 223 | [Gehl's Guernsay Farms Incorporated](https://www.casinovendors.com/vendor/gehl-s-guernsay-farms-incorporated/) Germantown, Wisconsin Gehls Guernsey Farms offers a full ine of cheese sauces, chili sauce, hassle-free dispensers for sauce and tortilla chips. Puddings and Main Street Cafe Iced Lattes are also offered. Category: Other |
|
||||||
|
| 224 | [Geiger Automatenbau GmbH](https://www.casinovendors.com/vendor/geiger-automatenbau-gmbh/) Sonthofen, Germany Geiger is one of the leading supplier for spare parts and accessories in Europe with more than 30 years experience in our branch. We offer you a wide range of items, but we are also concentrated on the token market. We are one of the worlds leading companies for high securit... Category: Tokens |
|
||||||
|
| 225 | [Gemified](https://www.igamingaffiliateprograms.com/affiliate-program/gemified/) Bnei Brak, Israel Gemified is more than a Publisher network - we're a performance engine tailored for the sweepstakes iGaming space. Founded by marketers and engineers who've scaled Publisher empires, we're here to bring a new level of intelligence to user acquisition. Category: Affiliate Programs |
|
||||||
|
| 226 | [Gemini 2000 Ltd](https://www.casinovendors.com/vendor/gemini-2000-ltd/) Poole, England, United Kingdom Since 1997, Gemini 2000 has had the opportunity to pioneer the NFC technology market and provide bookmakers with top-of-the-range products for numerous smart card applications. Over the years we have become established as a leading UK-based manufacturer, developing innovativ... Category: Smart Card Systems |
|
||||||
|
| 227 | [Gemini Gaming LLC of Nevada](https://www.casinovendors.com/vendor/gemini-gaming-llc-of-nevada/) Las Vegas, Nevada Backed by a group of used slot machine parts warehouses, Gemini Gaming offers a large variety of quality, used, and tested slot machine parts for business or personal use. We accept large or small orders and are experts at finding those hard to locate items. Category: Parts, TITO Tickets |
|
||||||
|
| 228 | [Gemini Technologies](https://www.casinovendors.com/vendor/gemini-technologies/) Tecumseh, Michigan Category: Janitorial Equipment and Supplies |
|
||||||
|
| 229 | [GemPartner](https://www.igamingaffiliateprograms.com/affiliate-program/gempartner/) Category: Affiliate Programs |
|
||||||
|
| 230 | [GemSlots Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gemslots-partners/) Category: Affiliate Programs |
|
||||||
|
| 231 | [Gemsys Money Handling Systems Inc.](https://www.casinovendors.com/vendor/gemsys-money-handling-systems-inc/) Mississauga, Ontario, Canada Gemsys Money Handling Systems Inc. supports a highly comprehensive product line of coin, currency, token, and ticket equipment and systems. We are committed to a leadership role in providing all clients with the best equipment backed by quality after sales service and suppor... Categories: Currency Handling Equipment, Coin Handling Equipment, Counterfeit Detectors, Chip Handling, Coin Dispensing, Scales, Cash Storage Equipment, Coin Wrapping, Accessories, Banking and Cashier Supplies, Bill Validator Cleaning Cards, Bill Validators, Cash Processing, Cash Processing, Consulting, Coin Bags, Coin Redemption, Self-service, Hard Count, Plastic Bags, Soft Count, Supplies, Other, Specialty Items |
|
||||||
|
| 232 | [Genera Networks](https://www.casinovendors.com/vendor/genera-networks/) Stockholm, Stockholms, Sweden Genera Networks is an independent and neutral gaming solution provider with no direct or indirect connection to cross-border operators. We aggregate the most successful products, technology and content, all to fit your specific needs. Categories: Electronic Systems, Other, Slot Machines, Bingo Software, Casino Software, Poker Software, Racebook Software |
|
||||||
|
| 233 | [General Bank Supply, Inc.](https://www.casinovendors.com/vendor/general-bank-supply-inc/) Troy, Michigan General Bank Supply has been serving its customers for over 60 Years! We offer personalized customer service providing quality products and a commitment to customer satisfaction. Category: Banking and Cashier Supplies |
|
||||||
|
| 234 | [General Coatings Corporation](https://www.casinovendors.com/vendor/general-coatings-corporation/) Orange, California General Coatings Corporation is a family owned painting company with offices in San Diego & Orange County specializing in customer service. Category: Other |
|
||||||
|
| 235 | [General Link (GLIC)](https://www.casinovendors.com/vendor/general-link-glic/) City of Industry, California General Link was funded in 2004 and supplies LED lighting, LED displays, LED boards. We have a showroom and warehouse in Los Angeles, which offers full technical supports to our customers in America, south America and North America. Our products are assembled in China. Th... Category: LED Systems |
|
||||||
|
| 236 | [General Roof Management](https://www.casinovendors.com/vendor/general-roof-management/) Sacramento, California General Roof Management is an independent roof consulting firm serving clients throughout Nevada and California. We have 25 years experience in our industry. From leak investigation on a single building to full roof management programs on an entire building inventory, we of... Category: Consulting |
|
||||||
|
| 237 | [General Seating Solutions](https://www.casinovendors.com/vendor/general-seating-solutions/) South Windsor, Connecticut General Seating Solutions (GSS) is a world-class manufacturer of restaurant booths, banquettes, benches, chairs and sofas for the foodservice and hospitality industries. Category: Restaurant, Benches |
|
||||||
|
| 238 | [General Security Services Corp.](https://www.casinovendors.com/vendor/general-security-services-corp/) Minneapolis, Minnesota Category: Other, Other |
|
||||||
|
| 239 | [General Touch Co., Ltd.](https://www.casinovendors.com/vendor/general-touch-co-ltd/) Chengdu City, Sichuan, China General Touch has been a leading touch solutions provider in the global marketplace for more than 20 years. By putting the customer’s interest first, GT consistently offers exceptional customer experience and satisfaction through its wide variety of touch technologies and so... Categories: Monitors, Open Frame, Monitors, Open Frame, Monitors, Touchscreens, Touchscreens, Touchscreens, Touchscreens, Touchscreens |
|
||||||
|
| 240 | [General Vending Services, Limited (GVS)](https://www.casinovendors.com/vendor/general-vending-services-limited-gvs/) Horley, England, United Kingdom General Vending Services is a specialist supplier of tea and coffee vending machines, food and snack vending machines, table top vending machines and water coolers. GVS has been providing total vending support for its clients since the 1920s. GVS provides unsurpassed custo... Category: Vending Machines, Dispensers |
|
||||||
|
| 241 | [GenerationWeb](https://www.igamingsuppliers.com/vendor/generationweb/) Categories: Sportsbook Software, Racebook Software, Mobile Gaming |
|
||||||
|
| 242 | [Generator Source, LLC](https://www.casinovendors.com/vendor/generator-source-llc/) Brighton, Colorado Generator Source, formerly Diesel Service & Supply, has been buying, servicing, and selling new, surplus, and used industrial diesel engines and electric power generators for over 30 years. You will always get a competitive price for your equipment, but you'll also be deali... Category: Materials |
|
||||||
|
| 243 | [Genesis Air](https://www.casinovendors.com/vendor/genesis-air/) Lubbock, Texas Genesis Air is the manufacturer of indoor air quality systems. Using G.A.P. technology, we can help reduce your overall operating costs. G.A.P. is dedicated to the removal of smoke, bacteria, particulate matter and the disinfection of your indoor air. Any of our systems can ... Category: Air Filtration Systems |
|
||||||
|
| 244 | [Genesis Associates](https://www.casinovendors.com/vendor/genesis-associates/) Santa Ana, California Genesis Associates has been providing complete design services to many of the largest casino companies in the world such as the Mandalay Resort Group, MGM Grand, Penn National Gaming, and has been used as a source to forecast the future trends of casino design. Over the past... Categories: Design, Design, Native American, Interior Design, Interior |
|
||||||
|
| 245 | [Genesis Games Limited](https://www.casinovendors.com/vendor/genesis-games-limited/) Chesham, England, United Kingdom Genesis is a company at the cutting edge of technology, providing broadband, techno-efficient e-solutions for all coin operated entertainment machines requirements. Our extensive knowledge base with 50 years experience between our partners gives us the ability to understand... Categories: Slot Machines, Equipment, Software |
|
||||||
|
| 246 | [Genesis Gaming Solutions, Inc.](https://www.casinovendors.com/vendor/genesis-gaming-solutions-inc/) Spring, Texas Genesis Gaming Solutions, Inc develops software and hardware for casion management and player tracking systems. Category: Software |
|
||||||
|
| 247 | [Genesis Gaming, Inc. (GGI)](https://www.igamingsuppliers.com/vendor/genesis-gaming-inc-ggi/) Henderson, Nevada Genesis Gaming, Inc. is based in Las Vegas, Nevada and is a content development company with extensive and diversified gaming experience. Our team has been a key supplier of third party content to the most prominent manufacturers in the gaming industry. We are experienced in... Category: Casino Software |
|
||||||
|
| 248 | [Genesis Recycling Ltd.](https://www.casinovendors.com/vendor/genesis-recycling-ltd/) Aldergrove, British Columbia, Canada We at Genesis Recycling provide electronic recycling to the gaming industry. We have a very high level of security for the safe demanufacturing of all gaming equipment. We recycle all materials in an environmentally sound manor. We are certified under ISO 9001 and 14001. We ... Category: Parts |
|
||||||
|
| 249 | [Genesys One Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/genesys-one-affiliates/) Genesys Affiliates offers your players HD quality games along with an incentive program for your VIP players. You will benefit from flexible and highly competitive commission deals tailored to the market and customer segment which you are promoting; customized acquisition ca... Category: Affiliate Programs |
|
||||||
|
| 250 | [Genetec Inc.](https://www.casinovendors.com/vendor/genetec-inc/) Saint Laurent, Quebec, Canada Genetec is a pioneer in the physical security and public safety industry and a global provider of world-class IP video surveillance, access control and license plate recognition (LPR) solutions to markets such as transportation, education, retail, gaming, government and more... Category: Other |
|
||||||
|
| 251 | [Genieee](https://www.casinovendors.com/vendor/genieee/) Pune, Mahārāshtra, India One of the Top HTML5 Game Development Company in India. Being the top game development company in India, Genieee provides best HTML5 game development services. With our creative and fun oriented game development experience we are able build more than 1000+ html5 games for mu... Category: Mobile Gaming, New Game Manufacturer |
|
||||||
|
| 252 | [Genii Limited](https://www.igamingsuppliers.com/vendor/genii-limited/) San Gwann, Malta Genii is a gaming technology provider focused on building the next generation online gaming platform. The company is steered by a team of entrepreneurs that have led the field, both in the business of gaming and technological innovation, since the 1990s. Genii is founded ... Categories: Gambling Operations, Casino Software, Mobile Gaming |
|
||||||
|
| 253 | [GenioBet Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/geniobet-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 254 | [Genius Sports](https://www.igamingsuppliers.com/vendor/genius-sports/) London, England, United Kingdom Founded in 2001, Genius Sports is one of the world’s largest sports technology companies. Category: Sportsbook Software |
|
||||||
|
| 255 | [Genlot Game Technology co.,Ltd](https://www.casinovendors.com/vendor/genlot-game-technology-co-ltd/) Shenzhen, China Since 2000, Genlot has established itself as a leading provider of compelling solutions to the global gaming industry. With a proven product portfolio encompassing all key gaming verticals, Genlot specializes in the development and deployment of leading-edge bespoke gaming s... Category: Other |
|
||||||
|
| 256 | [GennaGroup S.R.L.](https://www.casinovendors.com/vendor/gennagroup-s-r-l/) San Mango Piemonte, Campania, Italy The GennaGroup is founded in 2002 as satellite company of the GennaGiochi to improve the functions of import-export and distribution of spare parts for the assembly and the aid to the customers. Despite the recent such a constitution company makes use of the professionalism ... Categories: Amusement Equipment, Coin Dispensing, Parts, Magnetic Counters, Parts, Power Sources, Other, Components, Manufacturing, LED, Lamps and Lamp Shades, Coin Dispensing, Monitoring, Locks, Spotlight Lamps, LED Systems, Other |
|
||||||
|
| 257 | [GenPrime, Inc.](https://www.casinovendors.com/vendor/genprime-inc/) Spokane, Washington Determine in 5 minutes if an unknown powder is a credible threat or a harmless hoax. The Prime Alert Biodetection/Threat Verification System is the only first response tool that combines a broad Microbe Screen with Ricin and Botulinum Toxin Screens to provide the most compre... Category: Other |
|
||||||
|
| 258 | [Gentec Technologies Ltd.](https://www.casinovendors.com/vendor/gentec-technologies-ltd/) Calgary, Alberta, Canada Category: Consulting |
|
||||||
|
| 259 | [Gentex Corporation](https://www.casinovendors.com/vendor/gentex-corporation/) Zeeland, Michigan Category: Alarms |
|
||||||
|
| 260 | [Genwac, Inc. (WATEC)](https://www.casinovendors.com/vendor/genwac-inc-watec/) Orangeburg, New York Category: Other |
|
||||||
|
| 261 | [GeoComply Ltd](https://www.igamingsuppliers.com/vendor/geocomply-ltd/) Henderson, Nevada GeoComply offers regulators and operators a reliable, secure and user-friendly solution for the Geolocation of online users. Focusing on the regulated iGaming and broadcasting industries, GeoComply works closely with its customers to harness cutting edge technology to serve ... Category: Geolocation Services |
|
||||||
|
| 262 | [Geoffrey Parker Games Ltd](https://www.casinovendors.com/vendor/geoffrey-parker-games-ltd/) Saffron Walden, England, United Kingdom Regarded as the finest maker of traditional board games, including luxury World Championship backgammon, chess, bridge, home casino games and licensed parlour games such as Monopoly, Trivial Pursuit, Scrabble and Cluedo. Fine games tables in beautiful marquetry inlaid woods,... Category: Promotional Items |
|
||||||
|
| 263 | [Georgia Carpet Industries](https://www.casinovendors.com/vendor/georgia-carpet-industries/) Dalton, Georgia As a rising leader in the Hospitality Flooring Industry, Georgia Carpet Industries knows that color and design make the room. By offering the latest styles and patterns and a complete line of Flooring for the Hospitality Industry your entire property will look beautiful. Our... Category: Carpets, Flooring |
|
||||||
|
| 264 | [Georgia Case Company](https://www.casinovendors.com/vendor/georgia-case-company/) Tucker, Georgia We are an original equipment manufacturer offering our services directly to the gaming industry. We sell at a wholesale level direct to end users, and provide a low cost, no risk solution to industry requirements. Categories: Packaging Material, Scenery and Set Design, Other, Services |
|
||||||
|
| 265 | [Georgia Expo Manufacturing Corporation](https://www.casinovendors.com/vendor/georgia-expo-manufacturing-corporation/) Norcross, Georgia Georgia Expo is your one stop shop for all your casino floor needs! We're the largest manufacturer of Pipe & Drape in the United States! In addition we provide Exhibit Products to turn any event into something extraordinary. Adjustable Height Expo Tables, Table skirting, cro... Categories: Exhibits, Exhibit Supplies, Exhibits |
|
||||||
|
| 266 | [Georgia Pacific Professional](https://www.casinovendors.com/vendor/georgia-pacific-professional/) Atlanta, Georgia Category: Janitorial Equipment and Supplies |
|
||||||
|
| 267 | [Georgia Stage, LLC](https://www.casinovendors.com/vendor/georgia-stage-llc/) Duluth, Georgia Georgia Stage, LLC is a leader in Theatrical Curtains and Fabrics, Pipe & Drape, Track and Rigging. We are committed to providing our customers with the highest quality products and services and to keeping the hand crafted look and feel we have come to be known for since 199... Category: Stage Equipment, Display Systems |
|
||||||
|
| 268 | [Georgia Steel Entertainment](https://www.casinovendors.com/vendor/georgia-steel-entertainment/) Toronto, Ontario, Canada Georgia Steel Entertainment provides Vintage Music shows Featuring Georgia Steel a popular musical entertainer in the Toronto area. Her mother Ivy Steel an acclaimed Jazz vocalist supported her start in the Jazz classics. Georgia's compelling vocal performances are mesmeriz... Category: Music Production |
|
||||||
|
| 269 | [GeoVision](https://www.casinovendors.com/vendor/geovision/) Irvine, California GeoVision is the leading provider of digital surveillance with specialization in video enhancement analytics and integrable solutions including NVR, IP Camera, CMS, Access Control and Loss Prevention. With more than 9 million GeoVision channels sold to over 100 countries, we... Category: CCTV Systems |
|
||||||
|
| 270 | [Germisept](https://www.casinovendors.com/vendor/germisept/) Newport Beach, California Germisept is a family-owned brand founded on the pursuit of passion and innovation. Our mission is deeply rooted in quality, providing amazing value to our customers and community. We have grown and continue to evolve through constant leading-edge products, thus enabling our... Category: Hand Sanitizer |
|
||||||
|
| 271 | [Germstar/Soaptronic](https://www.casinovendors.com/vendor/germstar-soaptronic/) Lake Forest, California Category: Hygiene Products |
|
||||||
|
| 272 | [Geron Associates](https://www.casinovendors.com/vendor/geron-associates/) Markham, Ontario, Canada Category: Exhibits |
|
||||||
|
| 273 | [GES Holiday Retail (formerly Becker Group)](https://www.casinovendors.com/vendor/ges-holiday-retail-formerly-becker-group/) Baltimore, Maryland For over half a century, Becker Group (now GES) has produced award-winning, cost effective display and exhibit solutions for casinos, hotels, resorts, shopping centers and commercial properties, transforming every type of commercial property into stunning destinations. Categories: Holiday, Christmas, Other, Multi-media Productions, Interior |
|
||||||
|
| 274 | [GESI Hospitality](https://www.casinovendors.com/vendor/gesi-hospitality/) Astoria, New York Category: Locks |
|
||||||
|
| 275 | [Get Green Recycling Corp](https://www.casinovendors.com/vendor/get-green-recycling-corp/) Aurora, Illinois Every Casino has different metal ingredients for their gaming tokens, prices vary upon the precious metals contained in the weighted tokens, a sample token given to us will determine the recovery value you will receive. Get Green Recycling is your simple, secure solution... Category: Coin Melting, Coin Melting |
|
||||||
|
| 276 | [Get Maine Lobster](https://www.casinovendors.com/vendor/get-maine-lobster/) Portland, Maine At Get Maine Lobster, we create the modern culinary adventures that bring the allure of the ocean right to your door. We know that the freshest seafood deserves to be much more than a meal...it should be an experience. From meaty, deep-water Maine lobsters to sweet diver sca... Category: Seafood |
|
||||||
|
| 277 | [Get Noticed Advertising](https://www.casinovendors.com/vendor/get-noticed-advertising/) Boulder City, Nevada Get Noticed has been in business since 1995 and has proven to be one of the top companies in the advertising and promotion industry here in Las Vegas. With attention to detail and excellent customer service Get Noticed will always get the job done right. Category: Specialties |
|
||||||
|
| 278 | [Get The Picture, LLC](https://www.casinovendors.com/vendor/get-the-picture-llc/) Lincoln, Rhode Island We work with several Fortune 500 companies, hospitals, and educational institutions and have earned their business and trust. As the area's only award winning certified picture framer, we have the expertise to get it done right. Category: Art, Moldings |
|
||||||
|
| 279 | [GeWeTe GmbH & Co. KG](https://www.casinovendors.com/vendor/gewete-gmbh-co-kg/) Mechernich, Germany For every need, the perfect solution – with this claim GeWeTe cash handling technology near Cologne (Germany), develops for over 18 years compelling solutions for high-quality money changing systems. GeWeTe covers the entire spectrum: from mini-changer WGS 102 to the high-en... Category: Cash Handling Equipment |
|
||||||
|
| 280 | [GFInteriors](https://www.casinovendors.com/vendor/gfinteriors/) City of Industry, California We manufacture our own product and our prices do not reflect our high standard of design and make but are very competitive.We have tables with semiprecious stones and marble in neo baroque and contemporary style. Category: Furnishings |
|
||||||
|
| 281 | [GFM Holdings Limited](https://www.casinovendors.com/vendor/gfm-holdings-limited/) Colchester, England, United Kingdom GFM: Promotional Marketing, Online Games and Marketing Services. Categories: Other, Promotions, Promotions |
|
||||||
|
| 282 | [GG.bet Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gg-bet-affiliates/) Willemstad, Curaçao GG.BET was developed by eSports enthusiasts and former professionals. Our goal is to create an intuitive and convenient platform for betting on all major eSports events in the world. On GG.BET you can always quickly and easily place a bet on your favorite team. Our cash o... Category: Affiliate Programs |
|
||||||
|
| 283 | [GGPartners](https://www.igamingaffiliateprograms.com/affiliate-program/ggpartners/) Category: Affiliate Programs |
|
||||||
|
| 284 | [GGR Partners](https://www.igamingaffiliateprograms.com/affiliate-program/ggr-partners/) Category: Affiliate Programs |
|
||||||
|
| 285 | [GGRSOFT](https://www.igamingsuppliers.com/vendor/ggrsoft/) Vilnius, Lithuania Decades of experience have given us – safe to say – PhDs in iGaming. We know the pain, and we know the gain. The challenges and opportunities within the industry excite us. As a forward-thinking iGaming company, we’re equipped to navigate the complexities and deliver abnorma... Categories: Licensing and Regulation, Consulting, Platform Providers, Gambling Operations |
|
||||||
|
| 286 | [GHA Technologies](https://www.casinovendors.com/vendor/gha-technologies/) Huntington Beach, California GHA Technologies, Inc. provides computer reselling and systems integration services. It sells various Internet, bandwidth, security, VoIP, wireless, video, and identification technologies specializing in customizing file servers, computers, and laptops, as well as mission-cr... Category: Computer Systems |
|
||||||
|
| 287 | [Ghirardelli Chocolate Company](https://www.casinovendors.com/vendor/ghirardelli-chocolate-company/) San Leandro, California Celebrating 160 years, Ghirardelli Chocolate continues to hand-select the world's finest cocoa beans and uses only the purest ingredients for our award-winning chocolate. We specialize in beautifully packaged gifts, ideal for VIPs, frequent guests, arrival gifts, promo annou... Category: Chocolate |
|
||||||
|
| 288 | [Ghost Beads, LLC](https://www.casinovendors.com/vendor/ghost-beads-llc/) Las Vegas, Nevada Category: Jewelry |
|
||||||
|
| 289 | [GHY Stone](https://www.casinovendors.com/vendor/ghy-stone/) Beijing, Beijing, China When you open this web we guess you are looking for something with special designs and reasonable prices for your home. So you are in right place. GHY basically are a manufacturer and 80% of products showed here can be made to order by ourselves. And we have strong combinati... Category: Materials |
|
||||||
|
| 290 | [GI Games Co PTE Limited](https://www.casinovendors.com/vendor/gi-games-co-pte-limited/), Singapore GI GAMES CO is a company that specializes in creating state-of-the-art lottery software solutions that redefine the gaming experience. Category: Other |
|
||||||
|
| 291 | [GI Tech Gaming Co India Private Limited](https://www.igamingsuppliers.com/vendor/gi-tech-gaming-co-india-private-limited/) Chennai, Tamil Nādu, India Thirty Seven years and Counting. That is how long GI Tech Gaming has been working in India and International Market in the lottery business. With a good sense for trends and strategy, GI has the technological edge, young and vibrant team of entreprenuers and professionals wi... Categories: Lottery Software, Sportsbook Software, Mobile Gaming |
|
||||||
|
| 292 | [Giacona Container Corporation, Inc.](https://www.casinovendors.com/vendor/giacona-container-corporation-inc/) New Orleans, Louisiana Categories: Other, Specialties, Specialties, Gift Merchandise, Souvenirs, Cruise Ship Concesssionaire, Promotions, Promotional Items |
|
||||||
|
| 293 | [Giant Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/giant-affiliates/) Nicosia, Cyprus THE HIGHEST CONVERTING LOTTO PARTNER PROGRAM Our goal is to continue to lead the iGaming industry as the highest converting lotto affiliate platform. Our sales funnels and telesales team will convert your quality lotto traffic easily. Giant Affiliates is the affiliate... Category: Affiliate Programs |
|
||||||
|
| 294 | [Giant Bows](https://www.casinovendors.com/vendor/giant-bows/) Norwalk, Connecticut Manufactures giant display bows up to 24 feet wide. Styles: 2-Loops, 4-Loops, 6-Loops, 10-Loops and 16-Loops. Matching giant ribbons up to 5 feet wide. Gift wrap buildings & cars. Weatherproof. Category: Other |
|
||||||
|
| 295 | [Gibson Graphics Group, Inc.](https://www.casinovendors.com/vendor/gibson-graphics-group-inc/) York, Pennsylvania Gibson Graphics is a full service marketing communications firm with in house print, mail, and fulfillment capabilities. We specialize in direct marketing campaigns, whether large format posters or banners for an in house event or direct mail advertising to your high roller... Categories: Large Format, Billboards, Mailing Services, Printers, Manufacturers |
|
||||||
|
| 296 | [GIC Management Corporation](https://www.casinovendors.com/vendor/gic-management-corporation/) Pompano Beach, Florida GIC has extensive experience in lotteries and gaming around the world. Our associations with suppliers and vendors allow us to offer the best solutions for all gaming promoters. We have provided services to "Blue Chip" companies and promoters in the business including the fo... Category: Other |
|
||||||
|
| 297 | [Giesecke & Devrient](https://www.casinovendors.com/vendor/giesecke-devrient/) Dulles, Virginia Giesecke & Devrient (G&D) is an internationally operating technology group with over 156 years of experience and over thirty subsidiaries worldwide. The organization is a leading supplier of currency processing automation systems, vault management software, banknotes and sec... Categories: Currency Handling Equipment, Cash Processing, Consulting, Cash Handling Equipment, Smart Card Systems, Plastic Cards |
|
||||||
|
| 298 | [Gift Baskets by Kim](https://www.casinovendors.com/vendor/gift-baskets-by-kim/) Los Angeles, California Gift Baskets by Kim offers a distinctive collection of beautiful gift baskets for all your gift giving needs. We offer a number of theme gift baskets from Housewarming Gifts to Wedding gifts and Bridal Gifts. From Newborn baby gift baskets, gift baskets for her and gift bas... Category: Gift Merchandise |
|
||||||
|
| 299 | [Gift Wonders](https://www.casinovendors.com/vendor/gift-wonders/) Ningbo, Zhejiang, China With an experience of poker chips set, dice, texas hold'em production since year of 1999, we have become one of the largest manufacture in these items. Our production capability is around half million pcs of chips/day quality guranteed. kindly contact us at the info displaye... Category: Poker Chips |
|
||||||
|
| 300 | [Gift Works Plus](https://www.casinovendors.com/vendor/gift-works-plus/) Waukesha, Wisconsin If you are looking for something truly special, unique and personal, GiftWorksPlus is the perfect place to find it! With our ever-increasing selection of wooden picture frames and new product lines, we are ready to help you find that perfect gift. Whether you're looking f... Category: Other |
|
||||||
|
| 301 | [Gigaboard Polska](https://www.casinovendors.com/vendor/gigaboard-polska/) Warszawa, Poland We specialize in large-format advertising media, such as superbacklight, and advertising in the prestigious shopping centres. Our company helps the Client find the perfect solution while planning outdoor campaigns. Our experience in this field enables us to offer good advice... Category: Full Service Agency |
|
||||||
|
| 302 | [Gigadat](https://www.igamingsuppliers.com/vendor/gigadat/) Winnipeg, Manitoba, Canada Gigadat is a team comprised of Canadian payment experts who understand e-merchant needs and requirements, as well as their industry specifics to create a reliable, convenient and secure payments ecosystem, designed to support consumers, e-merchants and financial institutions... Category: Mobile Gaming |
|
||||||
|
| 303 | [GigaMedia Limited](https://www.casinovendors.com/vendor/gigamedia-limited/) Taipei, Taipei, Taiwan GigaMedia is a diversified provider of online entertainment and broadband services, with headquarters in Taipei, Taiwan. The company develops software for online entertainment services, including the global online gaming market. GigaMedia also operates a major Taiwanese broa... Categories: Software, Other, Software Development |
|
||||||
|
| 304 | [Gigantic Game Show Give Away](https://www.casinovendors.com/vendor/gigantic-game-show-give-away/) Hoffman Estates, Illinois Gigantic Game Show Give Away™ is a fast moving audience participation show using mostly risk reward games designed to create incremental sales at retail, highlight sponsors, create excitement, and give away valuable prizes. Designed in part, in the style of TV game shows tha... Categories: Theatrical Company, Agency, Production, Promotional Games |
|
||||||
|
| 305 | [Gilbane Building Company](https://www.casinovendors.com/vendor/gilbane-building-company/) Philadelphia, Pennsylvania Stability...Strength...Experience. Gilbane Building Company has been in the construction business since 1873 and manages over $3 billion of construction annually for our clients. With 28 offices serving owners from coast-to-coast, Gilbane marries the strength of a large na... Category: Consulting |
|
||||||
|
| 306 | [Gilderfluke & Co., Inc.](https://www.casinovendors.com/vendor/gilderfluke-co-inc/) Burbank, California We manufacture and design show control systems for robotic animation, dynamic fountains, motion platforms, lighting and special effects, modular audio systems, clock/carillons and much more for theme parks, museums, themed restaurants, churches, and airports (to name a few).... Category: Digital Audio Repeater Systems, Animation and Animatronics |
|
||||||
|
| 307 | [Gills Printing and Color Graphics](https://www.casinovendors.com/vendor/gills-printing-and-color-graphics/) Las Vegas, Nevada Gills has provided forms and color printing and mail services to the casino and hotel industry for 39 years. Category: Other |
|
||||||
|
| 308 | [Gillware, Inc.](https://www.casinovendors.com/vendor/gillware-inc/) Madison, Wisconsin Gillware Incorporated is located in Madison, Wisconsin, specializing in data recovery from troubled hard drives and reliable remote storage solutions for individuals and corporations alike. Founded in 2004 by Brian and Tyler Gill, Gillware's original mission was to be the be... Category: Data Retrieval Systems, Other |
|
||||||
|
| 309 | [Gimme Credit LLC](https://www.casinovendors.com/vendor/gimme-credit-llc/) New York, New York Category: Consulting |
|
||||||
|
| 310 | [Gimoka Coffee UK](https://www.casinovendors.com/vendor/gimoka-coffee-uk/) London, England, United Kingdom Gimoka Coffee UK is the UK distributor of the Italian coffee roaster Gruppo Gimoka. Our mission is to deliver genuine and high quality Italian espresso, roasted according to the traditional coffee artisan practice, directly to you. Lavazza and Nespresso compatible capsules: ... Category: Coffee |
|
||||||
|
| 311 | [Giocaonline Srl](https://www.igamingsuppliers.com/vendor/giocaonline-srl/) Milan, Italy Category: Casino Software, Casino Software |
|
||||||
|
| 312 | [Giochi Telematici Affiliazione](https://www.igamingaffiliateprograms.com/affiliate-program/giochi-telematici-affiliazione/) Category: Affiliate Programs |
|
||||||
|
| 313 | [Gioco News](https://www.igamingsuppliers.com/vendor/gioco-news/) Terni, Umbria, Italy Gioconews is a gaming network with a monthly review with an international delivery because the magazine is in Italian and in English language. It also has an online daily paper (www.gioconews.it) and two other specific online daily news dedicated to the Poker and Casino worl... Category: Consumer Publications |
|
||||||
|
| 314 | [Gioielli Italy](https://www.casinovendors.com/vendor/gioielli-italy/) Stockton, California Category: Other |
|
||||||
|
| 315 | [Girard Emilia Custom WoodCarvers, Inc.](https://www.casinovendors.com/vendor/girard-emilia-custom-woodcarvers-inc/) New York, New York Category: Furniture |
|
||||||
|
| 316 | [Girard's Foodservice Salad Dressings](https://www.casinovendors.com/vendor/girard-s-foodservice-salad-dressings/) City of Industry, California Girard's Foodservice Dressings distributes upscale dressings, sauces and mayonnaise. They manufacture over 100 varieties of dressings and sauces. Category: Other |
|
||||||
|
| 317 | [Girls Night Out the Show](https://www.casinovendors.com/vendor/girls-night-out-the-show/) Las Vegas, Nevada Girls Night Out the Show® Heats Up the Stages across the USA and brings down the house Seven Nights a Week! Along With Having The BEST GIRLS NIGHT EVER... Here's a few more details about what you can look forward to at GNO The Show: 90 sexy minutes of getting extremely ... Category: Production, Agency |
|
||||||
|
| 318 | [Girvin, Inc.](https://www.casinovendors.com/vendor/girvin-inc/) Seattle, Washington Our ability to distinctly articulate your brand is our point of difference. Girvin approaches each project from the client's point of view and puts business results at the forefront of our thinking. This approach insures delivery of results that are on strategy, time and bud... Category: Environmental Graphic Design |
|
||||||
|
| 319 | [GIS - Gambling Integrity Services](https://www.casinovendors.com/vendor/gis-gambling-integrity-services/) Winchester, England, United Kingdom Gambling Integrity Services is a consultancy firm advising governments, regulators and operators in the latest policy and processes for consumer protection, regulation and responsible gambling. We are a member of GiGA, IMGL and our consultants are internationally known and ... Category: Compliance |
|
||||||
|
| 320 | [Gist Specialties Inc](https://www.casinovendors.com/vendor/gist-specialties-inc/) North Las Vegas, Nevada Young single parent father with talent and vision along with his awesome team of skilled craftsman is ready to design and/or fabricate for your needs. Specializing in architectural themeing and fabrication in high end decor, Gist manufactures in GRG, GFRC, FRP, and almost a... Categories: Fabrication, Theming, Fabrication, Sculpture, Theming, Facility Design, Fabricators |
|
||||||
|
| 321 | [GISTRA, S.L.](https://www.casinovendors.com/vendor/gistra-s-l/) We are the leading cash management company in Spain. Our cashiers are the best sellers in the Spanish market and we are able to manage the direct payment of all slots machines, jackpots, roulettes and bets installed in casinos Category: ATM Products and Services |
|
||||||
|
| 322 | [Gitchi Gaming, Inc.](https://www.casinovendors.com/vendor/gitchi-gaming-inc/) Prescott, Wisconsin Gitchi Gaming, Inc. is a complete supplier for slots, table games, cage, vault, bingo & hospitality, specializing in Furniture, Fixtures and Equipment Packages. Categories: Equipment, Supplies, Slot Stools, Storage Systems, Bases-Cabinets-Stands (Wood), Slot Stools, Casino, Equipment, Slot Stools, Tables, Carts, Chips, Interior, Furnishings, Equipment, Change Banks, Change Banks, Equipment, Bases-Cabinets-Stands (Wood) |
|
||||||
|
| 323 | [Give&Take Profit](https://www.igamingaffiliateprograms.com/affiliate-program/give-take-profit/) Category: Affiliate Programs |
|
||||||
|
| 324 | [GKMT IT](https://www.igamingsuppliers.com/vendor/gkmt-it/) Jaipur, Rājāsthan, India GKMT IT is an IT-based firm communicating top-notch Website & App Development Company in Jaipur, Graphics & UI/UX Designing, and Digital Marketing indoor your budget cost and pronounced by the dream of creating the fittest for the world with the tardiest technology. Our comp... Category: Software Development |
|
||||||
|
| 325 | [Gladiator Lighting](https://www.casinovendors.com/vendor/gladiator-lighting/) Aurora, Colorado Our team at Gladiator Lighting have over 20+ years of experience in the lighting industry. Our strong relationships with lighting manufacturers allows us to bring you high quality light bulbs and fixtures at extremely affordable prices. We believe by utilizing the Internet, ... Category: Supplies |
|
||||||
|
| 326 | [Glamour Flooring](https://www.casinovendors.com/vendor/glamour-flooring/) Katy, Texas Glamour Flooring is your one stop shop for all your home remodeling needs. "Simply the best at what we do." That's what we pride our business upon. Providing our customers with outstanding customer service and professional expert help. Our sales staff and designing team will... Category: Flooring |
|
||||||
|
| 327 | [Glaro Products](https://www.casinovendors.com/vendor/glaro-products/) Matthews, North Carolina We at www.Glaro-Products.com Sell Glaro Hospitality products exclusively. Everything is manufactured under one roof, so anything you purchase will coordinate perfectly with everything else we sell. No longer is there a need to agonize over what products will look good togeth... Category: Furniture, Metal Products |
|
||||||
|
| 328 | [Glaro, Inc.](https://www.casinovendors.com/vendor/glaro-inc/) Hauppauge, New York Since 1945, Manufactures of Distinctive metal products for hotels, institutions and public places. As a rule every order is shipped within 1 to 3 days. Bellman carts, Sign frames, key drop boxes, planters, crowd control barriers, waste and smoking receptacles, clothes rack... Categories: Receptacles, Fabrication, Metal, Crowd Control, Doormen |
|
||||||
|
| 329 | [Glasdon, Inc.](https://www.casinovendors.com/vendor/glasdon-inc/) Sandston, Virginia Glasdon, Inc. supply a wide range of waste management products including trash cans, recycling containers and ash receptacles. We pride ourselves on offering products of the highest quality and value, in a choice of styles, colors and options that complement a variety of app... Categories: Waste Management, Barriers and Germ Guards, Barriers and Germ Guards, Facility Cleaning and Disinfection Services, Facility Cleaning and Disinfection Services |
|
||||||
|
| 330 | [Glass Creations Unlimited, Inc.](https://www.casinovendors.com/vendor/glass-creations-unlimited-inc/) Dallas, Texas A complete glass design studio that designs and manufacturers metal, wood, lighting, and more to accent projects. We are one of the most reputable companies for glass signage and architectural glass. Glass Creations is known for providing fascinating designs for hotels, re... Categories: Illuminated, Glass Art, Amenities, Indoor, Interior, Design |
|
||||||
|
| 331 | [Glass Surface Systems, Inc.](https://www.casinovendors.com/vendor/glass-surface-systems-inc/) Barberton, Ohio Glass Surface Systems Inc. has produced SHATTERPROOF lighting for all types of industries for 30 years. Our coating provides glass containment, non-yellowing shatterproofing for all your industrial, commercial, and institutional requirements. H.I.D. metal halide, high pressu... Category: Other |
|
||||||
|
| 332 | [Glasslight](https://www.casinovendors.com/vendor/glasslight/) Santa Cruz, California Glasslight works in all facets of architectural carved glass. From exquisite brilliant cut mandalas in starfire glass to sandblasted multiples in clear or mirror. Whether contemporary hotel design, victorian to deco restoration or sculptural glass, we can help you develop a ... Category: Glass Art |
|
||||||
|
| 333 | [Glassometry Studios](https://www.casinovendors.com/vendor/glassometry-studios/) Hood River, Oregon Glassometry studios owner Laurel Marie Hagner has her degree in sculpture. She has been pushing boundaries with metal and glass for over 16 years. Her sculptural metal work is fantastical and executed with the highest quality. With custom sculptural pieces made for compan... Categories: Glass Art, Fabrication, Metal |
|
||||||
|
| 334 | [GLC Abogados](https://www.igamingsuppliers.com/vendor/glc-abogados/) Los Yoses, San José, Costa Rica Category: Consulting |
|
||||||
|
| 335 | [Gleiss Lutz](https://www.igamingsuppliers.com/vendor/gleiss-lutz/) Berlin, Berlin, Germany For many years, we have been following the development of e-business with all its many and varied facets. Our work has concerned fundamental matters like the registration, securing and defence of domains worldwide (including WIPO proceedings), the establishment of joint plat... Category: Compliance |
|
||||||
|
| 336 | [Glendale Awning Company](https://www.casinovendors.com/vendor/glendale-awning-company/) Middle Village, New York Glendale Awning Company, a division of PHK GROUP, INC is a company that manages all awnings, canopies, signs, banners, channel letters, aluminum awning, lexan awning products and service in NYC Tri-State area. We are one of the oldest awning manufacturer in NYC. Buy direct f... Category: Other |
|
||||||
|
| 337 | [Glenn Green Galleries](https://www.casinovendors.com/vendor/glenn-green-galleries/) Tesuque, New Mexico An art treasure located in the lovely historical village of Tesuque - just six minutes from Santa Fe’s Plaza. Glenn, Sandy and their daughter Kerry Green hope the that the public will enjoy the works they show online and that they will personally visit their varied & expansi... Category: Art |
|
||||||
|
| 338 | [Glenn Rieder LLC](https://www.casinovendors.com/vendor/glenn-rieder-llc/) West Allis, Wisconsin Glenn Rieder LLC ("GR") manufactures and installs complete interiors for casinos, including architectural millwork, decorative glass, ornamental metal, cast materials, faux finishes, booth and banquette seating, solid surfaces and stone tops. Categories: Interior, Millwork, Moldings |
|
||||||
|
| 339 | [GLI Europe B.V.](https://www.casinovendors.com/vendor/gli-europe-b-v/) Hillegom, Zuid-Holland, Netherlands For more than 20 years, Gaming Laboratories International has been the world leader in independent testing for the gaming industry. With 13 testing laboratories spread across Africa, Asia, Australia, Europe, South America and the United States, GLI is recognized in more than... Category: Software Testing and Certification, Testing |
|
||||||
|
| 340 | [Glitnor Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/glitnor-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 341 | [Global Access Unlimited](https://www.casinovendors.com/vendor/global-access-unlimited/) Largo, Florida We are Woman Owned Small Business celebrating 11 years of electronics distribution. Although our core competency is the supply of commercial through military board level components, we pride ourselves in our ability to provide our customers with anything utilized in the ma... Category: Parts |
|
||||||
|
| 342 | [Global Architectural Models](https://www.casinovendors.com/vendor/global-architectural-models/) Las Vegas, Nevada Scale models for any project. Category: Supplies |
|
||||||
|
| 343 | [Global Art, Inc.](https://www.casinovendors.com/vendor/global-art-inc/) Kentwood, Michigan Global Art has serviced the retail industry in picture framing and signage frames for 30 years. We maintain all our deadlines while still creating quality products for the industry. We can customize products & services for the industry by adding a uniqueness to framing or ... Category: Interior Design, Furnishings |
|
||||||
|
| 344 | [Global Awards, Inc.](https://www.casinovendors.com/vendor/global-awards-inc/) Las Vegas, Nevada Global Awards is a creative - full service engraving company offering quality service, craftsmanship & customer satisfaction. We specialize in name badges, slot machine & interior ADA approved signage, plaques & awards promotional gift items. Our master engravers are highly ... Categories: Plaques, Engraving, Engraved Signs Manufacturer, Indoor, Signage, Incentives and Awards, Plastics |
|
||||||
|
| 345 | [Global Beerco USA](https://www.casinovendors.com/vendor/global-beerco-usa/) Davis, California Global Beerco USA is committed to applying todays advanced communication technology to deliver the highest standards of customer support and continuous education to each HouseBrew operator. HouseBrew owners attend a two-day comprehensive training course at the University of ... Category: Bar Equipment |
|
||||||
|
| 346 | [Global Bet Guide](https://www.casinovendors.com/vendor/global-bet-guide/) London, England, United Kingdom GlobalBetGuide is an independent iGaming portal focused on Nigeria & South Africa, with coverage also extending to Australia and New Zealand. We publish expert-edited reviews of sportsbooks, casinos, and live dealer platforms, along with in-depth guides on local payment meth... Category: |
|
||||||
|
| 347 | [Global Betting & Gaming Consultants - GBGC](https://www.igamingsuppliers.com/vendor/global-betting-gaming-consultants-gbgc/) Castletown, Isle of Man GBGC has on its team several specialist consultants who can provide economic research, 'know how' in all areas of gambling, market research, statistical data, software solutions, payment solutions, electronic point of sale, information display systems, online technology and ... Categories: Consulting, Consulting, Consulting, Consulting, Consulting |
|
||||||
|
| 348 | [Global Billiards Manufacturing](https://www.casinovendors.com/vendor/global-billiards-manufacturing/) Carson, California The success of Los Angeles based Global Billiard Manufacturing can be attributed to a similar force: blending the Old World values of craftsmanship with an understanding of evolving business trends and customer needs. Founded more than three decades ago by a young immigrant ... Category: Amusement Equipment |
|
||||||
|
| 349 | [Global Drilling Fluids & Chemicals Limited](https://www.casinovendors.com/vendor/global-drilling-fluids-chemicals-limited/) Faridabad, Haryāna, India Manufacturers and suppliers of drilling fluids, oil drilling fluids and chemicals exporters from India. The Company’s product range covers drilling fluids for oil and Gas Wells, Mud Chemicals, Workover and Completion Fluids, Production Chemicals, Well Stimulation Chemicals a... Category: Other |
|
||||||
|
| 350 | [Global Equipment Co., Inc.](https://www.casinovendors.com/vendor/global-equipment-co-inc/) Buford, Georgia Leading distributor of industrial products for over 50 years. Category: Other, Other |
|
||||||
|
| 351 | [Global Fabric Group](https://www.casinovendors.com/vendor/global-fabric-group/) Easley, South Carolina Global Fabric Group is a wholesaler of finished products for the hospitality and healthcare industries. Category: Linens |
|
||||||
|
| 352 | [Global Game](https://www.casinovendors.com/vendor/global-game/) Panchiao City, Taipei, Taiwan Category: New Game Manufacturer |
|
||||||
|
| 353 | [Global Games & Gaming (G3) Magazine](https://www.casinovendors.com/vendor/global-games-gaming-g3-magazine/) Manchester, United Kingdom G3 is a global media channel supplying news, market research, expert opinions and data to the international gaming community. G3 encompasses a monthly print and digital magazine, G3Newswire.com daily gaming news service, podcasts and support Apps for both magazine and news d... Category: Magazines, Business Publications |
|
||||||
|
| 354 | [Global Gaming Business](https://www.casinovendors.com/vendor/global-gaming-business/) Boulder City, Nevada GGB is a leading gaming trade publication focusing on the worldwide gaming industry. GGB is the exclusive official publication of the American Gaming Association, AGEM, and the official G2E magazine. Publications include Tribal Government Gaming, Casino Style, Progressive P... Categories: Magazines, Business Publications, Consulting |
|
||||||
|
| 355 | [Global Gaming Expo (G2E)](https://www.casinovendors.com/vendor/global-gaming-expo-g2e/) Norwalk, Connecticut At G2E, you’ll find the industry’s leading suppliers of the latest technologies and new products, four days of hard-hitting strategies and essential education, and unparalleled networking that are indispensable for predicting upcoming opportunities and unforeseen challenges.... Categories: Shows, Conferences, Trade Shows and Conferences |
|
||||||
|
| 356 | [Global Gaming Initiatives](https://www.casinovendors.com/vendor/global-gaming-initiatives/) Las Vegas, Nevada With 20 years of hands on experience, Global Gaming Initiatives has the greatest insight as to what the end user wishes to see in a casino and gaming product. From his entry into gaming management in 1987, Mr. Meyer held operational and internal audit positions with such ent... Categories: Game Design, Design, Assessment, Brokerage, Other |
|
||||||
|
| 357 | [Global Industry Products Corp](https://www.casinovendors.com/vendor/global-industry-products-corp/) Las Vegas, Nevada Global Industry Products began developing relationships with the casino industry in Las Vegas. We have committed ourselves in providing our customers with the highest quality products, lowest pricing, and excellence in customer service. Today we are even more committed ... Categories: Other, Disposable Tableware, Paper Products |
|
||||||
|
| 358 | [Global Intelligence Network, LLC](https://www.casinovendors.com/vendor/global-intelligence-network-llc/) Las Vegas, Nevada Global conducts confidential and discreet investigations for due diligence in regulatory compliance, key employee backgrounds and market entry reports. Global manages both domestic and international investigations with an extensive network of assets. In the last three years... Categories: Investigations, Indian Gaming, Fulfillment Services |
|
||||||
|
| 359 | [Global Lighting & Signs](https://www.casinovendors.com/vendor/global-lighting-signs/) San Diego, California Global Lighting & Signs is an electrical and sign contractor that installs indoor and outdoor signage in Casinos. Category: Illuminated |
|
||||||
|
| 360 | [Global Link Language Services, Inc.](https://www.casinovendors.com/vendor/global-link-language-services-inc/) Boston, Massachusetts Global Link Language Services, founded in 1996, has emerged as an industry leader. Our premise is simple yet effective: we provide superior services and experience, extensive linguistic resources and competitive rates. Most importantly, we not only meet the expectations of o... Category: Translation Services |
|
||||||
|
| 361 | [Global Mfg. LLC](https://www.casinovendors.com/vendor/global-mfg-llc/) Newark, New Jersey We are the lowest cost, highest quality producer in our Field. We own our own factories in Mexico and have very quick turn around. We ship from Laredo Texas and Newark New Jersey. We do our embroidery in Mexico which makes us very competitive in specializng what we make. Category: Apparel Manufacturer |
|
||||||
|
| 362 | [Global Mfg. Solutions](https://www.casinovendors.com/vendor/global-mfg-solutions/) Franklin, Ohio Global Mfg. Solutions strives to assist every customer in accomplishing their decorating goals. Customer satisfaction is paramount to our existence as a leading provider of foam shapes. Exceeding customer expectations is our primary goal. We can accept most cad shapes or ... Category: Theming |
|
||||||
|
| 363 | [Global Monitor](https://www.casinovendors.com/vendor/global-monitor/) Guadalajara, Mexico Global Monitor is more than 14 years experience in industrial monitors for gaming machines, we integrate the best solutions in monitors with and without touch screen for our customers, and we are certifie by companies like 3M in US to integrate their touch screens with the b... Category: Other |
|
||||||
|
| 364 | [Global One Technologies](https://www.casinovendors.com/vendor/global-one-technologies/) Oceanside, California Global One Technologies is a design, engineering and systems integration firm, which transforms the way our customers live and do business by providing the best and most appropriate Audio Video and Technology solutions available to meet their functional, budgetary and implem... Category: Control Room |
|
||||||
|
| 365 | [Global Payment Technologies, Inc.](https://www.casinovendors.com/vendor/global-payment-technologies-inc/) Bohemia, New York Global Payment Technologies is a designer and manufacturer of currency validators supporting over 75 valid country-databases in the gaming, vending, banking and retail industries. GPT’s validators are unmatched in quality and performance, as is their unsurpassed commitment ... Category: Bill Validators |
|
||||||
|
| 366 | [Global Power Products](https://www.casinovendors.com/vendor/global-power-products/) Simi Valley, California Global Power Products specializes in many diverse industries from Gaming to Medical. We have a wide selection of standard power supplies. We also do modified and custom designs. Our lead-times are within 6-8 weeks. All our products are backed by a minimum 2 year warranty. Category: Power Sources |
|
||||||
|
| 367 | [Global Promotional Sourcing](https://www.casinovendors.com/vendor/global-promotional-sourcing/) Las Vegas, Nevada Global Promotional Sourcing (GPS) is the ONLY all-in-one provider of loyalty solutions for the gaming industry. Founded in 2001, we’ve grown into a trusted $200M+ marketing partner for top casino groups, delivering innovative, data-driven strategies that enhance guest engage... Category: Promotional Items |
|
||||||
|
| 368 | [Global Recruiters Network](https://www.casinovendors.com/vendor/global-recruiters-network/) Chicago, Illinois Global Recruiters Network, Inc.(GRN) is an expanding network dedicated to connecting high-quality companies with high-quality talent to advance in both business and career goals. Each of our offices specialize in a variety of disciplines, industries, and geographies, giving ... Category: Recruitment |
|
||||||
|
| 369 | [Global Refractory Installers and Suppliers](https://www.casinovendors.com/vendor/global-refractory-installers-and-suppliers/) Manistee, Michigan Global Refractory is comprised of project managers and service technicians. They have come together to bring their many years of designing, building, installing and servicing the air pollution control, aluminum melting and steel processing industries. Category: Air Filtration Systems |
|
||||||
|
| 370 | [Global Resource, Inc.](https://www.casinovendors.com/vendor/global-resource-inc/) Houston, Texas We carry all major brands of telephone equipment priced at 40-60% below retail. We offer the strongest warranty in the industry-- 3 year advanced replacement on all telephone and system parts. Some of the name brands we carry include: Nortel, Meridian, Teledex, Telematrix... Categories: Telecommunications Systems, Other, Communication Systems, In-room Messaging, Communications, In-house |
|
||||||
|
| 371 | [Global Safe Corporation](https://www.casinovendors.com/vendor/global-safe-corporation/) Boca Raton, Florida Global Safe Corporation is a leading manufacturer of electronic hotel safes. They have installed their hotel room safes in hospital patient rooms, university dormitories, United States military bases and embassies around the world. Categories: Safes, Safes, Safes, Safes, Safes |
|
||||||
|
| 372 | [Global Scenic Services, Inc.](https://www.casinovendors.com/vendor/global-scenic-services-inc/) Bridgeport, Connecticut Global Scenic Services is your partner in every aspect of your production. We operate from a 40,000 sq ft fabrication facility equipped to handle all of your fabrication needs including automation. We are prepared to tackle projects from the smallest show to the most lav... Category: Production |
|
||||||
|
| 373 | [Global Security Products, Inc.](https://www.casinovendors.com/vendor/global-security-products-inc/) Miami, Florida Paradyme/Global Security Products, Inc. is an experienced systems integration provider. Our in-house design and consulting team takes projects from conception to implementation and operation. Our experienced team has designed and installed systems for National Palaces, Presi... Category: CCTV Systems |
|
||||||
|
| 374 | [Global Security Solutions](https://www.casinovendors.com/vendor/global-security-solutions/) Tulsa, Oklahoma Our expertise and strengths are rooted in our firm understanding that each security project needs to be tailor-made to each client’s needs, specifications, and environment. We in building working partnerships, where the client is able to maximize the benefits of the services... Category: CCTV Systems |
|
||||||
|
| 375 | [Global Security Technologies (GST)](https://www.casinovendors.com/vendor/global-security-technologies-gst/) Odessa, Odes'ka Oblast', Ukraine Let us express to you our respect and introduce GST-Group (www.gst-group.com) - manufacturer and distributor of advanced high-grade security seals for preventing unauthorized access and fraud. Security seals for game machines, cash boxes, meters (electric, gas, water), calib... Category: Plastics |
|
||||||
|
| 376 | [Global Semisolutions](https://www.casinovendors.com/vendor/global-semisolutions/) Clearwater, Florida Global Semisolutions brings industry expertise to your electronic component needs. Our specialized sales team gives you the diversity in product knowledge that you need- the market expertise and technical skills of a specialist and the global supply chain services of a large... Category: Components |
|
||||||
|
| 377 | [Global Shakeup](https://www.casinovendors.com/vendor/global-shakeup/) North Hollywood, California Snowdomes, and snow globes designed to your specifications. Our focus is exclusively on these items and we are the best in the business. All-inclusive pricing (no surprise setup or extra charges) and on-time delivery takes the worry out of ordering these prized collectibles.... Categories: Wholesale, Souvenirs, Gift Merchandise |
|
||||||
|
| 378 | [Global Storm Partners](https://www.igamingaffiliateprograms.com/affiliate-program/global-storm-partners/) Category: Affiliate Programs |
|
||||||
|
| 379 | [Global Supply Network](https://www.casinovendors.com/vendor/global-supply-network/) Boulder, Colorado Global Supply Network is a manufacturer of Thermal & 2-ply Rolls, Printer ribbons,toner cartridge, InkJet cartridge, copier toners> We also have a full line of Thermal & Direct labels. We have Manufactured in the United States for over 25 years experience in the markets. O... Categories: Toner Cartridges, ATM Products and Services, Other, Bar Equipment, Paper, Other, Change Banks, Other, Supplies, Banking, Other |
|
||||||
|
| 380 | [Global Tote](https://www.igamingsuppliers.com/vendor/global-tote/) Broadmeadow, New South Wales, Australia The Global Tote is set to change Race books around the world. With the world’s first Business to Business only tote system it’s giving wagering operators globally the opportunity to provide a RaceBook to their clients like never before.Guaranteed returns, More content, No lo... Category: Gambling Operations, Sportsbook Software |
|
||||||
|
| 381 | [Global Trends U.S.A.](https://www.casinovendors.com/vendor/global-trends-u-s-a/) Canoga Park, California We are a mid-size embroidery and digitizing company offering our clients the highest quality production to be found anywhere. We have digitized over 250,000 individual logos since 1995, so we know what to do and how to do it precisely and perfectly. We have worked with man... Category: Embroidery |
|
||||||
|
| 382 | [Global Verification Network](https://www.casinovendors.com/vendor/global-verification-network/) Palatine, Illinois How do you know who you're hiring? Redridge Verification can help you answer this question. They offer accurate information, with a quick turnaround rate. Please visit their website today. Category: Employee Screening |
|
||||||
|
| 383 | [GlobalBet](https://www.casinovendors.com/vendor/globalbet/) Ruggell, Ruggell, Liechtenstein GlobalBet is a prominent B2B provider, serving as a trusted partner to the world's largest lottery operators across the globe. With a strong presence in five countries, GlobalBet offers comprehensive gaming solutions tailored to the unique requirements of the lottery industr... Categories: Other, Gambling Operations, Sportsbook Software, Racebook Software |
|
||||||
|
| 384 | [Globaldev Group](https://www.casinovendors.com/vendor/globaldev-group/) Belmont, California Globaldev Group helps companies advance their value by providing a complete set of software development solutions and leveraging our global talent pool. Category: Web Site Development |
|
||||||
|
| 385 | [Globalization Partners International](https://www.casinovendors.com/vendor/globalization-partners-international/) McLean, Virginia Globalization Partners International provides an array of globalization services that help companies communicate with the world. Our core service offerings enable firms to design, develop, and deploy multilingual documentation, software and Web sites for worldwide use. GP... Category: Translation Services, Translation Services |
|
||||||
|
| 386 | [GlobalProjectors.com](https://www.casinovendors.com/vendor/globalprojectors-com/) Guangzhou, Guangdong, China Globalprojectors.com is located in HongKong,China. Our company is established in 1997. Our store is to provide all the customers of us with the manufacturer wholesales price in Projection equipment and accessories without any aftersales commision. Our higly efficient logist... Category: Projectors |
|
||||||
|
| 387 | [Globant](https://www.igamingsuppliers.com/vendor/globant/) Capital Federal, Argentina We want to challenge the status quo and become the best company developing solutions that combine the best of engineering, innovation and design. Our goal is to be the leader in the creation of innovative software products that appeal to global audiences. We are a new-bre... Category: Software Development, Other |
|
||||||
|
| 388 | [GLOBAST Sh.a.](https://www.casinovendors.com/vendor/globast-sh-a/) Tirana, Tiranë, Albania Great offers for used electro-mechanical roulettes, slots and a complete Bingo Hall Equipment. Contact us for more details... Categories: Equipment, Slot Machines, Refurbished, Bingo Hall Management Systems |
|
||||||
|
| 389 | [Globe Party, Inc.](https://www.casinovendors.com/vendor/globe-party-inc/) Panorama City, California Globe Party, Inc is one of the USA leading entertainment companies. Our passion for innovative, fresh and creative entertainment ensures that we deliver distinctive experience to our clients in an easy, stress free way. Globe Party works with a diverse range of high qua... Category: Agency |
|
||||||
|
| 390 | [Globe Ticket](https://www.casinovendors.com/vendor/globe-ticket/) Carol Stream, Illinois The nation's oldest ticket printer (1868). As the manufacturer of tickets for the original thermal ticket printers, we have the most experience in the nation with this product. In addition we also produce thermal tickets for event admission, and movie theaters nationwide in... Categories: TITO Tickets, Tickets, Supplies |
|
||||||
|
| 391 | [Globo Technologies](https://www.igamingsuppliers.com/vendor/globo-technologies/) Moscow, Russia Globo Technologies was founded in 2001. Originally, its founders had set out to create a one-of-a-kind online casino, but were unable to find a unique software vendor that met their standards of quality. This prompted the start of their own software development company. Glob... Category: Casino Software, Poker Software |
|
||||||
|
| 392 | [GLORY (U.S.A.) Inc.](https://www.casinovendors.com/vendor/glory-u-s-a-inc/) West Caldwell, New Jersey GLORY is the world leader in the design and manufacture of cash management solutions that consist of casino kiosks with ATM functionality, bill breaking and ticket redemption; cash dispensers, cash recyclers and currency sorters and integration with many of the top cash acce... Categories: Kiosks, Cash Processing, Currency Handling Equipment, Currency Handling Equipment, Coin Wrapping, Change Banks |
|
||||||
|
| 393 | [Glory Global Solutions Limited](https://www.casinovendors.com/vendor/glory-global-solutions-limited/) Las Vegas, Nevada At Glory Global Solutions, innovation is at the heart of what we do. We bring real innovation to our customers, through technology, process and our people. Through our innovation, we fundamentally change the way cash moves across operations, how staff work, how customers are... Category: Currency Management Services |
|
||||||
|
| 394 | [Glory Partners](https://www.igamingaffiliateprograms.com/affiliate-program/glory-partners/) Category: Affiliate Programs |
|
||||||
|
| 395 | [Gloss Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gloss-partners/) Category: Affiliate Programs |
|
||||||
|
| 396 | [Glove Connection](https://www.casinovendors.com/vendor/glove-connection/) Henderson, Nevada The Glove Connection is a local company located in Henderson Nevada. We have been in business since 2001. We are a "Full Service Safety Supply House." We provide disposable Latex and Nitrile gloves to casinos. We also provide several items to Engineering and Horticulture dep... Category: Other, Other |
|
||||||
|
| 397 | [Glownight Games](https://www.igamingsuppliers.com/vendor/glownight-games/) New Hyde Park, New York Glownight Games is a prominent in 2D and 3D Game development, iOS & Android mobile game development company building games with great design & high-performance to provide a great user experience. Glownight Games is an aggregation of the world-class mobile game developers who... Category: Mobile Gaming |
|
||||||
|
| 398 | [Glu Mobile Inc.](https://www.igamingsuppliers.com/vendor/glu-mobile-inc/) San Francisco, California Glu Mobile is a leading global developer and publisher of freemium games for smartphone and tablet devices. Glu's unique technology platform enables its titles to be accessible to a broad audience of consumers all over the world - supporting iOS, Android, Palm, Windows Phon... Category: Mobile Gaming |
|
||||||
|
| 399 | [Glux Gtek (Shenzhen) Inc](https://www.casinovendors.com/vendor/glux-gtek-shenzhen-inc/) Shenzhen, China Glux Gtek is China's No.1 in LED curtain products, supply LED display to 2008 Olympics. With 17 years manufacturing & 15 years rental business experiences, we have customers from over 60 countries worldwide;our references include 2008 Beijing Olympics Games, CCTV (China Cen... Categories: LED Systems, LED, Videowalls, LED Systems |
|
||||||
|
| 400 | [GM Monarch West, LLC](https://www.casinovendors.com/vendor/gm-monarch-west-llc/) Las Vegas, Nevada Our staff has extensive experience in manufacturing custom millwork interiors for the Gaming and Hospitality Industry. We offer a commitment to customer service and pride ourselves on completing all projects on schedule to the customer's satisfaction. We offer Value Engineer... Category: Theming |
|
||||||
|
| 401 | [GM Telecom Supply, Inc.](https://www.casinovendors.com/vendor/gm-telecom-supply-inc/) Tampa, Florida Fiber Optic Manufacturing house. Lead time same day or next day delivery on all products from single to multi strand fiber assemblies example LC,SC,FC,D4,MU,BICONIC,SMA,DIN,MTRJ etc. Category: Fiber Optics Products |
|
||||||
|
| 402 | [GMD Industries, Inc.](https://www.casinovendors.com/vendor/gmd-industries-inc/) College Point, New York In the 33 years in existence, GMD Industries has provide decorative glass products to the gaming and high end retail markets. Our extensive knowledge when it comes to providing solutions allows us to manufacture products that others struggle with, such as oversize pieces of ... Category: Glass Art |
|
||||||
|
| 403 | [GMF Hospitality Inc](https://www.casinovendors.com/vendor/gmf-hospitality-inc/) Tenafly, New Jersey GMF Hospitality is a leading supply of upholstery products to a number of casino properties in Atlantic City, Las Vegas and throughout the US Category: Upholstery |
|
||||||
|
| 404 | [GMP Design Associates](https://www.casinovendors.com/vendor/gmp-design-associates/) Staffordshire, England, United Kingdom Established since 1990, award winning leisure designers GMP are currently one of the leading design consultancies in the late night entertainment market. Our highly creative and professional team are experienced in producing value for money interiors that are dynamic, stylis... Category: Interior |
|
||||||
|
| 405 | [GMR Transciption](https://www.casinovendors.com/vendor/gmr-transciption/) Tustin, California GMR Transcription provides state-of-the-art, affordable and accurate transcription services in the United States. With several million minutes of audio recorded and thousands of happy clients from an ever-growing list, GMR is your trusted source for transcription services at... Category: Translation Services |
|
||||||
|
| 406 | [GMW - Golden Metal Works](https://www.casinovendors.com/vendor/gmw-golden-metal-works/) Aligarh, India Established in 1975, Golden Metal Works has earned an enviable reputation as Manufacturer and Exporters of Quality Builders Hardwares in Brass, Aluminium & Iron as well. It has a very good standing with its customers all across the world. Presently, the company exports its B... Category: Other |
|
||||||
|
| 407 | [GN Exhibits Plus](https://www.casinovendors.com/vendor/gn-exhibits-plus/) Hauppauge, New York Over 25 years of experience with trade show exhibits and complete convention services. We provide special custom props, prototypes, and integrated industrial design services. Imagine it, design it, build it from concept to completion we do it all. www.gnexhibitsplus.com Category: Exhibit Supplies, Trade Shows and Conferences |
|
||||||
|
| 408 | [GnG Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gng-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 409 | [GNISEC](https://www.casinovendors.com/vendor/gnisec/) Sherman, Texas GNISEC is a national security company providing system installation and service of security camera systems, alarm systems, access control, integration and networking. We offer the latest in digital video recording technology. Stop by our booth for a demonstration and a pre... Category: Alarms |
|
||||||
|
| 410 | [Go Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/go-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 411 | [Go Barefoot](https://www.casinovendors.com/vendor/go-barefoot/) Gardena, California Go Barefoot has been designing and producing clothing for almost 50 years. Go Barefoot manufacturers island and beach lifestyle clothing. Category: Other |
|
||||||
|
| 412 | [GO Business](https://www.igamingsuppliers.com/vendor/go-business/) GO is the leading provider of ICT services in Malta, operating the primary IP link to Europe with capacity in excess of 2.5Gbps and immediate plans for a secondary link. GO also operates a number of state-of-the-art data centres that are managed round the clock by an excelle... Category: Hosting |
|
||||||
|
| 413 | [Go Green Lighting USA](https://www.casinovendors.com/vendor/go-green-lighting-usa/) Margate, Florida We are providers, designers and manufaturers of LED lightign products. We also do installation and services of our products. We have a wide range of products and we can design and customize to any customer's need. Category: LED |
|
||||||
|
| 414 | [GO plc](https://www.casinovendors.com/vendor/go-plc/) Marsa, Malta GO plc (formerly Maltacom) has become Malta’s first and only quadruple play operator, a truly converged telecommunications operator with a huge range of services. And to help you find exactly the right service for you, we’ve grouped them together into three areas – GO Busine... Categories: Communication Systems, Hosting, Hosting |
|
||||||
|
| 415 | [Go Win Casino Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/go-win-casino-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 416 | [Go2Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/go2affiliates/) Category: Affiliate Programs |
|
||||||
|
| 417 | [Goat Gaming Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/goat-gaming-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 418 | [GodBunny Partners](https://www.igamingaffiliateprograms.com/affiliate-program/godbunny-partners/) Category: Affiliate Programs |
|
||||||
|
| 419 | [Godiva Chocolatier, Inc.](https://www.casinovendors.com/vendor/godiva-chocolatier-inc/) New York, New York Category: Chocolate |
|
||||||
|
| 420 | [Goff Public, Inc.](https://www.casinovendors.com/vendor/goff-public-inc/) Saint Paul, Minnesota Goff Public is an independent communications agency based in Minnesota offering public relations and government relations services. We are skilled, experienced problem solvers who tell our clients’ stories, advocate for their interests and protect their reputations while se... Category: Public Relations and Publicity |
|
||||||
|
| 421 | [GoFrugal Technologies](https://www.casinovendors.com/vendor/gofrugal-technologies/) Chennai, Tamil Nādu, India GoFrugal is a leading retail business management software company India specializing in retail, distribution and supply chain management solutions. We offer end to end solutions from store automation to multi-channel retailing suitable for volume, value and service to the re... Category: Systems |
|
||||||
|
| 422 | [GOG Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gog-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 423 | [Gogame Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gogame-partners/) Category: Affiliate Programs |
|
||||||
|
| 424 | [GOJO Industries Inc.](https://www.casinovendors.com/vendor/gojo-industries-inc/) Akron, Ohio GOJO Industries, Inc. has a portfolio of products that includes industry leading formulas under the GOJO® and PURELL® brand names. GOJO is known for state-of-the-art dispensing technology, engineered with attention to design and durability. In partnership with our distributo... Category: Hygiene Products, Supplies |
|
||||||
|
| 425 | [Gold Club d.o.o.](https://www.casinovendors.com/vendor/gold-club-d-o-o/) Sezana, Sežana, Slovenia Gold Club D.O.O. developes automated roulettes. The Gold Club Roulette for 5,6,8 and 10 players is a completely automated, computer controlled gambling machine. Its classical design and esthetical perfection, combined with cutting edge technology, sets new standards to one's... Category: Equipment |
|
||||||
|
| 426 | [Gold Coast Flood Restorations](https://www.casinovendors.com/vendor/gold-coast-flood-restorations/) El Cajon, California At Gold Coast Flood Restorations, we believe every customer deserves our fullest attention. That your problems are ours. And that we are obligated to do everything within our power to makes those problems disappear. Gold Coast is a Christian-based, family owned and operat... Categories: Claims, Other, Consulting, Other |
|
||||||
|
| 427 | [Gold Crown Gaming](https://www.casinovendors.com/vendor/gold-crown-gaming/) Miami, Florida Gold Crown Gaming Categories: Slot Machines, Refurbished, Supplies, Equipment, Manufacturer, Furnishings, Reconditioned, Shuffling Machines, Blackjack Tables, Chip Handling, Equipment, Bill Validators, Chip Handling, Chips, Electronic Systems, Slot Stools, Accessories, Blackjack Tables, Blackjack Tables, Chips, Multi-player Games, Chips, Reconditioned, Poker Network, Equipment, Slot Stools, Coin Hoppers, Electronic Games, Gaming Products, Shuffling Machines, Pai Gow, Shuffling Machines, Tables, Accessories, Accessories, Equipment, Video Devices (used), Equipment, Reconditioned, Equipment, Gaming Products, Collection Systems, Chip Handling, Poker Chips, Chips, Used, Coin and Chip Storage, Furnishings, Slot Machines, Refurbished |
|
||||||
|
| 428 | [Gold Deluxe Ltd](https://www.igamingsuppliers.com/vendor/gold-deluxe-ltd/) Gold Deluxe was established in 2011 July; with over 100 employees in Philippines. It specializes in online casino platform for Baccarat and other casino games. Gold Deluxe has led the online gaming industry by providing innovative & cutting edge casino solutions to leading g... Category: Live Dealer, Mobile Gaming |
|
||||||
|
| 429 | [Gold Fusion](https://www.casinovendors.com/vendor/gold-fusion/) Conyers, Georgia The GOLD FUSION team is comprised of dedicated professionals who work synergistically to provide you, the customer, with the most feature-packed system on the market today. Programmers, Gamers, Artists, Technicians, Engineers, Customer Support, Account Representatives and In... Category: Software |
|
||||||
|
| 430 | [Gold Link S.R.L](https://www.casinovendors.com/vendor/gold-link-s-r-l/) Buenos Aires, Capital federal, Argentina Categories: Electronic Systems, Equipment, Slot Machines, Systems |
|
||||||
|
| 431 | [Goldbet Partners](https://www.igamingaffiliateprograms.com/affiliate-program/goldbet-partners/) Category: Affiliate Programs |
|
||||||
|
| 432 | [Golden Euro Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/golden-euro-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 433 | [Golden Games](https://www.casinovendors.com/vendor/golden-games/) Pfäffiko, Switzerland Category: Slot Machines |
|
||||||
|
| 434 | [Golden Gorilla Media Limited](https://www.igamingsuppliers.com/vendor/golden-gorilla-media-limited/) Newcastle upon tyne, England, United Kingdom Digital Growth Specialists We are digital marketing and media publishers that get brands discovered online. Category: Search Engine Optimization, Website Content |
|
||||||
|
| 435 | [Golden Hero Limited](https://www.igamingsuppliers.com/vendor/golden-hero-limited/) Category: Casino Software, Casino Software |
|
||||||
|
| 436 | [Golden Limo Worldwide](https://www.casinovendors.com/vendor/golden-limo-worldwide/) San Jose, California SFO Golden Limo consistently provides on-time, prompt and professional chauffeured limo service to meet the challenging transportation needs of San Jose business and leisure travelers. With our team of professional chauffeurs, fleet of latest sedans, vans, limo-buses and var... Category: Limousines |
|
||||||
|
| 437 | [Golden Matrix Group](https://www.igamingsuppliers.com/vendor/golden-matrix-group/) Golden Matrix Group is a leading provider of turnkey and white label gaming platforms, Esports technology and gaming content. Categories: Gambling Operations, Platform Providers, Other |
|
||||||
|
| 438 | [Golden Palace Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/golden-palace-affiliates/) GoldenPalaceAffiliates.com represents world-renown brands that have withstood the test of time. GoldenPalace.com was established in 1997, virtually since the advent of online gaming itself. We hold operators to the highest possible standards to ensure that players receive th... Category: Affiliate Programs |
|
||||||
|
| 439 | [Golden Race](https://www.igamingsuppliers.com/vendor/golden-race/) Birguma Naxxar, Malta Golden Race is the “one stop partner” for virtual sportsbetting and number games. We fulfill all special needs regarding different clients, countries and habits. By constantly improving existing products and developing innovative new games, we build up “one stop clients” tha... Category: Gambling Operations, Other |
|
||||||
|
| 440 | [Golden Rock Studios](https://www.igamingsuppliers.com/vendor/golden-rock-studios/) Gibraltar, Gibraltar Golden Rock Studios is a game developer of online slots and table games. Category: Casino Software |
|
||||||
|
| 441 | [Golden Royal Technology Developer Co.,Ltd.](https://www.casinovendors.com/vendor/golden-royal-technology-developer-co-ltd/) Yongkang, Tainan, Taiwan Our company has been engaged in developing and manufacturing various software and hardware for electronic gaming such as electronic baccarat. We have a specialized team that offers the most specialized, conscientious service, the latest development of machinery, and permanen... Category: Electronic Games |
|
||||||
|
| 442 | [Golden Sunshine Entertainment Products Limited](https://www.casinovendors.com/vendor/golden-sunshine-entertainment-products-limited/) Guangzhou, China Category: Playing Cards |
|
||||||
|
| 443 | [Golden View Localization](https://www.casinovendors.com/vendor/golden-view-localization/) Shenzhen, Guangdong, China One-stop shop translation & localization solutions into East Asia and South East Asian languages with 13 years excellence. Category: Translation Services |
|
||||||
|
| 444 | [Golden Waffles](https://www.casinovendors.com/vendor/golden-waffles/) South Bend, Indiana For over 80 years Golden Waffles has been America's Favorite waffle. They are the world's largest supplier of waffle irons and waffle mix for the best hotels, universities, restaurants and theme parks. If you've eaten a waffle at a hotel, most likely it was a Carbon's Golde... Category: Equipment, Other |
|
||||||
|
| 445 | [Golden Whale Productions GmbH](https://www.casinovendors.com/vendor/golden-whale-productions-gmbh/) Vienna, Austria Data-driven services in platform-building, games-design, player-analytics and much more – Golden Whale Productions provides know-how and products that let you utilize the power of your data for informed decisions. Solutions for player behaviour and classification, retention ... Category: |
|
||||||
|
| 446 | [Goldenbet Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/goldenbet-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 447 | [Golden-Race A.B. Group](https://www.igamingsuppliers.com/vendor/golden-race-a-b-group/) Birguma Naxxar, Malta Golden Race is a young and dynamic holding company that was born at the beginning of 2006 in the field of sports betting and with the successful launch of dogs racings with over 8,000 licenses sold. Because of the success of its first product, the company decided to invest a... Category: Racebook Software, Live Dealer |
|
||||||
|
| 448 | [Golden-Race.ru](https://www.igamingsuppliers.com/vendor/golden-race-ru/) Netishin, Ukraine Category: Racebook Software |
|
||||||
|
| 449 | [Goldfinger Monitors](https://www.casinovendors.com/vendor/goldfinger-monitors/) John's Island, South Carolina Goldfinger is the fastest growing monitor company in the United States designing and manufacturing non-touch and touch screen monitors with touch-screen capable on-screen menus boasting state-of-the-art technology and durability. We offer a full line of monitors that are bui... Category: Monitors, Card Readers |
|
||||||
|
| 450 | [Goldfire Studios](https://www.igamingsuppliers.com/vendor/goldfire-studios/) Oklahoma City, Oklahoma GoldFire Studios is pioneering the next generation of social gaming by bringing real-time multiplayer games to your tablets and computers with cutting edge web technologies. Our vision is to enable the same engaging gameplay and meaningful social experiences across all devic... Category: Other |
|
||||||
|
| 451 | [Goldray Industries Ltd.](https://www.casinovendors.com/vendor/goldray-industries-ltd/) Calgary, Alberta, Canada Goldray is a leading manufacturer and innovator for decorative glass. We have one of the most complete and modern manufacturing facilities for fabricated decorative glass in North America. Our reliance on outsourcing is very minimal, this gives us an advantage in controlli... Category: Glass Art, Exhibits |
|
||||||
|
| 452 | [Goldrush Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/goldrush-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 453 | [Goldstein-Schwartz Inc.](https://www.casinovendors.com/vendor/goldstein-schwartz-inc/) Maryland Heights, Missouri We have worked with Naval Engineers designing Flexible Utility Systems for many new projects and have supplied numerous Casino Riverboats in Missouri, Illinois, Iowa, Mississippi, Indiana and Louisiana with various styles of Hose and Fittings for their Utility Systems handli... Category: Other |
|
||||||
|
| 454 | [Golf Resources Group](https://www.casinovendors.com/vendor/golf-resources-group/) Plano, Texas D.A. Weibring/GRI was formed in October, 1987 for the purpose of consulting on agronomic issues with golf course architects, owners, and operators. The formation of the company was achieved with the combined efforts of PGA Tour Professional D.A. Weibring and Dallas real est... Categories: Artificial Grass Surfaces, Other, Consulting |
|
||||||
|
| 455 | [Gollehon Books](https://www.casinovendors.com/vendor/gollehon-books/) Grand Rapids, Michigan Gollehon Books are among the top sellers in national bookstore chains and are perfectly suited for casino promotions, awards, give-aways, prizes and tournament gifts. Write, call, email, or fax for a free catalog! Category: Books |
|
||||||
|
| 456 | [Golpas Partners](https://www.igamingaffiliateprograms.com/affiliate-program/golpas-partners/) Category: Affiliate Programs |
|
||||||
|
| 457 | [Gomeeki](https://www.igamingsuppliers.com/vendor/gomeeki/) Lavender Bay, New South Wales, Australia Gomeeki, the mobile commerce company is committed in providing clients with high-quality Mobile application development services. Gomeeki’s operation is headquartered in Sydney Australia, with an additional service delivery & support team located in Bangkok, Thailand. ... Category: Mobile Gaming |
|
||||||
|
| 458 | [GOMO Mobile Technology Co., Ltd.](https://www.igamingsuppliers.com/vendor/gomo-mobile-technology-co-ltd/) Guangzhou, Guangdong, China GOMO Mobile Technology Co., Ltd. (hereinafter referred to as “GOMO”) was founded in 2003 with its headquarter located in Guangzhou. Riding on the opportunities in the era of Mobile Internet, GOMO has developed into the world leading mobile application developer and mobile ad... Category: Mobile Gaming |
|
||||||
|
| 459 | [Gondola Adventures®, Inc.](https://www.casinovendors.com/vendor/gondola-adventures-inc/) Henderson, Nevada Gondola Adventures®, Inc. is the largest purveyor of gondolas, gondola equipment, training, and operations in the United States. With three operations currently in Las Vegas, Dallas, and Newport Beach, California, and our boat fabricating arm, our staff has the most extensi... Category: Amusement Equipment |
|
||||||
|
| 460 | [GoneGambling](https://www.igamingsuppliers.com/vendor/gonegambling/) GoneGambling is a unique casino and gambling portal which has been specifically designed with the casino's interests in mind. Creative on-site incentives, as well as intense promotion for our sponsors, guarantee quality, consistent players and deposits. Our satisfied adver... Category: Consumer Portals |
|
||||||
|
| 461 | [GONG Gaming Technolgies](https://www.igamingsuppliers.com/vendor/gong-gaming-technolgies/) Category: Casino Software |
|
||||||
|
| 462 | [Gonzi & Associates, Advocates](https://www.casinovendors.com/vendor/gonzi-associates-advocates/) Fgura, Malta Categories: Other, Licensing and Regulation, Accounting, Licensing: Intellectual Property, Contract Management, Gaming Licensing, Compliance |
|
||||||
|
| 463 | [Good Day 4 Play Affiliate Program](https://www.igamingaffiliateprograms.com/affiliate-program/good-day-4-play-affiliate-program/) Category: Affiliate Programs |
|
||||||
|
| 464 | [Good Guy Productions](https://www.casinovendors.com/vendor/good-guy-productions/) Bloomingdale, New York We are a full service party planning event company that can render any style or theme imaginable. We do things in a tactful, yet fun, manner. We are also dealers of all casino products. We can sell them inexpensive because we buy them that way. We make our money on the p... Category: Casino Party Rental, Poker Chips |
|
||||||
|
| 465 | [Good Source Solutions](https://www.casinovendors.com/vendor/good-source-solutions/) Emmett, Idaho Category: Other |
|
||||||
|
| 466 | [GoodCore Software Ltd](https://www.casinovendors.com/vendor/goodcore-software-ltd/) Croydon, England, United Kingdom GoodCore is a software development company that designs, develops and supports bespoke software solutions and works with clients of various preferences, business needs, and organizational cultures. Category: Software Development |
|
||||||
|
| 467 | [GoodDep](https://www.igamingaffiliateprograms.com/affiliate-program/gooddep/) Saldus, Latvia GoodDep is an ultimate bridge between advertisers and publishers, specifically designed to empower gambling affiliates. Our dedicated support team is here to provide personalized assistance, analyzing your specific situation to ensure smooth operations and optimal result... Category: Affiliate Programs |
|
||||||
|
| 468 | [GoodFellas Gaming](https://www.casinovendors.com/vendor/goodfellas-gaming/) Birmingham, Alabama GoodFellas Gaming, located in Birmingham, AL, services the state of Alabama and the entire Southeast. Whether you're hosting a Corporate Party, Fundraiser, Reunion, Student Social or Private Affair, our commitment is to ensuring that your guests have a great time at your spe... Category: Casino Party Rental |
|
||||||
|
| 469 | [Goodwill Ship Management](https://www.casinovendors.com/vendor/goodwill-ship-management/) Chittagong, Chittagong bibhag, Bangladesh Goodwill Ship Management is one of the most trusted names in this region in the field of complete shipping solutions. Each company is focused on particular services. Category: Shipping |
|
||||||
|
| 470 | [Goodwyn Production Group](https://www.casinovendors.com/vendor/goodwyn-production-group/) Las Vegas, Nevada Goodwyn Production Group is a woman-owned, full service results-oriented video production company based in Las Vegas, Nevada. We understand that our job is to make our clients look their best. Goodwyn has 20 years of experience doing just that: creating award-winning prog... Category: Production |
|
||||||
|
| 471 | [Google Cloud](https://www.casinovendors.com/vendor/google-cloud/) Mountainview, Massachusetts Google Cloud is widely recognized as a global leader in delivering a secure, open, intelligent and transformative enterprise cloud platform. Our technology is built on Google’s private network and is the product of nearly 20 years of innovation in security, network architect... Category: Computer Systems |
|
||||||
|
| 472 | [Goplay365 Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/goplay365-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 473 | [GoProCasino Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/goprocasino-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 474 | [Goral Partners](https://www.igamingaffiliateprograms.com/affiliate-program/goral-partners/) Goral Partners blends innovation and expertise to fuel every affiliate partnership, striving to pioneer digital solutions that redefine success. The company's mission is to empower affiliates with cutting-edge digital strategies. Category: Affiliate Programs |
|
||||||
|
| 475 | [GoRealTime](https://www.casinovendors.com/vendor/gorealtime/) St. George, Utah We have been providing the best in on-line, e-commerce enabled services since 1997. We provide fast, secure on-line credit card transactions for merchants, ISP's, shopping cart companies and anyone else doing business over the net. The GOrealtime Gateway is high capacity and... Category: Merchant Accounts |
|
||||||
|
| 476 | [Gorilla Gaming](https://www.casinovendors.com/vendor/gorilla-gaming/) Warwick, Rhode Island Gorilla Gaming is home to Legendary Gaming Tables, Custom Felts and Livestream Production. Located in Warwick, RI, Gorilla Gaming has become the industries go to suppler for the highest quality gaming tables. As the official table of the World Series of Poker, and the pr... Categories: Poker Tables, Synthetic Gaming Layouts, Poker Tables, Poker Tables, Poker Tables, Masks and Shields, Masks and Shields |
|
||||||
|
| 477 | [Gorilla Paper Inc](https://www.casinovendors.com/vendor/gorilla-paper-inc/) Elk Grove Village, Illinois Gorilla Paper offers same day shipping from IL and AZ warehouse, There is no minimum to purchase order online. No.1 source of Credit Card Thermal Receipt Paper Rolls, Cleaning Cards since 2009. Category: Bill Validator Cleaning Cards, ATM Products and Services |
|
||||||
|
| 478 | [Gorilla Playsets](https://www.casinovendors.com/vendor/gorilla-playsets/) Canton, Georgia Gorilla Playsets is the top manufacturer of swing sets and swing set accessories. Category: Amusement Equipment, Child Care Services |
|
||||||
|
| 479 | [Goslyn Grease Recovery Systems](https://www.casinovendors.com/vendor/goslyn-grease-recovery-systems/) Aurora, Ontario, Canada Goslyn is an automatic grease recovery device that is more efficient and cost-effective alternative to a traditional grease trap. The unique separation system continuously and permanently removes fats, oil and grease from waste effluent. There is no grease build up as is th... Category: Plumbing Products and Parts |
|
||||||
|
| 480 | [Goslyn West](https://www.casinovendors.com/vendor/goslyn-west/) Oakland, California Category: Restaurant Equipment |
|
||||||
|
| 481 | [GoTo Foods](https://www.casinovendors.com/vendor/goto-foods/) Atlanta, Georgia GoTo Foods, formerly Focus Brands, is the franchisor and operator of over 2,200 ice cream shoppes, bakeries, restaurants, and cafes in the United States, the District of Columbia, Puerto Rico, and 38 foreign countries under the brand names Carvel®, Cinnabon®, Schlotzsky’s®, ... Category: Other |
|
||||||
|
| 482 | [Gotta Have It Golf, Inc.](https://www.casinovendors.com/vendor/gotta-have-it-golf-inc/) Miami, Florida For 15 years Gotta Have It Golf has been the leader in supplying the memorabilia industry with the best Sports, Entertainment and Historical collectibles in the world. From our elegant and creative presentations to our handcrafted framework, and finally to our unique and dis... Category: Other |
|
||||||
|
| 483 | [Gourmet Display](https://www.casinovendors.com/vendor/gourmet-display/) Kent, Washington Category: Food Display, Other |
|
||||||
|
| 484 | [Gourmet Table Skirts and Linens](https://www.casinovendors.com/vendor/gourmet-table-skirts-and-linens/) Houston, Texas We manufacture and sell direct table linens, table skirting, conference cloths, along with many other table covering products. We are approved vendors for many buying organizations and have been in business over 25 years. We are very price competitive and known for the quali... Category: Linens |
|
||||||
|
| 485 | [GourmetGiftBaskets.com](https://www.casinovendors.com/vendor/gourmetgiftbaskets-com/) Kingston, New Hampshire GourmetGiftBaskets.com is an online retailer of award-winning, gourmet gifts. We design and build every gift by hand at our single location in Southern NH and truly consider our gifts to be works of art. With over 400 gifts to choose from, you can be certain that we have the... Category: Gift Merchandise |
|
||||||
|
| 486 | [Governance Associates](https://www.casinovendors.com/vendor/governance-associates/) Information security, AML/CFT, compliance, and governance consulting. Categories: Consulting, Security and Fraud, Regulatory Agency |
|
||||||
|
| 487 | [Gowell Group Technology Co., Ltd](https://www.casinovendors.com/vendor/gowell-group-technology-co-ltd/) Shenzhen, Guangdong, China Gowell group technology Co.,limited is a hi-tech enterprise specializing in developing, manufacturing and marketing CCTV products including Standalone DVR, DVR Kits, IP Camera, Analog Camera, etc., devoting ourselves to providing HD and intelligent IP surveillance systems at... Category: CCTV Systems |
|
||||||
|
| 488 | [Gowling WLG International Limited](https://www.igamingsuppliers.com/vendor/gowling-wlg-international-limited/) Toronto, Ontario, Canada Gowling WLG is an international law firm which represents a natural evolution for its founding firms - Gowlings and Wragge Lawrence Graham & Co. With roots tracing back to 1887, Gowlings has grown to become one of the largest and most respected law firms in Canada, with a re... Category: Licensing and Regulation |
|
||||||
|
| 489 | [GPE Vendors](https://www.casinovendors.com/vendor/gpe-vendors/) Fano, Italy GPE Vendors is a well-known and proven brand name in the European and International vending market. The wide selection of refrigerated and hot drinks vending machines has its main strengths in the excellent quality-price ratio, the reliability of the electronic parts and th... Category: Dispensers, Vending Machines |
|
||||||
|
| 490 | [GPO Display](https://www.casinovendors.com/vendor/gpo-display/) Livermore, California GPO Display offers a wide array of display solutions to meet your needs from video walls to 4K & 1080p commercial LCD monitors, interactive kiosks and touch-enabled display tables.The “GPO difference” is evident from the moment a project is conceived. We aid in preliminary d... Categories: Videowalls, Videowalls, Videowalls, Videowalls, Kiosks, Touchscreens, Touchscreens, Monitors, Monitors, Other |
|
||||||
|
| 491 | [GPS - Game Power System Co., Ltd.](https://www.casinovendors.com/vendor/gps-game-power-system-co-ltd/) New Taipei City, Taipei, Taiwan Established since 1979, Game Power System (GPS) is a video arcade game manufacturer and developer as well. We manufacture Video Game Machine, Video Arcade Machine, Vending Machine,LCD Gambling Machine, WHACK A MOLE, Touch Machine, Bar Game, Mario Game, Fruit (8 line) Games, ... Category: Slot Machines |
|
||||||
|
| 492 | [GR8 Tech](https://www.igamingsuppliers.com/vendor/gr8-tech/) Limassol, Lemesos, Cyprus GR8 Tech is the provider behind the Platform for Champions, delivering high-performance sportsbook and iGaming solutions for operators ready to lead and win in competitive markets. Categories: Gambling Operations, Platform Providers, Platform Providers, Affiliate Program Software |
|
||||||
|
| 493 | [Graciana Tortilla Factory](https://www.casinovendors.com/vendor/graciana-tortilla-factory/) Sylmar, California Graciana Tortilla Factory was establish in 1937, we serve all southern California and our major vendors include Sysco, MCI food, California State Prison, Navy, Army Base. Our prices are lower than any other manufacture in town and are guarantee. Category: Other |
|
||||||
|
| 494 | [GRAFIX Oncall, Inc.](https://www.casinovendors.com/vendor/grafix-oncall-inc/) Santa Rosa, California We help you separate your business from the competition! Grafix Oncall has 17+ years experience in providing top-notch real-world graphics. Count on us for your time sensitive projects and be assured deadlines will be met. We listen. We advise. We're there when you need us. ... Category: Graphic Design |
|
||||||
|
| 495 | [Graftek Systems](https://www.casinovendors.com/vendor/graftek-systems/) West Warwick, Rhode Island Graftek Systems is one of the leading providers of uniforms, promotional products, and printed documents in the Eastern United States. Recognized by their customers as a high quality provider with extremely attractive prices. An industry leading customer service team and unc... Categories: Uniforms, Specialties, Printers, Distributors |
|
||||||
|
| 496 | [Grainger](https://www.casinovendors.com/vendor/grainger/) Mobile, Alabama Grainger Industrial Supply has been America's leading distributor of Maintenance, Repair, & Operating supplies for over 75 years. We have maintained this status by offering our customers the very best brands at competitive prices with unmatched service after the sale. Our ne... Categories: Supplies, Other, Other, Batteries, Customer Service |
|
||||||
|
| 497 | [Grand Aire, Inc.](https://www.casinovendors.com/vendor/grand-aire-inc/) Swanton, Ohio Grand Aire is a premium Air Charter Management company, offering a wide variety of passenger and cargo charter aircraft throughout North America and beyond. Categories: Air Transportation, Other, Air Charter, Passenger |
|
||||||
|
| 498 | [Grand Betting Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/grand-betting-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 499 | [Grand Canyon University](https://www.casinovendors.com/vendor/grand-canyon-university/) Phoenix, Arizona Grand Canyon University is a private Christian university located in Phoenix, Arizona. We are dedicated to helping our students change their lives for the better through education. We offer a wide range of programs at both the undergraduate and graduate levels that you can e... Category: Education |
|
||||||
|
| 500 | [Grand Club Partners](https://www.igamingaffiliateprograms.com/affiliate-program/grand-club-partners/) Category: Affiliate Programs |
|
||||||
|
| 501 | [Grand Korea Corp.](https://www.casinovendors.com/vendor/grand-korea-corp/) Seoul, Seoul Teugbyeolsi, South Korea Category: Management Systems |
|
||||||
|
| 502 | [Grand Parade Ltd](https://www.igamingsuppliers.com/vendor/grand-parade-ltd/) London, England, United Kingdom Grand Parade is an independently owned company founded by Andy Clerkson and Ed Needham - two pioneers of men's lifestyle publishing in the UK and USA. They edited and published mega-magazine brands such as Maxim, Rolling Stone, FHM and Stuff. They wanted to create engaging m... Categories: Other, Mobile Gaming, Social Media, Search Engine Optimization, Website Content |
|
||||||
|
| 503 | [Grand Prive Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/grand-prive-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 504 | [Grand Prize Promotions](https://www.casinovendors.com/vendor/grand-prize-promotions/) Richardson, Texas With over 25 years of covering prize promotions, we have covered over 300,000 events throughout the world. Providing superior and exciting Prize programs for casinos, sporting events, odds contests and games of chance. We also provide weather promotions, weather insurance,... Categories: Insurance, Specialties, Driving Range Services, Production, Other, Planning, Consulting, Media Buying and Planning, Promotions, Promotions, Database Marketing, Promotions, Insurance: Jackpots, Promotions, Prizes, Public Relations and Publicity, Sales Building |
|
||||||
|
| 505 | [Grand Productions, Inc.](https://www.casinovendors.com/vendor/grand-productions-inc/) Naperville, Illinois Specialize in creating high-impact celebrity driven programs, promotions, and engaging interactive games that resonate with not just your existing gaming customers, but have proven drawing power to new customers in your local & mid-markets. Our programs utilize some of toda... Category: Promotions, Talent Buying |
|
||||||
|
| 506 | [Grand Products Incorporated](https://www.casinovendors.com/vendor/grand-products-incorporated/) Des Plaines, Illinois Grand Products Inc. is a full service contract assembler and manufacturer with complete turnkey operations from prototype engineering through production. Some of our capabilities include: wire harnesses, electromechanical assemblies, mechanical assemblies, cable assemblies a... Category: Slot Machines |
|
||||||
|
| 507 | [Grand Rapids Chair Company](https://www.casinovendors.com/vendor/grand-rapids-chair-company/) Grand Rapids, Michigan Grand Rapids Chair Co. prides itself on its unique designs. We offer customers fresh new looks that are appropriate for their specific installations. Each and every chair, barstool, and table that we manufacture reflects the pride of our craftsmanship and our quality. Pull... Categories: Furniture, Furniture Manufacturer, Other |
|
||||||
|
| 508 | [Grand Traverse Mobile Communications](https://www.casinovendors.com/vendor/grand-traverse-mobile-communications/) Traverse City, Michigan CASINO PROVEN SOLUTIONS We strive to create a more efficient, cost effective solution to problems our customers have. If their actual needs are simple, we provide a simple solution. If their needs are complex, we utilize the decades technical experience within our company t... Categories: Radios-2 Way, Radios-2 Way, Wireless Communication Systems, Monitoring |
|
||||||
|
| 509 | [Grand View Products, Inc.](https://www.casinovendors.com/vendor/grand-view-products-inc/) Miami, Florida Grandview products has been re-manufacturing and distributing casino gaming machines since 1991. Although our headquaters are located in Miami FL, we have state of the art facilities located globally which were designed to consistently deliver quality standards of reconditio... Categories: Slot Machines, Used, Slot Machines, Refurbished, Equipment, Equipment, Slot Machines, Video Devices (used), Progressive Jackpot Equipment, Repair, Slot Machines, Used |
|
||||||
|
| 510 | [Grand Vision Gaming, LLC](https://www.casinovendors.com/vendor/grand-vision-gaming-llc/) Billings, Montana Grand Vision Gaming (GVG) is a designer and manufacturer of Class III Video Gaming Machines. GVG boasts an engineering team responsible for revolutionary gaming products that employ state of the art technology, highly interactive and imaginary game themes, and proprietary ca... Category: Slot Machines |
|
||||||
|
| 511 | [GrandeAffiliates](https://www.igamingaffiliateprograms.com/affiliate-program/grandeaffiliates/) Category: Affiliate Programs |
|
||||||
|
| 512 | [Grandville Printing Company](https://www.casinovendors.com/vendor/grandville-printing-company/) Grandville, Michigan Grandville Printing Company is a family owned company located in the heart of Grandville, Michigan. We are commited to value in everything we do. Offering offest web printing, sheetfed, and HP Indigo digital variable data printing as our foundation, we believe in servicing e... Categories: Printers, Manufacturers, Player Tracking Cards, Large Format, Full Service Agency |
|
||||||
|
| 513 | [Grandwell Industries Inc.](https://www.casinovendors.com/vendor/grandwell-industries-inc/) Fuquay-Varina, North Carolina We have provided digital solutions to local, national, and international customers since 1989.Our customers achieve great results in both their digital marketing and advertising strategies. All of our tech support customers receive courteous, professional and thorough suppor... Category: LED Systems, LED Systems |
|
||||||
|
| 514 | [GrandX Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/grandx-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 515 | [Granite Mountain Stone Design](https://www.casinovendors.com/vendor/granite-mountain-stone-design/) Fresno, California Granite Mountain Stone Design is under the umbrella of Cold Spring Granite. Cold Spring Granite has been in business for over 100 years and owns over 33 quarrys nation wide, that allows us the ability to not only provide custom granite countertops but to also provide specifi... Category: Other |
|
||||||
|
| 516 | [Grant Sound & Lighting Inc](https://www.casinovendors.com/vendor/grant-sound-lighting-inc/) Ventura, California Grant Sound & Lighting, formerly known as Luners has been in business for over 35 years and provides superior service along with over a hundred high quality lines of equipment to choose from. From lighting and Audio system design, through installation and on to maintenance a... Category: Audio Systems, Systems |
|
||||||
|
| 517 | [Grant Thornton LLP](https://www.casinovendors.com/vendor/grant-thornton-llp/) Reno, Nevada Grant Thornton is one of the world's largest and most dynamic accounting and management consulting organizations. Our goal is to help our clients grow faster by providing business services that deliver measurable value. Category: Accounting, Consulting |
|
||||||
|
| 518 | [Grape Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/grape-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 519 | [Graphic Composition, Inc.](https://www.casinovendors.com/vendor/graphic-composition-inc/) Greenville, Wisconsin Graphic Composition has been servicing our clients for over sixty years. Offering an experienced design, production and distribution staff to provide full service to our customers, from concept to completion on their projects. We look for ways to spoil our customers by del... Categories: Direct Mail, Printers, Distributors |
|
||||||
|
| 520 | [Graphic Controls](https://www.casinovendors.com/vendor/graphic-controls/) Buffalo, New York Graphic Controls is the world's largest manufacturer of TITO Slot Machine Tickets. Our global operations combine the latest printing technologies with the expertise and service of more than 90 years. From shrink-wrap ticket packs and custom printing to local warehousing and ... Categories: Coinless Systems, TITO Tickets, Thermal Products, Promotional Tickets, Manufacturing, Player Tracking Systems, Receipt Paper Rolls |
|
||||||
|
| 521 | [Graphic Encounter Fine Art](https://www.casinovendors.com/vendor/graphic-encounter-fine-art/) Basalt, Colorado Graphic Encounter Fine Art provides art, mirrors, framing + professional fine art consulting services to prominent interior designers, architects, project managers and purchasing agents throughout North America, Europe and the Far East. Since 1970,our Single Source concept b... Categories: Art, Art, Mirrors, Art, Art |
|
||||||
|
| 522 | [Graphic House](https://www.casinovendors.com/vendor/graphic-house/) Wausau, Wisconsin Graphic House is the leading manufacturer and designer of custom signage in the Midwest. They offer superior custom design, fabrication, installation and service to national accounts as well as companies in the region. When you work with our dedicated sales staff, you’ll see... Category: Outdoor |
|
||||||
|
| 523 | [Graphic Impact](https://www.casinovendors.com/vendor/graphic-impact/) Tucson, Arizona One source for full color digital output, printed materials, mailings, large routed signs, posters, name tags, architectural signage and awards and plaques. Founded in 1989, locally owned. Largest supplier in Southern Arizona. Our website at www.graphic-impact.com includes p... Category: Large Format |
|
||||||
|
| 524 | [Graphic Interfaces, Inc.](https://www.casinovendors.com/vendor/graphic-interfaces-inc/) San Diego, California We are a custom label/tag/ticket producer that offers outstanding quality at very competitive prices. Our in-house graphics department can enhance the success of your promotion. Categories: Labels, Other, Promotions, Printed Materials |
|
||||||
|
| 525 | [Graphic Solutions](https://www.casinovendors.com/vendor/graphic-solutions/) Greenwood, Indiana We handle several types of graphic and sign projects that you would have a need for. Whether it be event signage, outdoor, vinyl banners, billboards, displays, bannerstands and more. From paper, photographic, backlit, PSV, vinyl, mesh, perforated window clings, fabric and ma... Category: Digital Output |
|
||||||
|
| 526 | [Graphics International](https://www.casinovendors.com/vendor/graphics-international/) Van Nuys, California Graphics International has been a leading Designer and Manufacturer of Framed Art products such as framed posters, mirrors and wall decors for the hospitality industry for the past 28 years. Category: Mirrors |
|
||||||
|
| 527 | [Graphite Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/graphite-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 528 | [GraphoNET Ltd](https://www.casinovendors.com/vendor/graphonet-ltd/) Category: E-commerce |
|
||||||
|
| 529 | [Gravure Alain Robitaille](https://www.casinovendors.com/vendor/gravure-alain-robitaille/) Portneuf, Quebec, Canada Our company made signage for hotel since 1991. We are located in Québec city in Canada. When we make signage, we make it for you and exactly as you want it. We can give suggest to raise the quality, lifetime and restore capacity of your signage. When we work for you, we work... Categories: Interior, Engraved Signs Manufacturer, Bronze, Metal Finishing, Architectural Signage and Graphics |
|
||||||
|
| 530 | [Graybar](https://www.casinovendors.com/vendor/graybar/) City of Industry, California Graybar, a Fortune 500 company, is a specialist in supply chain management services and the leading North American distributor of high-quality components, equipment and materials for the electrical and telecommunications industries.With more than $5 billion in revenue (2006)... Category: Supplies |
|
||||||
|
| 531 | [Grazgame](https://www.igamingsuppliers.com/vendor/grazgame/) Yerevan, Erevan, Armenia Category: Live Dealer |
|
||||||
|
| 532 | [Great American Insurance Company](https://www.casinovendors.com/vendor/great-american-insurance-company/) Windsor, Connecticut Great American’s Fidelity/Crime Division provides insurance to cover losses caused by Employee Dishonesty, Forgery, Theft, Robbery, Computer Fraud and Kidnap, Ransom and Extortion. One of our specialty areas is the casino industry. The gaming industry has an enormous turnove... Category: Insurance |
|
||||||
|
| 533 | [Great American Recreation Equipment, Inc.](https://www.casinovendors.com/vendor/great-american-recreation-equipment-inc/) Cranston, Rhode Island There are many reasons why Great American is your best choice when it comes to coin-operated or non coin-operated commercial tables. We have a commitment to quality that stretches back over 10 years. We are family owned, operated and made in the USA. Our products have a du... Category: Amusement Equipment |
|
||||||
|
| 534 | [Great Creativity Smart Card,Co. Ltd](https://www.casinovendors.com/vendor/great-creativity-smart-card-co-ltd/) Shenzhen, China Established in 1999, Shenzhen Chuangxin jia smart card co., Ltd was specialized in producing and marketing of pvc card and smart card. Category: Plastic Card Manufacturer |
|
||||||
|
| 535 | [Great Lakes Amusement](https://www.casinovendors.com/vendor/great-lakes-amusement/) Green Bay, Wisconsin Great Lakes Amusement is a leading distributor in gaming systems and supplies. We are committed to providing superior quality products, rapid delivery, and outstanding technical support. Our website www.glastore.com is a trusted marketplace that offers customers thousands of... Categories: Accessories, Electronic Games, New Game Manufacturer, Multi-player Games |
|
||||||
|
| 536 | [Great Lakes Scenic Studios](https://www.casinovendors.com/vendor/great-lakes-scenic-studios/) Burlington, Ontario, Canada At Great Lakes Scenic Studios' 30,000 square foot facility, located within a day's drive of more than a dozen major east-coast cities, our team of creative craftspeople, technical experts, installers, artisans and tradespeople have earned a reputation for building complex an... Categories: Theming, Other, Theming, Fabrication, Decorative Painting, Millwork |
|
||||||
|
| 537 | [Great Live Games](https://www.igamingsuppliers.com/vendor/great-live-games/) London, England, United Kingdom GreatLiveGames offers a “Real Time” multiplayer skill games software platform and has developed a scalable and secure infrastructure for online casual game communities. Our unique platform and exclusive skill games portfolio has over 21 exclusive games of skill. The platform... Category: Mahjong Software, Skill Games Software |
|
||||||
|
| 538 | [Greater Pacific Industries](https://www.casinovendors.com/vendor/greater-pacific-industries/) Bellevue, Washington Greater Pacific is a direct manufacturer of custom OEM product. Internal product safety and compliance program ensures safe and compliant product. Wide range of product categories including drink ware, bags, head wear, custom metal and plastic gifts and accessories. Proven t... Category: Promotional Items, Promotions |
|
||||||
|
| 539 | [Greater Southern Home Recreation](https://www.casinovendors.com/vendor/greater-southern-home-recreation/) Smyrna, Georgia Here at Greater Southern Home Recreation, we pride ourselves on being the one place in Georgia that has it all. With the best customer service in the industry and the most knowledgeable sales staff, we will be sure to make your experience with us the most enjoyable. Please... Category: Other |
|
||||||
|
| 540 | [GreatMenuCovers.com](https://www.casinovendors.com/vendor/greatmenucovers-com/) Milwaukee, Wisconsin GreatMenuCovers.com makes high-quality long-lasting cafe menu covers that are available in 16 standard colors to match decor and theme branding designs. Made in the USA with credit terms available for large purchases. Custom sizes and design requests welcome. Free samples av... Category: Trade Shows and Conferences, Menu Covers |
|
||||||
|
| 541 | [Grecian Delight Foods](https://www.casinovendors.com/vendor/grecian-delight-foods/) Elk Grove Village, Illinois Grecian Delight Foods, A Pure Mediterranean Foods Company, is located in Elk Grove Village, IL. The company was founded in 1974 by Peter Parthenis, Sr., and is still family held and operated by the Parthenis family. Grecian Delight is a manufacturer and marketer of top qu... Category: Other |
|
||||||
|
| 542 | [Green Chiropractic](https://www.casinovendors.com/vendor/green-chiropractic/) Omaha, Nebraska Created in 2005, Green Chiropractic offers pain relief for low back pain, headaches, sciatica, tingling fingers. We also offer scoliotic remodeling, sports injuries pain relief, acupuncture and personal training. We are located at 184th and West Center in front of LOWE'S. Category: Health Care Services |
|
||||||
|
| 543 | [Green Choice Vendors Distribution LLC](https://www.casinovendors.com/vendor/green-choice-vendors-distribution-llc/) New York, New York Green Choice Vendors is a full service distributor of environmentally safe alternative food service products, bags and treeless paper products. We offer a wide range of biodegradable and compostable products made from renewable resources. We provide clients the convenience... Categories: Disposable Tableware, Promotions, Supplies, Supplies, Other |
|
||||||
|
| 544 | [Green Coin Machines, Inc.](https://www.casinovendors.com/vendor/green-coin-machines-inc/) Myrtle Beach, South Carolina Green Coin Machines Distributing has been in business for 46 years and is one of the leading distributors for home game room equipment East of the Mississippi. We sell pinballs, arcade videos, pool tables, jukeboxes, and much much more! We deliver to your door, NATIONWIDE. Category: Other |
|
||||||
|
| 545 | [Green Dragon (GD88)](https://www.igamingsuppliers.com/vendor/green-dragon-gd88/) Koh Thom District, Kandaal, Cambodia Category: Live Dealer |
|
||||||
|
| 546 | [Green Edge Systems Inc](https://www.casinovendors.com/vendor/green-edge-systems-inc/) Woodland Hills, California Leader in Signage, Hand Sanitizer Stands, Sneeze Guards, Crowd Control Social Distancing stanchions, Casino and waiting room Separation Shields Guard germ shields and separation wall shields for Casinos, Hospitals, Colleges and Universities and Schools. Categories: Masks and Shields, Masks and Shields, Hand Sanitizer, Theming, Surveys, Disinfection Equipment, Indoor Signage, Indoor Signage |
|
||||||
|
| 547 | [Green Energy Lighting Corporation](https://www.casinovendors.com/vendor/green-energy-lighting-corporation/) Cerritos, California Green Energy Lighting supplies the latest in energy efficient Lighting including: LED , Compact Fluorescent, Metal Halide, Halogen,and Miniature light bulbs. Category: Supplies |
|
||||||
|
| 548 | [Green Floral Crafts](https://www.casinovendors.com/vendor/green-floral-crafts/) San Jose, California We specialize in decorative accents made from natural and renewal resource materials. We sell one-of-a-kind real preserved/dried non-perishable florals that can be paired up with our bamboo and mango wood vases, which are light for easy transport, but large for stunning beau... Category: Interior Design |
|
||||||
|
| 549 | [Green Light Booking](https://www.casinovendors.com/vendor/green-light-booking/) Pleasant Grove, Utah Green Light Booking is a premier event entertainment company that works with many world-class entertainers and live bands, allowing individuals and event planning professionals to hire entertainment that wows crowds. We make it fun to find and book high quality corporate ent... Category: Production |
|
||||||
|
| 550 | [Green Squared](https://www.casinovendors.com/vendor/green-squared/) Meridian, Idaho At Green Squared, our purpose is to have a positive impact on our environment and to improve local communities through e-waste recycling fundraiser programs that uphold the highest quality environmental standards; all while making the world a better place. We provide free 91... Category: Waste Management |
|
||||||
|
| 551 | [Green Star Coffee - Santa Barbara Coffee LLC](https://www.casinovendors.com/vendor/green-star-coffee-santa-barbara-coffee-llc/) Santa Barbara, California Green Star Coffee sources only the finest, most intriguing coffees from the premier growing regions around the world. We offer 100% Certified Organic Fair Trade coffee, purchasing beans from villages and importers that are committed to fair trade and working towards better e... Category: Coffee |
|
||||||
|
| 552 | [Green Suites International](https://www.casinovendors.com/vendor/green-suites-international/) Upland, California Green Suites® International is the leading supplier of environmental products & programs to the lodging & hospitality industry. We've been "greening" hotels, resorts and casinos since 1993. We specialize in providing profitable solutions with environmental benefits. Call ... Category: Equipment, Amenities |
|
||||||
|
| 553 | [Green Trading, USA](https://www.casinovendors.com/vendor/green-trading-usa/) Chino, California Do your Bears Snore and Giggle? Ours do. We also feature wonderful Bear, Moose, Wolf, Buffalo, and all Wildlife Hats. Will fit from Children to Adults. Dozens of Plush Animal in all sizes. Prices starting at $2.50 each. No Min. Perfect for Casino Gifts and School Fund Raisin... Category: Plush Toys |
|
||||||
|
| 554 | [Greenberg Traurig](https://www.casinovendors.com/vendor/greenberg-traurig/) Miami, Florida Greenberg Traurig’s global Gaming Practice advises clients on matters that a company operating in the gaming industry may face, including licensing, compliance, employment, real estate, intellectual property, litigation, corporate transactions, anti-money laundering regulati... Category: Other |
|
||||||
|
| 555 | [Greencorner USA](https://www.casinovendors.com/vendor/greencorner-usa/) Orlando, Florida In 1998, The Greencorner USA was established to manufacture Mediterranean umbrellas based on the 15 year experience of sister company Le Coinvert in Europe. Research of the American market had found that there was a need for extra large, heavy duty umbrellas with new square ... Category: Furniture, Outdoor |
|
||||||
|
| 556 | [Greene Forensic Accounting Solutions LLP](https://www.casinovendors.com/vendor/greene-forensic-accounting-solutions-llp/) Las Vegas, Nevada Greene Forensic Accounting Solutions LLP is a Certified Public Accounting and Consulting Firm providing professional services to the gaming industry. The firm provides financial investigation services, litigation support, internal audit, employer healthcare audits, employee... Category: Accounting, Auditing |
|
||||||
|
| 557 | [Greenfire Minerals](https://www.casinovendors.com/vendor/greenfire-minerals/) Lisbon, Portugal Greenfire Minerals is the leading & original manufacturer of luxury hospitality materiaals like semi precious stone on glass and ceramic,seashell tiles,coconut in resin,pebbles in resin and many other exotic stone tiles and slabs. Category: Architectural Design |
|
||||||
|
| 558 | [Greenheart Exchange](https://www.casinovendors.com/vendor/greenheart-exchange/) Chicago, Illinois Category: Temporary Personnel: Management and Financial |
|
||||||
|
| 559 | [Greenlight](https://www.igamingsuppliers.com/vendor/greenlight/) London, England, United Kingdom Category: Search Engine Optimization |
|
||||||
|
| 560 | [Greensleeves, Inc](https://www.casinovendors.com/vendor/greensleeves-inc/) Miami, Florida Since 1985, Greensleeves has installed and maintained extraordinary interior and exterior landscapes through Design, working in Europe, South America, Caribbean and the United States. Our purpose is to assist our clients to achieve their expectations in budget. Call today fo... Category: Interior Landscaping |
|
||||||
|
| 561 | [Greentube I.E.S. AG](https://www.igamingsuppliers.com/vendor/greentube-i-e-s-ag/) Vienna, Wien, Austria Greentube offers ready-to-use Skill Gaming solutions for the internet, mobile devices and iTV. Their white label solution generates gaming portals that fit the client's desired look and feel. As a developer of multiplayer games, Greentube's service offers multi-channel, mul... Categories: Backgammon Software, Skill Games Software, Poker Software |
|
||||||
|
| 562 | [Greenway Print Solutions](https://www.casinovendors.com/vendor/greenway-print-solutions/) Scottsdale, Arizona Greenway Print Solutions can print everything from simple brochures to full color annual reports, and everything in between. We manage every aspect of each project to produce the best end result in the fastest possible time, at the lowest possible price. We serve over 2,000... Categories: Tickets, Promotional Items, Promotions, Printed Materials, Newsletters, Direct Mail, Printers, Manufacturers, In-room Access |
|
||||||
|
| 563 | [Greenwell Chisholm Printing Company](https://www.casinovendors.com/vendor/greenwell-chisholm-printing-company/) Owensboro, Kentucky Greenwell Chisholm has been in business for over 85 years and our customer service and quality are superb. Greenwell Chisholm Printing Company will not accept a job unless we are sure we can meet the customers deadline. We would be happy to offer references if needed and sam... Categories: Printers, Manufacturers, Direct Mail, Promotions, Printed Materials |
|
||||||
|
| 564 | [Greenwich Technologies, Inc.](https://www.casinovendors.com/vendor/greenwich-technologies-inc/) Grosse Pointe, Michigan At Greenwich Technologies, our primary goal and main reason for our continued success is customer satisfaction. From casino hotels, to country clubs, to corporations around the world - our customers are our largest asset. As a Microsoft Certified Partner, Greenwich solution... Categories: Systems, Software, Systems, Software |
|
||||||
|
| 565 | [Greg Thompson Productions](https://www.casinovendors.com/vendor/greg-thompson-productions/) Seattle, Washington Greg Thompson Productions, the largest producer of casino musical revues in the world, has produced award-winning productions for Caesars, Casino Monte Carlo, Grand Casinos, Harrahs, Isle of Capri, Mirage, Sands, Trump, Microsoft, IBM, Boeing and many regional Indian Gaming ... Category: Music Production |
|
||||||
|
| 566 | [Gregory Friedlander & Assts.](https://www.casinovendors.com/vendor/gregory-friedlander-assts/) Mobile, Alabama Gregory M. Friedlander & Assts, P.C., www.gmfpc.com specializes in obtaining intellectual property protection and providing marketing assistance for clients. We provide information and services related to invention, innovation, new business startup and incorporating new tec... Category: Patent Attorney |
|
||||||
|
| 567 | [Gregory Gove Art](https://www.casinovendors.com/vendor/gregory-gove-art/) Chicago, Illinois Not an Art factory like most mural companies. You work directly with individual doing the work. Good communication. Easy to deal with. Distinguished client list. Centrally located, and will travel. Category: Art |
|
||||||
|
| 568 | [Gregory Signs](https://www.casinovendors.com/vendor/gregory-signs/) Toronto, Ontario, Canada Gregory Signs has been providing a variety of signage since 1981. Our educational staff have been trained in many fields like engineering, architecture and designing. Gregory Signs is a custom manufacturer so we build to your needs or we can even design you sign. When you... Categories: Exterior, Illuminated, Exterior, Design, Illuminated, Indoor, Exterior, Non-illuminated |
|
||||||
|
| 569 | [Gregory, Inc.](https://www.casinovendors.com/vendor/gregory-inc/) Buhler, Kansas Gregory is both a wholesale graphics manufacturer and an international distributor of sign materials and supplies. As a distributor we represent 3M, Oracal, Arlon, Sihl, SignGold, R-Tape and Transfer Rite to name a few. We can supply your casino sign shop with many of the co... Categories: Digital Output, Exterior, Interior, Banners, Digital Printing, Digital Graphics, Labels, Large Format, Screen Printing, Wallcoverings, Murals, Graphics, Windows, Signage, Banners, Visual Communications |
|
||||||
|
| 570 | [Gremillion and Pou Integrated Marketing](https://www.casinovendors.com/vendor/gremillion-and-pou-integrated-marketing/) Shreveport, Louisiana In the ever-changing and competitive realm of casino marketing, Gremillion and Pou Marketing understands the need to be available and aware 24/7. Our casino marketing team consists of former casino employees and directors, marketing specialists, strategic analysts and ga... Category: Full Service Agency, Consulting |
|
||||||
|
| 571 | [Grenald Waldron Associates](https://www.casinovendors.com/vendor/grenald-waldron-associates/) Narberth, Pennsylvania We provide quality lighting solutions to people who understand and appreciate the value of good lighting. At Grenald Waldron Associates, by integrating the fields of architecture, lighting design, and psychology, we are able to tailor our approach to each project, always se... Category: Consulting |
|
||||||
|
| 572 | [Greneker](https://www.casinovendors.com/vendor/greneker/) Los Angeles, California Greneker Solutions designs and manufactures Visual Merchandising and Thematic products. Visual merchandising products include forms and mannequins, specialized fixtures, and product display components. Theming products include custom theme fixturing, architectural displays... Category: Fabrication |
|
||||||
|
| 573 | [Gretna Bingo Palace](https://www.casinovendors.com/vendor/gretna-bingo-palace/) Gretna, Louisiana We offer 27 sessions weekly and all games are played as scheduled. The organizations served by the hall are: David Crockett Fire Company, German American Cultural Center, Westbank Rotary Club, Gretna Economic Development, Gretna Historical Society, Gretna Police Benevolent S... Category: Other |
|
||||||
|
| 574 | [Greyhound Lines, Inc.](https://www.casinovendors.com/vendor/greyhound-lines-inc/) New York, New York Greyhound “Lucky Streak” service offers coast to-coast schedules directly to casinos in Atlantic City, NJ; Las Vegas, Reno and Lake Tahoe. There is also service to the Native American casinos at Foxwoods in Ledyard, CT. Hotard, a wholly-owned Greyhound company, operates ser... Category: Other |
|
||||||
|
| 575 | [Greystone Energy Systems](https://www.casinovendors.com/vendor/greystone-energy-systems/) Somerset, Pennsylvania Manufacturer of HVAC Sensors and Instruments CO Monitors, CO2 Monitors, Humidity and Temperature Sensors Wall mount space sensors and HVAC duct mounted sensors for building automation systems. Category: Energy Management Systems |
|
||||||
|
| 576 | [GRG Banking Equipment Co Ltd](https://www.casinovendors.com/vendor/grg-banking-equipment-co-ltd/) Guangzhou, China GRGBanking is a leading provider of currency recognition and cash processing solutions in the global market with great potential and rapid development. We specialize in the development & manufacturing of Automatic Teller Machine (ATM) for financial institutions and retailers... Category: Bill Validators |
|
||||||
|
| 577 | [Griffin Investigations, Inc.](https://www.casinovendors.com/vendor/griffin-investigations-inc/) Las Vegas, Nevada Griffin Investigations, Inc. is the premiere trusted leader in the field of Gaming Investigation. We have been identifying advantage players, cheaters and casino criminals successfully since 1967. Our GOLD Database is an effective and affordable solution in helping you prote... Category: Information |
|
||||||
|
| 578 | [Griffin Valuation Group](https://www.casinovendors.com/vendor/griffin-valuation-group/) Chicago, Illinois Griffin Valuation Group provides Cost Segregation & Property Tax consulting to commercial and industrial property owners nationwide which provides substantial increases in cash flow and shareholder value. We provide Big-4 tax accounting experience and quality without the bi... Category: Accounting |
|
||||||
|
| 579 | [Griner Engineering, Inc.](https://www.casinovendors.com/vendor/griner-engineering-inc/) Bloomington, Indiana We do high-volume rotary transfer machining on turned parts.We do high-volume screw machining with secondary.We do some production CNC machining center work using 4 vertical and horizontal machining centers purchased this year.We have a new 6'x12'Flow water-jet which we want... Category: Engineering, Mechanical |
|
||||||
|
| 580 | [GRIPS USA](https://www.casinovendors.com/vendor/grips-usa/) La Jolla, California The GRIPS Display is the most accurate and reliable Reader Board on the market. We introduced the Roulette Display into the USA in 1990, and have since added Baccarat Displays and BJ Displays to our portfolio. For Roulette, our Optical Reader automatically detects the winnin... Categories: Equipment, Electronic Signs, Electronic Signs, Electronic Signs |
|
||||||
|
| 581 | [Grommes-Precision](https://www.casinovendors.com/vendor/grommes-precision/) Gurnee, Illinois Made in the U.S.A. commercial audio equipment. Including 70 volt amplifiers, microphone mixer, Hi-Fi Tube Gear, and custom audio electronics. A service oriented company with immediate answers to your questions...No voice mail system tio get lost in. Category: Parts |
|
||||||
|
| 582 | [Groove Leather](https://www.casinovendors.com/vendor/groove-leather/) Montvale, New Jersey Category: Other |
|
||||||
|
| 583 | [Groove Technologies](https://www.igamingsuppliers.com/vendor/groove-technologies/) Sliema, Malta Groove was founded in 2016 by a group of professionals who all had the dream of creating an exclusive service so entrepreneurs could meet the growing gaming needs of the world. Collectively we have over 150 years of experience in all aspects of online business and e-commerce... Categories: Casino Software, Mobile Gaming, Bingo Software, Lottery Software, Sportsbook Software, Gambling Operations |
|
||||||
|
| 584 | [Group III International, Inc.](https://www.casinovendors.com/vendor/group-iii-international-inc/) Pompano Beach, Florida Group III International, based in Pompano Beach, FL. Company founded 1982. Sales over $120 million per year. Offices in USA, China, Taiwan and Thailand. Category: Medical Gloves, Medical Gloves |
|
||||||
|
| 585 | [Group One Media](https://www.casinovendors.com/vendor/group-one-media/) Yuen Long, Hong Kong Group One Media is a dynamic internet marketing company operating numerous websites across a wide portfolio of niches in a vast array of countries. Our core business is email marketing to our members on a performance basis, clients only pay on results! Every month we drive t... Category: Internet |
|
||||||
|
| 586 | [Group West Companies PLLC](https://www.casinovendors.com/vendor/group-west-companies-pllc/) Seattle, Washington Group West Companies offers comprehensive services in architectural/interior design and development strategies with a major focus on gaming and hospitality. Category: Architectural Design, Interior Design |
|
||||||
|
| 587 | [Groupartners](https://www.igamingaffiliateprograms.com/affiliate-program/groupartners/) Category: Affiliate Programs |
|
||||||
|
| 588 | [Groupe Lucien Barriere (GLB)](https://www.casinovendors.com/vendor/groupe-lucien-barriere-glb/) Paris, France Created in 1912 by François André, Barrière has perfectly illustrated the prestige of French luxury and expertise for more than a century. Shaped by three generations of passionate, visionary entrepreneurs, today it serves as a shining example of French luxury hospitality an... Category: Other |
|
||||||
|
| 589 | [Grover Gaming, Inc.](https://www.casinovendors.com/vendor/grover-gaming-inc/) Greenville, North Carolina Grover Gaming has extensive experience in developing Video Slot and Casino Game Content and is now licensing their premium games for a variety of gaming markets including social and real money gaming. Lottery Solutions Online Lottery Gaming System Video Slot Game Desig... Categories: Mobile Gaming, Lottery Software, Game Design, Software, Class II Tabs-video Devices, Video Game Software, Casino Software, Bingo Software, Pull-tab Equipment, New Game Manufacturer, Skill Games Software, Electronic Systems, Lottery Software, Other |
|
||||||
|
| 590 | [Growe Partners](https://www.igamingaffiliateprograms.com/affiliate-program/growe-partners/) Category: Affiliate Programs |
|
||||||
|
| 591 | [GRS Global Recruitment Solutions Ltd](https://www.igamingsuppliers.com/vendor/grs-global-recruitment-solutions-ltd/) Limassol, Lemesos, Cyprus GRS is a specialist international recruitment consultancy based in Cyprus, the gateway to Europe and Middle East. We offer recruitment and managed recruitment services for clients and candidates across Cyprus and internationally. The GRS culture is underpinned by a basic ... Category: Recruitment |
|
||||||
|
| 592 | [Gruber Industries](https://www.casinovendors.com/vendor/gruber-industries/) Phoenix, Arizona Category: Fiber Optics Products |
|
||||||
|
| 593 | [Gruppo Extraball](https://www.casinovendors.com/vendor/gruppo-extraball/) San Cesareo, Lazio, Italy The Group Extraball is today one of the largest in central Italy in the rental of automatic equipment for entertainment such as: New Slot Machines, Video Lotteries, vending gadgets, mobiles, and much more, at public establishments such as bars, amusement arcades and betting,... Category: Vending Machines |
|
||||||
|
| 594 | [Gryndstone and Fusspot Press](https://www.casinovendors.com/vendor/gryndstone-and-fusspot-press/) North Vancouver, British Columbia, Canada Cartoonist Graham Harrop's gentle satires have been making people chuckle about politics, celebrity culture and other strange animals for more than 2 decades. His cartoon collections are lively and never unkind, and offer a lighter side to contemporary life. Graham also cr... Category: Books |
|
||||||
|
| 595 | [Gryphon, Inc.](https://www.casinovendors.com/vendor/gryphon-inc/) Buffalo Grove, Illinois Since 1985, Gryphon has been a distributor for ONEAC-POWERVAR. Gryphon provides its customers worldwide with the best power and environmental protection solutions for their sensitive microprocessor-based electronic equipment. POWERVAR manufactures premium-grade power prote... Category: Batteries |
|
||||||
|
| 596 | [GS Plastic Optics](https://www.casinovendors.com/vendor/gs-plastic-optics/) Rochester, New York G&H | GS Optics dates back to a small machine shop - located in Rochester, NY and founded in 1916. The business quickly grew to become a major supplier of replacement watch crystals made of plastic. Today, G&H | GS Optics specializes in the custom design and manufacture o... Category: LED Systems |
|
||||||
|
| 597 | [GSH Casino Parties](https://www.casinovendors.com/vendor/gsh-casino-parties/) Des Plaines, Illinois After working in the casino party industry for more than 5 years, the partners at The GSH Group knew it was time for a change. They recognized that better organized, more enthusiastic, and more fun events were needed. The GSH Group officially opened its doors to provide Casi... Categories: Equipment, Party Rental, Slot Machines, Blackjack Tables, Equipment, Accessories |
|
||||||
|
| 598 | [GSH Online Media](https://www.igamingaffiliateprograms.com/affiliate-program/gsh-online-media/) Bucuresti, Romania GSH Online Media is a high-quality online lead generation company within the iGaming industry, targeting Casino and Sportsbook players from multiple GEOs. Websites owned by GSH are representing authority in the industry. For example, BetBrain it the first and the best odds c... Category: Affiliate Programs |
|
||||||
|
| 599 | [GSN - Game Show Network LLC](https://www.igamingsuppliers.com/vendor/gsn-game-show-network-llc/) GSN is a multimedia entertainment company that offers original and classic game programming and competitive entertainment via its 80-million subscriber television network and online game sites. GSN’s cross-platform content gives game lovers the opportunity to win cash and pr... Categories: Casino Software, Bingo Software, Skill Games Software |
|
||||||
|
| 600 | [GSP Systems, Inc.](https://www.casinovendors.com/vendor/gsp-systems-inc/) Bucheon City, Gyeonggido, South Korea Category: Other |
|
||||||
|
| 601 | [GSpin Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gspin-partners/) Category: Affiliate Programs |
|
||||||
|
| 602 | [GT Advertising, LLC](https://www.casinovendors.com/vendor/gt-advertising-llc/) Las Vegas, Nevada GT Advertising is a major provider of email appends for the casino hotel industry in both commercial and Native gaming and hospitality. Category: Internet, Internet |
|
||||||
|
| 603 | [GT Holdings (GamyTech)](https://www.igamingsuppliers.com/vendor/gt-holdings-gamytech/) Ta' Xbiex, Malta Gamytech develops and manages software platforms aimed for the iGaming industry. We deliver a holistic white labelled solution, which is scalable, consistent and enables real time gaming. We are a team of experts equipped with extensive knowledge and experience in the gaming... Categories: Backgammon Software, Skill Games Software, Mobile Gaming, Casino Software, Mobile Gaming, Affiliate Program Software, Mobile Gaming, Mobile Gaming, Gambling Operations |
|
||||||
|
| 604 | [GTE Localize](https://www.igamingsuppliers.com/vendor/gte-localize/) Singapore, Singapore GTE Localize is a fast-growing global translation and localization agency, providing services for all major languages in the world. Our solutions include translation, localization, interpretation, subtitling and transcription. Our experience has been solidly gathered by our ... Category: Translation Services |
|
||||||
|
| 605 | [GTG Advocates](https://www.igamingsuppliers.com/vendor/gtg-advocates/) Valletta, Malta GTG advocates is a full-service corporate and commercial firm spanning a diverse array of disciplines and distinguished by its unsurpassed expertise in shipping, financial services, information technology and i-gaming. At GTG, we have one compelling mission: to deliver value... Category: Licensing and Regulation, Consulting |
|
||||||
|
| 606 | [GTi Freight](https://www.casinovendors.com/vendor/gti-freight/) Coral Springs, Florida GTi Freight is a privately held, US based logistics company specializing in freight management services including LTL, Full Truckload, Supply Chain Management, and Domestic Air/Expedited shipping. We focus on innovative technology and partnering with sales professionals that... Categories: Shipping, Expediting Services, Equipment Trailers, Other, Trucking |
|
||||||
|
| 607 | [GTI GAMING SRL DBA as GTI - Giochi Tecnologici Italiani](https://www.casinovendors.com/vendor/gti-gaming-srl-dba-as-gti-giochi-tecnologici-italiani/) Milano, Lombardia, Italy GTI is the new leading Casino Currency manufacturer and (RFID) Casino Currency Inventory, Management and Security systems and products manufacturer and developer. GTI is a technology product and system provider for casino. We produce electronic chips, jetons and plaques and... Category: Chips, Chips |
|
||||||
|
| 608 | [GTreasury](https://www.casinovendors.com/vendor/gtreasury/) Lake Zurich, Illinois Founded in 1986, GTreasury has become a leading global provider of treasury management systems. The company offers a full suite of solutions, including cash management, funds transfers, accounting and more! Check out their website today for more information. Category: Accounting Systems |
|
||||||
|
| 609 | [GTSource, Inc.](https://www.casinovendors.com/vendor/gtsource-inc/) Kennesaw, Georgia GTSource offers complete turnkey Class-II/III gaming solutions including cabinet and cabinet design. GTSource compliments the cabinets with their LogixCube gaming specific computer platform, I/O Suite Hardware and game harness assemblies. GTSource also offers game refurbishm... Category: Slot Machines |
|
||||||
|
| 610 | [GTSS Minds](https://www.casinovendors.com/vendor/gtss-minds-1/) Hamilton, New Jersey Our vision is our framework within which our employees work. Our vision statement guides us through every endeavor and helps achieve sustainable growth for every person involved with GTSS. Category: Consulting |
|
||||||
|
| 611 | [GTT Co., Ltd.](https://www.casinovendors.com/vendor/gtt-co-ltd/) Goyang-shi, Gyeonggido, South Korea Rugged LCD Monitors Category: LCD |
|
||||||
|
| 612 | [GTT Communications, Inc.](https://www.casinovendors.com/vendor/gtt-communications-inc/) McLean, Virginia GTT connects people across organizations, around the world and to every application in the cloud. GTT owns and operates a global Tier 1 internet network and provides a comprehensive suite of cloud networking services. Category: Systems Integration Services, Network Services |
|
||||||
|
| 613 | [Guangdong Phoenix Lighting Co., Ltd.](https://www.casinovendors.com/vendor/guangdong-phoenix-lighting-co-ltd/) Guangzhou, Guangdong, China Guangdong Phoenix Lighting Co., Ltd., founded in 2002, manufactures a wide range of professional stage products, including Moving Head Light, Scanner Light,Follow Spot Light,Lighting Controller,Laser Light, LED light, Strobe Light, outdoor Light, Fog machine,Bubble Machine,S... Category: Effects |
|
||||||
|
| 614 | [Guangxi Pinglu Group Co., Ltd.](https://www.casinovendors.com/vendor/guangxi-pinglu-group-co-ltd/) Nanning, Guangxi, China Guangxi Pinglu Group Co., Ltd. is a comprehensive large-scale enterprise specializes in aluminum, curtainwall, wire and cable industry development, manufacturing and product development, as well as real estate, hotel, import and export business. Category: Materials |
|
||||||
|
| 615 | [Guangzhou 3Hz Solar Technology Co.,Ltd](https://www.casinovendors.com/vendor/guangzhou-3hz-solar-technology-co-ltd/) Guangzhou, China Guangzhou 3Hz Solar Technology Co.,Ltd is a leading PV product manufacturer and system integration service provider. We aim at providing customers with the design, manufacture, installation & maintenance service of individualized, professionalized and systematized PV applica... Category: Other |
|
||||||
|
| 616 | [Guangzhou Aolait Lighting Co.,Ltd](https://www.casinovendors.com/vendor/guangzhou-aolait-lighting-co-ltd/) Guangzhou, Guizhou, China Guangzhou Aolait Lighting Co.,Ltd is a professional stage lighting enterprise with integration of Research and development, production, sales and service. Main products range from intelligent moving head light series, led lighting series and accessories for stage equipment. ... Category: Manufacturer |
|
||||||
|
| 617 | [Guangzhou Blossom Stage Lighting Equipment Co., Ltd](https://www.casinovendors.com/vendor/guangzhou-blossom-stage-lighting-equipment-co-ltd/) Guangzhou, Guangdong, China Guangzhou Blossom stage lighting factory ,established in 2003, is a factory of lighting reproducing apparatus, specialized in R & D and manufacture & sale. Over the years, it continues to provide lighting and sound with high-quality, professional technology and great support... Category: Manufacturer |
|
||||||
|
| 618 | [Guangzhou Creative Stage Equipment Factory](https://www.casinovendors.com/vendor/guangzhou-creative-stage-equipment-factory/) Guangzhou, Guangdong, China Guangzhou Creative Stage Equipment Co.,Ltd. is the manufacturer in Guangzhou,CHINA, we are professional on designing ,manufacturing and marketing various high quality professional performance equipments , including all kinds of aluminium truss , stage truss, stage lighting ... Categories: Fixtures, Systems, Fixtures, Stage Equipment |
|
||||||
|
| 619 | [Guangzhou HOATOA Digital Technology Co.,Ltd](https://www.casinovendors.com/vendor/guangzhou-hoatoa-digital-technology-co-ltd/) GuangZhou, Guangdong, China Guangzhou HOATOA Digital Technology Co.,Ltd was incorporated in 2000. It is located in Bai Yun District of Guangzhou City. It is professional in car DVD player and car LCD monitor. The modernized factory takes up about 5000 square meters, there are several engineers and mor... Category: Other |
|
||||||
|
| 620 | [Guangzhou JR Lighting Equipment Co.,Ltd](https://www.casinovendors.com/vendor/guangzhou-jr-lighting-equipment-co-ltd/) Guangzhou, Guangdong, China Guangzhou JR Lighting, a professional manufacturer of Stage lighting, including LED PAR Light, LED BAR Light,Matrix Audience Blinder,Moving Head Light,Mirror Ball,Theatre Projector,Effect Machine, City Color/Sky Light,Controller,Accessories, etc. Category: Lighting Equipment |
|
||||||
|
| 621 | [Guangzhou Likang Electronic Technology Co., Ltd](https://www.casinovendors.com/vendor/guangzhou-likang-electronic-technology-co-ltd/) Guangzhou, Guangdong, China Guangzhou Likang Electronic Technology Co. Ltd. is a famous company in china. We are mainly producing electronic coin selector and ticket outlet. Category: Coin Handling Equipment |
|
||||||
|
| 622 | [Guangzhou LiQi Intelligent Technology Co., Ltd](https://www.casinovendors.com/vendor/guangzhou-liqi-intelligent-technology-co-ltd/) Guangzhou, China Guangzhou LiQi Intelligent Technology CO.,LTD. founded in year 2000, and obtained the Certificate of Verification for Software Enterprises and the Certificate of Verification for Software Products, is specialized in self-service touch screened equipments and the total soluti... Category: Kiosks |
|
||||||
|
| 623 | [Guangzhou Mingfine Electronic Co., ltd](https://www.casinovendors.com/vendor/guangzhou-mingfine-electronic-co-ltd/) Guangzhou, China Guangzhou Mingfine Electronic Co., Ltd. was established in 2001, which located in Guangzhou city, China, is a professional CCTV equipment designer and manufacturer. We have knowledgeable and young research, improving, manufacturing and sales teams. We can supply good aft... Category: CCTV Systems |
|
||||||
|
| 624 | [Guangzhou PURUI Electronic Co.,Ltd](https://www.casinovendors.com/vendor/guangzhou-purui-electronic-co-ltd/) Guangzhou, Guangdong, China Guangzhou purui Electronic Co., Ltd. locates in Guangzhou, China, found in 1995. It is a professional manufacturerer of LED display screen integrating R&D, design, production, marketing and after-sales service of LED displays. Guangzhou purui offer all types of indoor an... Category: LED Systems |
|
||||||
|
| 625 | [Guangzhou Rohin Electronic Co.](https://www.casinovendors.com/vendor/guangzhou-rohin-electronic-co/) Guangzhou City, China Rohin Electric is a factory which specializes in the development & manufacturing of all kinds of games and amusement machines. Our goal is to be committed to excellence in providing services and products to various markets and customers all over the world. Category: Themed Devices |
|
||||||
|
| 626 | [Guangzhou Ruixin Touch Control Technology Co., Ltd.](https://www.casinovendors.com/vendor/guangzhou-ruixin-touch-control-technology-co-ltd/) Guangzhou, Guangdong, China Guangzhou RUIXIN Touch Control Technology Co., Ltd, established in 2001, is a professional manufacturer of touch monitor and touch screen related products integrated with R&D and sales. Category: Touchscreens |
|
||||||
|
| 627 | [Guangzhou WATCHMAN Electronic Technology Co., LTD](https://www.casinovendors.com/vendor/guangzhou-watchman-electronic-technology-co-ltd/) Guangzhou, Guangdong, China Established in 1997, Guangzhou WATCHMAN Electronic Technology co., ltd is a large high tech enterprise specialized in R&D, manufacturing and supply, and marketing of product in security and surveillance electronics. Our high quality CCTV product and well designed system have... Category: CCTV Systems |
|
||||||
|
| 628 | [Guaranteed On Site](https://www.casinovendors.com/vendor/guaranteed-on-site/) Paulsboro, New Jersey State certified flame retardant applicators that will work with you and local Fire Marshals to bring your facility into compliance. Quick response and guaranteed work. Work can be performed on and off site. Fully insured and free estimates. Category: Dry Cleaning Design |
|
||||||
|
| 629 | [Guard Security](https://www.casinovendors.com/vendor/guard-security/) New York, New York Guard Security is fully licensed and insured. Due to our vast experience and motivated staff, we can offer far more than an ordinary security company. There is no comparison to our trained, experienced Security Officers to a 20-hour trained security guard. Guard Securi... Category: Officers |
|
||||||
|
| 630 | [Guardall Limited](https://www.casinovendors.com/vendor/guardall-limited/) Edinburgh, United Kingdom Category: Access Control, Other |
|
||||||
|
| 631 | [Guest Access International](https://www.casinovendors.com/vendor/guest-access-international/) Midland, Texas Guest Access, Int’l offers premium quality laminated plastic guest access-related items direct from the factory. Stock and customized items are available(turnkey from card production to fulfillment and program management). Supplier and program management for many hotel hold... Category: Plastic Card Manufacturer |
|
||||||
|
| 632 | [Gul Group Industries](https://www.casinovendors.com/vendor/gul-group-industries/), Punjab, Pakistan We are pleased to introduce ourselves as a leading manufacturing and exporting company of highest standard Motorbike and Fashion Leather, Textile Garments & Gloves have been producing quality products for many years now. We have our own tannery where we produce best qual... Category: Apparel |
|
||||||
|
| 633 | [Gulf Islands Promotion](https://www.casinovendors.com/vendor/gulf-islands-promotion/) Biloxi, Mississippi Gulf Islands Promotion is your low cost choice for all things promotion. As part of a major buying group, we are able to offer almost unlimited product offerings at prices that will allow your promotional budget to stretch further! With over 14 years experince in the Casino... Category: Promotional Items |
|
||||||
|
| 634 | [Gulf Marine Products](https://www.casinovendors.com/vendor/gulf-marine-products/) Westwego, Louisiana Since 1988, Gulf Marine has become a leading processor of domestic and imported shrimp, crawfish tail meat and whole-cooked crawfish.Taking pride in excellent customer service and timely information, Gulf Marine's personnel create a seamless bridge between the producer and t... Category: Seafood |
|
||||||
|
| 635 | [Gulfport Industrial Supply](https://www.casinovendors.com/vendor/gulfport-industrial-supply/) Gulfport, Mississippi Locally owned, knowing the casino industry needs quick service and we have competitive pricing. Category: Wheels and Casters |
|
||||||
|
| 636 | [Gunderson, Palmer, Goodsell & Nelson LLP](https://www.casinovendors.com/vendor/gunderson-palmer-goodsell-nelson-llp/) Rapid City, South Dakota Category: Other |
|
||||||
|
| 637 | [Gunnebo Entrance Control, Inc.](https://www.casinovendors.com/vendor/gunnebo-entrance-control-inc/) Benicia, California We are world leading specialist in entrance control solutions and manufacturers of entrance gates for a broad range of applications including corporate offices, casinos, metro, airports and stadiums. From basic Tripod Turnstiles to our advanced SpeedGates, Revolving Securit... Categories: Access Control, Access Control, Access Control, Access Control |
|
||||||
|
| 638 | [GunsBet Affiliates](https://www.igamingaffiliateprograms.com/affiliate-program/gunsbet-affiliates/) Category: Affiliate Programs |
|
||||||
|
| 639 | [Guntex Industries, Inc.](https://www.casinovendors.com/vendor/guntex-industries-inc/) Chattanooga, Tennessee Our custom manufactured bags are designed for banks, casinos, and vending companies who use specialty bags in their daily operations. We offer custom printing services for customers wishing to personalize our bags with their company name and logo. Category: Coin Bags |
|
||||||
|
| 640 | [Guovin Technology Limited](https://www.casinovendors.com/vendor/guovin-technology-limited/) Shenzhen, Guangdong, China Established in 2008, Guovin Technology Limited is one of the leading manufacturer for high quality CCTV cameras and DVRs in Shenzhen China. Our product range including AHD/TVI/CVI Camera, IP Camera, PTZ Camera, DVR, NVR etc. GUOVIN focus on OEM & ODM, offer high-quality,best... Category: CCTV Systems |
|
||||||
|
| 641 | [Guowo Autoparts Co., Ltd](https://www.casinovendors.com/vendor/guowo-autoparts-co-ltd/) Qingdao, Shandong, China Guowo Autoparts Co.,Ltd is a leading auto parts manufacturer specialized in producing multi leaf spring,parabolic leaf springs, pin ,U-bolt,bush. We have more than 500 workers and 45 technicans, with the experienced R&D staff, advanced production equipments, strict quality c... Category: Assembly |
|
||||||
|
| 642 | [GVA Marquette Advisors](https://www.casinovendors.com/vendor/gva-marquette-advisors/) Minneapolis, Minnesota Leaders in feasibility consulting, market research, valuation, economic impact analysis and litigation support for casinos, hotels, resorts, golf, convention centers, RV parks, water parks, bowling, entertainment, retail, amusements and attractions. Category: Feasibility Studies |
|
||||||
|
| 643 | [GVG - Green Valley Games](https://www.igamingsuppliers.com/vendor/gvg-green-valley-games/) Categories: Casino Software, Lottery Software, Mobile Gaming |
|
||||||
|
| 644 | [GVision USA](https://www.casinovendors.com/vendor/gvision-usa/) Lake Forest, California GVISION is a leader in LCD display technologies, with their strategic blend of comprehensive product line, exceptional component sourcing consistency and high standards of cost-conscious quality manufacturing. This allows GVISION to deliver significant price/performance adva... Categories: Touchscreens, LCD, Monitors, Monitors, Open Frame |
|
||||||
|
| 645 | [GVZH Advocates](https://www.casinovendors.com/vendor/gvzh-advocates/) Valletta, Malta GVZH Advocates is one of Malta’s leading legal practices actively involved in e-commerce and remote gaming law. The firm offers a full spectrum of services including company registration, preparation and co-ordination of all aspects of the application process with the Lotter... Categories: Licensing and Regulation, Gaming Licensing, Contract Management |
|
||||||
|
| 646 | [GWbet Affiliate](https://www.igamingaffiliateprograms.com/affiliate-program/gwbet-affiliate/) Category: Affiliate Programs |
|
||||||
|
| 647 | [GWIN Game](https://www.igamingsuppliers.com/vendor/gwin-game/) GWIN offers the white label solution services for Mobile web and PC gaming sites. We have 15 years of experience operating in the Asia Online Gaming market.The Most advanced functions of Mobile web gaming sites, and the integration of 15 Top Platforms of gaming product wi... Category: Platform Providers, Gambling Operations |
|
||||||
|
| 648 | [GX Trade Co., Ltd](https://www.casinovendors.com/vendor/gx-trade-co-ltd/) Caton, Guangdong, China Our company was founded in 2002,specialized in producing a series of marked cards and Europe Poker Club entertainment products. Golden Sunshine is a leading brand. We develop the newest luminous marked cards and Texas scanner system, which can be applied to any brand of poke... Category: Direct Marketing |
|
||||||
|
| 649 | [Gypsy Partners](https://www.igamingaffiliateprograms.com/affiliate-program/gypsy-partners/) Category: Affiliate Programs |
|
||||||
|
| 650 | [GZ Technologies, Inc.](https://www.casinovendors.com/vendor/gz-technologies-inc/) Taipei County, Taipei, Taiwan GZ TECHNOLOGIES, INC., member of Microsoft Embedded Partner, has more than 150 years of engineering experiences in Industrial and Gaming Solutions, especially ARM series and X86 based processors with Windows CE, Windows XP, XP Embedded, and Linux support. Our focus is to pr... Categories: Electronic Games, Electronic Games, Systems |
|
||||||
|
|
||||||
|
Featured Vendors
|
||||||
|
|
||||||
|
| [Casino Network](https://www.casinovendors.com/vendor/casino-network/) 20+ years experience selling refurbished slot machines, parts & glass for all major brands | [Casino City Press](https://www.casinovendors.com/vendor/casino-city-press/) A leading publisher and distributor of casino and gaming business data and market research reports. |
|
||||||
|
| --- | --- |
|
||||||
|
| [K2J Marketing Partners](https://www.casinovendors.com/vendor/k2j-marketing-partners/) We’re not just a gifting provider—we’re an extension of your marketing team driving proven results. | [TribalHub](https://www.casinovendors.com/vendor/tribalhub/) 27th Annual TribalNet Conference Sept 20-24, 2026 at Hilton Anatole Dallas in Dallas, TX |
|
||||||
|
| [Oklahoma Indian Gaming Association (OIGA) Conference](https://www.casinovendors.com/vendor/oklahoma-indian-gaming-association-oiga-conference/) The biggest little show in Indian gaming! Save the date: July 20-22, 2026 Oklahoma City | [Innovative Configuration Inc.](https://www.casinovendors.com/vendor/innovative-configuration-inc/) I-Games Anywhere-Anytime - Win Product-Service-Activity-Attraction Discounts at Favorite Casinos. |
|
||||||
|
| [Patriot Gaming & Electronics, Inc.](https://www.casinovendors.com/vendor/patriot-gaming-electronics-inc/) Patriot Gaming…Parts is what we do. Visit us: www.patriotgaming.com | [Rymax Marketing Services, Inc.](https://www.casinovendors.com/vendor/rymax-marketing-services-inc/) Leader in creating award winning player & employee loyalty programs & events proven to increase ROI |
|
||||||
|
| [Slot Machines Unlimited](https://www.casinovendors.com/vendor/slot-machines-unlimited/) Exporter of IGT, Williams, AVP, Trimline, Aristocrat, Konami, Bally, & parts over 20 yrs experience | [Sunkist Graphics, Inc.](https://www.casinovendors.com/vendor/sunkist-graphics-inc/) Specializing in the creation of best-of-breed gaming graphics - slot glass, sign faces, and more |
|
||||||
|
| [Betson Imperial Parts & Service](https://www.casinovendors.com/vendor/betson-imperial-parts-service/) Your one stop shop for all your gaming and OEM needs! | [Regulatory Management Counselors, PC](https://www.casinovendors.com/vendor/regulatory-management-counselors-pc/) Over 45 years of experience serving the legal and regulatory needs of casino industry clients |
|
||||||
|
|
||||||
|
Your Guide to 13,687 Gaming Industry Suppliers
|
||||||
|
|
||||||
|
[ADD YOUR COMPANY](https://www.casinovendors.com/signup/default.aspx?action=add)| [ABOUT US](https://www.casinovendors.com/aboutus/)
|
||||||
|
|
||||||
|
Vendors By Category
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
[Legal Services & Licensing](https://www.casinovendors.com/category/administration-and-finance/legal-services-and-licensing/)
|
||||||
|
|
||||||
|
[Advertising, Marketing and Sales](https://www.casinovendors.com/category/advertising-marketing-and-sales/)
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
[Audio/Visual, Electrical and Signage](https://www.casinovendors.com/category/audio-visual-electrical-and-signage/)
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
[ATM & Credit Cards](https://www.casinovendors.com/category/cash-chips-money-cards/atm-credit-cards/)
|
||||||
|
|
||||||
|
[Magnetic Cards and Readers](https://www.casinovendors.com/category/cash-chips-money-cards/magnetic-cards-and-readers/)
|
||||||
|
|
||||||
|
[Disease Prevention and Safety](https://www.casinovendors.com/category/disease-prevention-and-safety/)
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
[Cleaning, Disinfection and Sanitation](https://www.casinovendors.com/category/disease-prevention-and-safety/cleaning-disinfection-and-sanitation/)
|
||||||
|
|
||||||
|
[Touchless Systems and Supplies](https://www.casinovendors.com/category/disease-prevention-and-safety/touchless-systems-and-supplies/)
|
||||||
|
|
||||||
|
[Entertainment and Special Events](https://www.casinovendors.com/category/entertainment-and-special-events/)
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
[Facility Security, Design and Construction](https://www.casinovendors.com/category/facility-security-design-and-construction/)
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
[Gaming Equipment and Supplies](https://www.casinovendors.com/category/gaming-equipment-and-supplies/)
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
[Hotel, Retail, Food and Beverage](https://www.casinovendors.com/category/hotel-retail-food-and-beverage/)
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
»
|
||||||
|
|
||||||
|
[Trade Shows & Seminars](https://www.casinovendors.com/category/miscellaneous/trade-shows-seminars/)
|
||||||
|
|
||||||
|
Vendors A-Z
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Copyright © 1999-2026 Casino City Press. All Rights Reserved. [Terms of Use](https://www.casinovendors.com/terms-of-use/)| [Privacy Policy](https://www.casinocitypress.com/privacy/).
|
||||||
@@ -0,0 +1,189 @@
|
|||||||
|
Terms of Service – Popiplay
|
||||||
|
|
||||||
|
# TERMS OF SERVICE
|
||||||
|
|
||||||
|
Version: 1.0Last updated: July, 2023.
|
||||||
|
|
||||||
|
## 1.GENERAL
|
||||||
|
|
||||||
|
Before using our website, please read these Terms of Service carefully. By registering a Player Account with the website, you agree and confirm your consent with the Terms and Conditions.
|
||||||
|
|
||||||
|
The website www.popiplay.com (“Game Provider”, “Website”, “Company”, “We”, “Us”, “Our”) is owned and operated by PP Solutions N.V. a company registered and established under the laws of Curaçao, with registration number 164235 and registered address at Scharlooweg 39, Willemstad, Curaçao.
|
||||||
|
|
||||||
|
It is the player’s sole responsibility to inquire about the existing laws and regulations of the given jurisdiction for online gambling.
|
||||||
|
|
||||||
|
## 2. CHANGES TO TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
The Casino reserves the right to unilaterally change these Terms and Conditions when such need occurs. We will do our best to notify our players of any significant changes by email. However, we do recommend all players to revisit this page regularly and check for possible changes.
|
||||||
|
|
||||||
|
## 3. WHO CAN PLAY
|
||||||
|
|
||||||
|
The Casino accepts players only from those countries and geographic regions where online gambling is allowed by law. It is the player’s sole responsibility to inquire about the existing gambling laws and regulations of the given jurisdiction before placing bets on the website. The Casino accepts strictly adult players (the minimum age is 18) andplayers who have reached the age specified by the jurisdiction of player’s place of residence as eligible for online gaming. It is the player’s sole responsibility to inquire about the existing laws and regulations of the given jurisdiction regarding age limitations for online gambling. It is entirely and solely your responsibility to enquire and ensure that you do not breach laws applicable to you by participating in the games. Depositing real funds and playing for real money is subject to the laws of your country, and it is your sole responsibility to abide by your native regulations. TheCompany reserves the right to ask for proof of age from the player and limit access to the Website or suspend the Player Account to those players who fail to meet this requirement.
|
||||||
|
|
||||||
|
Any bonuses are not available to players from Sweden, including participation in any kind of promotional programs, receiving VIP rewards, as well as exchange of comp points. Users from the following countries and their territories (“Restricted Countries”) are not allowed to deposit and play real money games: United States of America, United Kingdom, Spain, France and its overseas territories (Guadeloupe, Martinique, French Guiana, Réunion, Mayotte, St. Martin, French Polynesia, Wallis and Futuna, New Caledonia), Netherlands, Israel, Lithuania, Dutch West Indies, Curacao, Gibraltar, Jersey, Greece, Belgium. The Casino cannot guarantee successful processing of withdrawals or refunds in the event that player breaches this Restricted Countries policy.
|
||||||
|
|
||||||
|
## 4. AVAILABILITY OF GAMES
|
||||||
|
|
||||||
|
Please bear in mind that some games may be unavailable in certain jurisdictions, as required by their respective regulation, which may change from time to time. Using VPN to bypass provider’s block is strictly prohibited and may lead to confiscation of winnings.
|
||||||
|
|
||||||
|
## 5. ACCEPTED CURRENCIES
|
||||||
|
|
||||||
|
Popiplay allows operators to chose their offering of currencies in their respectivemarkets, as long as legal tenders are being used for transactions.
|
||||||
|
|
||||||
|
## 6. FEES AND TAXES
|
||||||
|
|
||||||
|
You are fully responsible for paying all fees and taxes applied to your winnings according to the laws of the jurisdiction of your residence.
|
||||||
|
|
||||||
|
## 7. GAME RULES
|
||||||
|
|
||||||
|
By accepting these Terms of Service you confirm that you know and understand the rules of the games offered on the operator’s respective websites. It is at your discretion to familiarise yourself with the theoretical payout percentage of each game.
|
||||||
|
|
||||||
|
## 8. DISCLAIMER OF LIABILITIEST
|
||||||
|
|
||||||
|
By accepting these Terms of Service, you confirm your awareness of the fact that gambling may lead to losing money. Game provider is not liable for any possible financial damage arising from your use of any operator web-site.
|
||||||
|
|
||||||
|
The Game Provider is not liable of any hardware or software defects, unstable or lost Internet connection, or any other technical errors that may limit access to the Website or prevent any players from uninterrupted play. In the unlikely case where a wager is confirmed or a payment is performed by us in error, the Company reserves the right tocancel all wagers accepted containing such an error, or to correct the mistake by resettling all the wagers at the correct terms that should have been available at the time that the wager was placed in the absence of the error. If the Casino mistakenly credit your Player Account with a deposit, bonus or winnings that do not belong to you,whether due to a technical issue, error in the pay tables, human error or otherwise, the amount and/or the winnings from such bonus or deposit will remain the Casino property and will be deducted from your Player Account. If you have withdrawn funds that do not belong to you prior to us becoming aware of the error, the mistakenly paidamount will (without prejudice to other remedies and actions that may be available at law) constitute a debt owed by you to us. In the event of an incorrect crediting, you are obliged to notify us immediately by email. The Casino, its directors, employees, partners, service providers: • do not warrant that the software or the Website is/are fitfor their purpose; • do not warrant that the software and Website are free from errors; • do not warrant that the Website and/or games will be accessible without interruptions; • shall not be liable for any loss, costs, expenses or damages, whether direct, indirect, special, consequential, incidental or otherwise, arising in relation to your use of the Website or your participation in the games.
|
||||||
|
|
||||||
|
You hereby agree to fully indemnify and hold harmless the Game Provider, its directors, employees, partners, and service providers for any cost, expense, loss, damages, claims and liabilities howsoever caused that may arise in relation to your use of games or participation in games. You acknowledge that the Game Provider shall be the final decision-maker of whether you have violated the Game Provider’s Terms of Service in a manner that results in your suspension or permanent barring from participation in the Website.
|
||||||
|
|
||||||
|
## 9. USE OF PLAYER ACCOUNT
|
||||||
|
|
||||||
|
Each player is allowed to create only one (1) personal account. Creating multiple Player Accounts by a single player can lead, at the sole discretion of the respective operator, to termination of all such accounts and cancellation of all payouts to the player. The player shall not provide access to their Player Account or allow using operator’s respective websites to any third party including but not limited to minors. Any returns, winnings or bonuses which the player has gained or accrued during such time as the Duplicate Account was active may be reclaimed by us, and players undertake to return to us on demand any such funds which have been withdrawn from the Duplicate Account. The Website can only be used for personal purposes and shall not be used for any type of commercial profit. You must maintain your account and keep your details up-to-date. We reserve the right to make a phone call to the numberprovided in your user account, which at our own discretion can be a necessary part of the KYC procedure. Account and/or any actions in the account may be terminated until the account is fully verified. We will make reasonable efforts trying to contact you regarding the withdrawal of the funds, but if we are not able to reach you (by email orphone) in two (2) weeks as from the date of the request for withdrawal, account will be locked, since you have failed to pass the KYC procedure.
|
||||||
|
|
||||||
|
## 10. ANTI-MONEY LAUNDERING
|
||||||
|
|
||||||
|
## 10.1 ABBREVIATIONS USED
|
||||||
|
|
||||||
|
FATF – Financial Action Task Force (http://www.fatf-gafi.org)RNG – Random Number Generator
|
||||||
|
|
||||||
|
## 10.2. GUIDELINE IDENTITY CHECK
|
||||||
|
|
||||||
|
1. In order to do a first deposit with PP Solutions N.V. a customer needs to provide the following mandatory details:
|
||||||
|
|
||||||
|
● First name● Last name● Street and street number● City and postal code● Country● Email address (must be valid and unique within PP Solutions N.V.)● Date of birth● Password (will be encrypted)● Confirmation of password● Account currency● Mobile phone number
|
||||||
|
|
||||||
|
2. A newly registered account has to be checked immediately by the service department in order to find out if the details are correct (accounts with false names and addresses will be closed). Also, the registered country and the country IP need to be compared. A mismatch is automatically to be noted in the customers’ account. This helps us close fake accounts before any paying can be processed.
|
||||||
|
|
||||||
|
1. Players who are not registered are unable and not allowed to play for real money. Any online transaction, may it be pay-in or pay-out, will not be accepted or processed in cash.2. Once the registration process has been accomplished, customers will receive a welcome email with a link to access their accounts. This procedure aims at verifying the customer’s email address.3. Each new customer has to provide a copy of an ID document (passport, ID card or driving license) when thresholds set in section 4.1.1 are reached. This is in line with the 5th AML requirements.4. The identity check has to include a copy of a utility bill and/or bank statement showing the name and address, if there is any doubt on the authenticity of the provided ID document.5. Furthermore, the identity check may include additional measures such as the provision of a copy of each credit card used in the specific account.6. Any remaining doubts concerning the identity of a customer have to be reported to the supervisor.7. In such a case, further investigations have to be started.8. These may include • Check of the IP used by the customer • Check of the provided phone number and/or call to the provided phone number • Internet research on the customer details • Request to the official authorities in thecountry of the customer – this has to be done by compliance management.9. Customers will not be able to register with a country of residence in the following list: US, Denmark, Belgium, Australia, Anguilla, Afghanistan, Czech Republic, Slovakia, Slovenia, Gibraltar, Israel, Iran, Jersey, Lithuania, Slovenia, Slovakia, UK, Ireland, Estonia, Italy, France, Turkey, Spain, Greece, China, Jamaica, Cambodia, Iraq, Syria, Myanmar, Lao PDR, Angola, Cape Verde, Paraguay, Macau, Hong Kong, Albania, Pakistan, Lebanon, Cote D’Ivoire, Iran, Afghanistan.10.Customer under the age of 18 will be denied to register an account. Customers will be required to register before playing for real money.
|
||||||
|
|
||||||
|
## 10. 3 GUIDELINE PAYOUT MANAGEMENT
|
||||||
|
|
||||||
|
## 10.3.1 Checks to be performed on each payout:
|
||||||
|
|
||||||
|
## 10.3.1.1 Account check
|
||||||
|
|
||||||
|
The owner of the PP Solutions N.V. account must be the same person as the owner of the bank account or credit card. All account information, like address, email, date of birth etc., must be complete and authentic. Withdrawals will be made to the same source where the funds originated (where possible).
|
||||||
|
|
||||||
|
## 10. 3.1.2 Deposits must have been used
|
||||||
|
|
||||||
|
On each payout it has to be checked if the deposits have been used for stakes. A payout cannot be processed if the deposited amount has not been used for stakes. If the deposited amount has not been used, the payout has to be denied. Furthermore, the latest winnings have to be checked for correctness.
|
||||||
|
|
||||||
|
## 10. 3.1.3 Fulfilment of bonus rules
|
||||||
|
|
||||||
|
Before a payout can be deducted from the customer´s account, the account has to be checked if a bonus has been given to the customer since the last payout. When a bonus has been credited, the account has to be checked for fulfillment of the bonus rules applicable to that bonus.
|
||||||
|
|
||||||
|
## 10.4 AML Procedures - The Risk Based Approach
|
||||||
|
|
||||||
|
The risk-based approach is introduced to promote a move away from a “one size fits all” approach to anti-money laundering procedures. By identifying and assessing the money laundering risks, PP Solutions N.V. can take the best steps to mitigate and monitor those risks.
|
||||||
|
|
||||||
|
## 10.4.1. Risk Profile for PP Solutions N.V.
|
||||||
|
|
||||||
|
Based on our business profile, the risk of money laundering and terrorist financing is minimal, especially compared to financial institutions. The main reason is that cash is not accepted and only credit cards, e-wallets and other licensed instruments can be used to effect deposits and withdrawals. Additionally, the average transaction is of a relatively small value. The only money laundering stage that could be of a risk potential for PP Solutions N.V., is the layering stage, which is mitigated by various daily screening measures described below.
|
||||||
|
|
||||||
|
## 10.4.1.1. Customer Due Diligence (CDD)
|
||||||
|
|
||||||
|
CDD information is needed to identify money laundering activity. The more the customer profile is updated, the more it will help to identify unusual and potentially suspicious activity. In accordance with the 4th AML directive, the verification and gathering of client information will be delayed until:
|
||||||
|
|
||||||
|
• Account deposits reach a pre-determined threshold of EUR 2,000;• Gaming activity reaches a pre-determined threshold of EUR 2,000;• Players seek to withdraw funds (initial payout);• A period of time since account opening lapses more than 60 days.
|
||||||
|
|
||||||
|
The following on-going monitoring measures describe CDD measures based on thecompany’s risk profile:
|
||||||
|
|
||||||
|
• Identity verification for every new customer• Assessing the risk profile of every customer• Daily payout analysis• Analysis of the historical pattern of the customer’s payout activity• Ban of anonymous or fictitious accounts.
|
||||||
|
|
||||||
|
## 10.4.1.2. Customer Due Diligence Measures Applied
|
||||||
|
|
||||||
|
The daily CDD measures applied during the daily workflow are described in detail below.
|
||||||
|
|
||||||
|
## CDD: ID-Check
|
||||||
|
|
||||||
|
For every new customer the service department conducts individual checks whether the registered data is plausible and correct. The IP address check and double customer check are conducted as outlined below. Fake or double accounts are being closed immediately.
|
||||||
|
|
||||||
|
## CDD: IP-Check
|
||||||
|
|
||||||
|
The customer’s IP address is registered upon every log-in. Upon registration, a review is done as to whether the customer’s IP address corresponds with the registered country. If there is a mismatch, the customer’s account is marked for further checks.
|
||||||
|
|
||||||
|
## CDD: Double Customer Check
|
||||||
|
|
||||||
|
Every customer can open only one account. If a customer tries to open multiple accounts, these will be blocked, and the system will generate a warning.
|
||||||
|
|
||||||
|
## CDD: Passport check upon first pay-out
|
||||||
|
|
||||||
|
Customers may need to submit a passport copy before the first pay-out irrespective of the amount requested. Passport copies are checked individually by risk management. Furthermore, PP Solutions N.V. reserves the right to determine the payment means of the first pay-out: either by the same method used for the deposit, or by bank transfer in order to further validate the customer’s identity.
|
||||||
|
|
||||||
|
## 10.4.2. Customer Acceptance Policy
|
||||||
|
|
||||||
|
After the identity verification a risk profile is formed based on the behavioural pattern of the customer. Every customer is given an internal classification, which will be described further below. If suspicious behaviour is observed, evidence will be recorded on the customer profile, and enhanced customer due diligence is applied.Enhanced customer due diligence (EDD) is mandatory also for Politically Exposed Persons (PEPs) who are considered high-risk customers.
|
||||||
|
|
||||||
|
## 10.4.3. Enhanced Customer Due Diligence (EDD)
|
||||||
|
|
||||||
|
Enhanced Customer Due Diligence is applied when additional steps of examination are needed to identify the customer and to confirm that their activities and funds are legitimate. The following measures describe EDD measures based on the company’s risk profile:
|
||||||
|
|
||||||
|
● Establishing the identity of the customer by requesting additional documents suchas: a copy of a utility bill to verify the home address and a statement of a credit orfinancial institution to prove the bank account holder.● Verifying documents by using supplementary measures.● Requesting certified confirmation of the documents from a credit/financialinstitution.● Ensuring that the first payment originates from customer’s own bank account /credit card.● Clarifying the source of the funds with the customer.
|
||||||
|
|
||||||
|
## 10.4.4. Enhanced Customer Due Diligence Measures Applied
|
||||||
|
|
||||||
|
The daily EDD measures applied during the daily workflow are described in detail below
|
||||||
|
|
||||||
|
## EDD: Enhanced ID Check
|
||||||
|
|
||||||
|
The customer has to submit ID, utility bill and bank statement for Enhanced ID Checkwithin 30 days. If the customer does not send these documents within 30 days, thegaming account will be blocked from all transactions. Enhanced IDCheck is carriedout whenever:
|
||||||
|
|
||||||
|
● The registered country is not part of the FATF white list.● A deposit or pay out request is equal or more than 2,000 EUR.
|
||||||
|
|
||||||
|
## Credit card verification
|
||||||
|
|
||||||
|
We use common tools like 3D Secure to verify credit cards.
|
||||||
|
|
||||||
|
## 10.4.5. Money Laundering Reporting Officer (MLRO)
|
||||||
|
|
||||||
|
The MLRO is the first person to notify when the suspicion of money launderingactivities evolves. The MLRO is appointed by senior management and is trained forthe money laundering risk factors that the company faces. When the companyappoints the MLRO, the competent authorities need to be notified. The main dutiesof the MLRO are:
|
||||||
|
|
||||||
|
a) Keeping up to date with AML/CTF legislations.b) Making sure that implementation takes place in line with the internal procedures.c) Making sure that anti-money laundering training is periodically given to staff.d) Recording and updating risk assessments.e) To receive and evaluate internal reports.f) To advise, guide and assist.g) To keep statistical data.h) Filing STRs to the respective financial authority.
|
||||||
|
|
||||||
|
All incidents involving a suspicious person or transaction in terms of moneylaundering or funding terrorism need to be reported to the respective financialauthority by the MLRO within 5 working days. In the Suspicious Transaction Report,the MLRO must give a clear and complete explanation of the suspicious behaviourincluding also customer identification and transaction records.
|
||||||
|
|
||||||
|
## 10.4.6. Additional Monitoring Tools
|
||||||
|
|
||||||
|
## Customer Classes
|
||||||
|
|
||||||
|
Every customer is vetted in a specific customer class according to his „risk potential.” Every customer class is subject to different deposit limits. For instance, all new customers are being rated with customer class N (white list markets) or M (non-white list countries). After the lapse of 4 weeks, customers will be moved to different classes in line with their observed behaviour. High risk customers will be followed closely.
|
||||||
|
|
||||||
|
## 10.4.7. Politically Exposed Persons (PEPs)
|
||||||
|
|
||||||
|
A Politically Exposed Person is someone who has been entrusted with a prominent public function, such as a senior political figure. Individuals who are closely related to this person, for instance, immediate family members and close associates, are also considered as PEPs. PEPs are classified as a money laundering risk since they may be exposed to property that has been generated by corruption and bribery because of their position. The current PEP lists provided by Acuris are consulted in order to identify a customer as PEP. The player is requested to confirm their PEP status within the first deposit. Once established as PEP, the user’s account is terminated. Screening for PEP status is carried out once a year and after a country election the resident of which the player is. Where player who was a PEP is no longer entrusted with a prominent public function, the requirements for PEPs will continue to apply for a period of at least 12 months after the date on which the person ceased to be entrusted with a public function or for a longer period to address the risks of money laundering or terrorist financing in relation to that person.
|
||||||
|
|
||||||
|
## 10.4.8. Record Keeping
|
||||||
|
|
||||||
|
The following records are kept: Identification Records: Copy of ID-document; Copy of bank/credit statement; References. Transaction Record Details: Deposit/withdrawal method used; ID of person performing the transaction; Destination of funds; The authorization of credit card payments performed by our clearing companies; Volumeof transactions. The records are kept for 5 years from the end of the business relationship in accordance to the directive.
|
||||||
|
|
||||||
|
## 10.4.9. Employee training
|
||||||
|
|
||||||
|
Periodical training ensures that the staff is aware and compliant with the anti-moneylaundering regulatory requirements.
|
||||||
|
|
||||||
|
## 10.4.10. Employee hiring
|
||||||
|
|
||||||
|
For all new employees hired by PP Solutions N.V.; PP Solutions N.V. will conduct a thorough background check and various due diligence documents will be collected for reference (birth certificate, clear police conduct, etc.). Interviews are carried out and requested references are checked, whenever available. It is a company policy that all new employees are also given training with regards to the anti-money laundering policy and the internal procedures used to mitigate this risk.
|
||||||
|
|
||||||
|
## 11. COMPLAINTS
|
||||||
|
|
||||||
|
You are free to contact our customer service team to share your opinion, your feedback, request or complaint. Please use: [[email protected]](https://www.popiplay.com/cdn-cgi/l/email-protection#3b484e4b4b54494f7b4b544b524b575a4215585456) for this purpose. We will endeavour to respond as soon as possible, but not later than 48-72 hours. Complaints are handled in the support department and escalated in the organisation of the respective Casino in the case that support personnel did not solve the case immediately. You shall be informed about the state of the complaint to a reasonable level. Casino is to acknowledge a complaint started by the account holder only. It is forbidden to and you can therefore not assign, transfer, hand over or sell your complaint to the third party. Casino will dismiss the complaint if the matter is handed over to be conducted by the third party and not the original account owner. In the event of any dispute, you agree that the server logs and records shall act as the final authority in determining the outcome of any claim. You agree that in the unlikely event of a disagreement between the result that appears on your screen and the game server, the result that was logged on the game server will prevail, and you acknowledge and agree that our records will be the final authority in determining the terms and circumstances of your participation in the relevant online gaming activity and the results of this participation. When we wish to contact you regarding such a dispute, we will do so by using any of the contact details provided in your Player Account.
|
||||||
|
|
||||||
|
## Welcome to
|
||||||
|
|
||||||
|
## You must be over 18 years old to enjoy our content.
|
||||||
|
|
||||||
|
## Please verify your age!
|
||||||
|
|
||||||
|
Yes, I am 18 years old
|
||||||
|
|
||||||
|
[No, take me back](https://google.com/)
|
||||||
@@ -0,0 +1,415 @@
|
|||||||
|
Best iGaming aggregation solution - iGaming API solution
|
||||||
|
|
||||||
|
# Casino Game Aggregator API
|
||||||
|
|
||||||
|
Our API integration is a powerful solution for fast and seamless integration of casino games and sportsbook content into your platform.
|
||||||
|
|
||||||
|
Integrate software from multiple game providers in a single day and scale your iGaming business without limits.
|
||||||
|
|
||||||
|
[Contact Us](https://igamingslots.com/contact/) [All Providers](https://igamingslots.com/casino-game-providers/)
|
||||||
|
|
||||||
|
Work with leading providers such as Pragmatic Play, Evolution, NetEnt, Playtech, and more. Access thousands of casino games and deliver a premium iGaming experience worldwide.
|
||||||
|
|
||||||
|
#### Fast Integration
|
||||||
|
|
||||||
|
Launch your platform quickly with easy API setup.
|
||||||
|
|
||||||
|
#### Multiple Providers
|
||||||
|
|
||||||
|
Connect to leading game developers worldwide.
|
||||||
|
|
||||||
|
#### Scalable System
|
||||||
|
|
||||||
|
Handle high traffic and expand without limits.
|
||||||
|
|
||||||
|
## One API to connect 15,000+ games, live casino and sportsbook
|
||||||
|
|
||||||
|
Plug a single REST endpoint into your iGaming platform and instantly unlock slots, live dealer tables, crash games, virtual sports and sportsbook feeds from 150+ certified providers — without rebuilding your stack.
|
||||||
|
|
||||||
|
[Contact Us →](https://igamingslots.com/contact/) [All Providers](https://igamingslots.com/casino-game-providers/)
|
||||||
|
|
||||||
|
15,000+Slot games
|
||||||
|
|
||||||
|
150+Providers
|
||||||
|
|
||||||
|
40+Countries
|
||||||
|
|
||||||
|
14 daysAvg. setup
|
||||||
|
|
||||||
|
### Start with leaders in the industry
|
||||||
|
|
||||||
|
Pragmatic PlayEvolutionNetEntPlaytech HacksawSpribeNovomaticAmatic IGTQuickspinNolimit CityBooming Games
|
||||||
|
|
||||||
|
What is our API
|
||||||
|
|
||||||
|
## A single aggregator built for serious iGaming operators
|
||||||
|
|
||||||
|
Our Casino Game Aggregator API is a production-grade integration layer that lets you connect thousands of casino games and sportsbook content to your platform through one unified interface. It was engineered specifically for online gambling operators who want to minimise engineering cost, shorten time-to-market and scale their business without being locked to a single provider.
|
||||||
|
|
||||||
|
Instead of negotiating, integrating and certifying each provider individually — which typically takes months of back-and-forth for every new studio — you sign one agreement with us and immediately receive access to 150+ top-tier studios and independent game labs. We handle provider onboarding, game catalogue normalisation, RTP reporting and player session tracking on the backend, so your team can focus on growth, marketing and product instead of infrastructure.
|
||||||
|
|
||||||
|
The aggregator was built from day one with the needs of real-world iGaming operators in mind: high concurrency during marketing peaks, burst traffic around major sporting events, complex multi-region routing, multi-language lobbies and strict reporting requirements from operations teams. Every decision — from the way we version endpoints to the way we expose webhook retries — exists because we’ve lived through the problem it solves, many times over, with operators across 40+ countries.
|
||||||
|
|
||||||
|
You connect once and keep receiving new content, new providers and new markets as our platform expands. There is no separate contract to renegotiate every time we add a studio — you simply flip a switch in the admin panel and the new provider appears in your game lobby, already normalised and ready for traffic.
|
||||||
|
|
||||||
|
Fast integrationSandbox credentials within 24 hours, production go-live in 14 days on average.
|
||||||
|
|
||||||
|
Multiple providersPragmatic, Evolution, NetEnt, Playtech, Hacksaw, Spribe and 140+ more, all via one API.
|
||||||
|
|
||||||
|
Scalable systemBattle-tested under millions of spins per day with multi-region failover.
|
||||||
|
|
||||||
|
Always-on contentNew game titles and providers are pushed to your lobby weekly without any downtime or redeploys.
|
||||||
|
|
||||||
|
YOUR APP`client.launchGame("book_of_dead")`
|
||||||
|
|
||||||
|
OUR API`POST /v1/games/launch`
|
||||||
|
|
||||||
|
AGGREGATOR`routes to Pragmatic · Evolution · NetEnt…`
|
||||||
|
|
||||||
|
PROVIDER`200 OK · game URL · 38 ms`
|
||||||
|
|
||||||
|
Key Features
|
||||||
|
|
||||||
|
## Everything your platform needs, shipped in one integration
|
||||||
|
|
||||||
|
A complete aggregation layer with the tools, data and reliability iGaming operators actually use in production. No puzzle-piece stack, no vendor spaghetti.
|
||||||
|
|
||||||
|
### All-in-One Game Aggregation
|
||||||
|
|
||||||
|
Access 15,000+ slots, live dealers, table games, crash, instant-win and fishing titles through a single integration. The aggregation layer normalises game data, session tokens, RTP reporting and player histories in one unified dashboard — no more juggling a dozen different provider schemas.
|
||||||
|
|
||||||
|
### Sportsbook & In-Play Feeds
|
||||||
|
|
||||||
|
Real-time pre-match and in-play odds for 40+ sports, low-latency websocket streams with automatic regional failover, settlement API and bet-builder support — everything you need to add sports betting to your casino audience without a second platform.
|
||||||
|
|
||||||
|
### Live Casino & Game Shows
|
||||||
|
|
||||||
|
Premium live dealer content from Evolution, Ezugi, Pragmatic Live, Vivo and more. Blackjack, roulette, baccarat, poker variants and next-generation game shows — streamed in HD, 24/7, with multilingual dealers and regional tables for your key markets.
|
||||||
|
|
||||||
|
### Real-time Analytics & BI
|
||||||
|
|
||||||
|
Track GGR, NGR, RTP, player acquisition costs, session duration, game performance and conversion funnels. Schedule automated reports, build custom dashboards, stream events to your BI stack and share insights across your team in real time.
|
||||||
|
|
||||||
|
### Any-GEO Deployment
|
||||||
|
|
||||||
|
Launch in North America, Europe, Asia, LATAM or Africa on the same code base. Regional endpoints with automatic routing, localised game catalogues, multi-language lobbies and time-zone-aware support — so entering a new market is a configuration change, not a rebuild.
|
||||||
|
|
||||||
|
### Fraud Protection & Security
|
||||||
|
|
||||||
|
Multi-layer defence purpose-built for iGaming: real-time fraud scoring, anti-bot protection, device fingerprinting, encrypted transactions and SOC 2-ready infrastructure. Your business and players stay protected at every point of the flow.
|
||||||
|
|
||||||
|
### Mobile-First Performance
|
||||||
|
|
||||||
|
Every game and sportsbook endpoint is optimised for mobile. Progressive Web App support means instant loads even on slower connections — keeping players engaged whether they’re on fibre at home or 3G on the move.
|
||||||
|
|
||||||
|
### 24/7 Dedicated Support
|
||||||
|
|
||||||
|
Round-the-clock assistance from iGaming engineers — not a ticketing bot. Technical integration, incident response, provider questions, tuning and optimisation are handled by a dedicated account manager assigned to your project from day one.
|
||||||
|
|
||||||
|
Technical Architecture
|
||||||
|
|
||||||
|
## Built for operators who can’t afford downtime
|
||||||
|
|
||||||
|
Our API is designed around the reality of high-traffic iGaming: spikes during football weekends, marketing peaks that triple your concurrent users, and regulatory audits that can land without warning. Every endpoint is deployed across multiple cloud regions with automatic failover, aggressive caching where it makes sense, and signed, replay-protected requests where it matters.
|
||||||
|
|
||||||
|
Under the hood the platform runs on a distributed microservice architecture with independent game, sportsbook, CMS and analytics services. Each service scales horizontally and can be deployed closer to the player, so Brazilian users get responses from São Paulo while European players are served from Frankfurt, without you having to think about geography.
|
||||||
|
|
||||||
|
We also take backwards compatibility seriously. Breaking changes are rare and always announced through semantic versioning, a public changelog and a twelve-month deprecation window — so you can move at your own pace instead of scrambling to match an unannounced schema change.
|
||||||
|
|
||||||
|
The result is a platform that stays online when your players need it most, and an integration surface that your engineers can reason about without reading a fifty-page PDF.
|
||||||
|
|
||||||
|
REST + WebSocketJSON over HTTPS for game launches, WS streams for live odds and session events.
|
||||||
|
|
||||||
|
Multi-region failoverActive deployments in EU, UK, LATAM and APAC with automatic DNS-based routing.
|
||||||
|
|
||||||
|
OAuth2 + HMAC signingSigned requests, IP allow-listing, rotating keys and complete audit trails.
|
||||||
|
|
||||||
|
Low-latency edgep95 under 80 ms thanks to edge caching, optimised payloads and CDN routing.
|
||||||
|
|
||||||
|
Versioned APISemantic versioning with 12-month deprecation windows, detailed changelog.
|
||||||
|
|
||||||
|
Sandbox mirrorIdentical data shapes and latency profile as production for confident QA.
|
||||||
|
|
||||||
|
Webhook retriesExponential backoff with DLQ inspection and signed payload delivery.
|
||||||
|
|
||||||
|
Event streamingKafka-compatible event bus for bet, spin, session and game-lifecycle events.
|
||||||
|
|
||||||
|
How it works
|
||||||
|
|
||||||
|
## From first contact to live platform in four steps
|
||||||
|
|
||||||
|
We engineered the onboarding flow to be friction-free. Most operators move from “hello” to fully live in a matter of weeks, not quarters.
|
||||||
|
|
||||||
|
01
|
||||||
|
|
||||||
|
### Contact Us
|
||||||
|
|
||||||
|
Submit your request and book a discovery call. We take the time to understand your target market, traffic projections and roadmap before proposing the optimal setup.
|
||||||
|
|
||||||
|
02
|
||||||
|
|
||||||
|
### Setup & Config
|
||||||
|
|
||||||
|
We provision your sandbox, configure domains, servers, SSL and brand assets. Credentials land in your inbox, typically within 24 hours of signing.
|
||||||
|
|
||||||
|
03
|
||||||
|
|
||||||
|
### Integration
|
||||||
|
|
||||||
|
Games, sportsbook, analytics and back-office dashboards are connected, tested and verified against joint UAT checklists before go-live.
|
||||||
|
|
||||||
|
04
|
||||||
|
|
||||||
|
### Launch & Scale
|
||||||
|
|
||||||
|
Switch to production keys, push to real traffic and keep scaling. We stay on-call for optimisation, monitoring and new provider rollouts as you grow.
|
||||||
|
|
||||||
|
Supported Content
|
||||||
|
|
||||||
|
## All major iGaming verticals, one API
|
||||||
|
|
||||||
|
The aggregator serves every mainstream content type players expect from a modern online casino — plus the fast-growing niches that are driving engagement today. From classic three-reel slots to high-volatility megaways, from live-streamed roulette to community-driven crash rounds, the catalogue is curated to match real player behaviour across dozens of regulated and emerging markets.
|
||||||
|
|
||||||
|
Slots
|
||||||
|
|
||||||
|
### Video Slots
|
||||||
|
|
||||||
|
15,000+ certified slot titles from premium studios and boutique labs — megaways, cluster pays, buy-feature mechanics and classic fruit machines.
|
||||||
|
|
||||||
|
Live
|
||||||
|
|
||||||
|
### Live Dealer
|
||||||
|
|
||||||
|
Blackjack, roulette, baccarat, game shows and regional specialities streamed from Evolution, Ezugi, Pragmatic Live, Vivo and more.
|
||||||
|
|
||||||
|
Table
|
||||||
|
|
||||||
|
### Table & Card Games
|
||||||
|
|
||||||
|
Multi-hand poker, classic blackjack, European & American roulette, punto banco and a deep catalogue of regional card games.
|
||||||
|
|
||||||
|
Crash
|
||||||
|
|
||||||
|
### Crash & Instant Win
|
||||||
|
|
||||||
|
Aviator, JetX, Plinko, Mines, scratchcards and social-style instant-win formats — the content that keeps engagement graphs steep.
|
||||||
|
|
||||||
|
Sports
|
||||||
|
|
||||||
|
### Sportsbook & Virtual Sports
|
||||||
|
|
||||||
|
Pre-match, in-play, bet-builder, cash-out and a full virtual sports suite covering football, horse racing, tennis and esports.
|
||||||
|
|
||||||
|
More
|
||||||
|
|
||||||
|
### Bingo, Lottery & Fishing
|
||||||
|
|
||||||
|
Network-based bingo rooms, daily lotteries and arcade-style fishing games for Asia-facing operators, all through the same endpoint.
|
||||||
|
|
||||||
|
Global Reach
|
||||||
|
|
||||||
|
## Start your journey in any GEO
|
||||||
|
|
||||||
|
We ship iGaming software in almost any country and region, taking on the technical challenges so your team can focus on acquisition and product. Each region has its own player expectations, its own language preferences and its own content trends — we package all of that into ready-to-go regional profiles that you activate with a single click.
|
||||||
|
|
||||||
|
🌎
|
||||||
|
|
||||||
|
### North & South America
|
||||||
|
|
||||||
|
Localised content in Spanish, Portuguese and English, regional jackpots tuned for LATAM players and a content mix weighted toward the slot titles and live dealer studios that dominate the US, Brazilian and Mexican markets.
|
||||||
|
|
||||||
|
- English
|
||||||
|
- Spanish
|
||||||
|
- Portuguese
|
||||||
|
|
||||||
|
🌍
|
||||||
|
|
||||||
|
### Europe
|
||||||
|
|
||||||
|
Full EEA and UK coverage with localised content catalogues, regional live-dealer tables and dedicated European support desks across multiple time zones for both regulated and emerging European markets.
|
||||||
|
|
||||||
|
- English
|
||||||
|
- German
|
||||||
|
- Polish
|
||||||
|
- Italian
|
||||||
|
- French
|
||||||
|
|
||||||
|
🌏
|
||||||
|
|
||||||
|
### Asia
|
||||||
|
|
||||||
|
Dedicated Asian live-dealer studios, regional fishing and arcade-style titles, plus deep catalogues tuned for the biggest APAC markets — with on-the-ground support teams covering each key time zone.
|
||||||
|
|
||||||
|
- English
|
||||||
|
- Hindi
|
||||||
|
- Thai
|
||||||
|
- Vietnamese
|
||||||
|
- Bahasa
|
||||||
|
|
||||||
|
Why IGP
|
||||||
|
|
||||||
|
## 15 years of undefeated success in iGaming
|
||||||
|
|
||||||
|
Professionals with more than 15 years in iGaming software, trusted by operators across 40+ countries. The numbers speak louder than a sales pitch.
|
||||||
|
|
||||||
|
500+Successfully finished projects
|
||||||
|
|
||||||
|
13K+Games available on platform
|
||||||
|
|
||||||
|
150+Providers integrated
|
||||||
|
|
||||||
|
14 daysAverage setup time
|
||||||
|
|
||||||
|
What you get
|
||||||
|
|
||||||
|
## A complete turnkey operation, out of the box
|
||||||
|
|
||||||
|
### Full turnkey delivery
|
||||||
|
|
||||||
|
No in-house development required on your side — the entire stack, from casino frontend to admin back-office, is delivered ready to run.
|
||||||
|
|
||||||
|
### Cloudflare & servers
|
||||||
|
|
||||||
|
Complete cloud setup, domain transfer or purchase, DDoS protection, global CDN and dedicated servers for stable performance in any region.
|
||||||
|
|
||||||
|
### Account manager from day one
|
||||||
|
|
||||||
|
A dedicated iGaming specialist joins your project from the very first call and stays with you through launch, optimisation and scaling.
|
||||||
|
|
||||||
|
### Multi-GEO support
|
||||||
|
|
||||||
|
North America, Europe, Asia — each with localised languages, live dealer studios and content catalogues curated specifically for the region.
|
||||||
|
|
||||||
|
### Average response < 2h
|
||||||
|
|
||||||
|
Our support desk keeps an average reply time under two hours, with Telegram, WhatsApp and email always open during launches.
|
||||||
|
|
||||||
|
### Proven track record
|
||||||
|
|
||||||
|
500+ successfully launched projects over 15 years in iGaming. The team has seen every edge case, so your launch doesn’t have to be the one that uncovers them.
|
||||||
|
|
||||||
|
Who it’s for
|
||||||
|
|
||||||
|
## Built for operators who want to move fast
|
||||||
|
|
||||||
|
The aggregator API fits a wide range of iGaming businesses — from first-time entrepreneurs launching their debut brand to established groups scaling into new markets. Whether you’re starting from a blank page or replacing a legacy vendor, the onboarding flow is the same: a single discovery call, a tailored setup and a project timeline that moves in weeks rather than quarters. A few of the most common scenarios operators come to us with:
|
||||||
|
|
||||||
|
### New brand launch
|
||||||
|
|
||||||
|
Stand up a full casino & sportsbook under your own branding in weeks, with games, content and support ready from the first player sign-up.
|
||||||
|
|
||||||
|
### Existing casino expansion
|
||||||
|
|
||||||
|
Plug our aggregator into your current platform and instantly triple your game library, add sportsbook or roll out crash games without rebuilding.
|
||||||
|
|
||||||
|
### New GEO roll-out
|
||||||
|
|
||||||
|
Enter LATAM, Asia or a regulated European market with localised content, languages and a support team that already knows the landscape.
|
||||||
|
|
||||||
|
### Migration from a legacy provider
|
||||||
|
|
||||||
|
Move away from an outdated vendor with minimal downtime — we import your player base, sessions and game history and run a parallel sandbox until cutover.
|
||||||
|
|
||||||
|
### Affiliate or media group
|
||||||
|
|
||||||
|
Turn your traffic into a fully owned casino product instead of pushing users to someone else’s brand — you keep the lifetime value.
|
||||||
|
|
||||||
|
### Land-based operator going online
|
||||||
|
|
||||||
|
Extend your physical brand into the digital world with a fully synchronised player account, loyalty program and unified cash management.
|
||||||
|
|
||||||
|
Integration Playbook
|
||||||
|
|
||||||
|
## Everything your engineers need on day one
|
||||||
|
|
||||||
|
We don’t just hand you an endpoint and a wish of good luck. Every new operator gets a complete integration pack so the engineering team can move from “kick-off call” to “first real spin” without guesswork.
|
||||||
|
|
||||||
|
### Full API reference
|
||||||
|
|
||||||
|
OpenAPI 3.1 specification with request/response examples, error codes, rate limits and regional endpoint URLs. Auto-generated SDK stubs for Node, PHP, Python, Go and .NET.
|
||||||
|
|
||||||
|
### Postman & Insomnia collections
|
||||||
|
|
||||||
|
Ready-made collections pre-filled with sandbox credentials so your QA team can click through the whole player journey — session creation, game launch, live odds and round settlement — in minutes.
|
||||||
|
|
||||||
|
### Sandbox identical to production
|
||||||
|
|
||||||
|
Same data shapes, same latency profile, same error behaviour. What passes in sandbox passes in production, which removes an entire class of “works on my machine” incidents.
|
||||||
|
|
||||||
|
### Webhook playground
|
||||||
|
|
||||||
|
Replay any webhook event, inspect the signed payload, rotate secrets and simulate network failures to validate your idempotency logic before players ever touch the system.
|
||||||
|
|
||||||
|
### Engineering Slack channel
|
||||||
|
|
||||||
|
A shared Slack or Telegram channel connects your developers directly to ours. No tickets, no escalation trees — just the people who can actually answer the question in real time.
|
||||||
|
|
||||||
|
### Go-live checklist
|
||||||
|
|
||||||
|
A thirty-point launch checklist covering DNS, SSL, webhook signatures, fraud rules, responsible gaming limits, latency targets and analytics tags — all signed off before we flip production.
|
||||||
|
|
||||||
|
FAQ
|
||||||
|
|
||||||
|
## Frequently asked questions
|
||||||
|
|
||||||
|
A few of the most common questions operators ask before signing on — if yours isn’t here, just reach out and we’ll reply personally.
|
||||||
|
|
||||||
|
What exactly does your Casino Game Aggregator API include?
|
||||||
|
|
||||||
|
It’s a unified REST and WebSocket interface to 15,000+ casino games, live dealer content, sportsbook feeds, crash and instant-win titles, plus full analytics and admin tooling — delivered through one integration and maintained on our side. You integrate once and automatically receive new providers, new titles and feature updates over time.
|
||||||
|
|
||||||
|
How fast can we go live?
|
||||||
|
|
||||||
|
Sandbox credentials are typically issued within 24 hours of onboarding. The average go-live time for a full casino + sportsbook platform is 14 days; casino-only integrations can ship in less than a week if your team is ready. Timelines depend on how much customisation you want on top of the default stack.
|
||||||
|
|
||||||
|
Which providers are connected out of the box?
|
||||||
|
|
||||||
|
Pragmatic Play, Evolution, NetEnt, Playtech, Hacksaw Gaming, Spribe, Nolimit City, Booming Games, Quickspin, Novomatic, Amatic, IGT, Red Tiger, Yggdrasil, Wazdan, Habanero, PGSoft, BGaming, KA Gaming, and 130+ more. The full catalogue is available in our providers directory and we add new studios every month.
|
||||||
|
|
||||||
|
What types of games are covered?
|
||||||
|
|
||||||
|
Video slots (classic, megaways, cluster pays, buy-feature), live dealer tables, blackjack, roulette, baccarat, poker variants, crash and instant-win titles, lotteries, bingo, virtual sports, sportsbook feeds and regional specialities like fishing games for Asian markets — all via the same API.
|
||||||
|
|
||||||
|
Can we bring our own provider?
|
||||||
|
|
||||||
|
Absolutely. The API is extensible — if you already have a direct contract with a game provider we’ll certify the integration and plug it into the same unified interface so your team still has a single point of control. Custom provider integrations are typically delivered within two weeks at no extra cost for operators on the platform.
|
||||||
|
|
||||||
|
Is the platform scalable for high traffic?
|
||||||
|
|
||||||
|
Yes. The infrastructure has been battle-tested under millions of spins per day and sustained peaks during major sporting events. Multi-region deployments with automatic failover and horizontal scaling keep latency low even under sudden load spikes from viral marketing or paid acquisition pushes.
|
||||||
|
|
||||||
|
How is the platform secured against fraud and abuse?
|
||||||
|
|
||||||
|
Multiple layers: real-time fraud scoring, device fingerprinting, anti-bot protection, multi-account detection, encrypted transactions, SOC 2-ready infrastructure and continuous penetration testing. Our fraud team also provides actionable reports so your operations desk can act on emerging patterns quickly.
|
||||||
|
|
||||||
|
What kind of support do we get after launch?
|
||||||
|
|
||||||
|
24/7 technical support with an average first-response time under two hours, plus a dedicated account manager assigned to your project from day one. You reach us over Telegram, WhatsApp or email — whichever works best for your team.
|
||||||
|
|
||||||
|
Can the API power a mobile app or PWA?
|
||||||
|
|
||||||
|
Yes. Every endpoint is mobile-first; game launches return mobile-optimised URLs, sportsbook and content APIs return lightweight JSON, and the platform supports Progressive Web App distribution for markets where native app stores are restrictive. Native iOS and Android wrappers can be added on request.
|
||||||
|
|
||||||
|
Do you provide analytics and reporting?
|
||||||
|
|
||||||
|
Yes — GGR, NGR, RTP, cohort engagement, player LTV, session duration, game performance and many more metrics are available in real-time dashboards. You can also stream events to your own BI stack or receive scheduled reports by email.
|
||||||
|
|
||||||
|
Can we customise the casino lobby and UI?
|
||||||
|
|
||||||
|
Yes. The frontend is fully brandable — colours, logos, typography, game lobby categories, lobby sorting, promotional banners and landing page layouts are all configurable from the admin panel. Deeper custom work, like unique landing pages or gamified journeys, is delivered by our design and engineering team on request.
|
||||||
|
|
||||||
|
Can we deploy the platform in any GEO?
|
||||||
|
|
||||||
|
Yes — North America, South America, Europe, UK, LATAM, Africa, Middle East and APAC are all supported on the same code base. Each region has regional endpoints, localised game catalogues, language packs and time-zone-aligned support. Rolling out to a new GEO is a configuration change, not a rebuild — we usually have a fresh region in production within days, not weeks.
|
||||||
|
|
||||||
|
What happens if a provider has an outage?
|
||||||
|
|
||||||
|
Our monitoring picks up provider issues usually before the provider does. Affected games are automatically hidden from the lobby, running sessions are gracefully closed and players are notified — while the rest of your casino keeps running. You get a real-time status page and a post-incident report for every outage.
|
||||||
|
|
||||||
|
Ready to plug in?
|
||||||
|
|
||||||
|
## Let’s connect your platform to 150+ providers
|
||||||
|
|
||||||
|
Fill in the contact form and our iGaming specialist will reach out within 24 hours to walk you through the integration and answer any technical questions your team has.
|
||||||
|
|
||||||
|
[Contact Us →](https://igamingslots.com/contact/) [Telegram: @igaming_production](https://t.me/igaming_production)
|
||||||
@@ -0,0 +1,514 @@
|
|||||||
|
About BGaming game provider | BGaming --
|
||||||
|
|
||||||
|
# BEYOND GAME PROVIDER
|
||||||
|
|
||||||
|
BGaming — your partner for collaborative success. Your iGaming provider that keeps players coming back.
|
||||||
|
|
||||||
|
Contact us
|
||||||
|
|
||||||
|
## TRUSTED ACROSS 3,000+ GLOBAL COMPANIES
|
||||||
|
|
||||||
|
Through our offerings, operators gain business benefits while having a tight bond with their players.
|
||||||
|
|
||||||
|
### 250+
|
||||||
|
|
||||||
|
Highly engaging games
|
||||||
|
|
||||||
|
### TOP 10
|
||||||
|
|
||||||
|
Global reach in gambling streaming
|
||||||
|
|
||||||
|
### 100%
|
||||||
|
|
||||||
|
Gambling fairness
|
||||||
|
|
||||||
|
## OUR TRADEMARK GAME FEATURES
|
||||||
|
|
||||||
|
TRUEWAYS™
|
||||||
|
|
||||||
|
The TRUEWAYS™ reel set offers 2–8 symbols per reel, resulting in up to 262,144 ways to win.
|
||||||
|
|
||||||
|
[All games with feature](https://bgaming.com/games?mechanics=Trueways)
|
||||||
|
|
||||||
|
MultiDice X™
|
||||||
|
|
||||||
|
A gameplay mode in which dice drops occur, triggering respins and awarding multipliers.
|
||||||
|
|
||||||
|
[All games with feature](https://bgaming.com/games?mechanics=MultiDice+X)
|
||||||
|
|
||||||
|
Merge UP™
|
||||||
|
|
||||||
|
Clusters of symbols upgrade into higher-value ones, resulting in chain-reaction wins. Patent pending.
|
||||||
|
|
||||||
|
[All games with feature](https://bgaming.com/games?name=merge)
|
||||||
|
|
||||||
|
SpinUp™
|
||||||
|
|
||||||
|
Enables various feature modes that enhance built-in functionality or add extra mechanics.
|
||||||
|
|
||||||
|
[All games with feature](https://bgaming.com/games?name=fortuna)
|
||||||
|
|
||||||
|
## PROMO TOOLS TO ELEVATE YOUR IGAMING BUSINESS
|
||||||
|
|
||||||
|
1
|
||||||
|
|
||||||
|
### Challenges
|
||||||
|
|
||||||
|
Let your players complete in-game challenges and earn extra rewards while enjoying their favorite games. Daily updates and different tasks suit all types of players.
|
||||||
|
|
||||||
|
2
|
||||||
|
|
||||||
|
### Drops
|
||||||
|
|
||||||
|
Turn ordinary play into a series of “wow” moments, keeping the game fresh and players keen, with random additional prizes dropped automatically to their balance.
|
||||||
|
|
||||||
|
3
|
||||||
|
|
||||||
|
### Game Sets Promo
|
||||||
|
|
||||||
|
Delight players with festive game reskins for special occasions and holidays, such as Christmas, St. Valentine’s Day, St. Patrick’s Day, Easter, Halloween, and more.
|
||||||
|
|
||||||
|
## WHY BGAMING?
|
||||||
|
|
||||||
|
- Comprehensive security for trusted entertainment
|
||||||
|
- Flexible integration options for quick game launches
|
||||||
|
- Advanced marketing tools to boost key business metrics
|
||||||
|
- Data-driven game development using analytical tools
|
||||||
|
- All-inclusive customer support with user-friendly software
|
||||||
|
- Established global presence, strong in Europe and LatAm
|
||||||
|
|
||||||
|
Contact us
|
||||||
|
|
||||||
|
## BGAMING TOP GAMES
|
||||||
|
|
||||||
|
Worldwide Asia LATAM Europe Africa
|
||||||
|
|
||||||
|
### Burning Chilli X
|
||||||
|
|
||||||
|
It’s getting hot in here! BGaming has just produced a new Burning Chilli X slot!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/burning-chilli-x)
|
||||||
|
|
||||||
|
### Aviamasters™
|
||||||
|
|
||||||
|
Master the mission in BGaming’s viral banger! Set the bet and pace for your aircraft, and watch it soar through the sky, encountering random multipliers and rockets on its way. The gameplay will keep …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/aviamasters)
|
||||||
|
|
||||||
|
### Hot Chilli Bells
|
||||||
|
|
||||||
|
Simple mechanics, adjustable paylines with dynamic stake options, and an anticipation-filled Hold & Win Bonus game with multipliers and a progress bar make for a genuine online slot that brings togeth…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/hot-chilli-bells)
|
||||||
|
|
||||||
|
### Snoop Dogg Dollars
|
||||||
|
|
||||||
|
Drop the beat for BGaming’s first celebrity-branded slot featuring the legendary Snoop Dogg as the narrator and animated character! From the groovy hip-hop soundtrack to each carefully drawn-out detai…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/snoop-dogg-dollars)
|
||||||
|
|
||||||
|
### Wild Tiger
|
||||||
|
|
||||||
|
This Asian-inspired 5×4 online slot features graceful animal symbols, Scatters, and Wilds, with an option to switch between 20, 40, 60, 80, or 100 paying lines.
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/wild-tiger)
|
||||||
|
|
||||||
|
### Bonanza Billion
|
||||||
|
|
||||||
|
BGaming is delighted to launch Bonanza Billion, the brand’s first title with cascading reels that allow players to make their experience more exciting!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/bonanza-billion)
|
||||||
|
|
||||||
|
### Hot Chilli Bells 100
|
||||||
|
|
||||||
|
The bells are jingling and the chilis are sizzling in Hot Chilli Bells 100, BGaming’s seasonal twist on a fan-favorite slot. Celebrate the festive period with expanding…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/hot-chilli-bells-100)
|
||||||
|
|
||||||
|
### Aviamasters™
|
||||||
|
|
||||||
|
Master the mission in BGaming’s viral banger! Set the bet and pace for your aircraft, and watch it soar through the sky, encountering random multipliers and rockets on its way. The gameplay will keep …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/aviamasters)
|
||||||
|
|
||||||
|
### Burning Chilli X
|
||||||
|
|
||||||
|
It’s getting hot in here! BGaming has just produced a new Burning Chilli X slot!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/burning-chilli-x)
|
||||||
|
|
||||||
|
### Wild Tiger
|
||||||
|
|
||||||
|
This Asian-inspired 5×4 online slot features graceful animal symbols, Scatters, and Wilds, with an option to switch between 20, 40, 60, 80, or 100 paying lines.
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/wild-tiger)
|
||||||
|
|
||||||
|
### Hot Chilli Bells
|
||||||
|
|
||||||
|
Simple mechanics, adjustable paylines with dynamic stake options, and an anticipation-filled Hold & Win Bonus game with multipliers and a progress bar make for a genuine online slot that brings togeth…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/hot-chilli-bells)
|
||||||
|
|
||||||
|
### Plinko 2
|
||||||
|
|
||||||
|
“You get to play Plinko your way” — that’s the essence of this game. A unique spin on the classic Plinko experience, featuring multiplier madness you won’t find elsewhere. With customizable gameplay, …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/plinko-2)
|
||||||
|
|
||||||
|
### Burning Chilli 243
|
||||||
|
|
||||||
|
Turn up the heat with Burning Chilli 243 — the blazing new chapter in classic slot excitement from BGaming! The beloved title now features 243 ways to win, giving more chances to hit big. With a high-…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/burning-chilli-243)
|
||||||
|
|
||||||
|
### Lady Wolf Moon
|
||||||
|
|
||||||
|
The Lady Wolf Moon slot is an excellent example of a well-developed and modern game. Take all the generous gifts hidden within this 5×3 slot machine!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/lady-wolf-moon)
|
||||||
|
|
||||||
|
### Wild Cash
|
||||||
|
|
||||||
|
Shiny classic 3×3 slot with just 5 paylines, but offering exciting potential with generous winning possibilities and features like a Bonus game with multipliers and Buy Bonus. Join the hunt for Wild C…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/wild-cash)
|
||||||
|
|
||||||
|
### Burning Chilli X
|
||||||
|
|
||||||
|
It’s getting hot in here! BGaming has just produced a new Burning Chilli X slot!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/burning-chilli-x)
|
||||||
|
|
||||||
|
### Wild Tiger
|
||||||
|
|
||||||
|
This Asian-inspired 5×4 online slot features graceful animal symbols, Scatters, and Wilds, with an option to switch between 20, 40, 60, 80, or 100 paying lines.
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/wild-tiger)
|
||||||
|
|
||||||
|
### Balloon Mania
|
||||||
|
|
||||||
|
How about a relaxing low-volatility game with simple but strategic gameplay? See how many clicks it will take you to pop balloons with a variety of multipliers, including the max win of x64, and mello…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/balloon-mania)
|
||||||
|
|
||||||
|
### Plinko 2
|
||||||
|
|
||||||
|
“You get to play Plinko your way” — that’s the essence of this game. A unique spin on the classic Plinko experience, featuring multiplier madness you won’t find elsewhere. With customizable gameplay, …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/plinko-2)
|
||||||
|
|
||||||
|
### Joker's Million
|
||||||
|
|
||||||
|
No wonder these reels scream “ENTERTAINMENT”: their ringmaster is the Joker herself! If you love a classic gambling session and are open to trying a fresh interpretation of a fruit slot with an iconic…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/jokers-million)
|
||||||
|
|
||||||
|
### Aviamasters™
|
||||||
|
|
||||||
|
Master the mission in BGaming’s viral banger! Set the bet and pace for your aircraft, and watch it soar through the sky, encountering random multipliers and rockets on its way. The gameplay will keep …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/aviamasters)
|
||||||
|
|
||||||
|
### Plinko
|
||||||
|
|
||||||
|
Plinko, in fact, is extremely elementary and random. There are no specific betting strategies, but many fans have been enjoying it for years. One helpful trick you can try, though, is tracking the liv…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/plinko)
|
||||||
|
|
||||||
|
### Hot Chilli Bells
|
||||||
|
|
||||||
|
Simple mechanics, adjustable paylines with dynamic stake options, and an anticipation-filled Hold & Win Bonus game with multipliers and a progress bar make for a genuine online slot that brings togeth…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/hot-chilli-bells)
|
||||||
|
|
||||||
|
### Burning Chilli X
|
||||||
|
|
||||||
|
It’s getting hot in here! BGaming has just produced a new Burning Chilli X slot!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/burning-chilli-x)
|
||||||
|
|
||||||
|
### Gold Rush – Johnny Cash
|
||||||
|
|
||||||
|
Remember Johnny Cash – the daring cowboy who are searching for money and gold? Now, you have a chance to meet him again in the new BGaming slot!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/gold-rush-with-johnny-cash)
|
||||||
|
|
||||||
|
### Lady Wolf Moon
|
||||||
|
|
||||||
|
The Lady Wolf Moon slot is an excellent example of a well-developed and modern game. Take all the generous gifts hidden within this 5×3 slot machine!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/lady-wolf-moon)
|
||||||
|
|
||||||
|
### Snoop Dogg Dollars
|
||||||
|
|
||||||
|
Drop the beat for BGaming’s first celebrity-branded slot featuring the legendary Snoop Dogg as the narrator and animated character! From the groovy hip-hop soundtrack to each carefully drawn-out detai…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/snoop-dogg-dollars)
|
||||||
|
|
||||||
|
### Hot Chilli Bells 100
|
||||||
|
|
||||||
|
The bells are jingling and the chilis are sizzling in Hot Chilli Bells 100, BGaming’s seasonal twist on a fan-favorite slot. Celebrate the festive period with expanding…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/hot-chilli-bells-100)
|
||||||
|
|
||||||
|
### Fruit Million
|
||||||
|
|
||||||
|
Fruit Million is one more classic-style slot in BGaming’s lineup with impressive features and one hundred paylines that can boost your winnings every second!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/fruit-million)
|
||||||
|
|
||||||
|
### Burning Chilli X
|
||||||
|
|
||||||
|
It’s getting hot in here! BGaming has just produced a new Burning Chilli X slot!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/burning-chilli-x)
|
||||||
|
|
||||||
|
### Wild Tiger
|
||||||
|
|
||||||
|
This Asian-inspired 5×4 online slot features graceful animal symbols, Scatters, and Wilds, with an option to switch between 20, 40, 60, 80, or 100 paying lines.
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/wild-tiger)
|
||||||
|
|
||||||
|
### Aviamasters™
|
||||||
|
|
||||||
|
Master the mission in BGaming’s viral banger! Set the bet and pace for your aircraft, and watch it soar through the sky, encountering random multipliers and rockets on its way. The gameplay will keep …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/aviamasters)
|
||||||
|
|
||||||
|
### Fruit Million
|
||||||
|
|
||||||
|
Fruit Million is one more classic-style slot in BGaming’s lineup with impressive features and one hundred paylines that can boost your winnings every second!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/fruit-million)
|
||||||
|
|
||||||
|
### Lady Wolf Moon
|
||||||
|
|
||||||
|
The Lady Wolf Moon slot is an excellent example of a well-developed and modern game. Take all the generous gifts hidden within this 5×3 slot machine!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/lady-wolf-moon)
|
||||||
|
|
||||||
|
### Plinko 2
|
||||||
|
|
||||||
|
“You get to play Plinko your way” — that’s the essence of this game. A unique spin on the classic Plinko experience, featuring multiplier madness you won’t find elsewhere. With customizable gameplay, …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/plinko-2)
|
||||||
|
|
||||||
|
### Wild Cash x9990
|
||||||
|
|
||||||
|
Dreaming of something light and summer-like? The slot Wild Cash x9990 is definitely what you need!
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/wild-cash-x9990-branded)
|
||||||
|
|
||||||
|
[Full list of geos and top games](https://bgaming.com/wp-content/uploads/2026/03/Top-Games-by-GEO-Sales-5.pdf)
|
||||||
|
|
||||||
|
## games with Asian theme
|
||||||
|
|
||||||
|
All Slots Casual
|
||||||
|
|
||||||
|
### Infinity Pull
|
||||||
|
|
||||||
|
Welcome to the endless card hunt, where there’s always another waifu to unlock and add to your collection! Choose your companion in this gacha-style adventure and create your own way to play with a va…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/infinity-pull)
|
||||||
|
|
||||||
|
### Dragon's Crash
|
||||||
|
|
||||||
|
In this casual crash game, players place a bet and observe the win multiplier increase as coins fall from above near the sleeping dragon. They can cash out at any point, but the round concludes if thi…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/dragons-crash)
|
||||||
|
|
||||||
|
### Lucky Lu
|
||||||
|
|
||||||
|
Meet Xin, Beibei, and their uncle Lu, who has been saving up a fortune in his lucky pot his whole life and is finally ready to share it with players like you! Look for treasures in the Bonus game with…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/lucky-lu)
|
||||||
|
|
||||||
|
### Sakura Riches 60
|
||||||
|
|
||||||
|
Discover the beauty of Sakura Riches 60, where every spin brings you closer to an Oriental paradise. With 60 paylines and beautiful AI-polished visuals, the game combines simple, balanced gameplay, en…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/sakura-riches-60)
|
||||||
|
|
||||||
|
### Dragon Age Hold & Win
|
||||||
|
|
||||||
|
This 5×3 Asian-inspired slot features 2 Bonus games: Free Spins, triggered by 3+ Scatter symbols on reels 1-3-5, and Gold Respin, activated by 6+ Coin drops both in the main game and in the Free Spins…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/dragon-age-hold-win)
|
||||||
|
|
||||||
|
### Panda Luck
|
||||||
|
|
||||||
|
This 3×3 slot features Asian symbols on a 3×3 grid with a Panda hero as a Bonus symbol. When 3+ Pandas land, the game turns these symbols into sticky ones and triggers 3 respins, resetting each time a…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/panda-luck)
|
||||||
|
|
||||||
|
### Lucky Dragon MultiDice X
|
||||||
|
|
||||||
|
This Asian 5×3 slot shines with its special MultiDice X feature. Whenever 2+ Dragon Dice symbols drop, they roll, revealing their values and multiplying the initial bet. To trigger it immediately, pla…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/lucky-dragon-multidice-x)
|
||||||
|
|
||||||
|
### God of Wealth Hold And Win
|
||||||
|
|
||||||
|
This Asian-themed slot features the Chinese god of money and wealth Caishen, who grants players Wilds, Scatters, and free spins with 3-reel Giant symbols. The Hold & Win feature boasts Coin symbols wi…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/god-of-wealth-hold-and-win)
|
||||||
|
|
||||||
|
### Wild Tiger
|
||||||
|
|
||||||
|
This Asian-inspired 5×4 online slot features graceful animal symbols, Scatters, and Wilds, with an option to switch between 20, 40, 60, 80, or 100 paying lines.
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/wild-tiger)
|
||||||
|
|
||||||
|
### 3 Kings Scratch
|
||||||
|
|
||||||
|
3 Kings Scratch consists of Green, Purple, and Red games, each with different bet values and playing layouts that players can switch in-game. At the start, one identical field for all titles gives pla…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/3-kings-scratch)
|
||||||
|
|
||||||
|
### Lucky Lu
|
||||||
|
|
||||||
|
Meet Xin, Beibei, and their uncle Lu, who has been saving up a fortune in his lucky pot his whole life and is finally ready to share it with players like you! Look for treasures in the Bonus game with…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/lucky-lu)
|
||||||
|
|
||||||
|
### Sakura Riches 60
|
||||||
|
|
||||||
|
Discover the beauty of Sakura Riches 60, where every spin brings you closer to an Oriental paradise. With 60 paylines and beautiful AI-polished visuals, the game combines simple, balanced gameplay, en…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/sakura-riches-60)
|
||||||
|
|
||||||
|
### Dragon Age Hold & Win
|
||||||
|
|
||||||
|
This 5×3 Asian-inspired slot features 2 Bonus games: Free Spins, triggered by 3+ Scatter symbols on reels 1-3-5, and Gold Respin, activated by 6+ Coin drops both in the main game and in the Free Spins…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/dragon-age-hold-win)
|
||||||
|
|
||||||
|
### Panda Luck
|
||||||
|
|
||||||
|
This 3×3 slot features Asian symbols on a 3×3 grid with a Panda hero as a Bonus symbol. When 3+ Pandas land, the game turns these symbols into sticky ones and triggers 3 respins, resetting each time a…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/panda-luck)
|
||||||
|
|
||||||
|
### God of Wealth Hold And Win
|
||||||
|
|
||||||
|
This Asian-themed slot features the Chinese god of money and wealth Caishen, who grants players Wilds, Scatters, and free spins with 3-reel Giant symbols. The Hold & Win feature boasts Coin symbols wi…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/god-of-wealth-hold-and-win)
|
||||||
|
|
||||||
|
### Wild Tiger
|
||||||
|
|
||||||
|
This Asian-inspired 5×4 online slot features graceful animal symbols, Scatters, and Wilds, with an option to switch between 20, 40, 60, 80, or 100 paying lines.
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/wild-tiger)
|
||||||
|
|
||||||
|
### Book of Panda MEGAWAYS™
|
||||||
|
|
||||||
|
Powered by MEGAWAYS™ and Book mechanics, this oriental slot boasts a single symbol for both Wild and Scatter, an engaging Free Spins round that includes an Expanding symbol and x2 to x10 multipliers, …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/book-of-panda-megaways-tm)
|
||||||
|
|
||||||
|
### Adventures
|
||||||
|
|
||||||
|
This anime RPG slot showcases Bonanza mechanics with a cycle system. Every 10 spins, winning combinations reduce a monster’s HP. Once it’s down to zero, one of 3 Bonus games is triggered. Using Buy Bo…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/adventures)
|
||||||
|
|
||||||
|
### 3 Kings Scratch
|
||||||
|
|
||||||
|
3 Kings Scratch consists of Green, Purple, and Red games, each with different bet values and playing layouts that players can switch in-game. At the start, one identical field for all titles gives pla…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/3-kings-scratch)
|
||||||
|
|
||||||
|
### Alchemist Bonanza
|
||||||
|
|
||||||
|
In this slot you will see an old man alchemist and hear the sound of turning pages of his book of secret recipes.
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/alchemist-bonanza)
|
||||||
|
|
||||||
|
### Alice WonderLuck
|
||||||
|
|
||||||
|
Start your extraordinary adventure full of wonders and magical surprises, allowing every spin to be an amazing discovery! Modern art with surreal elements, a reinterpretation of world-beloved characte…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/alice-wonderluck)
|
||||||
|
|
||||||
|
### Infinity Pull
|
||||||
|
|
||||||
|
Welcome to the endless card hunt, where there’s always another waifu to unlock and add to your collection! Choose your companion in this gacha-style adventure and create your own way to play with a va…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/infinity-pull)
|
||||||
|
|
||||||
|
### Dragon's Crash
|
||||||
|
|
||||||
|
In this casual crash game, players place a bet and observe the win multiplier increase as coins fall from above near the sleeping dragon. They can cash out at any point, but the round concludes if thi…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/dragons-crash)
|
||||||
|
|
||||||
|
## CASUAL GAMES BY BGAMING
|
||||||
|
|
||||||
|
Casual games are simple, easy-to-play online games with no special skills required, designed for a wide audience. Like video poker and other table games, they offer quick, big wins, making them highly engaging and appealing.
|
||||||
|
|
||||||
|
[All Casual games](https://bgaming.com/games?types=casual)
|
||||||
|
|
||||||
|
### Penalty Duel
|
||||||
|
|
||||||
|
Hot sand, scorching sun, and samba tunes make up memories of a summer you won’t forget! Become a kicker or goalkeeper in this beach football game, switching to the golden ball or golden gloves for a c…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/penalty-duel)
|
||||||
|
|
||||||
|
### Aviamasters™
|
||||||
|
|
||||||
|
Master the mission in BGaming’s viral banger! Set the bet and pace for your aircraft, and watch it soar through the sky, encountering random multipliers and rockets on its way. The gameplay will keep …
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/aviamasters)
|
||||||
|
|
||||||
|
### Golden Pinata Hold and Win
|
||||||
|
|
||||||
|
Every day is a cause for celebration, and this fun-tastic slot is a great way to live it up! Break the colorful pinata with your tool of choice, treating yourself to smashing wins and opportunities to…
|
||||||
|
|
||||||
|
[Learn More](https://bgaming.com/games/golden-pinata-hold-and-win)
|
||||||
|
|
||||||
|
## BRANDED GAMES
|
||||||
|
|
||||||
|
We’ve taken game customization to the next level by partnering with both clients and celebrities to create unique gaming experiences. This new direction lets us blend personalized games with the excitement of celebrity involvement, making them more engaging for a wide range of players.
|
||||||
|
|
||||||
|
A great example is our collaboration with Roobet and Snoop Dogg on our first celebrity-branded slot, Snoop Dogg Dollars. With Snoop Dogg as the main game character and narrator and powered by Strmlytics AI, we created a slot that not only uses advanced gameplay features but also incorporates Snoop’s style. This shows how we can combine top technology with star power to create something truly special.
|
||||||
|
|
||||||
|
## Collaboration with local game studios
|
||||||
|
|
||||||
|
BGaming works with local game studios worldwide, including in Asia, to create games enriched by regional expertise and player insights. Such partnerships allow for a deeper understanding of player preferences and behavior in each market. Notable collaborations include Keepers Of The Secret and Grand Patron with 7Rings, Robospin with NowNow, and Lucky 8 Merge Up™ and Fishing Club with Creme.team. And we’re just getting started, let’s create something amazing together!
|
||||||
|
|
||||||
|
Contact us
|
||||||
|
|
||||||
|
## GAME CUSTOMIZATION
|
||||||
|
|
||||||
|
At BGaming, we know that every player is unique, and so should their gaming experience! That’s why we offer customizable games that can be tailored just for your online casino platform and your audience. Whether you’re looking to make small adjustments or want a completely exclusive game, our customization options allow you to connect with your players in a personal way.
|
||||||
|
|
||||||
|
Here’s what we can customize:
|
||||||
|
|
||||||
|
– Logos– In-game symbols– Start page– Visual layouts– Big win pop-ups– RTP– Game name– Game design with unique features
|
||||||
|
|
||||||
|
## LET’S CONNECT!
|
||||||
|
|
||||||
|
Would you like to start fruitful cooperation? Fill out the form below, and we will contact you shortly with an exclusive offer!
|
||||||
|
|
||||||
|
Stable Games Ltd, having its registered address at 206, Wisely house, Old Bakery Street, Valletta VLT 1451, Malta, is licensed and regulated by the Malta Gaming Authority to supply Type1 gaming services under a B2B Critical Gaming Supply Licence (Licence Number: MGA/B2B/785/2020, issued on 18th March 2021).© 2026 All Rights Reserved. BGaming is a registered trademark.
|
||||||
|
|
||||||
|
You can read the [Privacy Policy](https://bgaming.com/privacy-policy)
|
||||||
|
|
||||||
|
## LET’S CONNECT!
|
||||||
|
|
||||||
|
Would you like to start fruitful cooperation? Fill out the form below, and we will contact you shortly with an exclusive offer!
|
||||||
|
|
||||||
|
[info@bgaming.com](mailto:info@bgaming.com?subject=General%20questions)
|
||||||
|
|
||||||
|
Stable Games Ltd, having its registered address at 206, Wisely house, Old Bakery Street, Valletta VLT 1451, Malta, is licensed and regulated by the Malta Gaming Authority to supply Type1 gaming services under a B2B Critical Gaming Supply Licence (Licence Number: MGA/B2B/785/2020, issued on 18th March 2021).
|
||||||
|
|
||||||
|
© 2025 All Rights Reserved. BGaming is a registered trademark.You can read the [Privacy Policy](https://bgaming.com/privacy-policy)
|
||||||
|
|
||||||
|
You are leaving bgaming.com.
|
||||||
|
|
||||||
|
Please note that the content of a website may be 18+. We are not responsible for the website you are going to visit. By clicking on the link, you agree to these conditions.
|
||||||
|
|
||||||
|
Stay here
|
||||||
|
|
||||||
|
Continue
|
||||||
@@ -0,0 +1,252 @@
|
|||||||
|
CP Games Demo Slots | Play CP Games Slots Free
|
||||||
|
|
||||||
|
CP Games is an iGaming software provider with a strong focus on the Asian and LatAm markets. The company states that it “doesn’t just create slot games; they craft unforgettable gaming experiences.” The studio also boasts having 57,000 daily players, 2.1 billion game downloads, and over 60 games launched, so with such attention-grabbing stats, the online casino game provider has piqued our interest and made us want to know more.
|
||||||
|
|
||||||
|
We always like to keep our users and members informed on the software houses we feature here at Demoslot, and in our CP Games review, we’ll explore more about this developer, learn about their slots and the in-game mechanics they use, and provide you with a catalogue of CP Games [demo slots](https://www.demoslot.com/) to try so that you can experience everything the studio has to offer.
|
||||||
|
|
||||||
|
## Best Casinos for CP Games Slots
|
||||||
|
|
||||||
|
## CP Games Demo Slots
|
||||||
|
|
||||||
|
[Demo & ReviewMagic Scroll 2CP.Games](https://www.demoslot.com/free-slots/magic-scroll-2-slot-review/)
|
||||||
|
|
||||||
|
[Demo & ReviewWerewolfCP.Games](https://www.demoslot.com/free-slots/werewolf-slot-review/)
|
||||||
|
|
||||||
|
[Demo & ReviewSaciCP.Games](https://www.demoslot.com/free-slots/saci-cp-games/)
|
||||||
|
|
||||||
|
[Demo & ReviewCrazy HalloweenCP.Games](https://www.demoslot.com/free-slots/crazy-halloween-cp-games/)
|
||||||
|
|
||||||
|
[Demo & ReviewMagic ScrollCP.Games](https://www.demoslot.com/free-slots/magic-scroll-cp-games/)
|
||||||
|
|
||||||
|
[Demo & ReviewFortune PandaCP.Games](https://www.demoslot.com/free-slots/fortune-panda-cp-games/)
|
||||||
|
|
||||||
|
[Demo & ReviewLucky WheelCP.Games](https://www.demoslot.com/free-slots/lucky-wheel-cp-games/)
|
||||||
|
|
||||||
|
[Demo & ReviewLucky CatCP.Games](https://www.demoslot.com/free-slots/lucky-cat-cp-games/)
|
||||||
|
|
||||||
|
## History & Company Background
|
||||||
|
|
||||||
|
Unfortunately, very little is known about CP Games. There doesn’t appear to be any mention of them on other casino/slot review websites, and their own website is limited with regard to information and only lists news items as recently as 2024. They don’t display any business information aside from an email address and Telegram channel. We will update this section as soon as more details become available.
|
||||||
|
|
||||||
|
## Key Milestones, Timeline & Awards
|
||||||
|
|
||||||
|
Given the lack of public information available about CP.Games, it’s virtually impossible for us to put together a detailed timeline of their history: we simply don’t have enough information. However, we were able to gather a few milestones from the “News” and “Events” pages on their website.
|
||||||
|
|
||||||
|
March 2025 – CP Games launches its portfolio in South Africa.
|
||||||
|
|
||||||
|
April 2025 – CP Games won Best Slot Game Provider at SiGMA Americas.
|
||||||
|
|
||||||
|
April 2025 – CP Games demo slots are added and ready to play on the demoslot.com platform.
|
||||||
|
|
||||||
|
## Highest RTP CP Games Slots
|
||||||
|
|
||||||
|
One of the last things players tend to think about when choosing a [new slot](https://www.demoslot.com/slot-types/new-online-slots/) to try is the return to player percentage attached to the game. Better known within iGaming as RTP, this refers to the rate you can expect to receive back over a sustained period of play. It’s important to tell you this value is calculated over millions and billions of spins, and whilst it might not seem something you should worry about when playing only a small session, it can still make a big difference if you are gambling on a slot with a lower return.
|
||||||
|
|
||||||
|
We’ve made it easy for you to seek out the CP Games slots with the best RTPs by listing them in a helpful table below. This is updated through our in-house data systems each time we add a new game from the provider, if it has a high enough return to make it into one of the top 10 positions. This ensures you always have accurate information you can rely on when visiting our dedicated page to the studio.
|
||||||
|
|
||||||
|
| Slot Name | RTP |
|
||||||
|
| --- | --- |
|
||||||
|
| 1. [Lucky Cat](https://www.demoslot.com/free-slots/lucky-cat-cp-games/) | 96.51% |
|
||||||
|
| 2. [Fortune Panda](https://www.demoslot.com/free-slots/fortune-panda-cp-games/) | 96.40% |
|
||||||
|
| 3. [Lucky Wheel](https://www.demoslot.com/free-slots/lucky-wheel-cp-games/) | 96.32% |
|
||||||
|
| 4. [Werewolf](https://www.demoslot.com/free-slots/werewolf-slot-review/) | 96.30% |
|
||||||
|
| 5. [Saci](https://www.demoslot.com/free-slots/saci-cp-games/) | 96.30% |
|
||||||
|
| 6. [Crazy Halloween](https://www.demoslot.com/free-slots/crazy-halloween-cp-games/) | 96.30% |
|
||||||
|
| 7. [Magic Scroll 2](https://www.demoslot.com/free-slots/magic-scroll-2-slot-review/) | 96.04% |
|
||||||
|
| 8. [Magic Scroll](https://www.demoslot.com/free-slots/magic-scroll-cp-games/) | 95.40% |
|
||||||
|
|
||||||
|
## CP Games Product Portfolio
|
||||||
|
|
||||||
|
Almost all CP Games releases are slots. They have produced a few “mini games”, but it’s unclear whether these are available to play at online casinos or not. Below, we will explore five of their most notable slot releases.
|
||||||
|
|
||||||
|
### Online Slot Games
|
||||||
|
|
||||||
|
#### Halloween Meow Review
|
||||||
|
|
||||||
|
Halloween Meow is a high-volatility slot that takes you into a spooky, mysterious world where fortune and magic are seen in pretty much all parts of the game! The slot itself is set against the backdrop of an ancient castle, and the gameplay also revolves quite heavily around a black cat!
|
||||||
|
|
||||||
|
There are a few bonuses and features to be found inside Halloween Meow, and the main one is the wild symbol mechanic. On any spin, the black cat can summon three wild symbols to appear on the centre reel. This activates the Gate of Fortune, which triggers re-spins on the first and third reels.
|
||||||
|
|
||||||
|
It’s a nice-looking game, but we do feel the maximum win potential of 1,000x is a little on the low side. However, there is an above-average RTP of 96.93%, and the graphics are solid, so it’s not a bad game: we just don’t “get” the high volatility math model coupled with a max win of 1,000x!
|
||||||
|
|
||||||
|
#### Freedom Day Review
|
||||||
|
|
||||||
|
Freedom Day is a [high-volatility slot](https://www.demoslot.com/slot-types/high-volatility-slots/) that sends you into a vibrant celebration of music, dance, and freedom. It’s unclear exactly what freedom day the slot’s based on, but it seems to combine elements of Brazil’s carnivals with America’s 4th of July. A little odd, but it looks good. It’s designed around a 5-6-6-6-6-5 layout and boasts an above-average RTP of 96.89% and a maximum win potential of 6,019x.
|
||||||
|
|
||||||
|
During the base game, you’ll collect flag symbols anytime they land on the reels. Collecting enough of these symbols then unlocks a carnival ticket, which, in turn, triggers the game’s free spins bonus! There’s also a bonus buy mechanic, allowing you to buy directly into the free spins round.
|
||||||
|
|
||||||
|
#### Fortune Panda Review
|
||||||
|
|
||||||
|
Fortune Panda is one of the provider’s “hottest” games, according to their website stats, and it’s based, unsurprisingly, on the famous Chinese panda! Behind the reels, you’ll see a mythical city called Auspiciousness, and it’s designed with just three reels and three rows.
|
||||||
|
|
||||||
|
The slot’s main feature is the Lucky Panda’s awakening power. When activated, the reels glow, and a series of respins are then triggered, with multipliers applied to any wins you manage to form during the respins.
|
||||||
|
|
||||||
|
It’s a medium variance game with a maximum win potential of 2,500x, and it also offers a slightly above-average RTP of 96.40%, so those players who know this genre of slot well might be eager to take Fortune Panda for a spin or two.
|
||||||
|
|
||||||
|
#### Samba Sensation Review
|
||||||
|
|
||||||
|
Samba Sensation brings the vibrant energy of Brazilian carnival to life, and it’s designed around a five-reel, three-row layout. Compared to most of the provider’s other games, the RTP is a tad on the low side at 95.77%, and the maximum win potential is also capped at 1,500x.
|
||||||
|
|
||||||
|
This is a progression-based slot, and landing coin symbols on the reels will see them added to a coin tray meter. Once this meter is filled, golden prizes are dropped onto the reels, and any that land, you win!
|
||||||
|
|
||||||
|
There are also treasure scatter symbols on the reels, which are again collected. Once you collect enough, the free spins bonus round is triggered, and you’ll receive eight free games. During these spins, the middle reel transforms into one giant symbol, making it easier to match winning combos and hit big wins!
|
||||||
|
|
||||||
|
#### Sunshine Coast Review
|
||||||
|
|
||||||
|
Sunshine Coast takes you to a tropical paradise, where you can see a cityscape, beach, and mountain region in the backdrop. The game is designed around a three-reel layout, with seven paying symbols: sunglasses, icecreams, and coconuts make up the low value symbols, while a bikini, beachball, and parrot wild make up the high value symbols.
|
||||||
|
|
||||||
|
There are ten fixed paylines in play at all times, and the RTP is 96.72%, again, above the industry average and good to see! There are two features, and the first is the Prize Symbol mechanic. On any spin, one or more prize symbols can land, displaying between 0.5x and 500x. If five or more land on the same spin, you win the values of all prizes visible on the screen.
|
||||||
|
|
||||||
|
The main bonus round is the Sunshine Coast Feature, and it’s triggered randomly. When it’s activated, eight Lucky Spins are awarded, and on these spins, only Prize Symbols can land on the reels.
|
||||||
|
|
||||||
|
### Jackpot Slots
|
||||||
|
|
||||||
|
It doesn’t look like the game developer has produced any progressive jackpot games, and given their (seemingly) small size, we feel it’s unlikely that this will change any time soon. This isn’t particularly surprising, as there are only a handful of studios that operate big progressive jackpots, and these are long-established players in the iGaming sector.
|
||||||
|
|
||||||
|
### Table Games, Bingo, and Other Casino Games
|
||||||
|
|
||||||
|
In addition to their video slot games, CP.Games have also released around 15 mini-games. These are essentially instant-win titles, although there are a couple of casino-like titles like Keno, Mine, and Plinko.
|
||||||
|
|
||||||
|
## CP Game Slots With The Biggest Payouts
|
||||||
|
|
||||||
|
| Slot Name | Max Win |
|
||||||
|
| --- | --- |
|
||||||
|
| 1. [Magic Scroll 2](https://www.demoslot.com/free-slots/magic-scroll-2-slot-review/) | 65,000x bet |
|
||||||
|
| 2. [Lucky Wheel](https://www.demoslot.com/free-slots/lucky-wheel-cp-games/) | 10,000x bet |
|
||||||
|
| 3. [Magic Scroll](https://www.demoslot.com/free-slots/magic-scroll-cp-games/) | 5,000x bet |
|
||||||
|
| 4. [Saci](https://www.demoslot.com/free-slots/saci-cp-games/) | 4,000x bet |
|
||||||
|
| 5. [Crazy Halloween](https://www.demoslot.com/free-slots/crazy-halloween-cp-games/) | 4,000x bet |
|
||||||
|
| 6. [Fortune Panda](https://www.demoslot.com/free-slots/fortune-panda-cp-games/) | 2,500x bet |
|
||||||
|
| 7. [Werewolf](https://www.demoslot.com/free-slots/werewolf-slot-review/) | 1,500x bet |
|
||||||
|
| 8. [Lucky Cat](https://www.demoslot.com/free-slots/lucky-cat-cp-games/) | 400x bet |
|
||||||
|
|
||||||
|
## Game Mechanics, How They Work, and Unique Features
|
||||||
|
|
||||||
|
In this section, we will look at the in-game mechanics and features you can expect to encounter when playing slots within the CP.Games catalogue.
|
||||||
|
|
||||||
|
### Paylines
|
||||||
|
|
||||||
|
Paylines are the foundation of most classic and modern slot games and they are the most common way of forming wins. Paylines are preset patterns that run across the reels horizontally, diagonally, or sometimes even in a zigzag manner, and these paylines determine which positions you need to land specific symbols on, typically starting from the leftmost reel first. Most games have a minimum of ten paylines today, although some have as few as one, and in some games, you can adjust the number of active paylines, too.
|
||||||
|
|
||||||
|
Popular Payline Slots From CP Games:
|
||||||
|
|
||||||
|
- Samba Sensation
|
||||||
|
- Freedom Day
|
||||||
|
- Sunshine Coast
|
||||||
|
- Halloween Meow
|
||||||
|
- Fortune Panda
|
||||||
|
|
||||||
|
### Ways to Win
|
||||||
|
|
||||||
|
Although not used in too many CP Games slots to date, the ways to win engine is a popular mechanic and a good alternative to standard paylines. In a ways to win slot, you can land matching symbols on consecutive reels in any position for a win to be awarded. There are often many formats these slots can take, with 243 ways, 3,125 ways and 4,096 ways to win being the most used in the industry. However, in the case of CP Games, they have utilised a far greater playfield in some of their releases, which is likened to those you’ll find in Megaways slots.
|
||||||
|
|
||||||
|
Popular Ways to Win Slots From CP Games:
|
||||||
|
|
||||||
|
- Freedom Day
|
||||||
|
- EDM Mania
|
||||||
|
|
||||||
|
### Bonus Buy
|
||||||
|
|
||||||
|
Giving players immediate access to the bonus feature on a game is now commonplace in most online slots you’ll play. This is an option that CP Games have used in several of their titles. In the slots where you have the ability to use the [bonus buy](https://www.demoslot.com/slot-types/bonus-buy-slots/), you can trigger instant access to the main feature of the game, generally for a cost of around 100x the current bet.
|
||||||
|
|
||||||
|
## Unique Features from CP.Games
|
||||||
|
|
||||||
|
#### CP Games Tournaments
|
||||||
|
|
||||||
|
CP.Games has built tournament functionality into its slots, and this is actually pretty impressive for a relatively small game developer. While they don’t offer much public information on these tournaments, we were able to find a news story from an old tournament they ran, which gave us a clear idea of what it entailed.
|
||||||
|
|
||||||
|
In February and March 2025, CP Games ran a tournament open to Brazilian players at six online casinos. Every 1 BRL that was wagered on a CP Games slot equated to one claimed tournament point, and a live leaderboard displayed the real-time progress of all players. The top 250 points scorers would then be eligible to win a prize, although it wasn’t clear what the monetary value of said prizes was.
|
||||||
|
|
||||||
|
#### Social Games
|
||||||
|
|
||||||
|
Fans of CP Games can create a player account on the official website, where they will start their journey with 1,000 coins. By playing the slots, more coins can be won or lost, and each player is positioned on a leaderboard. This allows the team at CP Games to run in-game promotions and reward players through competitions.
|
||||||
|
|
||||||
|
## Best CP Games Slots Ranked By Demoslot Rating
|
||||||
|
|
||||||
|
[7.0/10Demo & Review](https://www.demoslot.com/free-slots/lucky-wheel-cp-games/)
|
||||||
|
|
||||||
|
Our Conclusion:
|
||||||
|
|
||||||
|
Following the success of Jili Games and their Money Coming and Money Coming 2 slots, we've seen a number of providers create their own games in this style, looking to get in on the popularity and further boost their own credentials and brand. This has created a competitive space in the one-row slot game niche and CP. Games Lucky Wheel is one of the better versions we've seen released of late.
|
||||||
|
|
||||||
|
In fairness, if you've played any of the slots in this genre, you'll know that they are very similar, but with a max win of 10,000x, Lucky Wheel does give you something extra to aim for makes itself more appealing if you're looking to move away from the titles developed by Jili.
|
||||||
|
|
||||||
|
As always, I recommend trying the game yourself extensively through our free demo slot. That way, you can decide if it's worth playing for real money and compare it against the current release you are spinning on in this slot niche.
|
||||||
|
|
||||||
|
[7.0/10Demo & Review](https://www.demoslot.com/free-slots/saci-cp-games/)
|
||||||
|
|
||||||
|
Our Conclusion:
|
||||||
|
|
||||||
|
CP.Games continues its assault on the Brazilian market with the release of Saca, a game themed on Brazilian folklore, which is sure to resonate with those in the LatAm region who are in touch with their culture and heritage. However, that's not the only appealing aspect of the slot, as it comes with bags of features from cascading reels to split symbols and random multipliers that are applied to symbols within the playfield during the free spins feature.
|
||||||
|
|
||||||
|
On the downside, the RTP is ever so slightly below the industry average at 96.30%, and it would have perhaps been great to see the max win pushed to at least 5,000x, especially as the playfield can be expanded up to 7,776 ways, giving more chances to win and hit those big multipliers.
|
||||||
|
|
||||||
|
Overall, though, Saci is a nice addition to the CP.Games portfolio, and I have a feeling this could go on to be one of the studio's best releases, especially in Brazil, where their main focus is for this release.
|
||||||
|
|
||||||
|
[7.0/10Demo & Review](https://www.demoslot.com/free-slots/magic-scroll-cp-games/)
|
||||||
|
|
||||||
|
Our Conclusion:
|
||||||
|
|
||||||
|
Magic Scroll is another 3-reel slot to come out of the CP.Games studio that awards a random bonus round during any spin in the base game. This time, rather than it being a multiplier if you hit a full screen of symbols as seen in Lucky Cat and Fortune Panda, players are instead awarded 8 free spins where only blank and cash symbols appear on the reels. Each time five or more symbols land in view, their amounts are tallied up and added to your bankroll.
|
||||||
|
|
||||||
|
This format has been a winning formula so far for CP.Games, and Magic Scroll is a release that's sure to please their fanbase. However, punters will likely have to play the game for an extended period of time to get the random bonus trigger, as from our experience with these types of games, they rarely trigger early on into a session.
|
||||||
|
|
||||||
|
[7.0/10Demo & Review](https://www.demoslot.com/free-slots/fortune-panda-cp-games/)
|
||||||
|
|
||||||
|
Our Conclusion:
|
||||||
|
|
||||||
|
Since the release of Fortune Tiger from PG Soft, we have seen a number of studios replicate this game with varied levels of success. CP.Games is one studio that has done particularly well with its titles in this genre, and along with today's game, Fortune Panda, the provider has also gained itself a fanbase with Lucky Cat, another release with near identical mechanics. Fortune Panda, however, comes with a bigger jackpot than Lucky Cat, with the max win ramped up to 2,500x, and a Hold & Win style feature that can also randomly trigger during any spin, which gives you a shot at getting your win multiplied by 10x.
|
||||||
|
|
||||||
|
In summary, although Fortune Panda adds to an already crowded market in this slot niche, it's a good addition to the genre and seems to have resonated more with players than other releases from competitor studios. Give the free demo slot a try here on our platform and see what you make of it.
|
||||||
|
|
||||||
|
[7.0/10Demo & Review](https://www.demoslot.com/free-slots/lucky-cat-cp-games/)
|
||||||
|
|
||||||
|
Our Conclusion:
|
||||||
|
|
||||||
|
Three-reel games with an Asian theme have long been popular releases in the East, and now, more recently in the LatAm regions, so it's not surprising to see more providers opting to create this style of slot and capitalise on the trend. The latest title we've encountered is Lucky Cat from CP.Games, a delightful-looking slot with mechanics we know from previous studios' efforts like Fortune Tiger from PG Soft, where a full screen of matching symbols will ultimately activate a win multiplier, which in the case of Lucky Cat is x5.
|
||||||
|
|
||||||
|
Some players may be a little disappointed to see a max win cap of just 400x, but after extensive play, Lucky Cat does seem to give a lot of full-screen payouts, something that's not always the case in similar games created by competitor providers, so from our view, the lower max win is offset by far more frequent wins and multipliers.
|
||||||
|
|
||||||
|
So, will this be a new 3-reel slot you add to your playlist? As always, we're giving you unlimited credits to find out courtesy of our free demo slot, so give it a try and let us know what you think.
|
||||||
|
|
||||||
|
## Commitment to Player Safety & Fairness
|
||||||
|
|
||||||
|
### Licensing & Regulation
|
||||||
|
|
||||||
|
CP Games doesn’t list any licensing information on their website, and it could be the case that the studio releases their games through an aggregator platform instead.
|
||||||
|
|
||||||
|
## Fair Play & Security
|
||||||
|
|
||||||
|
Unfortunately, CP Games don’t offer any information about fair play and security and don’t list any testing houses where their games are certified.
|
||||||
|
|
||||||
|
## Partnerships & Collaborations
|
||||||
|
|
||||||
|
Usually, smaller game developers like CP Games try to form partnerships with game aggregators like SOFTSWISS. Without doing so, studios need to push their game out manually, which makes it much harder to get into as many online casinos as possible.
|
||||||
|
|
||||||
|
We were unable to find any evidence that CP.Games has partnered with any game aggregators, meaning they likely push out all of their titles directly to online gambling operators. Our confidence in this being the case is increased by the fact that they have a dedicated page on their website called “API” that tells operators how to begin offering their slots and mini-games. They also reveal in one of their news posts that they work with five operators: Brabet, Onebra, Winmi, BGGbet, and Goinbet.
|
||||||
|
|
||||||
|
## Corporate Social Responsibility
|
||||||
|
|
||||||
|
CP Games doesn’t have anything related to corporate social responsibility (CSR) initiatives on its website. This isn’t surprising, as only the larger software houses tend to run such initiatives.
|
||||||
|
|
||||||
|
## CP Games Transparency Checklist
|
||||||
|
|
||||||
|
| Licenses Held/Used Displayed On Their Website | ❌ |
|
||||||
|
| --- | --- |
|
||||||
|
| Licences Are Clickable To View | ❌ |
|
||||||
|
| RNG Testing Displayed On Their Website | ❌ |
|
||||||
|
| Testing Logos Are Clickable To View | ❌ |
|
||||||
|
| Open Dialogue With Demoslot | ✅ |
|
||||||
|
| Contact Details Available On Their Website | ✅ |
|
||||||
|
| Responsible Gambling Links On Their Website | ❌ |
|
||||||
|
| Active On Social Media | ✅ |
|
||||||
|
| Last Audit | 30/04/2025 |
|
||||||
|
| Total Score | 3 Out Of 8 |
|
||||||
|
|
||||||
|
## Final Summary
|
||||||
|
|
||||||
|
CP Games has produced some promising-looking slots; there’s no denying that. We like that they’ve been able to push out titles with great graphics, which are better than some of the ones we see released from mainstream providers. That’s for sure!
|
||||||
|
|
||||||
|
It’s still early days for the studio, however, and we’re interested to see how they develop over the coming years and whether they look to break into more of the global markets.
|
||||||
|
|
||||||
|
As for now, we recommend that you sit back, relax, and check out the free slots on our site from CP.Games, and you never know, you might find yourself a few new favourites to play.
|
||||||
@@ -0,0 +1,586 @@
|
|||||||
|
Most Recommended Online Casinos with games by R88 - Software | OnlineCasinoReports.com
|
||||||
|
|
||||||
|
Casinos
|
||||||
|
|
||||||
|
Discover
|
||||||
|
|
||||||
|
- [Casinos by License](https://www.onlinecasinoreports.com/licenses)
|
||||||
|
- [Casinos by Currency](https://www.onlinecasinoreports.com/currencies)
|
||||||
|
- [Casinos by Language](https://www.onlinecasinoreports.com/languages)
|
||||||
|
- [Sweepstakes Casinos](https://www.onlinecasinoreports.com/sweepstakes-casinos.php)
|
||||||
|
- [Casino TV Games](https://www.onlinecasinoreports.com/tv-games.php)
|
||||||
|
- [Top VR Casinos](https://www.onlinecasinoreports.com/virtual-reality-casinos.php)
|
||||||
|
- [Online Casino Tournaments](https://www.onlinecasinoreports.com/online-casino-tournaments.php)
|
||||||
|
- [Live Casinos](https://www.onlinecasinoreports.com/live-dealer-casinos.php)
|
||||||
|
- [Highest Payouts Casinos](https://www.onlinecasinoreports.com/highest-payout-casinos.php)
|
||||||
|
- [Fast Payouts Casinos](https://www.onlinecasinoreports.com/fastest-payout-online-casinos.php)
|
||||||
|
- [Bitcoin Casinos](https://www.onlinecasinoreports.com/bitcoin-casinos.php)
|
||||||
|
- [Crypto Casinos](https://www.onlinecasinoreports.com/crypto-casinos.php)
|
||||||
|
- [Safest Online Casinos](https://www.onlinecasinoreports.com/safe-secured-casinos.php)
|
||||||
|
- [Trending Casinos](https://www.onlinecasinoreports.com/trending-online-casinos.php)
|
||||||
|
- [New Online Casinos](https://www.onlinecasinoreports.com/latest-online-casinos.php)
|
||||||
|
- [OCR Approved Casinos](https://www.onlinecasinoreports.com/approved-online-casinos.php)
|
||||||
|
- [Real Money Casinos](https://www.onlinecasinoreports.com/real-money-casinos.php)
|
||||||
|
- [Top Online Casinos](https://www.onlinecasinoreports.com/top-online-casinos.php)
|
||||||
|
|
||||||
|
[Online Casino Reviews](https://www.onlinecasinoreports.com/onlinecasinos)
|
||||||
|
|
||||||
|
By compatibility
|
||||||
|
|
||||||
|
- [PWA Casinos](https://www.onlinecasinoreports.com/pwa-casinos.php)
|
||||||
|
- [iPhone Casinos](https://www.onlinecasinoreports.com/iphone-casinos.php)
|
||||||
|
- [iPad Casinos](https://www.onlinecasinoreports.com/ipad-casinos.php)
|
||||||
|
- [macOS Casinos](https://www.onlinecasinoreports.com/macos-casinos.php)
|
||||||
|
- [Android Casinos](https://www.onlinecasinoreports.com/android-casinos.php)
|
||||||
|
- [Casino Apps](https://www.onlinecasinoreports.com/casino-apps.php)
|
||||||
|
- [Mobile Casinos](https://www.onlinecasinoreports.com/mobile-casinos.php)
|
||||||
|
|
||||||
|
By payment
|
||||||
|
|
||||||
|
- [ecoPayz](https://www.onlinecasinoreports.com/payments/ecopayz.php)
|
||||||
|
- [AstroPay](https://www.onlinecasinoreports.com/payments/astropay.php)
|
||||||
|
- [Skrill](https://www.onlinecasinoreports.com/payments/skrill.php)
|
||||||
|
- [NETELLER](https://www.onlinecasinoreports.com/payments/neteller.php)
|
||||||
|
- [MasterCard](https://www.onlinecasinoreports.com/payments/mastercard.php)
|
||||||
|
- [Visa](https://www.onlinecasinoreports.com/payments/visa.php)
|
||||||
|
|
||||||
|
[Browse more](https://www.onlinecasinoreports.com/payments)
|
||||||
|
|
||||||
|
By software
|
||||||
|
|
||||||
|
- [Evoplay](https://www.onlinecasinoreports.com/software/evoplay.php)
|
||||||
|
- [BGAMING](https://www.onlinecasinoreports.com/software/bgaming.php)
|
||||||
|
- [Mancala Gaming](https://www.onlinecasinoreports.com/software/mancala-gaming.php)
|
||||||
|
- [Popiplay](https://www.onlinecasinoreports.com/software/popiplay.php)
|
||||||
|
- [Pragmatic Play](https://www.onlinecasinoreports.com/software/pragmaticplay.php)
|
||||||
|
- [Evolution Gaming](https://www.onlinecasinoreports.com/software/evolution-gaming.php)
|
||||||
|
|
||||||
|
[Browse more](https://www.onlinecasinoreports.com/software)
|
||||||
|
|
||||||
|
By game
|
||||||
|
|
||||||
|
- [Poker](https://www.onlinecasinoreports.com/onlinecasinos?games=17)
|
||||||
|
- [Craps](https://www.onlinecasinoreports.com/onlinecasinos?games=54)
|
||||||
|
- [Baccarat](https://www.onlinecasinoreports.com/onlinecasinos?games=20)
|
||||||
|
- [Roulette](https://www.onlinecasinoreports.com/onlinecasinos?games=65)
|
||||||
|
- [Slots](https://www.onlinecasinoreports.com/onlinecasinos?games=67)
|
||||||
|
- [Blackjack](https://www.onlinecasinoreports.com/onlinecasinos?games=24)
|
||||||
|
|
||||||
|
Bonuses
|
||||||
|
|
||||||
|
Discover
|
||||||
|
|
||||||
|
- [Bingo Bonuses](https://www.onlinecasinoreports.com/bonuses/online-bingo-bonus.php)
|
||||||
|
- [Poker Bonuses](https://www.onlinecasinoreports.com/bonuses/online-poker-bonus.php)
|
||||||
|
- [Sportsbook Bonuses](https://www.onlinecasinoreports.com/bonuses/sportsbook-bonus.php)
|
||||||
|
- [Cashback Bonuses](https://www.onlinecasinoreports.com/bonuses/cashback-bonuses.php)
|
||||||
|
- [Casino Reload Bonuses](https://www.onlinecasinoreports.com/bonuses/reload-bonus.php)
|
||||||
|
- [Free Spin Bonuses](https://www.onlinecasinoreports.com/bonuses/free-spins-bonus.php)
|
||||||
|
- [No Deposit Casino Bonuses](https://www.onlinecasinoreports.com/bonuses/no-deposit-bonuses.php)
|
||||||
|
- [High Roller Bonuses](https://www.onlinecasinoreports.com/bonuses/high-roller-bonuses.php)
|
||||||
|
- [Welcome Bonuses](https://www.onlinecasinoreports.com/bonuses/casino-welcome-bonus.php)
|
||||||
|
- [Casino Welcome Packages](https://www.onlinecasinoreports.com/bonuses/casino-bonus-package.php)
|
||||||
|
|
||||||
|
[Bonuses and Promotions](https://www.onlinecasinoreports.com/bonuses)
|
||||||
|
|
||||||
|
By specs
|
||||||
|
|
||||||
|
- [No Wagering Bonuses](https://www.onlinecasinoreports.com/bonuses/no-wagering-bonuses.php)
|
||||||
|
- [Free Play Bonuses](https://www.onlinecasinoreports.com/bonuses/free-play-bonus.php)
|
||||||
|
- [Find Casino Bonus Codes](https://www.onlinecasinoreports.com/bonuses/bonus-codes.php)
|
||||||
|
- [Exclusive Casino Bonuses](https://www.onlinecasinoreports.com/bonuses/exclusive-casino-bonus.php)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Recent promotions
|
||||||
|
|
||||||
|
[Best Online and Crypto Casino Bonuses for 2026 BC.GAME Casino + 4 more](https://www.onlinecasinoreports.com/articles/best-online-and-crypto-casino-bonuses-for-2026.php)
|
||||||
|
|
||||||
|
[12 Slots of Christmas: Winners All the Way! PlayOJO Casino + 11 more](https://www.onlinecasinoreports.com/articles/12-slots-of-christmas-winners-all-the-way.php)
|
||||||
|
|
||||||
|
[The Hottest Football Prediction Markets This Festive Season bet365 Sports + 5 more](https://www.onlinecasinoreports.com/articles/the-hottest-football-prediction-markets-this-festive-season.php)
|
||||||
|
|
||||||
|
[Browse more](https://www.onlinecasinoreports.com/articles?category=19327)
|
||||||
|
|
||||||
|
Gambling
|
||||||
|
|
||||||
|
Discover
|
||||||
|
|
||||||
|
- [Lottery Sites Reviews](https://www.onlinecasinoreports.com/lotteries)
|
||||||
|
- [Causal Casino Games](https://www.onlinecasinoreports.com/skillgames)
|
||||||
|
- [Esports Betting Reviews](https://www.onlinecasinoreports.com/esports)
|
||||||
|
- [Online Sportsbook Reviews](https://www.onlinecasinoreports.com/sportsbetting)
|
||||||
|
- [Online Bingo Sites](https://www.onlinecasinoreports.com/onlinebingo)
|
||||||
|
- [Online Poker Reviews](https://www.onlinecasinoreports.com/onlinepoker)
|
||||||
|
- [Online Casino Reviews](https://www.onlinecasinoreports.com/onlinecasinos)
|
||||||
|
|
||||||
|
Online Casinos
|
||||||
|
|
||||||
|
- [JB Casino](https://www.onlinecasinoreports.com/onlinecasinos/jb-casino.php)
|
||||||
|
- [Wageon Casino](https://www.onlinecasinoreports.com/onlinecasinos/wageon-casino.php)
|
||||||
|
- [PlayOJO Casino](https://www.onlinecasinoreports.com/onlinecasinos/playojo-casino.php)
|
||||||
|
- [BC.GAME Casino](https://www.onlinecasinoreports.com/onlinecasinos/bcgame-casino.php)
|
||||||
|
- [Lucky Niki Casino](https://www.onlinecasinoreports.com/onlinecasinos/lucky-niki-casino.php)
|
||||||
|
|
||||||
|
Sportsbooks
|
||||||
|
|
||||||
|
- [bwin Sports](https://www.onlinecasinoreports.com/sportsbetting/bwin-sports.php)
|
||||||
|
- [Stake Sports](https://www.onlinecasinoreports.com/sportsbetting/stake-sports.php)
|
||||||
|
- [22bet Sports](https://www.onlinecasinoreports.com/sportsbetting/22bet-sports.php)
|
||||||
|
- [1xBet Sportsbook](https://www.onlinecasinoreports.com/sportsbetting/1xbet-sportsbook.php)
|
||||||
|
- [bet365 Sports](https://www.onlinecasinoreports.com/sportsbetting/bet365-sports.php)
|
||||||
|
|
||||||
|
Online Bingo
|
||||||
|
|
||||||
|
- [Unibet Bingo](https://www.onlinecasinoreports.com/onlinebingo/unibet-bingo.php)
|
||||||
|
- [Bingo Billy](https://www.onlinecasinoreports.com/onlinebingo/newbingobilly.php)
|
||||||
|
- [Bingo Fest](https://www.onlinecasinoreports.com/onlinebingo/bingo-fest.php)
|
||||||
|
- [Cyber Bingo](https://www.onlinecasinoreports.com/onlinebingo/cyber-bingo.php)
|
||||||
|
- [bet365 Bingo](https://www.onlinecasinoreports.com/onlinebingo/bet365-bingo.php)
|
||||||
|
|
||||||
|
Esports
|
||||||
|
|
||||||
|
- [Rivalry eSports Betting](https://www.onlinecasinoreports.com/esports/rivalry-esports-betting.php)
|
||||||
|
- [1xbet Esports](https://www.onlinecasinoreports.com/esports/1xbet-esports.php)
|
||||||
|
- [bet365 eSports](https://www.onlinecasinoreports.com/esports/bet365-esports.php)
|
||||||
|
- [Stake Esports](https://www.onlinecasinoreports.com/esports/stake-esports.php)
|
||||||
|
- [GG.BET Esports](https://www.onlinecasinoreports.com/esports/gg.bet-esports.php)
|
||||||
|
|
||||||
|
Online Poker
|
||||||
|
|
||||||
|
- [Dafabet Poker](https://www.onlinecasinoreports.com/onlinepoker/dafabet-poker.php)
|
||||||
|
- [bet365 Poker](https://www.onlinecasinoreports.com/onlinepoker/bet365-poker.php)
|
||||||
|
- [Unibet Poker](https://www.onlinecasinoreports.com/onlinepoker/unibet-poker.php)
|
||||||
|
- [GGpoker](https://www.onlinecasinoreports.com/onlinepoker/ggpoker.php)
|
||||||
|
- [888 Poker](https://www.onlinecasinoreports.com/onlinepoker/888-poker.php)
|
||||||
|
|
||||||
|
Guides
|
||||||
|
|
||||||
|
Discover
|
||||||
|
|
||||||
|
- [Sports Betting](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=150967)
|
||||||
|
- [Slots](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=150966)
|
||||||
|
- [eSports](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25397)
|
||||||
|
- [Live Games](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=26683)
|
||||||
|
- [Lottery](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25398)
|
||||||
|
- [Regulation](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25178)
|
||||||
|
- [Mobile](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25181)
|
||||||
|
- [Casinos](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25179)
|
||||||
|
- [Bonuses](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25175)
|
||||||
|
- [Sports](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25176)
|
||||||
|
- [Poker Room](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25396)
|
||||||
|
- [Bingo](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25395)
|
||||||
|
- [Games](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25180)
|
||||||
|
- [Crypto](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25174)
|
||||||
|
- [Gambling](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25177)
|
||||||
|
- [Banking](https://www.onlinecasinoreports.com/guides?page=1§ion=guides&sort=name_ascending&topic=25173)
|
||||||
|
- [Glossary](https://www.onlinecasinoreports.com/glossary)
|
||||||
|
|
||||||
|
[Gambling Guides](https://www.onlinecasinoreports.com/guides)
|
||||||
|
|
||||||
|
Additional Links
|
||||||
|
|
||||||
|
- [Lottery Games Draws](https://www.onlinecasinoreports.com/lotterygames)
|
||||||
|
- [Online Gambling Timeline](https://www.onlinecasinoreports.com/industry-timeline.php)
|
||||||
|
- [Online Gambling Legality](https://www.onlinecasinoreports.com/legality.php)
|
||||||
|
- [Gambling Industry Awards](https://www.onlinecasinoreports.com/igaming-industry-awards.php)
|
||||||
|
- [Gambling Industry Events](https://www.onlinecasinoreports.com/industry-events.php)
|
||||||
|
- [Associations & Organizations](https://www.onlinecasinoreports.com/associations-organizations.php)
|
||||||
|
- [Gambling Auditors](https://www.onlinecasinoreports.com/gambling-auditors.php)
|
||||||
|
- [Dispute Resolution Centers](https://www.onlinecasinoreports.com/dispute-resolution-centers.php)
|
||||||
|
|
||||||
|
GAME GUIDES
|
||||||
|
|
||||||
|
[Online Slots](https://www.onlinecasinoreports.com/guides/online-slots.php)
|
||||||
|
|
||||||
|
[Crash Games](https://www.onlinecasinoreports.com/guides/crash-games.php)
|
||||||
|
|
||||||
|
[Online Blackjack](https://www.onlinecasinoreports.com/guides/online-blackjack.php)
|
||||||
|
|
||||||
|
[Online Roulette](https://www.onlinecasinoreports.com/guides/online-roulette.php)
|
||||||
|
|
||||||
|
[Online Craps](https://www.onlinecasinoreports.com/guides/online-craps.php)
|
||||||
|
|
||||||
|
[Online Baccarat](https://www.onlinecasinoreports.com/guides/online-baccarat.php)
|
||||||
|
|
||||||
|
[Online Video Poker](https://www.onlinecasinoreports.com/guides/online-video-poker.php)
|
||||||
|
|
||||||
|
[Gridders Slots](https://www.onlinecasinoreports.com/guides/gridders-slots.php)
|
||||||
|
|
||||||
|
[Live Game Shows](https://www.onlinecasinoreports.com/guides/live-casino-game-shows.php)
|
||||||
|
|
||||||
|
[Chicken Crash Games](https://www.onlinecasinoreports.com/guides/chicken-crash-games.php)
|
||||||
|
|
||||||
|
Games
|
||||||
|
|
||||||
|
By game type
|
||||||
|
|
||||||
|
- [Wheel of Fortune](https://www.onlinecasinoreports.com/games?gameGroupID=56)
|
||||||
|
- [Virtual Sports](https://www.onlinecasinoreports.com/games?gameGroupID=55)
|
||||||
|
- [Video Poker](https://www.onlinecasinoreports.com/games?gameGroupID=54)
|
||||||
|
- [Team Sports](https://www.onlinecasinoreports.com/games?gameGroupID=49)
|
||||||
|
- [Slots](https://www.onlinecasinoreports.com/games?gameGroupID=42)
|
||||||
|
- [Roulette](https://www.onlinecasinoreports.com/games?gameGroupID=41)
|
||||||
|
- [Poker](https://www.onlinecasinoreports.com/games?gameGroupID=38)
|
||||||
|
- [Others](https://www.onlinecasinoreports.com/games?gameGroupID=35)
|
||||||
|
- [Lottery](https://www.onlinecasinoreports.com/games?gameGroupID=31)
|
||||||
|
- [Fixed Odds](https://www.onlinecasinoreports.com/games?gameGroupID=23)
|
||||||
|
- [Dice Games](https://www.onlinecasinoreports.com/games?gameGroupID=19)
|
||||||
|
- [Craps](https://www.onlinecasinoreports.com/games?gameGroupID=17)
|
||||||
|
- [Card Games](https://www.onlinecasinoreports.com/games?gameGroupID=12)
|
||||||
|
- [Board Games](https://www.onlinecasinoreports.com/games?gameGroupID=9)
|
||||||
|
- [Blackjack](https://www.onlinecasinoreports.com/games?gameGroupID=8)
|
||||||
|
- [Bingo](https://www.onlinecasinoreports.com/games?gameGroupID=7)
|
||||||
|
- [Baccarat](https://www.onlinecasinoreports.com/games?gameGroupID=5)
|
||||||
|
|
||||||
|
[Free Casino Games](https://www.onlinecasinoreports.com/games)
|
||||||
|
|
||||||
|
By game provider
|
||||||
|
|
||||||
|
- [Mancala gaming](https://www.onlinecasinoreports.com/games?software=629)
|
||||||
|
- [Stormcraft Studios](https://www.onlinecasinoreports.com/games?software=570)
|
||||||
|
- [Mascot Gaming](https://www.onlinecasinoreports.com/games?software=510)
|
||||||
|
- [BGAMING](https://www.onlinecasinoreports.com/games?software=453)
|
||||||
|
- [Belatra Games](https://www.onlinecasinoreports.com/games?software=428)
|
||||||
|
- [FUGASO](https://www.onlinecasinoreports.com/games?software=417)
|
||||||
|
- [Felix Gaming](https://www.onlinecasinoreports.com/games?software=398)
|
||||||
|
- [Evoplay](https://www.onlinecasinoreports.com/games?software=395)
|
||||||
|
- [Gamomat](https://www.onlinecasinoreports.com/games?software=394)
|
||||||
|
- [Booming Games](https://www.onlinecasinoreports.com/games?software=319)
|
||||||
|
- [Pragmatic Play](https://www.onlinecasinoreports.com/games?software=318)
|
||||||
|
- [3 Oaks Gaming](https://www.onlinecasinoreports.com/games?software=311)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
FEATURED GAMES
|
||||||
|
|
||||||
|
Jungle Queen
|
||||||
|
|
||||||
|
Slots by BGAMING
|
||||||
|
|
||||||
|
Mustang Rush!
|
||||||
|
|
||||||
|
Slots by Mancala gaming
|
||||||
|
|
||||||
|
# Top R88 Online Casinos for 2026
|
||||||
|
|
||||||
|
Founded in 2020, R88 has been at the forefront of the iGaming market for over two decades. Since its inception, the company has been focused on developing online casino games for players residing in Southeast Asia. Its gaming lobby boasts slots, bingo, and classic table and card games.
|
||||||
|
|
||||||
|
## Sorry, no results were found.
|
||||||
|
|
||||||
|
##### Please click the link below to browse for alternative options.
|
||||||
|
|
||||||
|
[Browse Casinos](https://www.onlinecasinoreports.com/onlinecasinos)
|
||||||
|
|
||||||
|
Profile
|
||||||
|
|
||||||
|
| Name | R88 Games |
|
||||||
|
| --- | --- |
|
||||||
|
| AKA | RICH88 |
|
||||||
|
| URL | [R88games.com](https://r88games.com/) |
|
||||||
|
| Licenses | AGCC, Gibraltar Remote Gambling Division |
|
||||||
|
| Founded | 2024 |
|
||||||
|
| Company | RiCH88 GAMING |
|
||||||
|
| Headquarters | Hong Kong |
|
||||||
|
| Type | [Game Developer](https://www.onlinecasinoreports.com/software?type=games_developer) |
|
||||||
|
| Compatibility | Desktop, Mobile |
|
||||||
|
| Features | [3D Games](https://www.onlinecasinoreports.com/software?features=three_d) |
|
||||||
|
|
||||||
|
- Other Game Providers
|
||||||
|
- FAQ
|
||||||
|
- Our Favorite Casino
|
||||||
|
- Free Games
|
||||||
|
- Live Games
|
||||||
|
- Games
|
||||||
|
- Licenses
|
||||||
|
- Overview
|
||||||
|
- top
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Founded in 2020, R88, also known as RiCH 88, has distinguished itself as a renowned iGaming business by crafting slots, bingo, and classic table and card games, which are customized to meet the demands of the growing South East Asian audience. The team working at R88 strives to enhance conventional gameplay styles with original ideas to enable gamers to enjoy region-specific casino-style card and slot games regardless of which gaming device they use.
|
||||||
|
|
||||||
|
In the growing iGaming market, the company has expanded its workforce to encompass a range of professionals, including expert game developers, graphic designers, and others involved in creating exciting online casino games. At the company's official website, r88games.com, both players and other interested parties may familiarize themselves with all the available offerings.
|
||||||
|
|
||||||
|
Since June 2020, when the company was established, R88 has been focused on offering an immersive gaming experience that captures specific cultural foundations native to Southeast Asia. This is one of the many reasons why R88 remains one of the biggest iGaming players in the region. The renowned company prides itself not only on thorough research but also on different development efforts aimed at understanding customers' needs and preferences while simultaneously working on improving its game development framework and technologies utilized in the process.
|
||||||
|
|
||||||
|
The company's core mission is to develop games that capture the spirit of regional traditions and familiar culture, providing players with an interactive and familiar encounter. The ultimate goal is for users to be amazed by playing games that resonate on a personal level.
|
||||||
|
|
||||||
|
R88 places a strong emphasis on safety and speed when it comes to game features by utilizing its API service and system framework, creating an environment where players can enjoy spectacular gaming sessions without a single worry. The company is renowned for its proficiency in producing games that incorporate card board games as well as slots and table games.
|
||||||
|
|
||||||
|
The company prides itself on three core values: authenticity, creativity, and innovation, striving to present original games that perfectly reflect the diverse cultures of Southeast Asia while exploring different technologies and innovative content to elevate the overall gaming experience.
|
||||||
|
|
||||||
|
RICH88 Gaming (Alderney) Limited and RICH88 Gaming (Gibraltar) Limited are the two branches under which the company is run. They operate out of the Isle of Man and Gibraltar, respectively, while adhering to full licensing and regulatory requirements. This is just one of the many other things that certify the company's commitment to legal and ethical gaming practices.
|
||||||
|
|
||||||
|
### R88 Popular Games
|
||||||
|
|
||||||
|
The company has been working on its gaming lobby since 2020, and today, its gaming lobby has a variety of games you get to explore, including bingo games, table games, and slots. Among R88 players, slots remain the most popular. In terms of popularity, Monopoly Super Bomb, Big Bass Bonanza, and Tarzan stick out. Monopoly Super Bomb was released in March of 2024. The exciting slot game with the familiar Monopoly Man boasts three in-game bonuses, including one Free Spins mode and different booster bonuses. Here, players can win prizes up to 1,000x your stake. The maximum bet is 400 credits, while you can start your gaming sessions as soon as you invest at least 0.8 credits per spin.
|
||||||
|
|
||||||
|
Big Bass Bonanza is also quite popular among R88 players. This is one of the most popular 10-payline slot games in the South East Asian region. In this fishing-themed slot, you can win prizes up to 2,000x your stake. During your gaming sessions, you benefit from Fisherman replacing wild symbols. It is important to note that replacing wilds only make their appearance during the game's Free Spins bonus. To trigger the Free Spins bonus, you need to land three or more scattered bonus symbols on the same spin. Depending on the number of triggering scatters, you receive 10, 15, or 20 free spins.
|
||||||
|
|
||||||
|
For equally exciting spinning sections, you may want to try your luck on the R88 Tarzan slot. Inspired by one of the most famous fictional characters, the Tarzan slot boasts a standard gaming grid with 5 reels and 25 paylines. Wilds appear during the base game spins, and as expected, they replace standard symbols to boost your winning odds. When three or more scattered bonus symbols land on the second, third, and fourth reel on the same spin, the game's Free Spins bonus activates, and you win 10 free spins. You also want to look for bonus symbols that only land during the Free Spins bonus as they multiply your winnings.
|
||||||
|
|
||||||
|
## Licenses
|
||||||
|
|
||||||
|
Alderney Gambling Control Commission
|
||||||
|
|
||||||
|
Gibraltar Remote Gambling Division
|
||||||
|
|
||||||
|
## Games
|
||||||
|
|
||||||
|
The three slot games we briefly discussed are just the tip of the iceberg, considering all the other amazing games you will find in the R88 gaming lobby. As expected, slots form the majority of games in the lobby. Some other popular titles include Mystery Gem, Dragon Ball, One Piece, LuBu, Thor 2, Mahjong 2, Super Niubu Deluxe, and Flaming Chillies. The games boast a range of in-game bonuses, top-notch graphics, captivating animations, and many other great features.
|
||||||
|
|
||||||
|
For fans of slot games, we also recommend checking out Buffalo King Megaways, which is one of the few R88 games with the famed Megaways gaming engine, Winning Mask Deluxe, Crazy Rich Man, Panda King Hold and Win, Mahjong King, Moon Festival Party, Future Stars, and Fortune Bell.
|
||||||
|
|
||||||
|
Fans of classic table and card games are also catered to since the company's gaming lobby boasts Fortune Dice, 100 Teen Patti, Rich Fishing, Legend of Neptune, Mouse Gets Fortune, and Dragon Tiger. While you will not find classic table and card games, such as Roulette and Blackjack, the table games lobby at the R88 official website has quite a few interesting titles that are worth checking out. In the company's gaming lobby, you will also find quite a few bingo games, including Bingo Football, Multi Mega Bingo Bonanza, and Multi Mega Classic Bingo.
|
||||||
|
|
||||||
|
Slots
|
||||||
|
|
||||||
|
Craps
|
||||||
|
|
||||||
|
Bingo
|
||||||
|
|
||||||
|
Blackjack
|
||||||
|
|
||||||
|
Roulette
|
||||||
|
|
||||||
|
Baccarat
|
||||||
|
|
||||||
|
Poker
|
||||||
|
|
||||||
|
Video Poker
|
||||||
|
|
||||||
|
Bingo Roulette
|
||||||
|
|
||||||
|
| Card Games | Teen Patti |
|
||||||
|
| --- | --- |
|
||||||
|
| Fixed Odds | Virtual Sports, Fixed Odds, Virtual Soccer, Crash Games |
|
||||||
|
| Virtual Sports | Virtual Sports, Virtual Soccer |
|
||||||
|
| Bingo | Bingo |
|
||||||
|
| Craps | Craps |
|
||||||
|
| Dice Games | Sic Bo |
|
||||||
|
| Lottery | Keno |
|
||||||
|
| Slots | Slots, Video Slots |
|
||||||
|
| Baccarat | Dragon Tiger |
|
||||||
|
|
||||||
|
Show More Show Less
|
||||||
|
|
||||||
|
### Live Games
|
||||||
|
|
||||||
|
Live Roulette
|
||||||
|
|
||||||
|
Live Blackjack
|
||||||
|
|
||||||
|
Live Baccarat
|
||||||
|
|
||||||
|
Live Craps
|
||||||
|
|
||||||
|
Live Poker
|
||||||
|
|
||||||
|
Live Slots
|
||||||
|
|
||||||
|
Live Bingo
|
||||||
|
|
||||||
|
Live Bingo Roulette
|
||||||
|
|
||||||
|
## Free Games
|
||||||
|
|
||||||
|
[Mahjong 2 9 Fixed Odds by R88 Games Play](javascript:void(0))
|
||||||
|
|
||||||
|
[Thai Sic Bo 9 Dice Games by R88 Games Play](javascript:void(0))
|
||||||
|
|
||||||
|
[100 Teen Patti 9 Card Games by R88 Games Play](javascript:void(0))
|
||||||
|
|
||||||
|
[Dragon Ball 9 Slots by R88 Games Play](javascript:void(0))
|
||||||
|
|
||||||
|
[Monopoly Slot Super Bomb 9 Slots by R88 Games Play](javascript:void(0))
|
||||||
|
|
||||||
|
[Show More](https://www.onlinecasinoreports.com/games?software=953)
|
||||||
|
|
||||||
|
## Our Favorite Casino
|
||||||
|
|
||||||
|
Approved
|
||||||
|
|
||||||
|
Favorite
|
||||||
|
|
||||||
|
Hot
|
||||||
|
|
||||||
|
Vulkan Vegas Casino
|
||||||
|
|
||||||
|
9.5
|
||||||
|
|
||||||
|
Best for
|
||||||
|
|
||||||
|
Blackjack
|
||||||
|
|
||||||
|
Slots
|
||||||
|
|
||||||
|
Roulette
|
||||||
|
|
||||||
|
Over 3994 games available
|
||||||
|
|
||||||
|
Benefits
|
||||||
|
|
||||||
|
Excellent reputation since its foundation.
|
||||||
|
|
||||||
|
High-quality and interactive live dealer games.
|
||||||
|
|
||||||
|
Responsive customer support.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Win Rate
|
||||||
|
|
||||||
|
97.8%
|
||||||
|
|
||||||
|
Payout Speed
|
||||||
|
|
||||||
|
1 - 2 Days
|
||||||
|
|
||||||
|
Features
|
||||||
|
|
||||||
|
3D Games
|
||||||
|
|
||||||
|
Arcade Games
|
||||||
|
|
||||||
|
Auto Play
|
||||||
|
|
||||||
|
Branded Games
|
||||||
|
|
||||||
|
[12 more](https://www.onlinecasinoreports.com/onlinecasinos/vulkan-vegas-casino.php#features)
|
||||||
|
|
||||||
|
Payment Methods
|
||||||
|
|
||||||
|
[23 more](https://www.onlinecasinoreports.com/onlinecasinos/vulkan-vegas-casino.php#banking)
|
||||||
|
|
||||||
|
120% Match Bonus up to $500 + 70 Free Spins
|
||||||
|
|
||||||
|
Welcome Bonus
|
||||||
|
|
||||||
|
18+ Only, GambleAware.org, T&C Apply.
|
||||||
|
|
||||||
|
[Play Here](https://www.onlinecasinoreports.com/adv/?pid=2159)
|
||||||
|
|
||||||
|
[Compare](https://www.onlinecasinoreports.com/onlinecasinos/vulkan-vegas-casino.php) [Review](https://www.onlinecasinoreports.com/onlinecasinos/vulkan-vegas-casino.php)
|
||||||
|
|
||||||
|
## FAQ
|
||||||
|
|
||||||
|
Are R88 games accessible on iOS and Android devices?
|
||||||
|
|
||||||
|
Yes, all games in the R88 gaming lobby have been crafted with mobile players in mind, so they all work on tablets and smartphones powered by iOS and Android operating systems.
|
||||||
|
|
||||||
|
Is R88 licensed to operate?
|
||||||
|
|
||||||
|
Yes, the companies responsible for R88 are licensed by the Alderney eGambling Authority and by the HM Government of Gibraltar.
|
||||||
|
|
||||||
|
Are R88 games accessible in free/demo play mode?
|
||||||
|
|
||||||
|
Yes, all games in the R88 gaming lobby are accessible in free/demo play modes on the official website as well as at a number of online casino sites that house R88-powered slots and other R88 games.
|
||||||
|
|
||||||
|
When was R88 founded?
|
||||||
|
|
||||||
|
R88 was founded in 2020. Since its beginnings, the company has been focused on developing exciting online casino games for players residing in Southeast Asia.
|
||||||
|
|
||||||
|
Where can I play R88 casino games?
|
||||||
|
|
||||||
|
You can play R88 slots and other online casino games at a number of online casino sites, including all the casinos featured here.
|
||||||
|
|
||||||
|
## Other Game Providers
|
||||||
|
|
||||||
|
[Blueprint Gaming](https://www.onlinecasinoreports.com/software/blueprint-gaming.php)
|
||||||
|
|
||||||
|
[Tada Gaming](https://www.onlinecasinoreports.com/software/tada-gaming.php)
|
||||||
|
|
||||||
|
[ICONIC 21](https://www.onlinecasinoreports.com/software/iconic21.php)
|
||||||
|
|
||||||
|
Compare
|
||||||
|
|
||||||
|
Compare up to 5 casinos
|
||||||
|
|
||||||
|
[Compare Casinos](https://www.onlinecasinoreports.com/compare)
|
||||||
|
|
||||||
|
OnlineCasinoReports is a leading independent online gambling sites reviews provider, delivering trusted online casino reviews, news, guides and gambling information since 1997.
|
||||||
|
|
||||||
|
Subscribe to our Newsletter
|
||||||
|
|
||||||
|
Get news about exclusive bonuses and promotions.
|
||||||
|
|
||||||
|
I'm over 18, and I wish to receive the latest updates and promotions.
|
||||||
|
|
||||||
|
Subscribe
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
About Us
|
||||||
|
|
||||||
|
- [Apps](https://www.onlinecasinoreports.com/apps.php)
|
||||||
|
- [Add Your Brand](https://www.onlinecasinoreports.com/addyourbrand.php)
|
||||||
|
- [Blacklisted Casinos](https://www.onlinecasinoreports.com/blacklisted-online-casinos.php)
|
||||||
|
- [How We Rate](https://www.onlinecasinoreports.com/how-we-rate.php)
|
||||||
|
- [Contact Us](https://www.onlinecasinoreports.com/contact-us.php)
|
||||||
|
- [Who We Are](https://www.onlinecasinoreports.com/about-us.php)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Top 10
|
||||||
|
|
||||||
|
- [Fairspin Casino](https://www.onlinecasinoreports.com/onlinecasinos/fairspin.php)
|
||||||
|
- [Betico Casino](https://www.onlinecasinoreports.com/onlinecasinos/betico-casino.php)
|
||||||
|
- [Diamond Reels Casino](https://www.onlinecasinoreports.com/onlinecasinos/diamond-reels-casino.php)
|
||||||
|
- [Vulkan Vegas Casino](https://www.onlinecasinoreports.com/onlinecasinos/vulkan-vegas-casino.php)
|
||||||
|
- [Stake Casino](https://www.onlinecasinoreports.com/onlinecasinos/stake-casino.php)
|
||||||
|
- [22BET Casino](https://www.onlinecasinoreports.com/onlinecasinos/22bet-casino.php)
|
||||||
|
- [Axe Casino](https://www.onlinecasinoreports.com/onlinecasinos/axe-casinophp.php)
|
||||||
|
- [Wageon Casino](https://www.onlinecasinoreports.com/onlinecasinos/wageon-casino.php)
|
||||||
|
- [JB Casino](https://www.onlinecasinoreports.com/onlinecasinos/jb-casino.php)
|
||||||
|
- [BC.GAME Casino](https://www.onlinecasinoreports.com/onlinecasinos/bcgame-casino.php)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
GAME GUIDES
|
||||||
|
|
||||||
|
- [Chicken Crash Games](https://www.onlinecasinoreports.com/guides/chicken-crash-games.php)
|
||||||
|
- [Live Game Shows](https://www.onlinecasinoreports.com/guides/live-casino-game-shows.php)
|
||||||
|
- [Gridders Slots](https://www.onlinecasinoreports.com/guides/gridders-slots.php)
|
||||||
|
- [Online Video Poker](https://www.onlinecasinoreports.com/guides/online-video-poker.php)
|
||||||
|
- [Online Baccarat](https://www.onlinecasinoreports.com/guides/online-baccarat.php)
|
||||||
|
- [Online Craps](https://www.onlinecasinoreports.com/guides/online-craps.php)
|
||||||
|
- [Online Roulette](https://www.onlinecasinoreports.com/guides/online-roulette.php)
|
||||||
|
- [Online Blackjack](https://www.onlinecasinoreports.com/guides/online-blackjack.php)
|
||||||
|
- [Crash Games](https://www.onlinecasinoreports.com/guides/crash-games.php)
|
||||||
|
- [Online Slots](https://www.onlinecasinoreports.com/guides/online-slots.php)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Popular
|
||||||
|
|
||||||
|
- [Live Streams](https://www.onlinecasinoreports.com/live-streams)
|
||||||
|
- [Gambling Guides](https://www.onlinecasinoreports.com/guides)
|
||||||
|
- [New Online Casinos](https://www.onlinecasinoreports.com/latest-online-casinos.php)
|
||||||
|
- [Mobile Casinos](https://www.onlinecasinoreports.com/mobile-casinos.php)
|
||||||
|
- [Free Casino Games](https://www.onlinecasinoreports.com/games)
|
||||||
|
- [Bonuses and Promotions](https://www.onlinecasinoreports.com/bonuses)
|
||||||
|
- [Live Casinos](https://www.onlinecasinoreports.com/live-dealer-casinos.php)
|
||||||
|
- [Bitcoin Casinos](https://www.onlinecasinoreports.com/bitcoin-casinos.php)
|
||||||
|
- [Online Casino Reviews](https://www.onlinecasinoreports.com/onlinecasinos)
|
||||||
|
- [Real Money Casinos](https://www.onlinecasinoreports.com/real-money-casinos.php)
|
||||||
|
- [No Deposit Casino Bonuses](https://www.onlinecasinoreports.com/bonuses/no-deposit-bonuses.php)
|
||||||
|
- [Top Online Casinos](https://www.onlinecasinoreports.com/top-online-casinos.php)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Play Responsibly and in Moderation.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
www.onlinecasinoreports.com © 1998 - 2026
|
||||||
|
|
||||||
|
[Terms of Use](https://www.onlinecasinoreports.com/terms-of-use.php) [Privacy](https://www.onlinecasinoreports.com/privacy.php) [Responsible Gambling](https://www.onlinecasinoreports.com/responsible-gambling.php) [Sitemap](https://www.onlinecasinoreports.com/sitemap.php)
|
||||||
|
|
||||||
|
[International](https://www.onlinecasinoreports.com/choose-your-country.php)
|
||||||
|
|
||||||
|
Important Notice
|
||||||
|
|
||||||
|
By visiting this site, you certify that you are over 18 years old, and you are giving your consent for us to set cookies. We use cookies to enhance your browsing experience, serve personalized ads or content, and analyze our traffic. [Read More](https://www.onlinecasinoreports.com/privacy.php)
|
||||||
|
|
||||||
|
I Agree
|
||||||
@@ -0,0 +1,321 @@
|
|||||||
|
Labubu Win! – Play Labubu Slot Online with Free Demo
|
||||||
|
|
||||||
|
English
|
||||||
|
|
||||||
|
# Labubu Win! Slot Review – Complete Guide
|
||||||
|
|
||||||
|
The Labubu Win! slot, developed by Hotdog Gaming, blends a unique theme with engaging mechanics for a broad audience. This guide covers everything — gameplay structure, bonus features, RTP and volatility, mobile performance, supported currencies, and strategy tips. The Labubu slot stands out for its use of the beloved Labubu character and the innovative Green-Blue-Gold multiplier system, which can significantly boost potential rewards.
|
||||||
|
|
||||||
|
Play Labubu!
|
||||||
|
|
||||||
|
You’ll also discover how betting tiers work, what to expect from the mobile version, and how to make the most of in-game features. Whether drawn by the theme or the high multipliers, this guide delivers all the essential insights.
|
||||||
|
|
||||||
|
Contents:
|
||||||
|
|
||||||
|
Toggle
|
||||||
|
|
||||||
|
## Labubu Win! Key Facts and Features
|
||||||
|
|
||||||
|
Spin & Win!
|
||||||
|
|
||||||
|
The Labubu Win! slot offers a compact set of specifications that make it easy to understand at a glance. Developed by Hotdog Gaming, the slot Labubu experience is built on a 5×3 grid with versatile bonus mechanics, capped payouts, and multi-device support. Players can expect varied RTP ranges depending on the mode, solid hit frequency, and a standout Green-Blue-Gold multiplier system. Below is a quick-reference table summarizing the game’s essentials for quick scanning before diving into deeper gameplay details.
|
||||||
|
|
||||||
|
| 🔹 Specification | Details |
|
||||||
|
| --- | --- |
|
||||||
|
| 🏢 Developer | Hotdog Gaming |
|
||||||
|
| 🆔 Version | v1.00 |
|
||||||
|
| 🎰 Grid | 5×3 |
|
||||||
|
| 📊 RTP (by mode) | 97.42% to 94.41% |
|
||||||
|
| 🎯 Volatility | Medium (±1.99%) |
|
||||||
|
| 🎯 Hit Rate | 5.49% |
|
||||||
|
| 🎟️ Free Spins Rate | 0.55% |
|
||||||
|
| 💥 Max Multiplier | 5000× |
|
||||||
|
| 💰 Max Payout (USD) | 37,500 |
|
||||||
|
| 🃏 Core Features | Wilds, Free Spins, Bonus Buy, Green-Blue-Gold Multiplier, Mission Bonus System |
|
||||||
|
| 📱 Supported Devices | Portrait/Landscape, PC Multi-Screen |
|
||||||
|
| 🌐 Languages | 15 (including EN, JP, FR, ES) |
|
||||||
|
|
||||||
|
## Introduction and Background
|
||||||
|
|
||||||
|
In the Labubu Win! slot, Hotdog Gaming brings the playful Labubu character into a multiplier-focused experience that fits comfortably in today’s slot market. It’s designed for players who enjoy straightforward gameplay with the potential for big boosts through its Green-Blue-Gold card system. With multi-language support and a mobile-first approach, it’s easy to pick up on any device. Quick, clearly displayed payouts and accessible features set the stage for the detailed breakdowns ahead.
|
||||||
|
|
||||||
|
Claim Bonus!
|
||||||
|
|
||||||
|
### About Hotdog Gaming – The Developer
|
||||||
|
|
||||||
|
Hotdog Gaming’s work on the Labubu Win! slot reflects their signature style — character-led themes, approachable math models, and varied bonus systems that keep sessions fresh. The studio is known for integrating built-in mini-games and mission-style rewards, adding extra layers of engagement. Their portfolio, built entirely in HTML5, runs smoothly on desktop and mobile, supporting multiple languages for a global audience. This blend of technical reliability and creative design reinforces their reputation as a player-focused developer.
|
||||||
|
|
||||||
|
Try Labubu!
|
||||||
|
|
||||||
|
## Slot Theme and Storyline
|
||||||
|
|
||||||
|
The Labubu Win! slot builds its identity around the mischievous Labubu character, whose style shapes the game’s vibrant art direction and fluid animations. In the Labubu slot, a bright color palette and playful details set a light, engaging tone, while ambient audio adds subtle depth without distracting from gameplay. The interface uses clean layouts and uncluttered UI elements, making features like the card-draw multiplier sequence visually striking. High-contrast symbols and distinct silhouettes ensure quick recognition on both desktop and mobile, keeping the theme consistent while supporting smooth, fast-paced play.
|
||||||
|
|
||||||
|
Free Demo!
|
||||||
|
|
||||||
|
## Symbols and Paytable
|
||||||
|
|
||||||
|
In the Labubu Win! slot, payouts follow a tiered system that directly affects bankroll rhythm. Regular symbols are divided into low, medium, and high-pay categories, each shaping how wins accumulate over time. Special symbols trigger or boost key features, influencing overall strategy. The H3 sections below outline exact values and effects, offering a clear reference to help guide bet sizing decisions.
|
||||||
|
|
||||||
|
Max Win $250K!
|
||||||
|
|
||||||
|
### Regular Symbols
|
||||||
|
|
||||||
|
In the Labubu Win! slot, regular symbols are split into low, medium, and high-paying tiers, shaping the game’s hit frequency. Low-tier icons appear more often to sustain bankroll flow, while high-tier ones offer bigger wins at lower frequency. Recognizing these values helps balance bet sizing and anticipate payout patterns.
|
||||||
|
|
||||||
|
| 🎴 Symbol | Payouts (X3 – X4 – X5) |
|
||||||
|
| --- | --- |
|
||||||
|
| 🎀 Bow Tie | 0.10 – 0.25 – 0.50 |
|
||||||
|
| 🕶️ Sunglasses | 0.10 – 0.25 – 0.50 |
|
||||||
|
| 🧢 Cap | 0.25 – 0.50 – 1.50 |
|
||||||
|
| 🍵 Teacup | 0.25 – 0.75 – 1.50 |
|
||||||
|
| 🐰 Green Labubu Doll | 0.50 – 1.00 – 2.50 |
|
||||||
|
| 🐰 Pink Labubu Doll | 0.50 – 2.50 – 5.00 |
|
||||||
|
| 🐰 Red Labubu Doll | 0.75 – 3.75 – 10.00 |
|
||||||
|
| 🐰 Golden Helmet Labubu Doll | 1.00 – 5.00 – 15.00 |
|
||||||
|
|
||||||
|
Big Wins!
|
||||||
|
|
||||||
|
### Special Symbols and Their Functions
|
||||||
|
|
||||||
|
Special symbols in the Labubu Win! slot add layers of excitement and strategic potential. They not only trigger bonus rounds but also enhance payouts through substitution and multiplier mechanics. Knowing how they interact with the Green-Blue-Gold multiplier system can help players time their bets for maximum effect.
|
||||||
|
|
||||||
|
- Wild – Substitutes for all regular symbols, aiding in completing winning lines. Pays 1.00/5.00/15.00 for 3/4/5 matches.
|
||||||
|
- Scatter (Free Spin) – Landing 3, 4, or 5 triggers 10, 15, or 20 free spins respectively. Works in any position.
|
||||||
|
- Multiplier Cards – Green, Blue, and Gold cards add +2 to +25 multipliers; in free spins, six cards can reach up to 150× combined.
|
||||||
|
- Mission Bonus Icon – Grants extra rewards when certain in-game goals are met, stacking with other features.
|
||||||
|
|
||||||
|
Get Free Spins!
|
||||||
|
|
||||||
|
## Labubu Win! Rules and Gameplay
|
||||||
|
|
||||||
|
In the Labubu Win! slot, each round begins with selecting a bet and spinning the 5×3 reels. Wins form when matching symbols land on active lines from left to right. Bonus cards, wilds, and scatters can appear at any time, triggering multipliers or special modes. These features enhance payouts and create variety, laying the groundwork for the detailed mechanics described next.
|
||||||
|
|
||||||
|
Start Playing!
|
||||||
|
|
||||||
|
### How to Start Playing
|
||||||
|
|
||||||
|
Getting started with the Labubu Win! slot is straightforward. Follow these steps for a smooth first session:
|
||||||
|
|
||||||
|
1. Choose a trusted online casino that offers Labubu Win!.
|
||||||
|
2. Launch the game from the lobby.
|
||||||
|
3. Adjust your bet size using the plus/minus controls.
|
||||||
|
4. Review the paytable to understand symbol values and features.
|
||||||
|
5. (Optional) Enable or disable sound to suit your preference.
|
||||||
|
6. (Optional) Switch between portrait and landscape modes on mobile.
|
||||||
|
7. Press the spin button to start playing.
|
||||||
|
|
||||||
|
Bonus Buy!
|
||||||
|
|
||||||
|
### Understanding the Reels and Paylines
|
||||||
|
|
||||||
|
The Labubu Win! slot uses a 5×3 reel layout with 30 fixed paylines. Winning combinations form when three or more matching symbols appear on a payline from left to right, starting on the first reel. There are no right-to-left exceptions. Bonus features, such as the Green-Blue-Gold multiplier cards, activate alongside normal payline wins, boosting payout values. Since paylines are fixed, every spin automatically covers all possible lines, ensuring you never miss a potential winning combination.
|
||||||
|
|
||||||
|
Win Up to 5000x!
|
||||||
|
|
||||||
|
## How to Play Labubu Win! Slot for Real Money
|
||||||
|
|
||||||
|
Switching from demo mode to live betting on the Labubu Win! slot requires a few simple steps. Players must complete the Labubu slot login process through a licensed casino, ensuring they have a verified account. Choose from supported payment methods to fund your balance and set a clear bankroll limit. Always understand the game’s rules before wagering, and practice responsible play to keep the experience enjoyable and sustainable.
|
||||||
|
|
||||||
|
Join Now!
|
||||||
|
|
||||||
|
### Creating an Account
|
||||||
|
|
||||||
|
To play the Labubu Win! slot for real money, you’ll first need to register at an online casino that offers it. This involves entering personal details, confirming you’re of legal age, and accepting the site’s terms and conditions. Some regions require additional identity verification or the use of local payment solutions. Before completing sign-up, check if the casino offers a welcome bonus or free spins on Labubu Win!, as these can boost your starting balance before your first deposit.
|
||||||
|
|
||||||
|
Try Free Mode!
|
||||||
|
|
||||||
|
### Depositing Funds and Placing Bets
|
||||||
|
|
||||||
|
Once your account is ready, deposit funds using supported methods such as credit/debit cards, e-wallets, bank transfers, or cryptocurrencies. In the Labubu Win! slot, bets start from the minimum set by the game and can go up to the maximum limit. You can adjust stakes before each spin to suit your bankroll strategy. The interface may also let you choose your preferred currency or denomination, ensuring smooth control over your wagers and potential payouts.
|
||||||
|
|
||||||
|
Labubu Jackpot!
|
||||||
|
|
||||||
|
## Labubu Win! Bonuses and Special Features
|
||||||
|
|
||||||
|
The Labubu Win! slot stands out with a mix of classic and distinctive bonus mechanics. Players can trigger Wild substitutions, unlock free spins, and benefit from the Green-Blue-Gold card multiplier for enhanced payouts. Unique to this title, the Mission Bonus System offers extra rewards when specific objectives are met. The following subsections detail how each feature activates, how it impacts gameplay, and the potential winnings it can generate.
|
||||||
|
|
||||||
|
Unlock Bonus!
|
||||||
|
|
||||||
|
### Wilds
|
||||||
|
|
||||||
|
In the Labubu Win! slot, Wild symbols substitute for all regular symbols, helping complete or improve winning combinations. They appear on all reels and can form their own payouts of 1.00×, 5.00×, or 15.00× for 3, 4, or 5 matches. While Wilds in this game do not carry extra multipliers or expanding effects, their consistent presence in both base play and bonus modes boosts payout frequency. They can also work alongside other features, increasing the likelihood of multi-line wins in a single spin.
|
||||||
|
|
||||||
|
Explore Features!
|
||||||
|
|
||||||
|
### Labubbu Win! Feature
|
||||||
|
|
||||||
|
The Labubbu Win! feature activates when a special Labubbu sequence is triggered, adding an animated twist to gameplay. It can occur randomly or in connection with specific symbol combinations, often enhancing the round’s total payout. During this event, bonus effects may be applied, such as additional multiplier cards or expanded winning sequences. The feature’s visual flair reinforces its impact, and when combined with Wilds or the Green-Blue-Gold multiplier, it can create scenarios where payouts climb significantly above standard spin results.
|
||||||
|
|
||||||
|
Catch Multipliers!
|
||||||
|
|
||||||
|
### Green-Blue-Gold Card Multiplier
|
||||||
|
|
||||||
|
In the Labubu Win! slot, the Green-Blue-Gold card multiplier is a signature mechanic that boosts round payouts. In normal mode, four bonus cards are drawn per spin, each valued from +2 to +25. During free spins, this increases to six cards, allowing combinations that can reach up to 150×. Cards are revealed after symbol evaluation, applying their total value to the win. When paired with other active bonuses like Wilds or the Labubbu Win! feature, this multiplier can significantly enhance final rewards.
|
||||||
|
|
||||||
|
### Free Spins
|
||||||
|
|
||||||
|
Free spins in the Labubu Win! slot are triggered by landing three, four, or five Scatter symbols, awarding 10, 15, or 20 spins respectively. The mode can often be retriggered by hitting additional Scatters. Gameplay shifts with six bonus cards drawn per spin, boosting multiplier potential and win frequency. Wilds remain active, and all wins are subject to enhanced payout conditions. This feature offers high reward opportunities without extra stake costs, though maximum win limits still apply to ensure balanced gameplay.
|
||||||
|
|
||||||
|
Try Mini-Games!
|
||||||
|
|
||||||
|
### Bonus Buy
|
||||||
|
|
||||||
|
In the Labubu Win! slot, the Bonus Buy feature lets players purchase instant access to the free spins round without waiting for Scatters to land. The cost is calculated as a multiple of the current bet, offering immediate entry into a high-potential mode. This can be strategic for those chasing multipliers or feature synergy, but it carries risk—spending a large portion of your bankroll upfront. Players should weigh potential rewards against volatility before deciding to buy instead of triggering naturally.
|
||||||
|
|
||||||
|
### Mission Bonus System
|
||||||
|
|
||||||
|
The Labubu Win! slot includes a Mission Bonus System that rewards players for completing specific in-game tasks. These rewards come from a separate bonus pool and do not affect the base RTP. Examples include:
|
||||||
|
|
||||||
|
- Achieve a set number of consecutive wins.
|
||||||
|
- Land a certain number of Wilds within one session.
|
||||||
|
- Reach a multiplier milestone, such as 50× or 100×.
|
||||||
|
- Complete a defined number of spins in a single playthrough.
|
||||||
|
|
||||||
|
Spin for Glory!
|
||||||
|
|
||||||
|
### Cumulative Advantage and Built-in Games
|
||||||
|
|
||||||
|
Cumulative advantage in the Labubu Win! slot refers to gameplay elements that build over time, increasing the likelihood of larger payouts. This may include progressive mission progress or enhanced feature triggers after extended play. Built-in mini-games, such as double-or-nothing challenges or rock-paper-scissors, add variety and interactive engagement. These side features break up the rhythm of standard spins, offering additional chances to win and appealing to players who enjoy a more hands-on, game-like experience beyond traditional slot mechanics.
|
||||||
|
|
||||||
|
## Labubu Win! RTP, Volatility, and Max Win
|
||||||
|
|
||||||
|
The Labubu Win! slot combines medium volatility with multiple RTP settings ranging from 97.42% to 94.41%, depending on the mode. These values shape long-term returns and risk tolerance. A maximum multiplier of 5000× and a capped payout of USD 250,000 define the game’s top-end potential. The next subsections detail these figures by mode and explain their impact on betting strategy and bankroll control.
|
||||||
|
|
||||||
|
Play Free Demo!
|
||||||
|
|
||||||
|
### RTP by Mode (Normal, Buy Feature)
|
||||||
|
|
||||||
|
In the Labubu Win! slot, RTP changes slightly depending on the mode. These figures are based on official game data and help players anticipate long-term returns.
|
||||||
|
|
||||||
|
| 🎮 Mode | 📊 RTP |
|
||||||
|
| --- | --- |
|
||||||
|
| 🔄 Normal Play | 97.42% – 94.41% |
|
||||||
|
| 🛒 Bonus Buy | 95.76% |
|
||||||
|
|
||||||
|
RTP variation is influenced by feature activation and betting tier. Understanding these differences allows players to choose the mode that best suits their risk tolerance and desired play style.
|
||||||
|
|
||||||
|
### Volatility Level and Impact on Wins
|
||||||
|
|
||||||
|
The Labubu Win! slot has a medium volatility rating (±1.99%), balancing payout frequency and prize size. Medium volatility means you can expect a steady mix of smaller, regular wins and occasional bigger payouts. For extended play, moderate bets help maintain bankroll stability. Players seeking higher rewards can opt for larger stakes but should be prepared for more variance between wins. Adjusting your betting approach to match volatility is key for both long-term sessions and targeted high-payout strategies.
|
||||||
|
|
||||||
|
Start Winning!
|
||||||
|
|
||||||
|
### Max Multiplier and Max Payout
|
||||||
|
|
||||||
|
The Labubu Win! slot offers a maximum achievable multiplier of 5000×, translating to a capped payout of USD 250,000. This top-end potential is typically reached through a combination of high-value symbols, stacked Wilds, and the Green-Blue-Gold card multiplier during bonus rounds. While the max payout is largely theoretical, it reflects the game’s highest possible outcome under optimal conditions. Features like free spins and multiplier synergy significantly boost chances of approaching these top-tier wins.
|
||||||
|
|
||||||
|
## Play Labubu Win! Slot on Your Mobile
|
||||||
|
|
||||||
|
The Labubu Win! slot is fully optimized for iOS and Android devices, maintaining smooth performance across both systems. Players can switch between portrait and landscape modes, with touch-optimized controls ensuring easy navigation and fast spins. The mobile version includes all the same features as desktop play—bonus rounds, multipliers, and mission rewards—offering a consistent and engaging experience for those who prefer to play on the go.
|
||||||
|
|
||||||
|
Get Lucky!
|
||||||
|
|
||||||
|
### Mobile Compatibility (Portrait/Landscape)
|
||||||
|
|
||||||
|
The Labubu Win! slot is designed to adapt seamlessly to different screen orientations and resolutions. In portrait mode, the interface shifts for comfortable single-hand play, with controls positioned for easy thumb access. Landscape mode provides a wider view of the reels and more space for bonus animations. UI elements scale automatically, ensuring symbols remain clear, and menus stay accessible. Touch gestures are smooth and responsive, while performance stability and fast loading times make gameplay on smartphones and tablets both reliable and engaging.
|
||||||
|
|
||||||
|
### Multi-Screen Mode on PC
|
||||||
|
|
||||||
|
When playing the Labubu Win! slot on PC, players can use multi-screen mode to display several game windows at once. This setup allows tracking multiple spins or monitoring bonus features across different instances in real time. It’s especially useful for running Labubu Win! alongside other slots or keeping an eye on high-value rounds. For best results, a modern browser and sufficient hardware resources are recommended to ensure smooth performance and avoid lag during simultaneous gameplay sessions.
|
||||||
|
|
||||||
|
Try Rabubbu Win!
|
||||||
|
|
||||||
|
## Supported Currencies and Betting Ranges
|
||||||
|
|
||||||
|
The Labubu Win! slot supports a wide range of fiat and cryptocurrency options, making it accessible to players worldwide. Betting limits vary from low stakes for casual play to high-stakes tiers for VIPs, ensuring flexibility for different bankroll sizes. The table below shows common currency categories alongside their minimum and maximum bet ranges.
|
||||||
|
|
||||||
|
| 💵 Currency/Tier | 🎯 Bet Range |
|
||||||
|
| --- | --- |
|
||||||
|
| 💱 Fiat Currencies (USD, EUR, JPY, etc.) | 0.20 – 600.00 |
|
||||||
|
| 🪙 Cryptocurrencies (µBTC, µETH, USDT, TRX) | 0.20 – 600.00 |
|
||||||
|
| 👑 VIP Tier | 0.20 – 600.00 (highest limits unlocked) |
|
||||||
|
|
||||||
|
### VIP Betting Tiers
|
||||||
|
|
||||||
|
In the Labubu Win! slot, the VIP tier system unlocks higher maximum betting limits for players meeting specific criteria. Access typically requires completing account verification and participating in the casino’s loyalty or VIP program. At advanced tiers, max bets can reach the game’s upper limits, allowing for significantly larger potential payouts. VIP status may also include exclusive promotions or faster withdrawals. Availability can vary by region, with certain markets imposing restrictions on bet sizes regardless of player tier.
|
||||||
|
|
||||||
|
Claim Free Spins!
|
||||||
|
|
||||||
|
### Cryptocurrency Support
|
||||||
|
|
||||||
|
The Labubu Win! slot accepts a broad range of cryptocurrencies for deposits and wagers, including Bitcoin (µBTC), Ethereum (µETH), USDT, and TRX, along with select alternative coins. Using crypto offers benefits such as faster transaction times, reduced fees, and enhanced privacy compared to traditional payment methods. Betting ranges typically match those of fiat currencies, though bonus eligibility and processing times may differ slightly. This flexibility makes crypto an attractive option for players seeking secure, efficient, and globally accessible gameplay.
|
||||||
|
|
||||||
|
## Available Languages
|
||||||
|
|
||||||
|
The Labubu Win! slot supports 15 languages, ensuring accessibility for a global audience. Options include English, Japanese, French, Spanish, Korean, Thai, Vietnamese, Hindi, Russian, Turkish, Chinese, Indonesian, German, Portuguese (Brazil), and Uzbek. Each version is fully localized, with translated in-game text, menus, and paytable descriptions for clarity. This comprehensive language support allows players from diverse regions to enjoy the game without barriers, improving understanding of rules, features, and payouts. By adapting to multiple markets, Labubu Win! strengthens its appeal and enhances engagement across international player communities.
|
||||||
|
|
||||||
|
Hotdog Gaming Slot!
|
||||||
|
|
||||||
|
## Strategy and Tips for Winning
|
||||||
|
|
||||||
|
In the Labubu Win! slot, thoughtful decisions can enhance both enjoyment and bankroll control. While no approach guarantees wins, using effective betting strategies and maximizing special features can improve overall play quality. The following subsections outline practical ways to adjust stakes, time bonus features, and balance risk versus reward. Always play responsibly, focusing on sustained entertainment and smart bankroll management to make the most of each session.
|
||||||
|
|
||||||
|
### Best Betting Strategies
|
||||||
|
|
||||||
|
The Labubu Win! slot offers flexibility for different playstyles, making it important to choose a betting approach that matches your goals and bankroll. Below are several strategies designed for this game’s medium volatility and bonus features, ranging from low-risk endurance play to high-stake, high-reward sessions. Each method outlines bet sizing, feature targeting, and bankroll allocation so you can select the style that fits your comfort level.
|
||||||
|
|
||||||
|
- Low-Risk Play – Use the minimum or near-minimum bet to extend playtime, taking advantage of frequent smaller wins to sustain bankroll.
|
||||||
|
- Moderate Approach – Bet at a consistent mid-range level to balance hit frequency with the chance for larger payouts.
|
||||||
|
- Feature Targeting – Increase stakes slightly when close to triggering free spins or missions to capitalize on bonus rounds.
|
||||||
|
- High-Risk Play – Use higher bets for fewer spins, aiming for rare high-multiplier wins, but ensure a clear stop-loss limit.
|
||||||
|
|
||||||
|
Test Your Luck!
|
||||||
|
|
||||||
|
### How to Maximize Free Spins and Multipliers
|
||||||
|
|
||||||
|
Free spins and the Green-Blue-Gold card multiplier are the most lucrative features in the Labubu Win! slot. By timing your bets and understanding how these mechanics stack, you can make the most of their potential. The list below provides actionable tips for boosting rewards during these features while keeping risk in check.
|
||||||
|
|
||||||
|
- Bet Boost Before Trigger – Increase bet size slightly when close to hitting Scatter combinations.
|
||||||
|
- Use Free Spins for Risk – In free spins, higher multipliers can justify larger stakes without extra cost.
|
||||||
|
- Stack Features – Aim to combine Wilds with multiplier cards for maximum payout potential.
|
||||||
|
- Multiplier Awareness – Track card values during spins and adjust expectations based on visible totals.
|
||||||
|
- Chase Retriggers – Free spins can extend with more Scatters; position bets to benefit from these extra rounds.
|
||||||
|
|
||||||
|
Labubu Adventure!
|
||||||
|
|
||||||
|
## Pros and Cons of Labubu Win! Online Slot
|
||||||
|
|
||||||
|
The Labubu Win! slot combines strong visual design with the charm of its signature character, supported by distinctive features like the Green-Blue-Gold card multiplier and the Mission Bonus System. Players benefit from broad accessibility, multi-language support, and varied betting ranges. On the downside, medium volatility may not appeal to those seeking constant big wins, and certain features, like high multipliers, occur infrequently. This balance makes the game appealing to a wide audience but best suited for players who enjoy a mix of consistency and excitement.
|
||||||
|
|
||||||
|
Free Spin Mode!
|
||||||
|
|
||||||
|
## Final Thoughts
|
||||||
|
|
||||||
|
The Labubu Win! slot delivers a memorable blend of engaging visuals, creative mechanics, and solid payout potential. Standout elements include its multiplier-based gameplay, mission rewards, and adaptability across devices. It caters to both casual players and those chasing bigger wins, offering a medium volatility profile that balances entertainment and reward opportunities. For the best experience, new players should start in demo mode to explore its features risk-free before playing for real money, ensuring they understand the game’s rhythm and strategic possibilities.
|
||||||
|
|
||||||
|
Play & Collect!
|
||||||
|
|
||||||
|
## Labubu Win! Slot FAQs Introduction
|
||||||
|
|
||||||
|
This FAQ section addresses the most common questions players have about the Labubu Win! slot. Each answer is concise and factual, helping readers quickly locate the details they need. Some responses may differ depending on regional regulations or the casino platform used, ensuring that guidance is relevant to each player’s location and gaming environment.
|
||||||
|
|
||||||
|
#### How do I trigger free spins in the Labubu Win! slot?
|
||||||
|
|
||||||
|
Free spins activate when you land three, four, or five Scatter symbols, awarding 10, 15, or 20 spins respectively. During this mode, six multiplier cards are drawn per spin, increasing payout potential. Additional Scatters can retrigger the feature for extended play without extra cost.
|
||||||
|
|
||||||
|
#### What is the maximum win possible in the Labubu Win! slot?
|
||||||
|
|
||||||
|
The game’s maximum win is capped at 5000× your stake, which equals USD 250,000 at the highest bet. Achieving this typically involves stacking high-value symbols, Wilds, and maximum Green-Blue-Gold multiplier combinations, especially during bonus rounds. While rare, these top-tier wins reflect the slot’s highest payout potential.
|
||||||
|
|
||||||
|
#### Can I play the Labubu Win! slot on mobile devices?
|
||||||
|
|
||||||
|
Yes. The Labubu Win! slot is fully optimized for iOS and Android, supporting portrait and landscape modes. The interface adapts for smooth navigation, with touch-optimized controls and stable performance. All desktop features, including free spins, multipliers, and mission bonuses, are available for a consistent mobile gaming experience anywhere.
|
||||||
|
|
||||||
|
#### Does the Labubu Win! slot support cryptocurrency bets?
|
||||||
|
|
||||||
|
Yes. Players can wager using cryptocurrencies such as Bitcoin (µBTC), Ethereum (µETH), USDT, and TRX, among others. Crypto deposits often process faster, with lower fees and added privacy compared to fiat. Betting ranges are generally the same as with traditional currencies, though bonus eligibility may differ by casino.
|
||||||
|
|
||||||
|
#### Is there a demo mode for the Labubu Win! slot?
|
||||||
|
|
||||||
|
Most casinos offering the Labubu Win! slot provide a free demo mode. This allows players to explore gameplay, features, and payouts without risking real money. It’s a recommended way to understand volatility, bonus triggers, and betting options before transitioning to real-money play, especially for first-time players.
|
||||||
|
|
||||||
|
RESPONSIBLE GAMING: labubugame.org promotes safe and responsible gambling and urges its partners to follow the same principles. Playing at online casinos should be fun, not a source of financial stress. Step away when needed to maintain control of your gambling habits.
|
||||||
|
|
||||||
|
PLAY RESPONSIBLY: labubugame.org is an independent platform with no affiliation to the sites we feature. Always verify that you meet local legal requirements before gambling. Our content is for informational purposes only. Clicking links may lead to third-party sites—we assume no responsibility for their content or outcomes.
|
||||||
|
|
||||||
|
18+, New Customers Only, T&C apply, Play Responsibly
|
||||||
|
|
||||||
|
Copyright 2026 © labubugame.org | Email: info@labubugame.org
|
||||||
|
|
||||||
|
© Copyright 2026 Labubu Win!
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user