2016-05-05 7 views
0

Ich erhalte einen Fehler, wenn ich eine Gebühr mit einem Token erstelle, das von einem Kunden erstellt wurde, der zuvor mit stripe erstellt wurde. Ich muss in der Lage sein, einen Benutzer mehr als einmal zu belasten, damit Gebühren zu mehreren Zielen gehen können, deshalb erstelle ich das Token. Wenn jedoch jemand mit dem folgenden Code zu laden versuchen, erhalte ich die Fehlermeldung:Wie können Sie mehrere Zahlungen mit einem Token durchführen, der von einem Kunden mit stripe erstellt wurde?

Fatal error: abgefangene Ausnahme 'Stripe \ Fehler \ INVALIDREQUEST' mit der Meldung 'No such token: tok_187sfmBqiK1u6WYC3qS20eNu'

$ stripe_id und anderen Variablen ich habe in meinem Code zugewiesen wurde, bin gerade Kopie/die wichtigsten Bits einfügen:

\Stripe\Stripe::setApiKey("sk_mykey-changedforsecurity"); // authorises secret key 


$token = $_POST['stripeToken']; 


$customer = \Stripe\Customer::create(array(
    "description" => "test customer", 
    "source" => $token // obtained with Stripe.js 
)); 


$chargetoken = \Stripe\Token::create(
    array("customer" => $customer->id), 
    array("stripe_account" => $stripe_id) // id of the connected account 
); 


$charge = \Stripe\Charge::create(array(
    "amount" => $price, 
    "currency" => "gbp", 
    "source" => $chargetoken, 
    "description" => $title, 
    "application_fee" => 20, 
    "destination" => $stripe_id 
    )); 

Jede mögliche Hilfe würde sehr geschätzt werden,

Dank

Antwort

1

In stripe ist jedes Token, das Sie erhalten/erstellen, einmal, so dass Sie Token nicht zweimal verwenden können. Stripe unterstützt die Gebühren auf 3 Arten.

  1. Karte verwenden Token
  2. Mit Token (Sie tun)
  3. Mit Kunden-ID

So in Ihrem Fall einfach Kunden-ID anstelle des Tokens einen Kunden mehr Mal aufzuladen. CustomerId wird nicht ablaufen.

So innen Ladungs ​​Objekt use "Kunde"

können Sie die Lade Objekt hier sehen stripe