Das Ziel: Ich habe eine HTML-Seite mit zwei verschiedenen Artikeln, die Sie kaufen können. Einer ist $ 5 und der andere ist $ 10. Ich verwende Streifen, um die Zahlungen zu verarbeiten. Wenn Stripe ein Zahlungstoken erstellt und dieses an meine process_charge.php übermittelt, möchte ich den Gebührenbetrag aus den über POST übermittelten Daten ziehen. Dann kann ich diese Menge verwenden, um Stripe_Charge::create()
aufzurufen.
Das Problem: Der Betrag wird nicht an mein PHP-Formular gesendet und ich bin nicht sicher, wie ich es bekommen soll.
Meine temporäre Lösung: Ein anderes PHP-Formular für jeden einzelnen Artikel, den ich verkaufe. Dann ein neues PHP-Formular für jedes neue Element !!! nicht ideal
Ich verwende derzeit die eingebettete Formularmethode, die hier aufgelistet ist: Ссылка
Meine Bestellseite sieht so aus.
%Vor% Das funktioniert also großartig. Es nimmt die Kundeninformationen, ihre Liefer- / Rechnungsadresse und ihre Kreditkartendaten auf. Dann erzeugt es ein Gebühren-Token und übergibt es an process_card.php
. Dort kann ich das Token nehmen und so etwas ausführen:
Hier nehme ich das Token, das über POST
gesendet wurde, und schicke es über die API an Stripe. Der Betrag, die Währung und das Karten-Token sind Pflichtfelder. Sie können sehen, dass das Token aus den POST
-Daten gezogen wird, aber ich muss eine Literal-Zeichenfolge für den Betrag senden. Das ist alles gut und schön, bis ich mehr als ein Produkt / Service habe, und ich habe verschiedene Formen, die Token mit unterschiedlichen Beträgen generieren und sie an meine process_card.php
senden. Dann sieht diese wörtliche Zeichenfolge nicht mehr glücklich aus. Sein dummes Grinsen wird von seinem blöden Gesicht gewischt.
Also, jedenfalls habe ich alle POST
Daten überprüft, um zu sehen, ob eines der eingereichten Felder den Betrag enthielt, damit ich das weitergeben konnte. Also habe ich einfach eine kleine Schleife gemacht, um zu sehen, was eingereicht wurde:
und es gibt mir das:
%Vor% Keine Menge. Scheißt. Also zu den API-Dokumenten, um zu sehen, ob ich eine Lösung finden kann. Das nächste, was ich finden konnte, war Stripe_Charge::retrieve({CHARGE_ID});
, das hier gefunden wurde: Ссылка . Dies gilt jedoch nur für erfolgreich verarbeitete Gebühren.
Ich bin also festgefahren. Kann es nicht herausfinden. Die beste Lösung, die ich mir vorstellen konnte, war das Hinzufügen einer <input type="hidden" name="amt" value="1000" />
-Zeile innerhalb des eingebetteten Formulars, das mir zur Verfügung gestellt wurde, damit ich den Betrag über $_POST['amt']
abrufen konnte. Das Problem dabei ist, dass ich keine Ahnung habe, ob es PCI-konform ist. An vielen Stellen auf der Stripe-Site / api / docs sagen sie Ihnen, dass Sie keine Namensfelder in ihre Formulare einfügen dürfen, damit Sie keine sensiblen Informationen von Seite zu Seite Ihrer Website weitergeben, also denke ich "besser als Nachsicht". Gibt es eine alternative Möglichkeit, diese oder einige der mir bekannten Best Practices zu behandeln?
** Tut mir leid, das war so lange her. Ich habe so viel Aufwand wie möglich unternommen, um es alleine zu lösen, und ich wollte so viele Informationen wie möglich zur Verfügung stellen.
Ich sehe kein Problem in Bezug auf die PCI-Konformität, indem Sie ihren Preis in das Formular eingeben (solange Sie SSL verwenden). Dies würde es ihnen jedoch ermöglichen, die HTML-Eingabe vor dem Einreichen einfach zu bearbeiten und das Objekt viel billiger zu bekommen, als Sie es möchten. Sie können dies umgehen, indem Sie eine Datenbank mit einer Produkttabelle verwenden und in einem ausgeblendeten Eingabefeld auf die Produkt-ID verweisen.
Tags und Links javascript html php stripe-payments