Mit Gutschein Codes mit Streifen
Ich habe eine Website, die mit Streifen verarbeiten, die ein Abo-Zahlungen. Es gibt nur eine Art von Abonnement.
Ich folgte dieses tutorial auf NetTuts zu tun, das initial setup.
Eine form gut funktioniert die Verarbeitung von Abonnements und alles funktionierte. Kunde bat um einen Gutschein-code. Stripe unterstützt diese, so dass ich versuchen, fügen Sie einen Gutschein-code, um die bestehenden form.
Habe ich eingerichtet, Gutschein-codes in Streifen, legen Sie mein Test-Tasten und umgeschaltet, um den test-Modus in Streifen.
Ich trete ein paar Prüfungen in meinem code:
- Überprüfen, um zu sehen, ob ein Gutschein eingegeben wurde, wenn nicht erstellen Sie ein neues customer-Objekt, ohne eine Gutschein-option
- Überprüfen, um zu sehen, ob der Gutschein gültig ist, wenn nicht wieder ein Fehler
Ob es ein Gutschein eingegeben und es ist gültig, dann übergeben Sie die passenden Streifen-Gutschein-Objekt als eine option beim erstellen eines neuen Kunden.
if(isset($couponCode) && strlen($couponCode) > 0) {
$using_discount = true;
try {
$coupon = Stripe_Coupon::retrieve($couponCode);
if($coupon !== NULL) {
$cCode = $coupon;
}
//if we got here, the coupon is valid
} catch (Exception $e) {
//an exception was caught, so the code is invalid
$message = $e->getMessage();
returnErrorWithMessage($message);
}
}
try
{
if($using_discount == true) {
$customer = Stripe_Customer::create(array(
"card" => $token,
"plan" => "basic_plan",
"email" => $email,
"coupon" => $cCode
));
}
else {
$customer = Stripe_Customer::create(array(
"card" => $token,
"plan" => "basic_plan",
"email" => $email
));
}
$couponCode ist gefüllt mit dem Formular-Feld korrekt die gleiche Weise alle anderen Felder gefüllt sind, habe ich dreifach überprüft, dass es gezogen wird, richtig.
Wenn ich versuche, das Formular zu senden, ohne einen Gutschein code für den Gebühren in voller Höhe und geht durch Streifen richtig.
Aber wenn ich geben Sie entweder eine gültige ODER ungültige Gutschein-code, es vergeht nicht ein Gutschein-Objekt mit dem customer-Objekt beim erstellen eines neuen customer-Objekt und belastet den vollen Betrag, wenn Sie durch Streifen.
Habe ich schaute auf den code für Stunden und kann nicht scheinen, um herauszufinden, warum es immer versäumt zu erkennen, die Rabatt-code, und übergeben Sie das passende coupon-Objekt zu Streifen.
InformationsquelleAutor biggles | 2013-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist wohl ein wenig veraltet und du eine Lösung gefunden für deinen code. Aber es würde scheinen, alles, was Sie tun müssen, ist, übergeben Sie durch Ihre ursprünglichen $couponCode als array-Wert für den Gutschein. Wie bereits von codasaurus du bist einfach immer ein array zurück, aus Streifen von dem Gutschein, die Sie nicht brauchen, es sei denn, Sie haben $cCode->id, und übergeben Sie die ID zurück, um das array zu erstellen, der einem Kunden.
Ich geändert, wenn Sie die $using_discount zu wahren, wie dies auslösen würde, zu schicken, einen Gutschein-code, wenn der Gutschein gültig war oder nicht.
Sobald der Gutschein eigentlich gültig wir schicken dann den Gutschein. Sie brauchen nur den Wert der übermittelten Zustand $Gutschein ist der Verweis auf den Rabatt im system. Oder Sie können $Gutschein->id, wenn Sie wollte es so.
Hier ist mein nehmen auf eine Lösung basierend auf deinem code, es könnte besser sein, aber ich hoffe es hilft anderen die Suche nach einer Lösung wie ich.
InformationsquelleAutor Rob Cullen
Blick auf die Dokumentation https://stripe.com/docs/api#create_customer, die Stripe_Customer::create () - Aufruf wird einfach der Gutschein-code. Es sieht aus wie Sie sind übergeben den gesamten coupon-Objekt.
Wenn Ihr erste versuchen zu fangen schlägt fehl, $couponCode bereits Ihren Gutschein-code. Auch gibt es einige andere Prüfungen, die Sie durchführen müssen, um festzustellen, ob der Gutschein gültig ist. Zum Beispiel, wenn der coupon->times_redeemed < Gutschein->max_redemptions, oder wenn die Gutschein->redeem_by bestanden hat, etc. Vielleicht wollen Sie auch zu prüfen, ob der Kunde bereits mit dem Gutschein durch die Prüfung der Kunden-Rabatt-Objekt.
Wenn eine dieser überprüfungen fehlschlägt, stellen Sie einfach Ihre $using_discount = false;
InformationsquelleAutor Codasaurus