Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2019
fmira fmira is offline
Registrado
 
Registrado: ene 2011
Posts: 5
Poder: 0
fmira Va por buen camino
Integracion con pago por tarjeta Redsys: TpvPcImplantado.dll

Buenas tardes,


Estoy intentando integrar el módulo de pago de Redsys con una de nuestras aplicaciones. Para ello utilizamos la librería TpcPcImplantado.dll (que nos facilita Redsys).


La verdad es que nos da muchísimos problemas, si queremos usarla como ActiveX da errores de importación en las versiones 2007 y Rad Studio 10.2,en funciona en Delphi 5 se importa bien pero si en el proyecto usas alguna función de la unidad shlobj de Delphi da errores de “Access violation” en olaut32.dll.


Si la intentamos usar como una DLL, no se carga si el IDE de Delphi está abierto. Si la inicias con fndllIniTpvpcLatente te devuelve respuesta Ok y cuando intentas ejecutar cualquier otra función te diche que no está inicializado

Alguna idea?
Gracias por anticipado.
Responder Con Cita
  #2  
Antiguo 14-01-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Habéis consultado a Redsys?
Responder Con Cita
  #3  
Antiguo 15-01-2019
fmira fmira is offline
Registrado
 
Registrado: ene 2011
Posts: 5
Poder: 0
fmira Va por buen camino
Si. He consultado a Redsys y me dicen que tienen ejemplos en C, Visual Basic, HTML, Java, pero nada en Delphi.
Abro un ejemplo de VB o C, intento hacer lo mismo en Delphi (es relativamente sencillo) y da errores. Yo creo que es la manera de cargar a la libreria o definir las funcones de la dll.
Responder Con Cita
  #4  
Antiguo 15-01-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Difícil ayudarte si no tenemos esa dll ni vemos el código que estás usando, ni el que tienen de ejemplo en redsys
Responder Con Cita
  #5  
Antiguo 28-03-2019
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Yo utilizo la dllTpvpcLatente.dll y funciona correctamente. Te pongo el código de la declaración y creación:

Código Delphi [-]
   //Declaración Objeto REDSYS
   Tpvpc: TTpvpc;

   //Creamos el Objeto RedSys
   if Tpvpc=nil then Tpvpc:=TTpvpc.Create(Tpvpc_Comercio,Tpvpc_Terminal,Tpvpc_ClaveFirma);
Responder Con Cita
  #6  
Antiguo 10-05-2019
mqm mqm is offline
Registrado
 
Registrado: nov 2006
Posts: 3
Poder: 0
mqm Va por buen camino
Estoy liado con lo mismo, abrir desde delphi una pasarela de cobro con redsys.
Podrías mostrar un pequeño ejemplo de como realizas el proceso?
Responder Con Cita
  #7  
Antiguo 20-09-2019
RUBEN_SP RUBEN_SP is offline
Miembro
 
Registrado: mar 2008
Posts: 11
Poder: 0
RUBEN_SP Va por buen camino
Hola APO

¿Me puedes indicar como lo haces? y ¿Donde consigues la DLL?

Gracias de antemano y saludos
Responder Con Cita
  #8  
Antiguo 19-02-2020
tec tec is offline
Miembro
 
Registrado: dic 2009
Posts: 37
Poder: 0
tec Va por buen camino
dllTpvpcLatente.dll

Buenos días,


debo implantar la integración con dicha libreria en D6. ¿ Se puede con D6 ?. ¿ Algún ejemplo ?



Muchas gracias,


Saludos
Responder Con Cita
  #9  
Antiguo 30-10-2020
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Conseguir hacer funcionar la OperPinPad

Creo que necesito ayuda para saber como tratar la cadena que me devuelve dicha función en uno de sus parámetros.
La función devuelve un integer, y luego la "chicha" la devuelve en uno de los parámetros, que se supone que es una string con formato xml.

Yo hago la llamada a la función, y en el valor entero que me devuelve al función me viene un 0, con lo cual se supone que todo fue correcto, pero cuando intenten visualizar el contenido que ve viene en el parámetro string o añadirlo a las lineas de un memo, el programa se cierra de pronto sin llegar a sacar ningún mensaje de error.

Voy a poner el formato de llamada que viene en el manual y posteriormente los trozos de código de Delphi2007.

Cita:
Identificador Objeto: DllTpvpcLatente.TpvpImplantado

Para inicializar (que me funciona perfectamente):
int fnDllIniTpvpcLatente(LPCTSTR cComercio, LPCTSTR cTerminal, LPCTSTR cClaveFirma, LPCTSTR cConfPuerto, LPCTSTR cVersion)

Para mandar la petición de pago (que me funciona parcialmente, me aparece en el importe del pinpad el importe a cobrar y todo, pero que me rompe al intentar tratar el parámetro en el que me viene la información "importante" de la operación):
int fnDllOperPinPad(LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp);
Un ejemplo que ponen en .NET
Cita:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperPinPad(String cImporte, String cFactura, String cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);

/// <summary>
/// Función que confirma como se quiere realizar una operación que es DCC. Este método sólo debe
/// ser llamado después de fnDllOperPinPad.
/// </summary>
/// <param name="cImporte">Mismo valor que el que se utilizó en fnDllOperPinPad</param>
/// <param name="cFactura">Mismo valor que el que se utilizó en fnDllOperPinPad</param>
/// <param name="cTipoOper">Mismo valor que el que se utilizó en fnDllOperPinPad</param>
/// <param name="cCodDivisa">Código de divisa que debe seleccionar el Titular de la Tarjeta.</param>
/// <param name="cXMLResp">buffer que almacenará la cadena con el XML de respuesta recibido desde el TPV-PC. El XML se describe en detalle en el documento TPVPC WS Consultas 2d1.</param>
/// <param name="iTamMaxResp">tamaño máximo de la cadena que puede almacenar el buffer cXMLResp.</param>
/// <returns>valor = 0, la operación se proceso correctamente. Este resultado no indica que se ha autorizado o denegado, simplemente
/// que la petición se ha realizado con exito. Para ver el resultado de la operación se debe analizar la respuesta
/// recibida en cXMLResp.
///
Y como hago yo la definición en Delphi que seguro que algo estoy haciendo mal en la definición o en el tratamiento de la respuesta:
Cita:
implementation

{$R *.dfm}
// Método dinámico ->
type
TOperPinPad = function(cImporte, cFactura, cTipoOper :string; var cXmlResp :String; iTamMaxResp : integer) : integer;stdcall;

.....

procedure TForm1.BtnEnviarClick(Sender: TObject);
var
err : Integer;
OperPinPad : TOperPinPad;
cImporte, cFactura, cTipoOper:string;
cXmlResp: String;
iTamMaxResp:Integer;
begin
// if Conectado then
begin
{ Intento mandar la orden de pago }
@OperPinPad := GetProcAddress(dllHandleTpvPcLatente, PChar('fnDllOperPinPad'));
if @OperPinPad <> Nil then
begin
iTamMaxResp := 1024;
cImporte:= '0.01';
cFactura:='NF 2222';
cTipoOper:='PAGO';
cXmlResp:='';
err:=OperPinPad(cImporte, cFactura, cTipoOper, cXmlResp, iTamMaxResp);
Memo1.lines.add('Resultado: ' + IntToStr(err));
ShowMessage('Resultado: ' + IntToStr(err));
ShowMessage('cXmlResp: ' + cXmlResp);
Memo1.lines.add('cXmlResp: ' + cXmlResp) // --> Al principio, la llegar a esta línea, rompía. Ahora ya rompe al hacer el ShowMessage de un poco más arriba
end;
end
// else
// Memo1.lines.add('No hay conexión establecida...');
end;
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Integración con una dll externa con COM+ jars Providers 2 08-03-2013 12:09:42
Pago con Tarjeta de Credito OnLine Neeruu Internet 8 24-02-2012 23:33:14
Integración de php y delphi Will PHP 4 11-08-2006 00:13:48
Integración de datos kalimero Firebird e Interbase 3 17-02-2005 23:03:38
Pago con tarjeta de crédito aom PHP 6 30-11-2004 11:16:40


La franja horaria es GMT +2. Ahora son las 01:10:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi