Přejít na hlavní obsah

Doporučené postupy

Odpovídá běžné architektuře platebních backendů: tajemství na serveru, celočíselné částky, idempotentní callbacky a jasná sémantika chyb.
Doporučení pro odolné a udržovatelné platební integrace.

1. Přihlašovací údaje jen na serveru

Nikdy nevystavujte clientSecret ani backendové údaje ve frontend bundle.
  • SDK inicializujte jen v backendových službách
  • Údaje čtěte z proměnných prostředí nebo secret manageru
  • Pravidelně rotujte přihlašovací údaje

2. Unikátní čísla objednávek

order_number je unikátní obchodní identifikátor.
  • Vložte interní ID objednávky
  • Vyhněte se náhodným hodnotám bez vazby na vaše systémy
  • Udržujte stabilní mapování mezi objednávkou a ID platby GoPay

3. Částky v minor jednotkách

GoPay odesílá částky v minor jednotkách měny.
  • 10000 minor jednotek CZK = 100,00 CZK
  • Vyhněte se float aritmetice pro částky
  • Preferujte celočíselné výpočty

4. Asynchronní dokončení platby

Vytvoření platby a přesměrování je jen část toku.
  • Uživatel může opustit checkout
  • Návrat z prohlížeče může selhat
  • Konečný stav ověřte na serveru
Doporučený postup:
  1. Vytvořit platbu
  2. Přesměrovat na gw_url
  3. Zpracovat notifikaci na backendu
  4. Ověřit stav pomocí getPayment
  5. Označit objednávku jako zaplacenou až po terminálním úspěšném stavu

5. Rozlišení opakovatelných a neopakovatelných chyb

Používejte metadata GoPayApiError:
  • status — třída HTTP
  • errors — detaily polí
  • endpoint — diagnostika a logy
Strategie:
  • Opakovat přechodné chyby infrastruktury (timeouty, 5xx) s backoffem
  • Neopakovat slepě validační/obchodní chyby (4xx)

6. Sdílet instance klienta

Dlouho žijící instance klienta na konfiguraci obchodníka místo instance na každý request.
  • Lepší využití cache tokenů
  • Méně zátěže na token endpoint
  • Nižší latence běžných operací

7. Ladění timeoutů

timeoutMs podle sítě a infrastruktury:
  • příliš nízké: zbytečná selhání při jitteru
  • příliš vysoké: pomalá zpětná vazba a zaseknuté zdroje
Začněte výchozí hodnotou a upravte podle měření.

8. Vlastní transport pro observabilitu

Vlastní HttpTransport pro:
  • trasovací ID požadavků
  • metriky (latence, stavy)
  • strukturované logy
  • proxy / interní síť
Viz Rozšiřitelnost.

9. Integrační testy obchodního toku

Testy knihovny pokrývají SDK izolovaně; vaše aplikace by měla testovat také:
  • mapování objednávka → platba
  • zpracování callbacku a idempotenci
  • přechody stavů ve vašem datovém modelu

10. Aktualizace verze SDK

  • Připněte gopay-sdk na explicitní semver rozsah (v produkci ne *).
  • Při upgrade čtěte CHANGELOG.md.
  • Po upgrade spusťte integrační testy proti sandboxu.
Viz také Kontrolní seznam pro produkci.