Підтримка POLi, PayID, банківського переказу та AUD
Вступ
Австралійські гравці віддають перевагу локальним платіжним методам: миттєві банківські перекази через POLi, PayID/Osko в рамках NPP і традиційний банк-трансфер, все в AUD. Для оператора важливо забезпечити безшовну інтеграцію, миттєву обробку, відповідність регуляціям і надійну архітектуру.
1. Огляд платіжних методів
1. POLi Payments
OAuth-авторизація користувача через інтерфейс банку, без карт і додатково SMS-кодів.
Миттєве зарахування коштів, підходить для депозитів.
2. PayID/Osko (NPP)
Переклад за ідентифікатором (email, телефон), мережевий стандарт NPP забезпечує розрахунок протягом секунд.
Вимагає інтеграції з PSP, що підтримує Australia's New Payments Platform.
3. Банківський переказ (BPAY/прямий transfer)
BPAY: генерація Biller Code і Customer Reference, оплату проводить користувач в інтернет-банку; зарахування до 24 год.
Прямий AUD-transfer: SWIFT/IBAN переклад, підходять для великих сум, час обробки 1-3 робочих дні.
4. Валюта AUD
Всі операції в AUD: корретне відображення, зберігання в базі, округлення до центів ('DECIMAL (12,2)').
2. Архітектура інтеграції
```mermaid
flowchart LR
API-Gateway: валідація, rate-limiting, маршрутизація до PaymentService.
PaymentService: уніфікована точка для всіх AUD-методів, зберігає'paymentId','method','status','metadata'.
BillingService: модуль для BPAY-рахунків і polling статусів.
TransactionService: ACID-транзакції оновлюють баланс і логують операції.
AuditDB: незмінне сховище логів запитів і відповідей.
3. Реалізація POLi
1. Ініціація:
→ `{ paymentId, poliUrl }`
2. Перенаправлення гравця:
3. Webhook-обробка:
Перевірка HMAC по'X-Signature'.
Оновлення «status»: `pending` → `approved`/`declined`.
При'approved'- запуск'TransactionService. credit(playerId, amount)`.
4. Реалізація PayID/Osko
1. Ініціація:
→ `{ paymentId, transactionRef }`
2. Webhook-повідомлення:
Аналогічна перевірка підпису.
Статуси: `pending`, `settled`, `failed`.
5. Реалізація BPAY та банківського переказу
1. Генерація рахунку BPAY:
→ `{ billerCode, customerRef, expiryDate }`
2. Polling статусів:
3. Прямий банківський переказ:
6. Локалізація та UX
Форматування:
Австралійські гравці віддають перевагу локальним платіжним методам: миттєві банківські перекази через POLi, PayID/Osko в рамках NPP і традиційний банк-трансфер, все в AUD. Для оператора важливо забезпечити безшовну інтеграцію, миттєву обробку, відповідність регуляціям і надійну архітектуру.
1. Огляд платіжних методів
1. POLi Payments
OAuth-авторизація користувача через інтерфейс банку, без карт і додатково SMS-кодів.
Миттєве зарахування коштів, підходить для депозитів.
2. PayID/Osko (NPP)
Переклад за ідентифікатором (email, телефон), мережевий стандарт NPP забезпечує розрахунок протягом секунд.
Вимагає інтеграції з PSP, що підтримує Australia's New Payments Platform.
3. Банківський переказ (BPAY/прямий transfer)
BPAY: генерація Biller Code і Customer Reference, оплату проводить користувач в інтернет-банку; зарахування до 24 год.
Прямий AUD-transfer: SWIFT/IBAN переклад, підходять для великих сум, час обробки 1-3 робочих дні.
4. Валюта AUD
Всі операції в AUD: корретне відображення, зберігання в базі, округлення до центів ('DECIMAL (12,2)').
2. Архітектура інтеграції
```mermaid
flowchart LR
Player --> | initiate deposit | API-Gateway |
---|---|---|
API-Gateway --> PaymentService | ||
PaymentService --> | init POLi | POLi-API |
PaymentService --> | init PayID | PSP-API |
PaymentService --> | generate BPAY | BillingService |
POLi-API --> | webhook | PaymentService |
PSP-API --> | webhook | PaymentService |
BillingService --> | polling / webhook | PaymentService |
PaymentService --> TransactionService | ||
TransactionService --> AuditDB | ||
``` |
API-Gateway: валідація, rate-limiting, маршрутизація до PaymentService.
PaymentService: уніфікована точка для всіх AUD-методів, зберігає'paymentId','method','status','metadata'.
BillingService: модуль для BPAY-рахунків і polling статусів.
TransactionService: ACID-транзакції оновлюють баланс і логують операції.
AuditDB: незмінне сховище логів запитів і відповідей.
3. Реалізація POLi
1. Ініціація:
- ```http
- POST /api/payments/poli/init
- {
- "amount": 100. 00,
- "currency": "AUD",
- "returnUrl": "https: //casino. com/poli/callback"
- }
- ```
→ `{ paymentId, poliUrl }`
2. Перенаправлення гравця:
- Гравець перенаправляється на «poliUrl», авторизується в банку, підтверджує платіж.
3. Webhook-обробка:
- ```http
- POST /api/payments/poli/callback
- Headers: X-Signature
- Body: { paymentId, status, bankTransactionId }
- ```
Перевірка HMAC по'X-Signature'.
Оновлення «status»: `pending` → `approved`/`declined`.
При'approved'- запуск'TransactionService. credit(playerId, amount)`.
4. Реалізація PayID/Osko
1. Ініціація:
- ```http
- POST /api/payments/payid/init
- {
- "payId": "user@example. com",
- "amount": 250. 00,
- "currency": "AUD",
- «Дескріпшен»: "Casino deposit"
- }
- ```
→ `{ paymentId, transactionRef }`
2. Webhook-повідомлення:
- PSP шлёт `POST /api/payments/payid/callback { paymentId, status }`.
Аналогічна перевірка підпису.
Статуси: `pending`, `settled`, `failed`.
5. Реалізація BPAY та банківського переказу
1. Генерація рахунку BPAY:
- ```http
- POST /api/payments/bpay/generate
- { "amount": 500. 00 }
- ```
→ `{ billerCode, customerRef, expiryDate }`
2. Polling статусів:
- `GET /api/payments/bpay/status? billerCode = & customerRef ='кожні 15 хвилин.
- При `PAID` — update `approved`, credit funds.
3. Прямий банківський переказ:
- Відображення реквізитів рахунку (SWIFT, BSB, Account) в UI.
- Операції звіряються вручну або автоматично по incoming bank statements через SFTP.
6. Локалізація та UX
Форматування:
- ```js
- new Intl. NumberFormat('en-AU', { style: 'currency', currency: 'AUD' }). format(1000)
- // "A$1,000. 00"
- ``` UI:
- Вибір методу в депозиті: іконки POLi, PayID, BPAY, Bank Transfer.
- Опис термінів і комісій під кожним методом.
- Верифікація перед першим введенням: KYC/AML.
- POLi: `poli. sandbox. domain'з фейковими токенами'test _ user'.
- PSP: тестові креди у провайдерів PayID.
- E2E-тести (Cypress): сценарії: ініціювати → емулювати callback → перевірити баланс.
- Load Testing (k6): імітація 1000 concurrent депозитів методом POLi і PayID.
7. Безпека і відмовостійкість
TLS 1. 2 + для всіх API і Webhook.
Circuit Breaker (Resilience4j) для PSP-викликів, відключення методу при error-rate> 5%.
Retry-logic з експоненціальним backoff при тимчасових збоях.
Audit Trail: всі webhook-події і транзакції зберігаються 7 років мінімум за регуляціями.
8. Тестування
Sandbox-режими:
Висновок
Інтеграція POLi, PayID/Osko і традиційних банківських переказів в AUD вимагає єдиного PaymentService, надійної обробки webhook, локалізації форматів і відмовостійкої архітектури з circuit breaker і retry-механізмами. Такий підхід забезпечує швидкі депозити, високий CR і відповідність австралійським вимогам.