Support POLi, PayID, virement bancaire et AUD
Introduction
Les joueurs australiens préfèrent les méthodes de paiement locales : les virements bancaires instantanés via POLi, PayID/Osko dans le cadre du NPP et les transferts bancaires traditionnels, le tout à l'AUD. Il est important pour l'opérateur de garantir une intégration transparente, un traitement instantané, une conformité aux réglementations et une architecture fiable.
1. Présentation des méthodes de paiement
1. POLi Payments
Autorisation OAuth de l'utilisateur via l'interface de la banque, sans cartes et en plus des codes SMS.
Crédité instantanée de fonds, convient pour les dépôts.
2. PayID/Osko (NPP)
Traduction par ID (email, téléphone), la norme réseau NPP assure le calcul en quelques secondes.
Nécessite une intégration avec le PSP qui prend en charge la plate-forme New Payments Australia.
3. Virement bancaire (BPAY/transfert direct)
BPAY : génération de Code Biller et Référence Client, le paiement est effectué par l'utilisateur dans une banque en ligne ; inscription jusqu'à 24 heures
Transfert direct AUD : Transfert SWIFT/IBAN, approprié pour les sommes importantes, temps de traitement 1-3 jours ouvrables.
4. Monnaie AUD
Toutes les opérations dans l'AUD : affichage correct, stockage dans la base, arrondi aux cents (« DECIMAL (12,2) »).
2. Architecture d'intégration
```mermaid
flowchart LR
API-Gateway : validation, rate-limiting, routage vers PaymentService.
PaymentService : point unifié pour toutes les méthodes AUD, stocke 'paymentId', 'method', 'status', 'metadata'.
BillingService : module pour les comptes BPAY et les états de polling.
TransactionService : Les transactions ACID mettent à jour le solde et enregistrent les opérations.
AuditDB : stockage immuable des logs de requête et de réponse.
3. Implémentation POLi
1. Initiation :
→ `{ paymentId, poliUrl }`
2. Redirection du joueur :
3. Traitement Webhook :
Vérification HMAC par « X-Signature ».
Mise à jour 'status' : 'pending' → 'approved '/' declined'.
Dans 'approved', exécutez 'TransactionService. credit(playerId, amount)`.
4. Mise en œuvre de PayID/Osko
1. Initiation :
→ `{ paymentId, transactionRef }`
2. Notification Webhook :
Vérification de signature similaire.
Statuts : 'pending', 'settled', 'failed'.
5. Mise en œuvre de BPAY et virement bancaire
1. Génération du compte BPAY :
→ `{ billerCode, customerRef, expiryDate }`
2. Polling status :
3. Virement bancaire direct :
6. Localisation et UX
Mise en forme :
Les joueurs australiens préfèrent les méthodes de paiement locales : les virements bancaires instantanés via POLi, PayID/Osko dans le cadre du NPP et les transferts bancaires traditionnels, le tout à l'AUD. Il est important pour l'opérateur de garantir une intégration transparente, un traitement instantané, une conformité aux réglementations et une architecture fiable.
1. Présentation des méthodes de paiement
1. POLi Payments
Autorisation OAuth de l'utilisateur via l'interface de la banque, sans cartes et en plus des codes SMS.
Crédité instantanée de fonds, convient pour les dépôts.
2. PayID/Osko (NPP)
Traduction par ID (email, téléphone), la norme réseau NPP assure le calcul en quelques secondes.
Nécessite une intégration avec le PSP qui prend en charge la plate-forme New Payments Australia.
3. Virement bancaire (BPAY/transfert direct)
BPAY : génération de Code Biller et Référence Client, le paiement est effectué par l'utilisateur dans une banque en ligne ; inscription jusqu'à 24 heures
Transfert direct AUD : Transfert SWIFT/IBAN, approprié pour les sommes importantes, temps de traitement 1-3 jours ouvrables.
4. Monnaie AUD
Toutes les opérations dans l'AUD : affichage correct, stockage dans la base, arrondi aux cents (« DECIMAL (12,2) »).
2. Architecture d'intégration
```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 : validation, rate-limiting, routage vers PaymentService.
PaymentService : point unifié pour toutes les méthodes AUD, stocke 'paymentId', 'method', 'status', 'metadata'.
BillingService : module pour les comptes BPAY et les états de polling.
TransactionService : Les transactions ACID mettent à jour le solde et enregistrent les opérations.
AuditDB : stockage immuable des logs de requête et de réponse.
3. Implémentation POLi
1. Initiation :
- ```http
- POST /api/payments/poli/init
- {
- "amount": 100. 00,
- "currency": "AUD",
- "returnUrl": "https: //casino. com/poli/callback"
- }
- ```
→ `{ paymentId, poliUrl }`
2. Redirection du joueur :
- Le joueur est redirigé vers 'poliUrl', autorisé dans la banque, confirme le paiement.
3. Traitement Webhook :
- ```http
- POST /api/payments/poli/callback
- Headers: X-Signature
- Body: { paymentId, status, bankTransactionId }
- ```
Vérification HMAC par « X-Signature ».
Mise à jour 'status' : 'pending' → 'approved '/' declined'.
Dans 'approved', exécutez 'TransactionService. credit(playerId, amount)`.
4. Mise en œuvre de PayID/Osko
1. Initiation :
- ```http
- POST /api/payments/payid/init
- {
- "payId": "user@example. com",
- "amount": 250. 00,
- "currency": "AUD",
- « Descriptif » : « Casino deposit »
- }
- ```
→ `{ paymentId, transactionRef }`
2. Notification Webhook :
- PSP шлёт `POST /api/payments/payid/callback { paymentId, status }`.
Vérification de signature similaire.
Statuts : 'pending', 'settled', 'failed'.
5. Mise en œuvre de BPAY et virement bancaire
1. Génération du compte BPAY :
- ```http
- POST /api/payments/bpay/generate
- { "amount": 500. 00 }
- ```
→ `{ billerCode, customerRef, expiryDate }`
2. Polling status :
- `GET /api/payments/bpay/status? billerCode = & customerRef = 'toutes les 15 minutes.
- При `PAID` — update `approved`, credit funds.
3. Virement bancaire direct :
- Affiche les détails du compte (SWIFT, BSB, Compte) dans l'IU.
- Les transactions sont vérifiées manuellement ou automatiquement par le biais des statuts de la banque incoming via SFTP.
6. Localisation et UX
Mise en forme :
- ```js
- new Intl. NumberFormat('en-AU', { style: 'currency', currency: 'AUD' }). format(1000)
- // "A$1,000. 00"
- ``` UI:
- Choix de la méthode dans le dépôt : icônes POLi, PayID, BPAY, Virement bancaire.
- Description des délais et des commissions sous chaque méthode.
- Vérification avant la première introduction : KYC/AML.
- POLi: `poli. sandbox. domain 'avec les faux tokens' test _ user '.
- PSP : crédits de test auprès des fournisseurs PayID.
- E2E-tests (Cypress) : scripts : initier → émuler callback → vérifier l'équilibre.
- Load Testing (k6) : imitation de 1000 dépôts concurrentiels par la méthode POLi et PayID.
7. Sécurité et tolérance aux pannes
TLS 1. 2 + pour toutes les API et Webhook.
Circuit Breaker (Resilience4j) pour les appels PSP, désactivation de la méthode à un taux d'erreur> 5 %.
Retry-logic avec un backoff exponentiel en cas d'échec temporaire.
Audit Trail : tous les événements webhook et transactions sont stockés pendant au moins 7 ans par réglementation.
8. Tests
Modes sandbox :
Conclusion
L'intégration de POLi, de PayID/Osko et de virements bancaires traditionnels dans AUD nécessite un seul PaymentService, un traitement fiable du webhook, une localisation des formats et une architecture tolérante aux pannes avec un circuit breaker et des mécanismes de retri. Cette approche garantit des dépôts rapides, des CR élevés et la conformité aux exigences australiennes.