В режиме тестирования, когда я создаю нового клиента и пытаюсь оплатить, я получил эту ошибку.
Клиент 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 .
Если это новая карта, вы должны сначала использовать токен, чтобы создать карту у клиента, а затем создать плату с идентификатором карты. Если карта уже была сохранена для этого клиента, вам не нужно снова собирать информацию о карте (и, следовательно, вообще не нужно создавать токен).