4.4 Realizar un Pago o Preautorización introduciendo manualmente los datos de la tarjeta

 

Dependiendo del Modo elegido, se dispone de dos métodos distintos. Si se eligió el Modo Transparente, la aplicación del comercio deberá solicitar y validar los datos de la tarjeta.

 

Modo Transparente:

 

Parámetros de entrada/salida:

 

cTarjeta, número de tarjeta. Las tarjetas tienen una longitud entre 15 y 19 caracteres.

cCaducidad, cadena con la caducidad de la tarjeta. El formato es AAMM. Ejemplo 06/13, el formato sería 1306.

cCVC2, cadena con el valor de CVC2. Código de tres dígitos de seguridad que viene impreso generalmente en el reverso de la tarjeta, y que será necesario dependiendo de la actividad del comercio.

cImporte, importe de la transacción en formato XXXXXXXXX.XX. Ejemplo: 1.23, 33.05, 0.01, etc.

cFactura, referencia de compra. Este valor lo puede especificar el comercio para ayudarle a identificar la transacción.

cTipoOper, indica el tipo de operación a realizar. Valores posibles:

“PAGO” -> Se realizará un Pago.

“PREAUTORIZACION” -> Se realizará una preautorización.

cXMLResp, buffer que almacenará una cadena XML con el resultado de la operación de pago o preautorización. El formato de este XML se encuentra detallado en la documentación "Conexión con TPVPC a través de WEB SERVICE" versión 6.0.

iTamMaxResp, indica el tamaño máximo del buffer donde se almacenará la cadena xml con el resultado de la operación. Se recomienda al menos un tamaño de 1024 bytes.

 

Valor de retorno:

 

Valor 0, indica que la operación se ha procesado correctamente. Muy importante indicar que este resultado NO INDICA QUE LA OPERACIÓN ESTÉ AUTORIZADA, tan sólo es el resultado de su proceso.

Valor distinto de 0, Código de error indicando el motivo del fallo. En el Anexo III, se detallan estos errores.

Siempre que se devuelva el código -2, es necesario realizar una consulta de la última operación realizada por el comercio, para ver si la operación resultó autorizada.

int fnDllOperManualExt(LPCTSTR cTarjeta, LPCTSTR cCaducidad, LPCTSTR cCVC2, LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp);

 

Ejemplo de llamada en C# .NET:

[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperManualExt(String cTarjeta, String cCaducidad, String cCVC2, String cImporte, String cFactura, String cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);

 

Ejemplo de llamada en Visual Basic .NET

Public Declare Function fnDllOperManualExt Lib "dllTpvpcLatente.dll" (ByVal cTarjeta As String, ByVal cCaducidad As String, ByVal cCVC2 As String, ByVal cImporte As String, ByVal cFActura As String, ByVal cTipoOper As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer