2016-07-12 14 views
2

Zunächst einmal bin ich mir bewusst, dass diese Frage gestellt wurde, aber sie erklären nicht, wie die Informationen erhaltenWie bekomme ich die Charge ID von Stripe mit PHP?

charge.succeeded 

ich mit mit Streifen eine Auth und Capture Ladung erschaffe. Ich brauche die Gebühren-ID, um die Gebühr zu bestätigen/zu erfassen.

Der folgende Code erstellt die Gebühr, wird aber erst berechnet, wenn sie genehmigt wurde.

\Stripe\Charge::create(array(
    "amount" => $price, 
    "currency" => "usd", 
    "customer" => $custID, // obtained with Stripe.js 
    "description" => "Charge for [email protected]",   
    "capture" => false 
)); 

ich davon aus, dass ich, indem Sie die Ladung ID bekommen konnte:

$chargeID = $charge->id; 

, weil das ist, wie ich die Kunden-ID, wenn ich einen Kunden erstellen. Aber ich bekomme nichts, wenn ich die Variable abhöre, was nicht hilft, da ich sie in einer Datenbank speichern möchte. Ich habe überall gesucht, aber nichts Konkretes oder Neues finden können.

Dann, um die Ladung abzuschließen. Ich muss es auf diese Weise erfassen:

$ch = \Stripe\Charge::retrieve("$chargeID"); 
$ch->capture(); 

Dies ist alles aus der Stripe-API-Referenz, aber es erklärt nicht, wie die Gebühren-ID erhalten. Es sagt dir nicht einmal, wie du die Kunden-ID bekommst, glücklicherweise kam Stack Overflow mit dieser überein.

Dies ist alles mit PHP gemacht.

+0

Weisen Sie 'charge :: create()' eine Variable zu? Was ist drin? – Kisaragi

+0

'$ charge-> id' sollte funktionieren, vorausgesetzt, Sie verwenden' $ charge = \ Stripe \ Charge :: create (... '. – rjdown

+0

' $ charge-> ID' funktioniert in meiner Anwendung. – Barmar

Antwort

4

Nach Stripe's Documentation, beim Erstellen einer neuen Gebühr erhalten Sie Stripe\Charge JSON Objekt im Gegenzug (oder eine Ausnahme, wenn etwas schief gelaufen ist).

können Sie var_dump das Objekt, das Sie gerade erstellt haben, um zu sehen, was Ihr Objekt aussieht, aber nach der die API Sie die id des zurückgegebenen Objekts verwenden:

$charge = \Stripe\Charge::create(array(
    "amount" => $price, 
    "currency" => "usd", 
    "customer" => $custID, // obtained with Stripe.js 
    "description" => "Charge for [email protected]",   
    "capture" => false 
)); 

// you can use the var_dump function to see what's inside the $charge object 
// var_dump($charge); 

$chargeID = $charge->id; 

(Und Sie brauchen nicht zu Rufen Sie die Charge::retrieve erneut auf, Sie können das aktuelle Objekt $charge verwenden).

+0

danke. Ich kann nicht glauben, dass ich die Aufgabe vergessen habe. Es funktioniert jetzt. Vielen Dank allen, die geantwortet haben. – Maria

+0

@Maria, Sie sind willkommen. Wenn die Antwort richtig ist, können Sie es gerne annehmen oder Markieren Sie es als nützlich – Dekel

+0

Ich würde aber, da mein Ruf weniger als 15 ist, wird es nicht viel für die öffentliche Anzeige tun. – Maria

Verwandte Themen