Funcionalidades Adicionales
Además de Ventas directas Connect ofrece la funcionalidad de poder procesar las siguientes transacciones.
Es importante mencionar que en caso de requerir alguno de estos servicios se le haga mención hacia el equipo de integraciones de Fiserv para que el servicio sea agregado a la hora de la generación de la tienda.
Venta MSI
Para hacer una venta a meses sin intereses, es prácticamente igual que una Venta Directa con la diferencia de que agregaremos dos parámetros adicionales a nuestro formulario HTML los cuales deben ser considerados a la hora de generar el hash.
El formulario a continuación, representa una venta de $100.00 MXN que se está realizando el día 02 de enero de 2020 a las 12:51:05 PM que se está efectuando sobre la tienda con ID 399000002.
Adicionalmente se agregaron dos parámetros: numberOfInstallments, que representan el número de meses a pagar y installmentsInterest que indica si se aplicarán intereses, siempre usaremos el valor de "false".
<form method="POST" action="https://test.ipg-online.com/connect/gateway/processing">
<input type="hidden" name="chargetotal" value="100.00" />
<input type="hidden" name="checkoutoption" value="combinedpage" />
<input type="hidden" name="currency" value="484" />
<input type="hidden" name="hash_algorithm" value="HMACSHA256" />
<input type="hidden" name="hashExtended" value="EapafBqqOF6N/kch8USkHPGh+fwSko24h6FpQnQHfQ8=" />
<input type="hidden" name="installmentsInterest" value="false" />
<input type="hidden" name="numberOfInstallments" value="6" />
<input type="hidden" name="responseFailURL" value="https://myurl.com/checkout/success" />
<input type="hidden" name="responseSuccessURL" value="https://myurl.com/checkout/error" />
<input type="hidden" name="storename" value="399000002" />
<input type="hidden" name="timezone" value="America/Mexico_City" />
<input type="hidden" name="txndatetime" value="2020:01:02-12:51:05" />
<input type="hidden" name="txntype" value="sale" />
</form>
Tokenización
Para hacer una venta y tokenizar una tarjeta es prácticamente igual que una Venta Directa con la diferencia de que agregaremos un parámetro adicional a nuestro formulario HTML, assignToken con el valor true, el cual debe ser considerado a la hora de generar el hash.
De esta forma, al procesar satisfactoriamente una transacción, obtendremos un token en la respuesta dentro del parámetro hosteddataid.
Este token quedará asociado dentro de nuestro Gateway a la tarjeta utilizada en la transacción. Es tu deber implementar la lógica para guardarlo dentro de tu base de datos y asociarlo a tu cliente.
<form method="POST" action="https://test.ipg-online.com/connect/gateway/processing">
<input type="hidden" name="assignToken" value="true" />
<input type="hidden" name="chargetotal" value="100.00" />
<input type="hidden" name="checkoutoption" value="combinedpage" />
<input type="hidden" name="currency" value="484" />
<input type="hidden" name="hash_algorithm" value="HMACSHA256" />
<input type="hidden" name="hashExtended" value="EapafBqqOF6N/kch8USkHPGh+fwSko24h6FpQnQHfQ8=" />
<input type="hidden" name="responseFailURL" value="https://myurl.com/checkout/success" />
<input type="hidden" name="responseSuccessURL" value="https://myurl.com/checkout/error" />
<input type="hidden" name="storename" value="399000002" />
<input type="hidden" name="timezone" value="America/Mexico_City" />
<input type="hidden" name="txndatetime" value="2020:01:02-12:51:05" />
<input type="hidden" name="txntype" value="sale" />
</form>
Venta con Token
Al enviar el parámetro hosteddataid con un token previamente generado, únicamente se le solicitará al comprador ingresar el Código de Seguridad (CVV/CVV2) empleado para ese medio de pago; de esta forma el Gateway de IPG obtendrá los datos cifrados de la tarjeta y procesará la transacción.
<form method="POST" action="https://test.ipg-online.com/connect/gateway/processing">
<input type="hidden" name="chargetotal" value="100.00" />
<input type="hidden" name="checkoutoption" value="combinedpage" />
<input type="hidden" name="currency" value="484" />
<input type="hidden" name="hash_algorithm" value="HMACSHA256" />
<input type="hidden" name="hashExtended" value="EapafBqqOF6N/kch8USkHPGh+fwSko24h6FpQnQHfQ8=" />
<input type="hidden" name="hosteddataid" value="TOKEN_TO_USE" />
<input type="hidden" name="responseFailURL" value="https://myurl.com/checkout/success" />
<input type="hidden" name="responseSuccessURL" value="https://myurl.com/checkout/error" />
<input type="hidden" name="storename" value="399000002" />
<input type="hidden" name="timezone" value="America/Mexico_City" />
<input type="hidden" name="txndatetime" value="2020:01:02-12:51:05" />
<input type="hidden" name="txntype" value="sale" />
</form>
Cargos Recurrentes Calendarizados
Por Connect también es posible programar que una misma venta se repita de forma automática un número finito de veces.
Para esto agregaremos parámetros adicionales a nuestro formulario HTML, los cuales deben ser considerados a la hora de generar el hash.
recurringInstallmentCount: [Número] entre 1 y 999. Es el número de veces que se repetirá la venta (incluyendo cobro inicial).
recurringInstallmentPeriod: los valores permitidos son ["day", "week", "month", "year"] Indica un intervalo de tiempo.
recurringInstallmentFrequency: [Número] entre 1 y 99. Indica el número de intervalos a esperar entre pagos.
ponumber: Número de contrato único para la recurrencia hasta 50 caracteres (letras y números).
El formulario a continuación, representa una venta de $100.00 MXN que se está realizando el día 02 de enero de 2020 a las 12:51:05 PM que se está efectuando sobre la tienda con ID 399000002.
Este cargo se repetirá automáticamente 12 veces (recurringInstallmentCount)
El intervalo de tiempo se medirá en meses (recurringInstallmentPeriod).
Cada cargo será efectuado cada que hayan transcurrido 1 intervalo de tiempo (recurringInstallmentFrequency)
Es OBLIGATORIO enviar un número de contrato para la transacción en el parámetro ponumber.
<form method="POST" action="https://test.ipg-online.com/connect/gateway/processing">
<input type="hidden" name="chargetotal" value="100.00" />
<input type="hidden" name="checkoutoption" value="combinedpage" />
<input type="hidden" name="currency" value="484" />
<input type="hidden" name="hash_algorithm" value="HMACSHA256" />
<input type="hidden" name="hashExtended" value="EapafBqqOF6N/kch8USkHPGh+fwSko24h6FpQnQHfQ8=" />
<input type="hidden" name="ponumber" value="PO02220202" />
<input type="hidden" name="recurringInstallmentCount" value="12" />
<input type="hidden" name="recurringInstallmentPeriod" value="month" />
<input type="hidden" name="recurringInstallmentFrequency" value="1" />
<input type="hidden" name="recurringComments" value="Comentarios adicionales de la transacción" />
<input type="hidden" name="responseFailURL" value="https://myurl.com/checkout/success" />
<input type="hidden" name="responseSuccessURL" value="https://myurl.com/checkout/error" />
<input type="hidden" name="storename" value="399000002" />
<input type="hidden" name="timezone" value="America/Mexico_City" />
<input type="hidden" name="txndatetime" value="2020:01:02-12:51:05" />
<input type="hidden" name="txntype" value="sale" />
</form>
Los cargos recurrentes podrán ser cancelados desde la VT en Reportes/Recurrencias Activas identificando el oid o haciendo uso del API REST e identificando el ipgTransactionID que obtenemos a la respuesta.
Preautorización
Una preautorización es una venta en donde el monto en lugar de ser descontado de la cuenta del cliente final es retenido o congelado. Esto se refiere a que tu cliente podrá seguir viendo los fondos en su cuenta, pero no le será posible usarlos y este monto podrá aparecer en sus movimientos bancarios como pendiente, en tránsito o algún otro estatus similar dependiendo del banco de su tarjeta.
Para concretar una preautorización, debes generar la instrucción a través de la Virtual Terminal (forma manual) o dando la instrucción a través de nuestra API para que se efectúe el descuento del monto final, de modo que puedas recibir los fondos por parte del cliente. Es decir, confirmar que se realice el cobro al cliente o, por el contrario, solicitar que se cancele.
En este caso, el formulario va a ser exactamente igual al caso de Venta Directa. La única diferencia es que en lugar de usar el input "txntype" con el valor de "sale", utilizaremos el valor de "preauth".
A continuación, un formulario que representa una preautorización de $100.00 MXN que se está realizando el día 02 de enero de 2020 a las 12:51:05 PM que se está efectuando sobre la tienda con ID 399000002. Al finalizar la transacción, el comprador es redirigido a las URLs especificadas en responseFailURL o responseSuccessURL.
<form method="POST" action="https://test.ipg-online.com/connect/gateway/processing">
<input type="hidden" name="chargetotal" value="100.00" />
<input type="hidden" name="checkoutoption" value="combinedpage" />
<input type="hidden" name="currency" value="484" />
<input type="hidden" name="hash_algorithm" value="HMACSHA256" />
<input type="hidden" name="hashExtended" value="EapafBqqOF6N/kch8USkHPGh+fwSko24h6FpQnQHfQ8=" />
<input type="hidden" name="responseFailURL" value="https://myurl.com/checkout/success" />
<input type="hidden" name="responseSuccessURL" value="https://myurl.com/checkout/error" />
<input type="hidden" name="storename" value="399000002" />
<input type="hidden" name="timezone" value="America/Mexico_City" />
<input type="hidden" name="txndatetime" value="2020:01:02-12:51:05" />
<input type="hidden" name="txntype" value="preauth" />
</form>
Parámetros adicionales
Si requerimos enviar información adicional junto con nuestra transacción, podremos hacerlo con “parámetros adicionales”. Estos serán pares llave/valor donde los valores no podrán exceder 100 caracteres, es posible siguiendo la siguiente sintaxis:
customParam_key=value
Ejemplo:
<input type = "hidden" name="customParam_color" value="green">
Se pueden enviar hasta 10 parámetros adicionales. Estos podrán verse tanto en el detalle de transacción en nuestra VT, como en la respuesta dentro de nuestras URL's especificadas.
Es importante mencionar que, si vamos a utilizar estos parámetros, no debemos olvidar incluirlos en el cálculo de nuestro hash.
Desglose de cuenta por ítems
Podemos hacer que la página muestre un desglose por ítems. Para ello, agregaremos parámetros con la siguiente nomenclatura:
"item" + [número de ítem]
pudiendo agregar hasta 99 ítems.
Para el valor de cada ítem separaremos con ";" los valores en el siguiente orden:
Id de item;description;quantity;item_total_price;item_total_price;0;0
Ejemplo:
Para agregar 2 ítems a desplegar agregaríamos los siguientes parámetros
<input type = "hidden" name="item1" value="1;Product1;1;100;100;0;0">
<input type = "hidden" name="item2" value="2;Product2;2;566;566;0;0">
Esto permitirá que los productos se desplieguen de la siguiente forma
Updated 7 months ago