stripe-payments Samouczek
Pierwsze kroki z płatnościami paskowymi
Szukaj…
Uwagi
Ta sekcja zawiera przegląd płatności paskowych i dlaczego deweloper może chcieć z nich skorzystać.
Powinien również wymieniać wszelkie duże tematy w ramach płatności z paskiem i zawierać linki do powiązanych tematów. Ponieważ Dokumentacja dotycząca płatności paskowych jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.
Instalacja lub konfiguracja
Szczegółowe instrukcje dotyczące konfiguracji lub instalacji płatności paskowych.
Wbudowany moduł płatniczy
Zarejestruj konto produkcyjne / piaskownicy na https://dashboard.stripe.com/register
Wprowadź poniższy kod na swojej stronie internetowej, na której chcesz mieć przycisk kasy.
<form action="/charge" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_6pRNASCoBOKtIshFeQd4XMUh"
data-amount="2000"
data-name="Stripe.com"
data-description="2 widgets"
data-image="/img/documentation/checkout/marketplace.png"
data-locale="auto">
</script>
</form>
Hello World in Python
Przykład, jak uruchomić pasek z pudełka za pomocą wsgi z jednego pliku.
Najpierw zainstaluj interfejs API paska Pythona, tj. Za pomocą pip:
pip install --user stripe
Tworzenie payment.py który tworzy serwer WWW WSGI na porcie 8000 po wyjęciu z pudełka
html = """
<html>
<body>
<p>%(output)s</p>
</body>
</html>
"""
form = """
<form action="" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_6pRNASCoBOKtIshFeQd4XMUh"
data-amount="999"
data-name="Stripe.com"
data-description="Hello World"
data-locale="auto">
</script>
</form>
"""
def application(environ, start_response):
try:
request_body_size = int(environ.get('CONTENT_LENGTH', 0))
except (ValueError):
request_body_size = 0
request_body = environ['wsgi.input'].read(request_body_size)
post = parse_qs(request_body)
out = ''
if post:
print post
token = post.get('stripeToken', [''])[0]
token = escape(token)
if token:
import stripe
stripe.api_key = "sk_test_BQokikJOvBiI2HlWgH4olfQ2"
try:
charge = stripe.Charge.create(
amount="999",
currency="usd",
source=token,
description="Hello World",
)
out = '<pre>charge: %s</pre>' % (charge,)
except Exception as e:
print 'Exception %s' % (str(e),)
else:
out = 'missing in post: token'
else:
out = form
response_body = html % {
'output': out,
}
status = '200 OK'
response_headers = [('content-type', 'text/html;charset=utf-8')]
start_response(status, response_headers)
return [response_body]
from wsgiref.simple_server import make_server
from cgi import parse_qs, escape
httpd = make_server('', 8000, application)
httpd.serve_forever()
Proszę zanotować:
- formularz interfejsu zawiera klucz publiczny
- część obciążenia zaplecza zawiera tajny klucz .
Uruchom skrypt
python payment.py
Przejdź za pomocą przeglądarki do
http://localhost:8000/
Po kliknięciu przycisku płatności i wprowadzeniu numeru karty kredytowej (4242424242424242) formularz jest wysyłany z tokenem. Aby płatność mogła zostać przetworzona, w końcu obiekt charge zostanie wydrukowany w przeglądarce, która zawiera:
...
"paid": true,
"description": "Hello World",
"status": "succeeded"
Zasoby i dalsze czytanie:
- Post WSGI: http://wsgi.tutorial.codepoint.net/parsing-the-request-post
- Formularz interfejsu: https://stripe.com/docs/checkout/tutorial
- Opłata za backend: https://stripe.com/docs/charges
Wprowadzenie do API Stripe
Typowy przepływ płatności za pomocą Stripe można podzielić na dwa etapy:
Po stronie klienta, w kodzie frontonu (HTML + JavaScript), gromadzisz informacje o płatnościach klienta, korzystając z gotowego formularza Stripe Checkout lub pól formularza Elements . Zwróci token, który następnie wyślesz na serwer.
Po stronie serwera, w kodzie zaplecza (w PHP, Python, Ruby lub dowolnym innym języku programowania po stronie serwera), używasz tokena w żądaniu utworzenia opłaty, aby faktycznie naładować kartę.
Istotą tego 2-etapowego przepływu jest to, że Twój serwer działa tylko z tokenami kart, a nigdy z nieprzetworzonymi informacjami o karcie. Oznacza to, że nigdy nie masz dostępu do numerów kart, co znacznie zmniejsza obciążenie związane ze zgodnością z PCI .
Dokumentacja Stripe jest dość obszerna i zawiera wiele przykładów i samouczków - koniecznie sprawdź to!
