POLi, PayID, банктік аударым және AUD қолдау

Кіріспе

Австралиялық ойыншылар жергілікті төлем әдістерін таңдайды: POLi, PayID/Osko арқылы NPP және дәстүрлі трансфер-банк арқылы жылдам банктік аударымдар, барлығы AUD-да. Оператор үшін жіксіз интеграцияны, жедел өңдеуді, реттеулерге сәйкестікті және сенімді архитектураны қамтамасыз ету маңызды.

1. Төлем әдістеріне шолу

1. POLi Payments

OAuth-пайдаланушыны банк интерфейсі арқылы, картасыз және қосымша SMS-кодсыз авторизациялау.
Қаражатты дереу есепке алу депозиттер үшін жарамды.

2. PayID/Osko (NPP)

Идентификатор бойынша аудару (email, телефон), желілік NPP стандарты секундтар ішінде есептеуді қамтамасыз етеді.
Australia's New Payments Platform қолдайтын PSP-мен интеграцияны талап етеді.

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 depositAPI-Gateway
API-Gateway --> PaymentService
PaymentService -->init POLiPOLi-API
PaymentService -->init PayIDPSP-API
PaymentService -->generate BPAYBillingService
POLi-API -->webhookPaymentService
PSP-API -->webhookPaymentService
BillingService -->polling / webhookPaymentService
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 }
  • ```

'X-Signature' бойынша HMAC тексеру.
'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. Тікелей банктік аударым:
  • UI-де шот деректемелерін (SWIFT, BSB, Account) көрсету.
  • Операциялар SFTP арқылы incoming bank statements арқылы қолмен немесе автоматты түрде салыстырылады.

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.

    7. Қауіпсіздік және істен шығуға төзімділік

    TLS 1. 2 + барлық API және Webhook үшін.
    PSP шақырулары үшін Circuit Breaker (Resilience4j), error-rate> 5% кезінде әдісті өшіру.
    Уақытша ақаулықтар кезінде экспоненциалды backoff бар Retry-logic.
    Audit Trail: барлық webhook-оқиғалар мен транзакциялар кем дегенде 7 жыл реттеулер бойынша сақталады.

    8. Тестілеу

    Sandbox режимдері:
    • POLi: `poli. sandbox. 'test _ user' жалған белгілерімен domain '.
    • PSP: PayID провайдерлерінің тест кредтері.
    • E2E-тесттер (Cypress): сценарийлер: бастау → эмуляция callback → балансты тексеру.
    • Load Testing (k6): POLi және PayID әдісімен 1000 concurrent депозиттерін имитациялау.

    Қорытынды

    POLi, PayID/Osko және AUD-дағы дәстүрлі банк аударымдарын біріктіру бірыңғай PaymentService, webhook-ты сенімді өңдеу, форматтарды оқшаулау және circuit breaker және retry-тетіктері бар істен шығуға төзімді архитектураны талап етеді. Мұндай тәсіл жылдам депозиттерді, жоғары CR және австралиялық талаптарға сәйкестікті қамтамасыз етеді.