javascript - variable - Pago de franjas: Obtención de error como cliente cus_***** no tiene una tarjeta vinculada con ID tok_*****
undefined javascript error (2)
Había establecido "SourceToken" en StripeCustomerCreateOptions
Y "SourceTokenOrExistingSourceId" en StripeChargeCreateOptions
(SourceToken) para mi StripeCustomer.
Al eliminar la asignación de SourceTokenOrExistingSourceId se resolvió mi problema para mi StripeCharge, ya que el token creaba ID en conflicto.
En el modo de prueba, cuando creo un nuevo cliente e intento el pago, recibí este error.
Cliente cus_7Zz2BCnybIZLGw no tiene una tarjeta vinculada con ID tok_17Kp8GAwLkQPB7OqrrM73VVI
Estoy usando el número de tarjeta: 4242424242424242 exp_month: 12 exp_year 2016
La respuesta de retorno es,
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.
)
Los datos de carga de entrada son,
$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
);
Hay tres formas diferentes de crear un cargo :
con el parámetro
source
solamente. En este caso, lasource
debe ser un identificador de token o source (creado por Checkout o Stripe.js ), es decir, una cadena que comienza contok_
osrc_
.sólo con el parámetro
customer
. En este caso, elcustomer
debe ser un ID de customer , es decir, una cadena que comienza concus_
. Se cobrará la fuente de pago por defecto del cliente.Con los parámetros tanto del
customer
como de lasource
. En este caso, elcustomer
debe ser un ID de cliente como en el caso anterior, pero lasource
debe ser el ID de una fuente de pago que ya está adjunta al cliente. Las fuentes de pago pueden ser cards (ID comienza concard_
), cuentas bancarias (ID comienza conba_
) o source (ID comienza consrc_
).
En su caso, está pasando un ID de token en el parámetro de source
junto con un ID de cliente en el parámetro de customer
.
Si se trata de una tarjeta nueva, primero debe usar el token para crear una tarjeta en el cliente y luego crear el cargo con la identificación de la tarjeta. Si la tarjeta ya estaba guardada para este cliente, no necesita volver a recopilar la información de la tarjeta (y, por lo tanto, no necesita crear un token).