stripe-paymentsAan de slag met streepbetalingen


Opmerkingen

Deze sectie biedt een overzicht van wat streepbetalingen zijn en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen streepbetalingen vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de documentatie voor streepbetalingen nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Embedded Stripe Payment Modal

Registreer een productie- / sandbox-account op https://dashboard.stripe.com/register

Voer de onderstaande code in op uw webpagina waar u een afrekenknop wilt hebben.

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

Resultaat: voer hier de afbeeldingsbeschrijving in

Hallo wereld in Python

Een voorbeeld van het uitvoeren van stripe uit de doos met wsgi uit een enkel bestand.

Installeer eerst de python stripe API, dwz met pip:

pip install --user stripe
 

Maak direct payment.py waarmee een WSGI-webserver op poort 8000 wordt aangemaakt

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()
 

Houd er rekening mee dat:

  • het frontend-formulier bevat de openbare sleutel
  • het backend charge deel bevat de geheime sleutel .

Voer het script uit

python payment.py
 

Navigeer met uw browser naar

http://localhost:8000/
 

Na het klikken op de betaalknop en het invoeren van het creditcardnummer (4242424242424242) wordt het formulier met het token geplaatst. Zodat de betaling kan worden verwerkt en ten slotte de charge object wordt afgedrukt in de browser, die bevat:

...
"paid": true, 
"description": "Hello World", 
"status": "succeeded"
 

Bronnen en verder lezen:

Installatie of instellingen

Gedetailleerde instructies voor het instellen of installeren van streepbetalingen.

Inleiding tot de API van Stripe

Een typische betalingsstroom met Stripe kan in twee stappen worden verdeeld:

  1. Client-side, in uw frontend (HTML + Javascript) -code, verzamelt u de betalingsinformatie van de klant met behulp van het vooraf gebouwde Checkout- formulier of het veld (en) van Elements . Dit retourneert een token dat u vervolgens naar uw server verzendt.

  2. Server-side, in uw backend-code (in PHP, Python, Ruby of welke programmeertaal dan ook op uw server), gebruikt u het token in een verzoek om kosten aan te rekenen om de kaart daadwerkelijk op te laden.

Het punt van deze tweestapsstroom is dat uw server alleen met kaarttokens werkt en nooit met onbewerkte kaartinformatie. Dit betekent dat u nooit toegang hebt tot kaartnummers, wat de last van PCI-compliance aanzienlijk verlicht.

De documentatie van Stripe is vrij uitgebreid en bevat veel voorbeelden en tutorials - zorg ervoor dat je deze bekijkt!