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