Stripe paiement: obtenir erreur comme client cus * * * * * ne pas avoir une carte liée avec ID tok *****
En mode test lorsque je crée un nouveau client et essaie de payer, j'ai eu cette erreur.
Le Client cus_7Zz2BCnybIZLGw n'a pas de carte liée avec ID tok_17Kp8GAwLkQPB7OqrrM73VVI
Im en utilisant le numéro de carte: 4242424242424242 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' => test@test.com,
'description' => 'my payment',
'customer' => $customer_id
);
2 réponses
, Il existe trois façons différentes de créer une taxe:
Avec le
source
paramètre uniquement. Dans ce cas,source
doit être un jeton ou source ID (créé par Caisse ou Rayure.js), c'est à dire une chaîne qui commence partok_
ousrc_
.Avec le
customer
paramètre uniquement. Dans ce cas,customer
doit être un clients ID, c'est à dire une chaîne qui commence parcus_
. Le paiement par défaut du client source sera facturé.Avec les paramètres
customer
etsource
. Dans ce cas,customer
doit être un ID client comme dans le cas précédent, maissource
doit être L'ID d'une source de paiement qui est déjà attachée au client. Sources de paiement peut être cartes (ID commence parcard_
), comptes bancaires (ID commence parba_
) ou sources (ID commence parsrc_
).
Dans votre cas, vous passez un identifiant de jeton dans le source
avec un ID client dans le paramètre customer
.
Si c'est une nouvelle carte, vous devez d'abord utiliser le jeton de créer une carte sur le client, puis de 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 n'avez donc pas besoin de créer un jeton du tout).
J'avais défini "SourceToken" dans StripeCustomerCreateOptions
et "SourceTokenOrExistingSourceId" dans StripeChargeCreateOptions
(SourceToken) pour mon Stripcustomer.
La Suppression de L'affectation de SourceTokenOrExistingSourceId a résolu mon problème pour mon StripeCharge, car le jeton a créé des identifiants contradictoires.