# Kontrolní seznam QA (/cs/online/getting-started/checklist)



Projděte tento kontrolní seznam v [sandboxu](./testing) a před přijímáním plateb v ostrém provozu dokončete kontroly pro produkční prostředí. Seznam
pokrývá výsledky plateb, ověření, opakované pokusy, konfiguraci a zabezpečení. Každou kontrolu po ověření zaškrtněte.

<ChecklistProgress />

## 1. Výsledky plateb [#1-payment-outcomes]

<ChecklistItem id="OP-PO-1" code="PO-1" title="Úspěšná platba">
  Zaplaťte kartou 

  `4242 4242 4242 4242`

  . Načtená relace má 

  `paymentStatus: successful`

   a objednávka je vyřízena právě jednou.
</ChecklistItem>

<ChecklistItem id="OP-PO-2" code="PO-2" title="Zamítnutá karta">
  Zaplaťte kartou 

  `4916 0184 7581 4056`

  . Objednávka zůstane nezaplacená a opakovaný pokus s kartou pro úspěšnou platbu projde, dokud je relace otevřená.
</ChecklistItem>

<ChecklistItem id="OP-PO-3" code="PO-3" title="3-D Secure">
  Zaplaťte kartou 

  `4012 0018 0000 0016`

   a dokončete ověření (challenge). Vyřízení objednávky čeká na načtený stav.
</ChecklistItem>

<ChecklistItem id="OP-PO-4" code="PO-4" title="Chyba zpracování">
  Použijte testovací kartu pro chybu zpracování určenou pro testovací platební bránu. Objednávka zůstane nezaplacená, přestože karetní formulář kartu přijal.
</ChecklistItem>

<ChecklistItem id="OP-PO-5" code="PO-5" title="Neošetřené stavy">
  Váš kód považuje 

  `unpaid`

  , 

  `failed`

  , 

  `action_needed`

  , 

  `cancelled`

   a neznámé hodnoty za nezaplacené. Viz 

  [Stav platby](/online/integration/api_integration#payment-status)

  .
</ChecklistItem>

## 2. Ověření a vyřízení objednávky [#2-verification-and-fulfillment]

<ChecklistItem id="OP-VF-1" code="VF-1" title="Kontrola na straně serveru">
  Vyřízení objednávky porovnává referenci objednávky, částku, měnu a 

  `paymentStatus`

   s uloženou objednávkou, nikoli s údaji z přesměrování.
</ChecklistItem>

<ChecklistItem id="OP-VF-2" code="VF-2" title="URL úspěchu bez zaplacení">
  Otevřete URL úspěchu přímo, bez zaplacení. Objednávka zůstane nezaplacená.
</ChecklistItem>

<ChecklistItem id="OP-VF-3" code="VF-3" title="Odkaz pro zrušení">
  Klikněte na odkaz pro zrušení v Checkoutu. Objednávka zůstane nezaplacená a váš kód nepředpokládá stav 

  `cancelled`

   jen na základě samotné navigace.
</ChecklistItem>

<ChecklistItem id="OP-VF-4" code="VF-4" title="Opakovaný návrat">
  Po úspěšné platbě dvakrát znovu načtěte návratovou stránku. Objednávka je vyřízena právě jednou.
</ChecklistItem>

## 3. Opakované pokusy a přerušení [#3-retries-and-interruptions]

Pro každý nezávislý případ použijte novou testovací objednávku a relaci. U testů opakovaných pokusů znovu použijte původní objednávku, tělo požadavku a idempotency key.

<ChecklistItem id="OP-RI-1" code="RI-1" title="Ztracená odpověď na vytvoření">
  Ve svém testovacím kódu zahoďte odpověď na vytvoření a požadavek zopakujte se stejným 

  `Idempotency-Key`

   a tělem. Vrátí se původní relace a druhá se nevytvoří.
</ChecklistItem>

<ChecklistItem id="OP-RI-2" code="RI-2" title="Změněné tělo">
  Použijte klíč znovu s jiným tělem. API vrátí HTTP 409 a váš kód to nepovažuje za novou relaci.
</ChecklistItem>

<ChecklistItem id="OP-RI-3" code="RI-3" title="Zákazník se nevrátí">
  Zaplaťte a zavřete kartu prohlížeče dřív, než dojde k návratu. Vaše úloha pro odsouhlasení načte uloženou relaci a zaznamená platbu právě jednou.
</ChecklistItem>

<ChecklistItem id="OP-RI-4" code="RI-4" title="Časový limit při zjišťování stavu">
  Navoďte vypršení časového limitu při načítání stavu. Vaše aplikace si ponechá ID relace, nechá výsledek nevyřešený a nevytvoří náhradní relaci.
</ChecklistItem>

<ChecklistItem id="OP-RI-6" code="RI-6" title="Nahrazená relace">
  Vytvořte druhou relaci pro stejnou nezaplacenou objednávku. První URL hlásí 

  `expired`

   a nelze přes ni zaplatit. Po zaplacení objednávky vrátí vytvoření další relace HTTP 409.
</ChecklistItem>

<ChecklistItem id="OP-RI-5" code="RI-5" title="Vypršení relace">
  Počkejte, až uplyne 

  `expiresAt`

   (30 minut), a URL znovu otevřete. Žádnou novou platbu nelze zahájit a objednávka zůstane nezaplacená.
</ChecklistItem>

## 4. Nastavení Checkoutu [#4-checkout-settings]

<ChecklistItem id="OP-CS-1" code="CS-1" title="Schválený obchodník">
  Každý obchodník, pro kterého přijímáte platby, je v tabulce 

  **Checkout merchants**

   ve stavu 

  **Ready**

  .
</ChecklistItem>

<ChecklistItem id="OP-CS-2" code="CS-2" title="Návratové cíle">
  Výchozí URL úspěchu a zrušení jsou nastaveny pro přihlašovací údaje, které používáte (výchozí hodnoty organizace pro Secret key, nastavení obchodníka pro klíč obchodníka), používají HTTPS a jejich přesné originy jsou uvedeny v seznamu 

  **Allowed websites**

   těchto přihlašovacích údajů.
</ChecklistItem>

<ChecklistItem id="OP-CS-3" code="CS-3" title="Přepsání pro jednotlivé relace">
  Každé 

  `successUrl`

   nebo 

  `cancelUrl`

  , které odešlete, odpovídá nakonfigurovanému originu.
</ChecklistItem>

<ChecklistItem id="OP-CS-4" code="CS-4" title="Peněženky">
  Apple Pay a Google Pay jsou zapnuté nebo vypnuté podle záměru. Google Pay v ostrém provozu má nakonfigurované Google Pay merchant ID.
</ChecklistItem>

<ChecklistItem id="OP-CS-6" code="CS-6" title="Peněženky ve vložených platbách">
  Celková částka v peněžence odpovídá objednávce na serveru. Změna dopravy nebo slev ji aktualizuje. Zrušení v peněžence ponechá checkout dostupný a čekající platby blokují další platbu.
</ChecklistItem>

<ChecklistItem id="OP-CS-5" code="CS-5" title="Branding">
  Barva a logo vypadají v 

  **Checkout preview**

   správně v rozvržení pro počítač i pro mobil.
</ChecklistItem>

## 5. Zabezpečení [#5-security]

<ChecklistItem id="OP-SE-1" code="SE-1" title="Klíč na serveru">
  Váš checkout klíč obchodníka nebo Secret key organizace je pouze v konfiguraci serveru, nikdy v kódu prohlížeče, balíčcích aplikace ani v systému správy verzí.
</ChecklistItem>

<ChecklistItem id="OP-SE-2" code="SE-2" title="Částky určuje server">
  Částka, měna a ID objednávky pocházejí z vaší uložené objednávky, nikdy z prohlížeče.
</ChecklistItem>

<ChecklistItem id="OP-SE-3" code="SE-3" title="Endpointy pro vložené platby">
  Pokud používáte vložené platby, jsou 

  `prepare`

   a 

  `submit`

   vázány na autentizovaný checkout nebo podepsanou HTTP-only cookie a originy měnících požadavků se ověřují.
</ChecklistItem>

<ChecklistItem id="OP-SE-4" code="SE-4" title="Content Security Policy">
  Pokud používáte vložené platby, vaše CSP povoluje originy skriptů a rámců Tapaya a ověření 3-D Secure v jejím rámci stále fungují.
</ChecklistItem>

## 6. Konfigurace sandboxu [#6-sandbox-configuration]

<ChecklistItem id="OP-PR-1" code="PR-1" title="Sandboxové API">
  `TAPAYA_CHECKOUT_API_URL`

   ukazuje na 

  `https://api.sandbox.tapaya.com`

  .
</ChecklistItem>

<ChecklistItem id="OP-PR-2" code="PR-2" title="Sandboxový klíč">
  Integrace používá sandboxový checkout klíč obchodníka nebo Secret key organizace načtený z konfigurace serveru.
</ChecklistItem>

<ChecklistItem id="OP-PR-3" code="PR-3" title="Úloha pro odsouhlasení">
  Úloha, která načítá nevyřešené relace, je naplánována ve vašem testovacím prostředí.
</ChecklistItem>

## 7. Připravenost na produkci [#7-production-readiness]

<ChecklistItem id="OP-LV-1" code="LV-1" title="Připravenost obchodníka">
  Obchodník v ostrém provozu dokončil onboarding s online platbami, získal schválení zpracovatele a má nakonfigurovanou platební bránu. V nastavení Checkoutu je obchodník ve stavu 

  **Ready**

  .
</ChecklistItem>

<ChecklistItem id="OP-LV-2" code="LV-2" title="Přihlašovací údaje pro ostrý provoz">
  Server používá produkční přihlašovací údaje a 

  `https://api.tapaya.com`

  . Integrace přes SDK nastavují 

  `TAPAYA_ENVIRONMENT=production`

  . Sandboxové klíče a testovací karty se pro platby v ostrém provozu nepoužívají.
</ChecklistItem>

<ChecklistItem id="OP-LV-3" code="LV-3" title="Peněženky v ostrém provozu">
  Domény obchodů pro Apple Pay jsou aktivní. Google Pay v ostrém provozu má nakonfigurované merchant ID. Podporované peněženky dokončí platbu a po zrušení fungují dál.
</ChecklistItem>

<ChecklistItem id="OP-LV-4" code="LV-4" title="Odsouhlasení v ostrém provozu">
  Produkční návratové URL, ověření na serveru, vyřízení objednávky i úloha pro odsouhlasení používají produkční konfiguraci.
</ChecklistItem>

<ChecklistProgress />

<Callout title="Schválení" type="tip">
  Dokončete testy v sandboxu a kontroly připravenosti na produkci. Tlačítkem **Reset** zahájíte nový čistý průchod, protože zaškrtnutí z dřívějších kol testování zůstávají uložená v tomto prohlížeči.
</Callout>
