[PYTHON] Einführung in WebPay von Flask

Über Webpay-Python

Am 02. Dezember wurde das Python-Paket [webpay-python] 1 von WebPay veröffentlicht. webpay-python ist ein modernes Python-Paket mit folgenden Punkten:

Dieses Paket ist wichtig, da viele Pakete noch nicht mit Python3 kompatibel sind. Sie können WebPay mit ** Python 3.3 ** bereitstellen, ohne das Paket selbst ändern zu müssen.

Einführung in WebPay von Flask

Ich liebe [Flask] 6 unter Pythons Web-Frameworks, daher werde ich dieses Mal WebPay in Flask einführen. Die verwendete Umgebung ist MacOS 10.9.1 / Python3.3 / Flask 0.10.1.

Über den Betrieb

Ich werde versuchen, es zu implementieren, während ich [what @hmsk] 8 folge.

  1. Geben Sie die Kaufinformationen von "/" ein und senden Sie sie an "/ purhcase".
  2. Abrechnungsprozess und Ergebnisausgabe mit WebPay mit "/ purchase"

Informationen zur Dateistruktur

Der Controller befindet sich unter app.py und die Ansicht unter Vorlagen. Diesmal gibt es kein Modell.

webpay-flask-sample
├── app.py
└── templates
    ├── index.html
    ├── layout.html
    └── purchased.html

Tatsächlicher Code und Ausführung

Wenn Sie den Controller grob schreiben, sieht er wie folgt aus. "\ # Noqa" ist angehängt, weil es durch flake8 ist.

app.py


import sys
from flask import Flask, render_template, request, url_for, redirect
from webpay import WebPay
from webpay.errors import InvalidRequestError

app = Flask(__name__)
app.config.from_object(__name__)
WEBPAY_PUB_KEY = 'test_public_19DdUs78k2lV8PO8ZCaYX3JT'
WEBPAY_PRI_KEY = 'test_secret_eHn4TTgsGguBcW764a2KA8Yd'
WEBDB_PRICE = 1554


@app.route('/')
def index():
    return render_template('index.html', webpay_pubkey=WEBPAY_PUB_KEY)


@app.route('/purchase', methods=['POST'])
def purchase():
    webpay = WebPay(WEBPAY_PRI_KEY)
    try:
        charge = webpay.charges.create(
            amount=WEBDB_PRICE,
            currency='jpy',
            card=request.form.get('webpay-token'))
        return render_template('purchased.html', charge=charge)
    except InvalidRequestError:
        e = sys.exc_info()[1]  # noqa
        return redirect(url_for('index'))

if __name__ == '__main__':
    app.run(debug=True)

Weiter ist Ansicht. Da [jinja2] 7 standardmäßig in flask verfügbar ist, ist es möglich, View zu erben. Erstellen Sie index.html und purchase.html basierend auf layout.html.

layout.html


<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>WebPay flask sample</title>
  </head>
<body>
  {% block body %}{% endblock %}
</body>
</html>

index.html


{% extends "layout.html" %}
{% block body %}

<form action="/purchase" method="post">
  <script src="https://checkout.webpay.jp/v1/" class="webpay-button" data-key="{{ webpay_pubkey }}"></script>
</form>
{% endblock %}

purchased.html


{% extends "layout.html" %}
{% block body %}
<h3>Stellen Sie sich vor, Sie kaufen</h3>
{% if charge.id %}
<p>Bei Anfragen zum Versand{{ charge.id }}Informieren Sie uns bitte.</p>
{% endif %}
<ul>
  <li><a href='http://www.amazon.co.jp/dp/4774158747/' target='_blank'>Eigentlich kaufen</a></li>
  <li><a href='/'>Noch einmal kaufen</a></li>
</ul>
{% endblock %}

Wenn Sie danach mit dem folgenden Befehl auf [http: // localhost: 5000](http: // localhost: 8000) zugreifen, können Sie die Abrechnung verarbeiten.

cd webpay-flask-sample
python app.py

Über den JS-Teil

CheckoutHelper wird für den JS-Teil verwendet. Siehe unten dazu.

Am Ende

Diesmal habe ich Webpay-Python in Flask eingeführt. Der diesmal erstellte Code befindet sich in [hier] 10, sodass Sie Webpay-Python problemlos verwenden können. webpay-python wurde gerade veröffentlicht, ist jedoch ein Paket für WebPay, das auch mit Python 3.3 verwendet werden kann. Bitte benutzen Sie es auf jeden Fall. (Anfragen für Webpay-Python bis zu [Issues] 11!)

Recommended Posts

Einführung in WebPay von Flask
(Für mich) Flask_7 (Datenbank von Flask öffnen)
Flasche
Flasche
Stellen Sie von Flask aus eine Verbindung zum MySQL-Container von Docker her
Holen Sie sich Daten von Cloudant mit Bluemix-Kolben
Flask Tutorial (von der Installation bis zur Hallo Welt)
Einführung von Docker Engine in Linux von Grund auf neu
Ordnen Sie Controller automatisch URLs mit Flask zu