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>

Wynik: wprowadź opis zdjęcia tutaj

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:

Wprowadzenie do API Stripe

Typowy przepływ płatności za pomocą Stripe można podzielić na dwa etapy:

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

  2. 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!



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow