Stripe seriál #3: Implementace plateb

V dnešním díle se podíváme na samotnou implementaci plateb. Máme několik možností od integrace Stripe na vlastním webu až po využití externích partnerů podporujících Stripe.

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.

33Stripe logo

Stripe Checkout

https://stripe.com/en-cz/payments/checkout
https://stripe.com/docs/payments/checkout
https://stripe.com/docs/checkout/integration-builder

33Prebuilt Checkout page

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.

33Stripe Checkout

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:

  1. Vše si musíte sami připravit, validovat, kontrolovat … To je asi zbytečná práce navíc.
  2. 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 …

33Payment link

 

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.

33Stripe Hosted invoice page

 

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.

33Stripe Connect Online Marketplace Payments Platform

 

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.

33Stripe API reference - libraries

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.

33Stripe Dashboard

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/.

33Integrate with Invoicing

 

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 …

33Webhooks

 

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.