-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
Resumen
El primer cargo (web, sandbox) funciona —incluido 3DS—.
El segundo cargo (recurrente, vía cron, usando card_id guardada) falla con: Attribute device_session_id is required.
La cuestión es que device_session_id solo se genera en el formulario, por ende no existe al hacer el segundo cobro
Puedo leer el customer sin problema; el error ocurre en $customer->charges->create().
Entorno
País: MX · Modo: Sandbox (setProductionMode(false))
Contexto: cron/CLI (sin navegador)
Código mínimo
Openpay::setCountry('MX');
Openpay::setProductionMode(false);
$openpay = Openpay::getInstance('MERCHANT_ID', 'SK_PRIVADA', 'MX', '127.0.0.1');
$customer = $openpay->customers->get('<customer_id>'); // OK
$charge = $customer->charges->create([
'method' => 'card',
'source_id' => '<stored card_id>', // tarjeta guardada del primer cargo
'amount' => 100.00,
'currency' => 'MXN',
'description' => 'Recurring test',
'order_id' => 'S123-C2'
]);
Código de la documentación
$openpay = Openpay::getInstance('moiep6umtcnanql3jrxp', 'sk_3433941e467c1055b178ce26348b0fac', 'MX', '127.0.0.1');
$chargeData = array(
'source_id' => 'tvyfwyfooqsmfnaprsuk',
'method' => 'card',
'amount' => 100,
'description' => 'Cargo inicial a mi cuenta',
'order_id' => 'ORDEN-00070');
$customer = $openpay->customers->get('a9ualumwnrcxkl42l6mh');
$charge = $customer->charges->create($chargeData);
Metadata
Metadata
Assignees
Labels
No labels