Wie man berechnen-id nach der Erstellung eines Abonnements mit Streifen?
Ich bin mit Stripe
als ein Zahlungs-gateway. Jetzt gibt es ein großes problem, was mich stört.
Benutzte ich folgenden code, erstellen Sie ein Abonnement:
<?php
require_once('lib/Stripe.php');
Stripe::setApiKey(API_KEY);
$token = $_POST['stripeToken'];
$customer = Stripe_Customer::create(array(
"card" => $token,
"plan" => $_POST['plan'],
"email" => "[email protected]",
));
Dies funktioniert gut, aber ich kann nicht Charge ID
aus $customer
, und ich fand heraus, es gibt keinen Weg in Stripe API
um es zu bekommen.
Wie man es beim erstellen eines Abonnements? Ich brauche wirklich Charge ID
.
Erhalten Sie die Gebühr-ID in der Antwort auf eine Anklage Schaffung Anfrage stackoverflow.com/questions/12031063/...
Ich verstehe es nicht. Der code, den ich, sofern bereits eine Bezahlung, warum sollte ich eine andere Bezahlung verlangen?
Sie sollten nicht, aber wenn Sie aus dem laden war, als Sie bekam die charge_id
Anigel - er meint (denke ich) für ein Abo, wie sieht er eine Ladung ID jedes mal, wenn eine Gebühr erhoben wird? Oder ist es das nicht, davidx?
Du hast Recht, Robert! Das problem ist ganz klar: ich erstelle ein Abo und ich will charge-ID aus.
Ich verstehe es nicht. Der code, den ich, sofern bereits eine Bezahlung, warum sollte ich eine andere Bezahlung verlangen?
Sie sollten nicht, aber wenn Sie aus dem laden war, als Sie bekam die charge_id
Anigel - er meint (denke ich) für ein Abo, wie sieht er eine Ladung ID jedes mal, wenn eine Gebühr erhoben wird? Oder ist es das nicht, davidx?
Du hast Recht, Robert! Das problem ist ganz klar: ich erstelle ein Abo und ich will charge-ID aus.
InformationsquelleAutor david30xie | 2013-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist genau das, was Streifen die webhooks sind. Nach dem anlegen eines Kunden mit einer anfänglichen Abonnement erhalten Sie sechs webhook-Benachrichtigungen:
customer.created
mit den Kunden-Daten (die Sie bereits haben, wenn Sie speichern, was die API gibt)charge.succeeded
(odercharge.failed
), enthält den Ausgabeaufschlag Daten, die Sie sucheninvoice.created
, die die entsprechende Rechnunginvoice.payment_succeeded
(oderinvoice.payment_failed
), auch erzählen Sie den status der Ladungcustomer.card.created
mit den details der neuen Kartecustomer.subscription.created
mit den Angaben des Bestellers gültig.Streifen-API, wie viele APIs und vielen Zahlungs-Lösungen, ist gebaut, um verwendet werden, mit webhooks. Wenn Sie nicht unter Ausnutzung von webhooks, du wirst die fehlende Funktionalität, und Sie sind wahrscheinlich zu viel Arbeit für das, was getan werden kann, ohne webhooks.
Streifen funktioniert, liefern die Daten. Wenn Sie code schreiben, der poll-Streifen, Sie arbeiten Weg, viel zu hart.
scheint, wie die webhook-Rückruf kostenlos.es gelang nicht enthalten subscription_id wie die anderen Benachrichtigungen zu tun. Wie machst du die Ladung.gelungen nennen, die mit der ursprünglichen Abonnements, ohne zu verknüpfen, auf Karte und und Kunden, da diese nicht garantiert einzigartig?
Mit
invoice.payment_succeeded
für das zu sein scheint, eine viel bessere option. Es enthält einen Abonnement-ID, Kunden-ID und ein charge-ID (wenn es tatsächlich eine Gebühr). AFAIKcharge.succeeded
wird nicht ausgelöst, wenn jemand schmälert das Abonnement und bietet genügend Guthaben bezahlen für die nächste Periode.Wenn
invoice.payment_succeeded
Ereignis ausgelöst wurde, bedeutet dies, dass die Ladung durchgemacht hat? Ich bin mir nicht sicher, ob ich Zuhören für dieses Ereignis undcharge.succeeded
um die Zahlung zu bestätigen durchgemacht hat?InformationsquelleAutor colinm
Ich lief in das gleiche Problem ich. Ich bin mit dem python-Bibliothek, aber die Antwort ist mehr über Streifen-API als welche Sprache der client ist in.
Letztlich, da bin ich auf das erstellen eines neuen Kunden mit jedem Abonnement, ich war in der Lage, die Rechnung gegen die customer_id und greifen Sie seine Ladung-id. Hier ist, was die python-code dafür sieht wie folgt aus:
Wieder, beachten Sie, dass diese Methode nicht funktionieren würde, wenn Sie re-use-Kunden nur, wenn Sie neue Kunden mit jedes Abonnement erstellen.
Es ist sicherlich nicht ideal. Es wäre viel besser, wenn die Ladung-id wurden in der Rückkehr. Auch die Kenntnis der Rechnungsnummer wäre zumindest die Frage zu lösen, von neu-Kunden mit wenn wäre es immer noch erfordern eine unnötige API-Aufruf zum abrufen der Rechnung.
count=1
zusammen mit der Kunden ID.Bedenkt man, dass der Streifen schafft die Ladung, bevor die Rechnung (Abo), dann werden Sie keinen Grund haben, nicht zu zählen die chargeId beim erstellen des Abonnements Objekt. Ich hatte auch ein eindeutiger Kunden-Objekt pro Abonnement, dieses problem zu umgehen.
warum ist es eine Voraussetzung, um eine eindeutige Kunden-Objekt? Wird es nicht noch die aktuelle Rechnung für den Kunden überhaupt benutzt?
InformationsquelleAutor Jason Lantz
Nun, es gibt keine straight-forward Weg, dies zu tun. Es gibt allerdings einen hack zu bekommen
charge_id
für dassubscription
mit out waiting forinvoice.payment_succeeded
callback
.Diese, wie ich in
Ruby
können Sie behandeln Sie dies als einepseudo
code. Möglicherweise können Sie dies mitPHP
API
sSiehe Struktur
ListObject
fürRechnungen
InformationsquelleAutor illusionist
Kam in dieser Frage, während die Suche nach gewusst wie: extrahieren von Abonnement-ID in Java. Stellt sich heraus das die neue version der API (1.7.1 für Java) hat ID-Feld direkt in den Abonnement-Objekt. Das gleiche gilt wohl auch für die PHP-API.
InformationsquelleAutor SergeyB
Ich war ratlos über das gleiche problem nach einiger Zeit stellt sich heraus, ziemlich einfach.
Schritt 1: Rufen Sie abrufen alle Rechnung API mit Abonnement-id als parameter.
Beispiel in PHP:
In
$invoice
erhalten Sie Kostenlos ID und somit können Sie alles nach.InformationsquelleAutor Kunal Fule