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.
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.
Ich werde versuchen, es zu implementieren, während ich [what @hmsk] 8 folge.
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
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
CheckoutHelper wird für den JS-Teil verwendet. Siehe unten dazu.
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