Nedenfor kan du se et illustrativt eksempel på et callback-forløb.
Efterfølgende er der en beskrivelse af forløbet.
1 | En kunde betaler i en online forretning. Betalingsoplysningerne sendes til Bamboras betalingsserver. Blandt betalingsoplysningerne er der en accepturl og en callbackurl. Det er vigtigt, at ordren lagres i forretningens database, inden betalingen hæves. Ellers mister du ordreinformationen i tilfælde af kommunikationsproblemer. |
2 | Betalingen godkendes af Bambora, og der oprettes et svar til forretningens callbackurl, som sættes i kø på Bamboras server. Hvis instantcallback er sat til 0, sker kaldet asynkront, ellers vil det ske med det samme (inden kunden sendes til accepturl). |
3 | Kunden sendes til forretningens accepturl og får vist en ordrebekræftelse. Det er nu ikke længere nødvendigt at opdatere ordren i systemet eller sende en ordrebekræftelse, da dette sker senere i processen gennem callbackurl'en. |
4 | Hvert minut kalder Bamboras callback-server de modtagere, der er på kø. Der kan dog gå længere tid ved massiv trafik. Derfor er det vigtigt, at forretningen ikke forventer callbacks inden for et bestemt tidsinterval, eller inden accepturl’en kaldes. Sidstnævnte er værd at bemærke, da hele processen sker asynkront. |
5 | Callbacks sendes til forretningens callbackurl. Den samme information sendes som GET-parametre til forretningens accepturl. Informationen er bl.a. ordre-ID, tidsstempel, beløb, valutakode, svindelkontrol, MD5-tjek, m.m. |
6 | Hvis der opstår en fejl i callback-forløbet, vil Bamboras server forsøge kaldet igen efter en time. Fejl kan f.eks. opstå, hvis serveren ikke kan få adgang til forretningens callbackurl, eller hvis der er en fejl i forretningens system (http-kode 404, 500, m.fl.). Generelt ser callback-serveren alt undtagen http-kode 200 som en fejl. Http-kode 200 betyder OK. |