Как сделать несколько платежей, используя токен, созданный клиентом с помощью Stripe?

Я получаю сообщение об ошибке при списании средств с помощью токена, созданного клиентом, ранее созданным с помощью Stripe. Мне нужно иметь возможность взимать плату с пользователя более одного раза, чтобы платежи могли идти в несколько пунктов назначения, поэтому я создаю токен. Однако при попытке взимать плату с любого, используя следующий код, я получаю сообщение об ошибке:

Неустранимая ошибка: необработанное исключение «Stripe\Error\InvalidRequest» с сообщением «Нет такого токена: tok_187sfmBqiK1u6WYC3qS20eNu»

$stripe_id и другие переменные были назначены в моем коде, я просто копирую/вставляю основные биты:

\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
    )); 

Любая помощь будет очень признательна,

Спасибо


person munketh    schedule 05.05.2016    source источник


Ответы (1)


В полосе любой токен, который вы получили/создали, является одноразовым, поэтому вы не можете использовать токен дважды. Stripe поддерживает зарядку тремя способами.

  1. Использование токена карты
  2. Использование токена (вы делаете)
  3. Использование идентификатора клиента

Поэтому в вашем случае просто используйте идентификатор клиента вместо токена, чтобы взимать плату с клиента несколько раз. Срок действия CustomerId не истекает.

Итак, внутри объекта оплаты используйте поле «клиент»

вы можете увидеть объект начисления здесь полоса

person LAV VISHWAKARMA    schedule 10.08.2016