Suport pentru POLi, PayID, transfer bancar și AUD

Introducere

Jucătorii australieni preferă metodele de plată locale: transferuri bancare instantanee prin POLi, PayID/Osko sub NPP și o bancă tradițională de transfer, toate în AUD. Este important ca operatorul să asigure integrarea fără probleme, procesarea instantanee, respectarea reglementărilor și o arhitectură fiabilă.

1. Prezentare generală a metodelor de plată

1. Plăți POLi

OAuth-utilizator de autorizare prin interfața bancară, fără carduri și, în plus, coduri SMS.
Depozit instant, potrivit pentru depozite.

2. PayID/Osko (NPP)

Traducerea prin identificator (e-mail, telefon), standardul de rețea NPP oferă calcul în câteva secunde.
Necesită integrare cu PSP care sprijină noua platformă de plăți din Australia.

3. Transfer bancar (BPAY/transfer direct)

BPAY: generarea codului Biller și a referinței clientului, plata se face de către utilizator în banca Internet; înscriere până la 24 de ore.
Transfer direct AUD: transfer SWIFT/IBAN, potrivit pentru cantități mari, timp de procesare 1-3 zile lucrătoare.

4. Moneda AUD

Toate operațiunile din AUD: afișare corectă, stocare în baza de date, rotunjire la cenți ('DECIMAL (12. 2)').

2. Arhitectură de integrare

„” sirenă
flowchart LR
Jucător -- >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: validare, limitare a ratei, rutare către PaymentService.
PaymentService: punct unificat pentru toate metodele AUD, stochează 'paymentId',' metodă ',' status ',' metadate '.
BillingService: modul pentru conturile BPAY și starea de votare.
TranzacțieService: tranzacțiile ACID actualizează operațiunile de soldare și jurnal.
AuditDB: stocarea imuabilă a jurnalelor de cerere și de răspuns.

3. Implementarea POLi

1. Iniţiere:
  • "'http
  • POST/api/payments/poli/init
  • {
  • „suma”: 100. 00,
  • „monedă”: „AUD”,
  • „returnUrl':” https ://casino. com/poli/callback"
  • }
  • ```

→ '{paymentId, poliUrl}'

2. Redirecționarea jucătorilor:
  • Jucătorul este redirecționat către "poliUrl', se loghează la bancă, confirmă plata.

3. Prelucrarea broșurilor web:
  • "'http
  • POST/api/payments/poli/callback
  • Antet: Semnătură X
  • Corp: {paymentId, status, bankTransactionId}
  • ```

Verific HMAC prin „X-Signature”.
Actualizare „stare”: „în așteptarea” → „aprobat ”/„ refuzat”.
Când 'aprobat' - start 'TransactionService. credit (playerId, cuantum) '.

4. Implementarea PayID/Osko

1. Iniţiere:
  • "'http
  • POST/api/payments/payid/init
  • {
  • „payId':” user @ example. com',
  • „suma”: 250. 00,
  • „monedă”: „AUD”,
  • „Descriere”: „Casino depozit”
  • }
  • ```

→ '{paymentId, transactionRef}'

2. Notificare prin carti web:
  • PSP шлёт 'POST/api/payments/payid/callback {paymentId, status}'.

Verificare similară a semnăturii.
Statusuri: 'în așteptare', 'stabilit', 'eșuat'.

5. Implementarea BPAY și a transferului bancar

1. Generarea contului BPAY:
  • "'http
  • POST/api/payments/bpay/generate
  • {„suma”: 500. 00 }
  • ```

→ '{billerCode, customerRef, expirationDate}'

2. Statusuri de votare:
  • 'GET/api/payments/bpay/status? billerCode = & customerRef = 'la fiecare 15 minute.
  • При 'PAID' - actualizare 'aprobat', fonduri de credit.

3. Transfer bancar direct:
  • Maparea detaliilor contului (SWIFT, BSB, Cont) în UI.
  • Tranzacțiile sunt reconciliate manual sau automat prin extrase de cont primite prin SFTP.

6. Localizare și UX

Formatare:
  • "'js
  • nou Intl. NumberFormat ('en-AU', {style: 'valută', valută: 'AUD'}). format (1000)
  • //" A $1,000. 00"
  • ```
  • UI:
    • Selectarea metodei în depozit: POLi, PayID, BPAY, icoane de transfer bancar.
    • Descrierea termenilor și comisioanelor în fiecare metodă.
    • Verificare înainte de prima intrare: KYC/AML.

    7. Securitate și toleranță la erori

    TLS 1. 2 + pentru toate API-urile și Webhooks.
    Circuit Breaker (Resilience4j) pentru apeluri PSP, dezactivarea metodei atunci când rata de eroare este> 5%.
    Încercați din nou logica cu backoff exponențial în caz de eșecuri temporare.
    Traseu de audit: toate evenimentele și tranzacțiile de tip webhook sunt stocate timp de cel puțin 7 ani, conform reglementărilor.

    8. Testare

    Moduri Sandbox:
    • POLi: "poli. sandbox. domain 'with fake' test _ user 'tokens.
    • PSP: credite de testare de la furnizorii PayID.
    • teste E2E (Cypress): script-uri: inițiați → imulați callback → verificați echilibrul.
    • Testarea încărcării (k6): simularea a 1000 de depozite concurente de către POLi și PayID.

    Concluzie

    Integrarea POLi, PayID/Osko și transferurile bancare tradiționale în AUD necesită un singur PaymentService, procesarea de încredere a cârligelor web, localizarea formatului și arhitectura tolerantă la erori cu întrerupător de circuit și mecanisme de încercare din nou. Această abordare asigură depozite rapide, un grad ridicat de conformitate CR și australian.