Bin ich mit dieser PHP-code falsch? (arbeiten mit Streifen)
Ich bin mit Streifen für ein Zahlungs-gateway. Ich kann erfolgreich erhalten Sie eine Karte "token" als Streifen nennt, welches hier erklärt wird: https://stripe.com/docs/checkout#api
Gut zu gehen mit. Ich habe Sie erfolgreich, erhalten Sie die token in meine stripe dashboard. Nun, was ich tun müssen, ist tatsächlich kostenlos, die Karte(token). Hier ist, wie Sie es ausdrückte: "Sie haben Ihr user' s credit card details, was nun? Nun, Sie kostenlos, Ihnen Geld. Dies geschieht auf dem server, und der Schnellste Weg, es zu tun ist, indem Sie eine unserer client-Bibliotheken." Auch Sie liefern die php benötigt, direkt auf dieser Seite:
//Set your secret key: remember to change this to your live secret key in production
//See your keys here https://manage.stripe.com/account
Stripe::setApiKey("sk_test_68YYnDTKPzcxxRZbkxEJtOVq");
//Get the credit card details submitted by the form
$token = $_POST['stripeToken'];
//Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = Stripe_Charge::create(array(
"amount" => 1000, //amount in cents, again
"currency" => "usd",
"card" => $token,
"description" => "[email protected]")
);
} catch(Stripe_CardError $e) {
//The card has been declined
}
Sehen Sie genau, wie Sie es hier erklären: https://stripe.com/docs/tutorials/charges
Hier ist, wo die Dinge schief gehen.
1) Wo in diesem code tatsächlich lokalisiert, was Karte zu berechnen?! Ich habe die Karte, die token-ID-Nummer in mein eigenes dashboard. Nun benötige ich ihn aufladen, aber der code sagt nichts über die Karte. Die einzige Stelle, die ich sehe, ist:
$token = $_POST['stripeToken'];
'stripeToken' setze ich in die Karte die ID-Nummer hier?
2)ich habe eine einfache Seite, diese laufen mit:
<div id="payment">
<form action="charge-cards.php">
<?php require 'Stripe.php';?>
<input type="submit">
</form>
</div><!--end payment-->
"charge-cards.php" ist der code, der an der Spitze zur Verfügung gestellt von Streifen. Wenn ich auf submit, bekomme ich folgende Fehler:
Fatal error: Class 'Stripe' not found in /home/preemin/public_html/fun.dit /testing/charge-cards.php on line 5
Kann jemand sehen, was ich m tun falsch? Danke!
haben Sie red stripe.com/docs/checkout/guides/php ? wo Sie sagte, "erstellen wir eine Datei namens config.php,, wohin wir gehen, um einige Erstkonfiguration." haben Sie heruntergeladen "Streifen-PHP-Bibliothek"
Vielen Dank für Ihre Antwort! Ja, habe ich hochgeladen Stripe.php zu meinem server, und das Formular, ich habe enthalten: "<?php require 'Stripe.php';?>
oops! habe ich beantwortet ! Habe einen Daumen ! wenn ich es richtig !
Haben Sie einen Blick auf diese blog - larryullman.com/2012/11/07/.... Dieser blog erläutert die einzelnen Schritte im detail für die Aufladung Zahlung.
InformationsquelleAutor Anthony Myers | 2013-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, es lohnt sich, einen Schritt zurück zu gehen und überprüfen Sie die Grundlagen. Erste, um eine sichere Kreditkartentransaktion zu gewährleisten und sicherzustellen, PCI-compliance, Streifen bereitgestellt hat, eine javascript-Bibliothek, verschlüsselt und überträgt die sensiblen Daten der Kreditkarte. Sie bieten eine Beispiel-form
Machen eine sorgfältige Kenntnis von der Tatsache, dass das Formular ohne submit-Aktion. Auch achten Sie besonders auf die Tatsache, dass keiner der empfindlichen Karte Felder ein name-Attribut. Dieses Formular sollte nie eingereicht werden, die über jede andere Art als die sichere Methode Sie haben zur Verfügung gestellt. Zu versuchen, dies zu tun öffnet Sie die Haftung.
Wenn Sie behaupte, dass form, mit der js-Klasse, die Sie zur Verfügung gestellt haben (siehe Schritt 2), es gibt Sie wieder eine token-Karte, die Sie sagen, dass Sie bereits haben. Sie können speichern, die Karte, die token in der Datenbank ohne etwaige Sicherheitsprobleme-es ist nur eine willkürliche Zahl, die nichts bedeutet, ein hacker.
Sobald Sie den token, haben Sie zwei Möglichkeiten:
Was Sie brauchen, um zu realisieren, dass Streifen NICHT speichern, Karte, token! Wenn Sie es verlieren, können Sie nicht bekommen es zurück. Sie haben, um einen neuen zu generieren. Auch, der einzige Weg, Sie können es verwenden, für mehrere Ladungen zu schaffen, ist ein customer-Objekt. In anderen Worten, es sei denn Sie speichern Sie es auf einem Kunden-Objekt, es ist nur gut für einen einzigen Ladung. So , wenn Sie kostenlos gegen Sie vor dem Anhängen an ein customer-Objekt, es ist nicht mehr gültig.
Nun zurück zu den basics wieder, wie IOIO MAD beschrieben, gibt es zwei Dinge, die Sie tun müssen, am Anfang jeder php-Datei, die Sie anrufen möchten, ein Streifen-Methode aus:
Nur wird der öffentliche Schlüssel wird verwendet, wenn Sie machen, dass javascript-Aufruf zum Einreichen der Karte bilden.
Wenn Sie möchten, laden Sie die Karte sofort biegen Sie nach rechts um und rufen Sie zurück an den server, senden Sie die Karte hash, das Sie gerade zurück. Dies können Sie tun, mit ajax, oder durch kleben es in ein Formularfeld, das Sie dann posten. Schritt 3 zeigt eine Möglichkeit, Sie dies tun können.
Aber nehmen wir an, Sie wollen andere Dinge zu tun, bevor Sie tatsächlich aufladen der Karte. Erweitern Sie Ihr Beispiel, können sagen, ich abgeholt haben meine Kunden die Karte auf der einen Seite, dann auf meiner checkout-Seite, die ich senden will die Anklage:
Wenn Sie dieses Formular eingereicht wird, charge-cards.php erhalten Sie die
$cardHash
von der$_POST
variable, worauf Sie gehen zu Folgen, die Beispiel von Streifen:Wenn Sie immer noch Probleme haben, beschäftigen ordnungsgemäße debugging-Fähigkeiten, um zu überprüfen, ob oder nicht dein $_POST-variable enthält eine Karte hash. Wenn alle Stricke reißen, Kontakt-Streifen-Kunden-support. Ihre API ist erstklassig, ebenso wie Ihre Dokumentation und support.
BEARBEITEN 4/15/13
OP ist mit dem quick checkout-Methode und verwenden von benutzerdefinierten Schaltflächen. Die meisten der oben genannten noch gilt.
Den code wie in der Benutzerdefinierten Schaltflächen-Bereich weist einen click-Ereignishandler für die Schaltfläche "Benutzerdefiniert", die gibt eine callback-Funktion, die, wenn ausgeführt, fügt einen versteckten Eingang zu einem Formular, weist die stripeToken auf das Feld und das Formular absendet. Kurz bevor das Formular abgeschickt wird, die Konsole.log oder alert der stripeToken um sicherzustellen, dass Sie einen legitimen Wert:
Dies würde verwendet werden, in Verbindung mit dieser:
So, was passieren soll, wird, nachdem der Benutzer drückt die Schaltfläche "Kasse", sollte das Formular ein hidden input-Feld mit dem Namen 'stripeToken' enthält den token-Wert. Sie bekommen können, dass die token aus dem Formular aus und senden es später. Alternativ können Sie hören auf die "token" - Veranstaltung, die gebunden, um Ihre Schaltfläche:
DISCLAIMER: ich habe nicht verwendet, den einfachen checkout-Methode noch nicht. Dieser code ist nicht getestet
"Es sieht aus wie Sie beim erstellen der Kunden, aber nicht richtig Zugriff auf die token-ID, sobald es Gepostet ist, an den server" ist eine andere Sache-support mir gesagt hat. Also wenn ich den GENAUEN code auf diese Seite: stripe.com/docs/checkout#api , warum ist es nicht die Buchung der token-Id an den server? Im Grunde, was ich brauchen, ist für die custom CHECKOUT-Methode(siehe den link oben) arbeiten mit "speichern Kundendaten für später", die hier abgebildet ist: stripe.com/docs/tutorials/... .
"Streifen NICHT speichern, Karte, token!" So, ich bin das senden der token auf meinem eigenen server? Ich dachte, die Karte token geht an das dashboard in Stripe-backend.
Ich werde zugeben, dass Ihre Dokumentation hat einige Löcher, und es gibt mehrere Möglichkeiten, das zu tun, was scheint, wie die gleiche Sache. Aber alle anderen Möglichkeiten haben einen anderen Zweck 😉
Lassen Sie mich klarstellen, "Streifen NICHT speichern, Karte, token!" Stripe speichert die token-Karte intern... aber es gibt keinen Weg, um es abzurufen oder es noch einmal sehen einmal Euch gegeben (die token-Karte unterscheidet sich von der Fingerabdruck, die Sie anzeigen können, in dem dashboard). Letztlich ist die Karte token übergeben wird, Streifen-Server entweder einer einzigen Ladung, oder gespeichert auf einem Kunden-Objekt für die spätere mehrere Ladungen. Aber, es sei denn, Sie sind mit der quick checkout Sache, es geht um Ihre server, von wo aus Sie entweder senden Sie es auf, um Streifen zu erstellen, eine einmalige Gebühr oder ein Kunde-Objekt.
InformationsquelleAutor Codasaurus
ich denke, vielleicht werden Sie fehlen einige "gehören" ,
Class 'Stripe' not found
bedeutet, dass die PHP-Datei, die aus der Klasse 'Streifen' noch nicht enthalten, bevor der Aufruf@Hinweis : Eine PHP - >= 5.2-Umgebung erforderlich
Download Die Streifen-PHP-Bibliothek
Extrahieren Sie es in Ihrem HAUSE!
Erstellen wir eine Datei namens config.php,, wohin wir gehen, um einige Erstkonfiguration.
Dann in Ihre Code-Datei OBEN (meint yours.php)
"Fatal error: Uncaught exception 'Stripe_CardError' with message 'kann Nicht geladen werden, ein Kunde, der keine aktive Karte' in /home/preemin/public_html/fun.dit/testing/stripephp/lib/Stripe/ApiRequestor.php" Das ist so frustrierend! Wo sind wir sogar sagen, welche Karte aufladen, obwohl?
IOIO MAD ist auf dem richtigen Weg, aber es gibt mehr zu es.
Sie haben, um zu wissen, die Karte token und schicken Sie es an Ihre Seite. Klingt wie Sie könnte versuchen, kostenlos eine ungültige oder verbrauchte token-Karte. Sehen kann ausführliche Antwort unten
InformationsquelleAutor 7-isnotbad