2014-11-07 4 views
7

Zum ersten Mal mit Stripe API arbeiten. Implementieren Sie es auf WordPress mit PHP und JS. Arbeiten an einem Spendenformular. Der Spender sollte in der Lage sein, einen vorgeschlagenen Betrag zu wählen (Radioknöpfe-25,50,75,100) oder zu bezahlen, wie er/sie wünscht (Textfeld nach Auswahl von "Anderes"). Ich konnte das zum Laufen bringen.Stripe: Wie man wiederkehrende Zahlungen ohne Plan einrichtet?

Es gibt ein Kontrollkästchen, um den Betrag als wiederkehrende Zahlung festzulegen. Ich habe wiederkehrende Zahlungspläne für die festen Optionen wie 25, 50, 100 usw. erstellt.

Wie richte ich eine wiederkehrende Zahlung ein, wenn der Spender einen benutzerdefinierten Betrag wählt? Die relevante API kann nicht gefunden werden. Bitte helfen Sie.

Antwort

5

Zuerst müssen Sie create a new customer.

Auf einreichen, können Sie die benutzerdefinierte Menge an create a new plan verwenden:

$current_time = time(); 
$plan_name = strval($current_time); 

Stripe_Plan::create(array(
     "amount" => $_POST['custom-amount'], 
     "interval" => "month", 
     "name" => "Some Plan Name " . $_POST['customer-name'], 
     "currency" => "usd", 
     "id" => $plan_name 
    ) 
); 

Beachten Sie, dass die 'id' eindeutig sein muss. Sie können den Namen des Kunden, einen Zeitstempel oder eine andere zufällige Methode verwenden, um sicherzustellen, dass dies immer der Fall ist.

, würden Sie dann nur create the subscription on the newly-added customer:

$customer = Stripe_Customer::retrieve($customer_just_created); 
$customer->subscriptions->create(array("plan" => $plan_name)); 

Sie werden wahrscheinlich in der Lage sein, die erste Zeile über wegzulassen, wie Sie bereits haben sollte eine Kunden Variablen zugewiesen aus, wenn der Kunde tatsächlich erstellt.

+0

Sie haben erwähnt, dass Die ID sollte eindeutig sein. Warum reflektierst du das nicht in deinem Code? Fügen Sie einfach den Kundennamen wie beim Plannamen hinzu. – Bill

+0

Es gibt keine Garantie, dass der Kundenname eindeutig ist ... Aber ich werde etwas hinzufügen. – rnevius

+0

Das ist wahr. 'time()' ist wahrscheinlich der beste Ansatz, um eine Datenbank abzufragen. Ich benutze keinen Stripe, also weiß ich nicht, aber ist die ID, die du in 'subscriptions-> create() 'übergibst? Wenn ja, müssen Sie die Variable speichern und auch dort verwenden. – Bill

16

Ein anderer Ansatz, den Stripe vorschlägt, ist, einen Plan mit einem wiederkehrenden Betrag von $ 1 (oder $ 0,01 für mehr Flexibilität) einzurichten und dann die Menge nach Bedarf zu variieren.

z.B. Unter Verwendung des $ 0.01 Plan Ansatz, wenn ich 12.50/Monat aufladen wollte, ich könnte die Menge anzupassen, wie so:

$customer->subscriptions->create(array("plan" => "basic", "quantity" => "1250")); 

Stripe Unterstützung

+0

Oh wow. Das ist eine verrückte Idee. Würde nie daran denken. So wird sichergestellt, dass ich keine benutzerdefinierten Pläne für jeden einzelnen Betrag erstellen muss. Interessant! – thedigitalmonk