Enviar un formulario de pago en POST

El sitio web vendedor redirecciona al comprador hacia la plataforma de pago mediante un formulario HTML POST en HTTPS.

Este formulario contiene:

Los siguientes elementos técnicos:

  • Las etiquetas <form> y </form> que permiten crear un formulario HTML.
  • El atributo method="POST" que especifica el método utilizado para enviar los datos.
  • El atributo action="https://secure.payzen.lat/vads-payment/" que especifica a dónde enviar los datos del formulario.

Los datos del formulario:

Todos los datos del formulario deben estar codificados en UTF-8.

De esta forma, los caracteres especiales (acentos, puntuación, etc.) serán interpretados correctamente por la plataforma de pago. En el caso contrario, el cálculo de la firma será erróneo y el formulario será rechazado.

Lo invitamos a consultar la siguiente tabla para comprender mejor la codificación de formatos.

Notación Descripción
a Caracteres alfabéticos (de 'A' a 'Z' y de 'a' a 'z')
n Caracteres numéricos
s Caracteres especiales
an Caracteres alfanuméricos
ans Caracteres alfanuméricos y especiales (excepto "<" y ">")
3 Longitud fija de 3 caracteres
..12 Longitud variable hasta 12 caracteres
json JavaScript Object Notation.

Un objeto que contiene pares clave/valor separados por comas.

Comienza con un refuerzo izquierdo " { y termina con un refuerzo derecho " }".

Cada par de clave/valor contiene el nombre de la clave entre comillas dobles seguidas de ": ", seguido de un valor.

El nombre de la clave debe ser alfanumérico.

El valor puede ser:
  • una cadena de caracteres (en este caso debe estar encuadrada entre comillas dobles)
  • un número
  • un objeto
  • un tablero
  • un booleano
  • vacío
Ejemplo: {"name1":45,"name2":"value2", "name3"=false}
enum

Caracteriza un campo con un número finito de valores.

La lista de valores posibles se da en la definición del campo.

liste d'enum Lista de valores separados por un " ; ".

La lista de valores posibles se da en la definición del campo.

Ejemplo: vads_payment_cards=VISA;MASTERCARD

map Lista de pares clave/valores separados por un " ; ".

Cada par de clave / valor contiene el nombre de la clave seguido de " = ".

El valor puede ser:
  • una cadena de caracteres
  • un booleano
  • un objeto json
  • un objeto xml

La lista de valores posibles para cada par de clave / valor se proporciona en la definición del campo.

Ejemplo: vads_theme_config=SIMPLIFIED_DISPLAY=true;RESPONSIVE_MODEL=Model_1

  • Los campos obligatorios:
    Tabla 1. Lista de campos obligatorios
    Nombre del campo Descripción Formato Valor
    signature Firma que garantiza la integridad de las solicitudes intercambiadas entre el sitio web vendedor y la plataforma de pago. ans

    Ex :

    EKrcj4e8N38LGCP/xkJMaHUajUfvsRG50mDwYLNBsMU=

    vads_action_mode Modo de adquisición de los datos de la tarjeta enum INTERACTIVE
    vads_amount Monto del pago en su unidad monetaria más pequeña (el centavo para el para el dólar estadunidense) n..12 Ejemplo: 3000 para 30,00 USD
    vads_ctx_mode Adquisición de los datos en la plataforma de pago enum TEST oPRODUCTION
    vads_currency Código numérico de la moneda a utilizar para el pago, según la norma ISO 4217 (código numérico) n3 Ejemplo: 840 para el dólar norteamericano (USD)
    vads_page_action Acción a realizar enum PAYMENT
    vads_payment_config Tipo de pago enum SINGLEpara un pago único
    vads_site_id Identificador de la tienda n8 Ejemplo: 12345678
    vads_trans_date Fecha y hora del formulario de pago en el huso horario UTC n14

    Respete el formato AAAAMMDDhhmmss

    Ejemplo: 20170701130025
    vads_trans_id Identificador de la transacción n6 Ejemplo: 123456
    vads_version Versión del protocolo de intercambio con la plataforma de pago enum V2
  • Los campos recomendados:
    • Los datos del pedido
      Nombre del campo Descripción Formato Valor
      vads_order_id Número del pedido ans..64 Ejemplo: 2-XQ001
      vads_order_info Información adicional sobre el pedido an..255 Ejemplo: Código interphone 3125
      vads_order_info2 Información adicional sobre el pedido an..255 Ejemplo: Sin ascensor
      vads_order_info3 Información adicional sobre el pedido an..255 Ejemplo: Express
      vads_nb_products Número de artículos que se encuentran en el carrito de compras n..12 Ejemplo: 2
      vads_product_ext_idN Código de barras del producto en el sitio web vendedor. N corresponde al índice del artículo (0 para el primero, 1 para el segundo...). an..100 Ejemplo:

      vads_product_ext_id0 = "0123654789123654789"

      vads_product_ext_id1 = "0223654789123654789"

      vads_product_ext_id2 = "0323654789123654789"

      vads_product_labelN Descripción del artículo. N corresponde al índice del artículo (0 para el primero, 1 para el segundo...). an..255 Ejemplo:

      vads_product_label0 = "tee-shirt"

      vads_product_label1 = "Galleta"

      vads_product_label2 = "sandwich"

      vads_product_amountN Monto del artículo. N corresponde al índice del artículo (0 para el primero, 1 para el segundo...). n..12 Ejemplo:

      vads_product_amount0 = "1200"

      vads_product_amount1 = "800"

      vads_product_amount2 = "950"

      vads_product_typeN Tipo del artículo. N corresponde al índice del artículo (0 para el primero, 1 para el segundo...).

      enum Ejemplo:

      vads_product_type0 = "CLOTHING_AND_ACCESSORIES"

      vads_product_type1 = "FOOD_AND_GROCERY"

      vads_product_type2 = "FOOD_AND_GROCERY"

      vads_product_refN Referencia del artículo. N corresponde al índice del artículo (0 para el primero, 1 para el segundo...). an..64 Ejemplo:

      vads_product_ref0 = "CAA-25-006"

      vads_product_ref1 = "FAG-B5-112"

      vads_product_ref2 = "FAG-S9-650"

      vads_product_qtyN Cantidad del artículo. N corresponde al índice del artículo (0 para el primero, 1 para el segundo...). n..12 Ejemplo:

      vads_product_qty0 = "1"

      vads_product_qty1 = "2"

      vads_product_qty2 = "2"

    • Los datos del comprador
      Tabla 2. Lista de campos - Detalles del comprador
      Nombre del campo Descripción
      vads_cust_email Dirección de correo electrónico del comprador.
      vads_cust_id Referencia del comprador en el sitio web vendedor.
      vads_cust_title Estado civil del comprador.
      vads_cust_status Estado (PRIVATE: para particular / COMPANY: para una empresa).
      vads_cust_first_name Nombre.
      vads_cust_last_name Nombre.
      vads_cust_legal_name Razón social del comprador.
      vads_cust_cell_phone Número de celular.
      vads_cust_phone Número de teléfono.
      vads_cust_address_number Número de calle.
      vads_cust_address Dirección postal.
      vads_cust_district Barrio.
      vads_cust_zip Código postal.
      vads_cust_city Ciudad.
      vads_cust_state Estado / región.
      vads_cust_country Código del país según la norma ISO 3166.
    • Los datos de entrega
      Nombre del campo Descripción Formato Valor
      vads_ship_to_city Ciudad an..128 Ejemplo: Lima (en Perú) / Buenos Aires (en Argentina)
      vads_ship_to_country Código del país según la norma ISO 3166. a2 Ejemplo: AR para Argentina, PE para Perú,
      vads_ship_to_district Barrio ans..127 Ejemplo: Miraflores (en Perú) / Palermo (en Argentina)
      vads_ship_to_first_name Nombre ans..63 Ejemplo: Franco
      vads_ship_to_last_name Nombre ans..63 Ejemplo: Sanchez
      vads_ship_to_legal_name Razón social an..100 Ejemplo: D. & Cie
      vads_ship_to_phone_num Número de teléfono ans..32 Ejemplo: 11 6526-9200 (14) 860-0200 (en Perú) / (11) 8800-7020 (en Argentina)
      vads_ship_to_state Estado / región ans..127 Ejemplo: Cuyo (en Argentina)
      vads_ship_to_status Define el tipo de dirección de entrega.

      enum

      PRIVATE: para entrega a un particular

      COMPANY: para entrega a una empresa

      vads_ship_to_street_number Número de calle ans..64 Ejemplo: 2
      vads_ship_to_street Dirección postal ans..255 Ejemplo: Avenida del Libertador
      vads_ship_to_street2 Segunda línea de dirección ans..255
      vads_ship_to_zip Código postal an..64 Ejemplo: 40020-01007001 (en Perú) / B1703 (en Argentina)
  • Los campos facultativos:

    Se pueden utilizar campos facultativos suplementarios.

    Consultar el capítulo Diccionario de datos de la guía de implementación Formulario API en nuestro sitio web para visualizar la lista de los campos disponibles

El botón Pagar que permitirá el envío de los datos:

<input type="submit" name="pagar" value="Pagar"/>

Ejemplo

<form method="POST" action="https://secure.payzen.lat/vads-payment/">
				<input type="hidden" name="vads_action_mode" value="INTERACTIVE" />
				<input type="hidden" name="vads_amount" value="3000" />
				<input type="hidden" name="vads_ctx_mode" value="TEST" />
				<input type="hidden" name="vads_currency" value="840" />
				<input type="hidden" name="vads_cust_cell_phone" value="0606060606" />   
				<input type="hidden" name="vads_cust_email" value="my.email@example.com" />
				<input type="hidden" name="vads_cust_first_name" value="Pedro" />
				<input type="hidden" name="vads_cust_last_name" value="Garcia" />
				<input type="hidden" name="vads_cust_phone" value="0505050505" />
				<input type="hidden" name="vads_page_action" value="PAYMENT" />
				<input type="hidden" name="vads_payment_config" value="SINGLE" />
				<input type="hidden" name="vads_site_id" value="12345678" />
				<input type="hidden" name="vads_trans_date" value="20160301101407" />
				<input type="hidden" name="vads_trans_id" value="239848" />
				<input type="hidden" name="vads_version" value="V2" />
				<input type="hidden" name="signature" value="86b2a17b9a5fcefb6c0120c57b25ec86ad1704ee"/>
				<input type="submit" name="pagar" value="Pagar"/>
				</form>