En mode test lorsque je crée un nouveau client et essaie de payer, j'ai cette erreur.
Le client cus_7Zz2BCnybIZLGw n'a pas de carte liée avec l'ID tok_17Kp8GAwLkQPB7OqrrM73VVI
Im en utilisant le numéro de carte: 424242424242424242 exp_month: 12 exp_year 2016
La réponse de retour est,
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.
)
Les données de charge d'entrée sont,
$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' => [email protected],
'description' => 'my payment',
'customer' => $customer_id
);
Il existe trois façons différentes de créer une charge :
avec le paramètre source
uniquement. Dans ce cas, source
doit être un token ou source ID (créé par Checkout ou Stripe. js ), c'est-à-dire une chaîne commençant par tok_
ou src_
.
avec le paramètre customer
uniquement. Dans ce cas, customer
doit être un client ID, c'est-à-dire une chaîne commençant par cus_
. La source de paiement par défaut du client sera facturée.
avec les paramètres customer
et source
. Dans ce cas, customer
doit être un ID client comme dans le cas précédent, mais source
doit être l'ID d'une source de paiement déjà associée au client. Les sources de paiement peuvent être cartes (l'ID commence par card_
), comptes bancaires (l'ID commence par ba_
) ou sources (l'ID commence par src_
).
Dans votre cas, vous transmettez un ID de jeton dans le paramètre source
ainsi qu'un ID client dans le paramètre customer
.
S'il s'agit d'une nouvelle carte, vous devez d'abord utiliser le token to créer une carte sur le client, puis créer la charge avec l'ID de la carte. Si la carte a déjà été enregistrée pour ce client, vous n'avez pas besoin de collecter à nouveau les informations de la carte (et donc pas besoin de créer un jeton du tout).