GH GambleHub

按货币分类

按货币目录是内容和价格目录的一种变体,其中显示的价格,限额,奖金,最低赌注,头奖和促销文本均适合玩家/tenant/地区货币。目的是提供正确的价格和规则,而无需逻辑共计,并且由于"即时"转换而没有风险。

关键影响:
  • UX:自然投注步骤和"美丽"价格(₺9。99, R$5, €0.20).
  • 收入:由于课程,没有利润率"渗透"的确切限制和助推器。
  • 合规性:符合当地规则(许可证、税收、年龄/地理)。

1)数据模型: 共享"面额"和"表示"

基本价格(面值):用于结算的单一国内货币"PLN"/"EUR"/"USD"。
显示价格(视图):根据+FX+四舍五入+加价/折扣(spread/fees)计算。
政策:四舍五入规则,投注步骤,地雷/最大限额,头奖,奖金金额和wager-按货币调整。

迷你电路(简化):
yaml price_model:
base_currency: "EUR"
items:
game_spin_min:
base: 0. 10 policy: "stake_min"
game_spin_step:
base: 0. 10 policy: "stake_step"
jackpot_seed:
base: 10000 policy: "jackpot_amount"
policies:
stake_min:
per_currency:
EUR: {round: "ceil_to_step", step: 0. 10}
TRY: {round: "ceil_to_step", step: 1. 00}
BRL: {round: "ceil_to_step", step: 0. 50}
stake_step:
per_currency:
EUR: {step: 0. 10}
USD: {step: 0. 10}
CLP: {step: 50}
jackpot_amount:
per_currency:
EUR: {round: "nearest_100"}
MXN: {round: "nearest_1000"}

2)课程来源(FX)和"新鲜"

FX服务-转换的单一真理点:
  • 课程提供者:主课程和备用课程;刷新率(例如,波动性每分钟,稳定性每15分钟)。
  • Bounded staleness:SLA"课程不超过Δ t"(例如p95 ≤ 5分钟)。
  • 利差和佣金:可配置per tenant/region/currency。
  • Freeze windows:"冻结"比赛/锦标赛/促销窗口的课程,以便价格不会"跳跃"。
  • 审计:带有"valid_from/valid_to"的FX版本日志以播放支票。
FX发行示例:
json
{
"as_of":"2025-10-31T12:00:00Z",
"base":"EUR",
"rates": { "TRY":34. 10, "BRL":5. 42, "MXN":19. 1, "UAH":43. 6, "USDT":1. 00 },
"spread_bps": { "TRY":120, "BRL":60 },
"fees_pct": { "default":0. 15 }
}

3)四舍五入和"美丽"的价格便宜

在FX和利差之后四舍五入:
  • 价格/套餐:'99','9.99`, `4.90'(心理点)。
  • 利率和步骤:"ceil_to_step"到货币步骤(₺1,中电50美元)。
  • 奖金:四舍五入到凭证步骤(R $1/ ₺5)。
  • 操作顺序:'raw=base fx(1+spread)(1+fee)'→ 'rounded=round_policy (raw)' → 'min/max clamp'。

反例子:利率的"银行四舍五入"可以产生"丑陋"的步骤--使用明确的政策。

4)限值,min/max和头奖

Min/Max per currency:考虑当地法律和RGS限制。
头奖:如果提供商持有其货币(如EUR)的头奖,则显示本地化等价物(举报人)或存储纸币池。
货币步骤:CLP/JPY不带标记-所有限制都是整数。

限制表示例:
sql
CREATE TABLE currency_limits (
tenant_id text,
currency  text,
feature  text,  -- spin_min, spin_max, deposit_min, payout_max, jackpot_min value   numeric,
step    numeric,
PRIMARY KEY (tenant_id, currency, feature)
);

5)按货币计算的奖金和凭证

奖金面额:按货币配置(额头不是"重新计票")。
Wager:以乘数(x 30)或货币形式存储;避免溷淆。
获胜帽/缓存:也按货币计算。
市场营销文本:数字本地化和没有硬码的模式货币。

yaml bonus:
welcome_pack:
EUR: {amount: 100, wager_x: 35, cap: 500}
BRL: {amount: 500, wager_x: 40, cap: 2500}
TRY: {amount: 2500, wager_x: 40, cap: 12500}

6)提供商限制(RGS/PSP)

RGS: 某些游戏不适用于"crypto"/本地货币;部分提供商需要固定最低限度(例如,0欧元。20).

PSP:支付方法取决于货币(PIX ↔ BRL,PayID ↔ AUD,Papara ↔ TRY);存款/提款限额也不同。
规则:目录/陈列柜在展示前按货币和管辖范围过滤游戏和付款方式。

7)建筑轮廓

货币政策商店(CP):每个货币的规则表(步骤、限制、价格、四舍五入)。
FX服务:课程缓存,版本和SLA新鲜度。
制表符目录:生成Read Models per currency(投影)。
阅读层API:拉出现成的投影;在UI热路上不进行飞行转换。
Outbox →投影:FX/策略更改 → "CurrencyPolicyUpdated/FXUpdated"事件→增量店面升级。

投影分区图为:

read_catalog_{tenant}_{region}_{currency}

货币分期交易加快了refresh和指标收集。

8)按货币投影(示例)

sql
CREATE TABLE read_catalog_currency (
tenant_id  text,
region   text,
currency  text,
game_id   text,
price_min numeric, -- displayed min-rate price_step numeric,
jackpot   numeric,
bonus_badge text,
as_of    timestamptz,
PRIMARY KEY (tenant_id, region, currency, game_id)
);

更新-来自目录+FX/Policy事件的等效的"UPSERT"。

9)格式和位置

符号/代码:"₺/TRY","R $/BRL","USDT"(根据UX政策,对于加密免税或2个标志)。
分组和十进制分隔符:取决于"本地"(ru_RU,tr_TR,pt_BR)。
RTL/阿拉伯语地区:对货币符号正确性的单独检查。

10)缓存和性能

每个货币的目录响应缓存30-120 c;在响应中给出"as_of" FX指示符。
残疾:"FXUpdated"/"PolicyUpdated"/"GameUpserted"事件→目标缓存密钥清除。
分割光标,这样卡片顺序就不会在价格的小升级中"跳跃"。

11)可观察性和SLO

度量标准:
  • `catalog_p95_ms` по валютам, `fx_freshness_ms` (p50/p95/p99), `policy_refresh_latency_ms`.
  • "丑陋"价格的份额(不在步骤中),由于限制而被拒绝交易的份额。
  • 支票外部(实际借记发生的地方)的"展示柜与计算"差异。
Alerts:
  • FX比SLA大,四舍五入错误增加,PSP故障激增。
  • RGS最低限度和店面最低限度的不匹配。

12)合规性,税收和住所

Per currency ≠ per country:关注"currency+geo+license"的组合。
税收规则/票据是货币政策和支票。
Residency:当地货币的数据和结算-在相关区域。

13)测试

基于property: "转换和四舍五入后的不变";«min ≤ value ≤ max».

金价:回归的参考货币/价格集。
Chaos FX:"跳跃"课程,freeze windows,切换FX提供商。
E2E:店面数额和注销总额之间的对比;tolerance ≤ 0。01个货币单位(或1个步骤)。

14)典型错误

在阅读API中即时重新计算→不稳定的UX和高的p99。
忽略货币的步骤(CLP/JPY)→"半空白"和RGS/PSP故障。
"按习惯"四舍五入(银行家回旋)而不是明确的政策规则。
不将FX版本记录在支票中→无法解决争议。
通过FX的单一奖励面额→本地市场的"奇怪"数字。
在不透明的情况下将佣金隐藏在FX中是索赔和罚款的风险。

15)快速食谱

TRY/BRL: Step ₺1/R $0。50、min赌注向上四舍五入,包裹的"美丽"价格。
Crypto (USDT/USDC): step $0。10、四舍五入到最近的步骤,显示中没有佣金(但在支票中可见)。
High-Volatility FX:比赛/促销的冻结功能;偏差>基本价格的X%时的差异。
多重特南特:品牌的不同争吵/步骤;fairness在per tenant投影计算中。

16)配置示例(单一真相来源)

yaml catalog_currency:
base_currency: EUR fx_sla_ms: 300000 # 5 minutes rules:
- currency: "TRY"
stake_step: 1. 00 stake_min: 5. 00 display_round: "ceil_to_step"
psychological_points: [9, 19, 29, 49, 99]
psp_methods: ["Mefete","Papara","Crypto"]
- currency: "BRL"
stake_step: 0. 50 stake_min: 1. 00 display_round: "ceil_to_step"
psychological_points: [4. 90, 9. 90, 19. 90, 49. 90]
psp_methods: ["PIX","Boleto","Cards"]
- currency: "CLP"
stake_step: 50 stake_min: 200 display_round: "ceil_to_step"
psp_methods: ["WebPay","Cards"]
jackpot:
display_policy:
EUR: "nearest_100"
MXN: "nearest_1000"
bonuses:
welcome:
EUR: {amount: 100, wager_x: 35}
BRL: {amount: 500, wager_x: 40}
TRY: {amount: 2500, wager_x: 40}

17)售前支票清单

  • 每个支票/事件中的单一基本货币和FX版本。
  • 四舍五入/步骤/限制策略是按货币设置的,并覆盖在测试中。
  • 已准备好每个货币目录的投影;热路不进行转换。
  • 大奖和奖金按货币正确显示/滴落。
  • PSP方法按货币过滤;限值与店面相同。
  • FX的新鲜度和Alerts的SLA定制;freeze windows用于波动事件。
  • 货币数字和符号的本地化;没有硬码的促销模式。
  • 策略更改/FX审核;支票的可重复性。
  • multi-tenant/Region:数据隔离,不同的传播和限制。
  • 事件花花公子:FX跳跃,RGS最低不匹配,PSP极限故障。

结论

按货币目录是工程学科,而不是"乘以课程"。将面额和表示分开,集中FX和舍入策略,实现按货币投影,测量新鲜度。然后,店面将是快速,可预测和诚实的,业务可以防止利润率的隐性损失和本地市场的监管惊喜。

Contact

联系我们

如需任何咨询或支持,请随时联系我们。我们随时准备提供帮助!

开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

您的姓名 可选
Email 可选
主题 可选
消息内容 可选
Telegram 可选
@
如果填写 Telegram,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。