Stripe Payment: получение ошибки как клиент cus _ ***** не имеет связанной карты с ID tok _ *****

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

Клиент cus_7Zz2BCnybIZLGw не имеет связанной карты с идентификатором tok_17Kp8GAwLkQPB7OqrrM73VVI

Im, используя номер карты: 4242424242424242 exp_month: 12 exp_year 2016

Ответ возврата,

Array ( [charge_status] => [error_info] => Array ( [type] => invalid_request_error [message] => Customer cus_7Zz2BCnybIZLGw does not have a linked card with ID tok_17Kp8GAwLkQPB7OqrrM73VVI. [param] => card [code] => missing ) [message] => Customer cus_7Zz2BCnybIZLGw does not have a linked card with ID tok_17Kp8GAwLkQPB7OqrrM73VVI. ) 

Данные ввода заряда,

  $customer = Stripe_Customer::create(array( 'account_balance' => 100, 'source' => $token, 'email' => strip_tags(trim($email)) ) ); $customer_id = $customer->id; $charge = array( 'card' => 4242424242424242, 'amount' => 100, 'currency' => 'cad', 'receipt_email' => test@test.com, 'description' => 'my payment', 'customer' => $customer_id ); 

Существует три способа создания заряда :

  • с единственным параметром source . В этом случае source должен быть идентификатор токена (созданный Checkout или Stripe.js ), то есть строка, начинающаяся с tok_ .

  • с параметром customer . В этом случае customer должен быть идентификатор клиента , то есть строка, начинающаяся с cus_ . Плата за клик клиента будет снята.

  • с параметрами customer и source . В этом случае customer должен быть идентификатор клиента, как в предыдущем случае, но source должен быть идентификатор карты, то есть строка, начинающаяся с card_ . Объект карты должен принадлежать клиенту.

В вашем случае вы передаете идентификатор токена в параметре source вместе с идентификатором customer параметре customer .

Если это новая карта, вы должны сначала использовать токен, чтобы создать карту у клиента, а затем создать плату с идентификатором карты. Если карта уже была сохранена для этого клиента, вам не нужно снова собирать информацию о карте (и, следовательно, вообще не нужно создавать токен).