Redireccionamiento

Otra forma de hacer cargos con tarjeta sin la necesidad de implementar un formulario de pago en tu sitio, es mediante la utilización de un formulario que Openpay proporciona. Resumen de pasos:
  1. Crear un cargo que contenga el atributo confirm en false y una url a la cual direccionar una vez concluido el pago.
  2. En base a la respuesta del cargo creado, redirigir al usuario a la url contenida en el objeto payment_method regresado.
  3. Que el cliente llene la información solicitada y realize el pago en el formulario.
  4. Si el pago fué exitoso dar clic en el botón continuar.
  5. El pago está hecho.

Creación del cargo

Ejemplo de creación de un cargo utilizando el formulario de pago de Openpay.
 
    $openpay = Openpay::getInstance('mzdtln0bmtms6o3kck8f', 'sk_e568c42a6c384b7ab02cd47d2e407cab');
    $customer = array(
        'name' => 'Mario',
        'last_name' => 'Benedetti Farrugia',
        'phone_number' => '1111111111',
        'email' => 'mario_benedetti@miempresa.mx');
    $chargeRequest = array(
        "method" : "card",
        'amount' => 111,
        'description' => 'Cargo desde terminal virtual de 111',
        'customer' => $customer,
        'send_email' => false,
        'confirm' => false,
        'redirect_url' => 'http://www.openpay.mx/index.html'
    ) ;
    $charge = $openpay->charges->create( $chargeRequest);

Redirigir al formulario de Openpay

Si la llamada es correcta entonces se regresará una respuesta con un objeto transacción. en estado pendiente representado en el lenguaje utilizado. Respuesta:
{
  "id": "trq7yrthx5vc4gtjdkwg",
  "authorization": null,
  "method": "card",
  "operation_type": "in",
  "transaction_type": "charge",
  "status": "charge_pending",
  "conciliated": false,
  "creation_date": "2016-09-09T18:52:02-05:00",
  "operation_date": "2016-09-09T18:52:02-05:00",
  "description": "Cargo desde terminal virtual de 111",
  "error_message": null,
  "amount": 111,
  "currency": "MXN",
  "payment_method": {
    "type": "redirect",
    "url": "https://sandbox-api.openpay.mx/v1/mexzhpxok3houd5lbvz1/charges/trq7yrthx5vc4gtjdkwg/card_capture"
  },
  "customer": {
    "name": "Mario",
    "last_name": "Benedetti Farrugia",
    "email": "mario_benedetti@miempresa.mx",
    "phone_number": "1111111111",
    "creation_date": "2016-09-09T18:52:02-05:00",
    "clabe": null,
    "external_id": null
  }
}
Redirigir al usuario a la url contenida en el atributo url que se encuentra dentro del objeto payment_method. Formulario Openpay

Llenar datos de pago

Que el usuario llene los datos solicitados y de clic en Realizar Pago Llenar datos

Dar clic en Continuar

Si el pago fué exitoso que el usuario de clic en Continuar Pago exitoso Esto redirecciona a la url que se proporcionó al crear el cargo (en el caso del ejemplo la página de Openpay) dando por terminado el flujo del pago. Redirect exitoso
Notas:
  • Puedes simular diferentes resultados usando las tarjetas de Pruebas
  • Implementa las Notificaciones para conocer el estado de los pagos en tiempo real