Ein Memo zum Verständnis und zur Verwendung des SDK, das von Herrn Kagawa @ sumihiro3, einem Lehrer von LINE Pay, erstellt wurde. https://github.com/sumihiro3/line-pay-sdk-python/tree/master/examples
Ich habe einen Starter nur für die einmalige allgemeine Zahlung gemacht, verwenden Sie also bitte hier.
Das SDK ist ein Paket aus Programmen, APIs, Beispielcode usw., mit dem Sie Anwendungen mit weniger Aufwand entwickeln können. Entwickler können das SDK verwenden, um neue Funktionen in ihre Anwendungen zu implementieren, ohne die detaillierten Mechanismen der Technologie verstehen zu müssen, die sie ermöglicht.
Zitat: https://dev.classmethod.jp/articles/devio-cafe-line/
Zitat: https://dev.classmethod.jp/articles/line-pay-v3-lambda/
Es ist ein wenig verwirrend, aber SP ist ein Dienstleister und wir sind ein Unternehmer.
① Lassen Sie Pay eine Zahlungs-URL über die Anforderungs-API ausgeben ② Bitten Sie den Benutzer, die URL zu werfen und auf sie zu tippen, um sie auf dem Zahlungsbildschirm im Beispiel zu genehmigen. ③ Anschließend erhalten wir eine genehmigte Benachrichtigung von unserem Geschäftsbetreiber (App oder System), dem SP, sodass wir die Zahlung über die Bestätigungs-API abschließen.
Normalerweise bestätigt dies den Verkauf, und wir müssen keine sogenannte Capture-API verwenden. Es scheint jedoch einen Fall zu geben, in dem Sie einen Schritt zwischen dem Abschluss der Zahlung und der Bestätigung des Verkaufs ausführen möchten. In diesem Fall müssen Sie den Verkaufsbestätigungsprozess selbst mithilfe der Capture-API ausführen, wie unten gezeigt.
Wenn "options.payment.capture" der Anforderungs-API auf "false" gesetzt ist, wird die Abrechnung von der Autorisierung und der Verkaufsbestätigung getrennt, und der Abrechnungsstatus bleibt auch nach Abschluss der Abrechnung im Wartezustand "Verkaufsbestätigung" (Autorisierung). Um Verkäufe zu bestätigen, müssen Sie die Capture-API aufrufen, um Verkäufe zu bestätigen.
request_options = {
//Kürzung
"options": {
"payment": {
"capture": False
}
},
//Kürzung
response = api.request(request_options)
Dies ist der grundlegende Zahlungsfluss von LINE Pay API v3, aber aus Sicht des Benutzers sind wir Anfänger, da es nur drei Schritte gibt: "Bezahlen mit LINE Pay" → "Zum Zahlungsbildschirm wechseln" → "Drücken Sie die Zahlungstaste". Ich denke, es ist schwer vorstellbar, dass die obige Verarbeitung hinter den Kulissen erfolgt. Es ist ein verrücktes SDK, daher denke ich, dass es in Ordnung ist, es zu verwenden, auch wenn Sie diesen Bereich nicht kennen.
Wenn Sie dies jedoch mit Sandbox tun, unterscheidet es sich vom tatsächlichen Verhalten von Pay, und die Anzeige der automatischen Zahlung (Abonnement) entspricht der allgemeinen Zahlung, sodass dies kompliziert ist. Ich frage mich, ob LINE ein Konto erstellen wird, das mit demselben Verhalten getestet werden kann.
Selbst wenn Sie sich mit Ihrem Sandbox-Konto beim Mitgliederspeicher MyPage anmelden, wird auf diesem Bildschirm kein Transaktionsverlauf aufgezeichnet. Klicken Sie nach dem Anmelden oben rechts auf den Link "Sandbox", um den in Sandbox festgelegten Transaktionsverlauf anzuzeigen (der erste Bildschirm scheint keine andere Verwendung zu haben, als den Verriegelungsschlüssel zu erhalten ...).
Klonen Sie zunächst das GitHub-Repository oder Download und entpacken Sie es.
Wechseln Sie in dieses Verzeichnis im Terminal
$ cd ine-pay-sdk-python-master
Installieren Sie die erforderlichen Bibliotheken mit pip install
$ pip install -r requirements.txt
Erstellen Sie eine .env-Datei, indem Sie die .env.sample-Datei kopieren
$ cp ./.env.sample ./.env
Machen Sie Port 8000 mit ngrok über eine externe URL zugänglich
$ ngrok http 8000
Bearbeiten Sie die .env-Datei mit einem beliebigen Editor wie VSCode, Atom, vim, emacs Geben Sie die von ngrok ausgegebene Domain und die Channes_ID und den Channel Secret Key ein, die über die Zahlungsverriegelungsverwaltung> Verriegelungsschlüssel des LINE Pay-Mitgliederspeichers MyPage bestätigt werden können.
HOST_NAME=xxxxx.ngrok.io
LINE_PAY_CHANNEL_ID=YOUR_LINE_PAY_CHANNEL_ID
LINE_PAY_CHANNEL_SECRET=YOUR_LINE_PAY_CHANNEL_SECRET
基本的にこのSDKは試したい決済流れの.py
ファイルをRunさせて、xxxxx.ngrok.io/request
にアクセスすることでその流れを試せる作りになっているようだ。
$ python request-confirm-refund.py
Wenn Sie in diesem Status auf "https: // xxxxx.ngrok.io / request" zugreifen
Wenn Sie auf "PaymentUrl" klicken (da es sich um eine Sandbox handelt), werden Sie zum folgenden Bildschirm weitergeleitet. Melden Sie sich daher bei LINE an (wenn Sie versuchen, auf die oben genannte URL auf dem Handy zuzugreifen oder eine Zahlung durch Scannen des QR-Codes vorzunehmen, schlägt dies aus irgendeinem Grund fehl ...).
Der Sandbox-Mock-Zahlungsbildschirm wird geöffnet. Drücken Sie daher "JETZT ZAHLEN"
Wenn die Zahlung abgeschlossen ist, werden Sie zu dem Bildschirm weitergeleitet, auf dem das Zahlungsergebnis angezeigt wird.
Diesmal handelt es sich um eine PY-Datei, die Sie erstatten können. Wenn Sie also unten auf den Link "RÜCKERSTATTUNG" klicken, können Sie die Rückerstattung verarbeiten und werden zum nächsten Bildschirm weitergeleitet.
Die Transaktionsaufteilung auf dem Sandbox-Bildschirm des Mitgliedsspeichers MyPage ist zu diesem Zeitpunkt wie folgt, und die obere Nr. 1 wird als Abrechnungsprozess und die untere Nr. 2 als Abrechnungsstornierungsprozess aufgezeichnet.
Wenn Sie options.payment.capture in request_options auf False setzen, können Sie es wagen, nach der Zahlung auf die Verkaufsbestätigung (Autorisierung) zu warten und später die Verkaufsbestätigung (Capture) mithilfe der Capture-API in der Datei authorizations-capture.py
zu versuchen. Lauf.
authorizations-capture.py
"options": {
"payment": {
"capture": False
}
},
$ python authorizations-capture.py
Wenn Sie auf "https: // xxxxx.ngrok.io / request" zugreifen und eine Zahlung vornehmen, werden Sie auf den Bildschirm mit dem Link zur Erfassung weitergeleitet.
Die Transaktionsaufschlüsselung des Mitgliedsspeichers MyPage ist zu diesem Zeitpunkt wie folgt.
Transaktionsaufschlüsselung nach Abrechnung ↓
Transaktionsaufschlüsselung nach Erfassung ↓
Der Verkaufsbestätigungsprozess sollte auch über diesen Bildschirm möglich sein, aber aus irgendeinem Grund gibt es bei Verwendung dieses SDK keine Schaltfläche zur Verkaufsbestätigung. Ist es, weil es eine Sandbox ist?
Checkout
Checkout ist eine API, mit der Sie Zahlungen einschließlich Versandadresse und Versandgebühr bei Zahlungen mit EC usw. vornehmen können. Diese API kann jedoch nicht in der Sandbox-Umgebung verwendet werden, und offizielle Mitgliedsgeschäfte überprüfen auch ihre Verwendung. Es scheint also, dass dieses SDK keine Py-Datei zum Ausprobieren hat.
$ python request-confirm-pre_approved.py
Wenn Sie auf die gleiche Weise auf "https: // xxxxx.ngrok.io / request" zugreifen und eine Zahlung vornehmen, können Sie den Registrierungsschlüssel für die automatische Zahlung nach der Zahlung erhalten. Es scheint, dass die erste Zahlung und der Erwerb von RegKey gleichzeitig mit der Verwendung von LINE Pay erfolgen (Sandbox reproduziert den Scheck nicht im ursprünglichen automatischen Zahlungsfluss ...).
Sie können automatische Zahlungen mit RegKey und Pay Preapproved API ausführen, indem Sie auf den unten stehenden Link klicken. Die Transaktionsaufschlüsselung des Mitgliedsspeichers MyPage erfasst die Transaktion jedoch nicht durch automatische Abrechnung. Ist das auch Sandbox?
Der Ablauf der formellen automatischen Zahlung von LINE Pay ist wie folgt. https://youtu.be/KdQLm88nl2Q
xxx.py
@app.route("/request", methods=['GET'])
def pay_request():
#Kürzung
return render_template("request.html", result=response)
https://dev.classmethod.jp/articles/linepay-regkey/
https://qiita.com/sotozaki/items/e178f5ec3c34aa7b1b17
--RegKey ist 180 Tage gültig
- Es gibt eine API, mit der überprüft werden kann, ob RegKey gültig ist. Das Ablaufdatum kann jedoch nicht ermittelt werden
- Benutzer können über den Einstellungsbildschirm ablaufen
- In der Sandbox-Umgebung ist das Ablaufdatum auf 1 Tag festgelegt
Das Ablaufdatum des Benutzers ist wahrscheinlich hier
LINE starten Bezahlen Sie in der Brieftasche der LINE-App (als LIFF-App starten) Drücken Sie unten auf Automatische Zahlung Wenn Sie sich in der Produktionsumgebung anmelden, können Sie diese hier verwalten. Beachten Sie, dass der Registrierungsschlüssel in der Sandbox überhaupt nicht angezeigt wird.Recommended Posts