Skip to content

Cargo recurrente vía cron exige device_session_id #87

@sunco007

Description

@sunco007

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions