Možností, jak vlastně použít Stripe pro placení, je docela dost, a na začátku je vcelku obtížné se v tom orientovat. Tenhle článek by mohl pomoci ukázat, jaké možnosti implementace máme k dispozici.
Stripe Checkout
https://stripe.com/en-cz/payments/checkout
https://stripe.com/docs/payments/checkout
https://stripe.com/docs/checkout/integration-builder
Asi první, na co narazíme, je Stripe Checkout. Na stránkách dokumentace najdeme jednoduchou ukázku implementace, a to pro různé typy frontendu (HTML, React, Next.js) i backendu (PHP, Python…).
Vše začíná integrací Stripe knihovny https://github.com/stripe a vložením správného kódu do naší stránky. Po stisknutí tlačítka pro placení jsme přesměrování na stránku https://checkout.stripe.com/..., kde dojde na samotné placení. Tedy o vše se stará Stripe.
Máme zde dvě možnosti, jak implementovat Stripe Checkout: Prebuilt Checkout page a Custom payment flow. Samozřejmě že druhá možnost nám dává větší možnost customizace.
Vlastní integrace pomocí PHP
Na začátku jsem měl představu, že bych měl placení přes Stripe úplně pod vlastní kontrolou, tedy vše by probíhalo v mém aplikace, na mém serveru. I to je možné, stačí hledat např. “how to integrate stripe php“. Takový přístup má ale dvě nevýhody:
- Vše si musíte sami připravit, validovat, kontrolovat … To je asi zbytečná práce navíc.
- Takto vystavené placení by na mě působilo nedůvěryhodně. Pokud by to vypadalo, že moje platební údaje (číslo karty …) si procesuje nějaký web sám, hodně bych se rozmýšlel, jestli mám dál pokračovat.
Stripe Payment links
https://stripe.com/en-cz/payments/payment-links
https://stripe.com/docs/payments/payment-links
Už v minulém díle jsme si ukázali, jak v Stripe Dashboard vytvořit Payment links. Pokud máme nadefinovaný Produkt, můžeme pro něj jednoduše vytvořit odkaz pro platbu, který můžeme dát na web, poslat mailem, nasdílet na sociálních sítích …
Stripe Invoicing - Hosted invoice page
https://stripe.com/en-cz/invoicing
https://stripe.com/docs/invoicing/hosted
Můj preferovaný způsob placení, protože se nejvíce blíží tomu, na co jsme zvyklí. V prvním kroku je třeba vytvořit Invoice (fakturu) pro placení. To můžeme udělat z Dashboradu, ale také pomocí API. Každá Invoice musí mít nastavenou alespoň jednu platební metodu, nejspíše tedy Credit card. URL pro platbu pak bude vypadat https://invoice.stripe.com/... , opět tedy neopustníme důvěryhodnou Stripe doménu.
Stripe Billing
https://stripe.com/en-cz/billing
https://stripe.com/docs/billing
Pomocí Stripe Billing lze nastavit systém plateb za předplatné. Zatím jsem neměl potřebu to zkoumat dál.
Stripe Connect
https://stripe.com/en-cz/connect
Slouží pro napojení aplikací třetích stran.
Stripe API
Vše, co můžeme naklikat ve Stripe Dashboardu, je možné udělat i pomocí API. Stripe nabízí vlastní knihovnu https://github.com/stripe pro různé programovací jazyky. Lze použít i příkaz curl. Nabízí dokonce vlastní Stripe CLI https://stripe.com/docs/stripe-cli, pro příznivce příkazové řádky.
Pro použití API je nejdříve nutné získat API keys (Publishable a Secret). Opět to jde udělat pro Test i Live prostředí. Sekret key, obzvláště pro Live mód, je nutné střežit jako oko v hlavě. Takže pozor, ať se třeba nedostane do verzovacích systém, záloh …, pokud to tak nechcete.
Jak použít API je dobře zdokumentované na https://stripe.com/docs/api. Ukázky použití pak na adrese https://stripe.com/docs/.
Webhooks
https://stripe.com/docs/webhooks
Díky Webhooks můžete nastavit Stripe, aby na základě nějakého Eventu = události (např. po zaplacení Invoice) poslal výsledek akce jako odpověď na zadanou URL, tzv. Endpoint. Díky tomu si např. snadno můžete posílat notifikace o úspěšných platbách, nebo třeba i jen o pokusu o platbu. Event se dá nastavit prakticky pro každý objekt definovaný ve Stripe, jako Account, Balance, Charge, Customer …
Závěr
Třetí díl seriálu o Stripe byl věnovaný možnostem plateb. Je jich docela dost, záleží, co a jak chceme dělat. Já osobně doporučuji použít Stripe Invoicing, protože to je způsob, jaký běžně používáme. Na tento způsob se tedy detailněji zaměříme v příštím díle, kde se podíváme i na intergaci v Drupalu.