Integração com TEF Pay&Go via DLL (Enviar Array de Record para DLL).
Olá galera. Gostaria de um Helps se possível.
Estou implementando uma integração com o sistema de TEF da Pay&Go (NTK), através da DLL diponibilizada pela empresa, porém, estou tendo muita dificuldade com a chamada de um dos métodos desta DLL, e que pro meu azar é o método principal, que gerencia o fluxo da transação.
O Método em questão é o PW_iExecTransac;
Conforme a documentação da DLL: http://www.paygo.com.br/wp-content/uploads/2018/06/PayGo-Dedicado-Windows.zip
Este método tem a seguinte assinatura:
Int16 PW_iExecTransac (PW_GetData *pvstParam, Int16 *piNumParam);
e o PW_GetData é um Array de uma Struct.
Essa seria a definição dessa Struct em um aplicativo de exemplo da Pay&Go em C;
E esta é a estrutura que repliquei pro Delphi em um Record
Esta é a declaração da chamada da função:
Porém, sempre que faço a chamada da função. Aparentemente a DLL não preenche os valores do record.. Pelo menos não como deveria ser, conforme o manual.
Alguem tem alguma ideia se seria falha no meu código ou se poderia ser algo na DLL..
Ou até mesmo se alguem já trabalhou com esse TEF e poderia me dar alguma luz..
Obrigado.
Estou implementando uma integração com o sistema de TEF da Pay&Go (NTK), através da DLL diponibilizada pela empresa, porém, estou tendo muita dificuldade com a chamada de um dos métodos desta DLL, e que pro meu azar é o método principal, que gerencia o fluxo da transação.
O Método em questão é o PW_iExecTransac;
Conforme a documentação da DLL: http://www.paygo.com.br/wp-content/uploads/2018/06/PayGo-Dedicado-Windows.zip
Este método tem a seguinte assinatura:
Int16 PW_iExecTransac (PW_GetData *pvstParam, Int16 *piNumParam);
e o PW_GetData é um Array de uma Struct.
Essa seria a definição dessa Struct em um aplicativo de exemplo da Pay&Go em C;
typedef struct{
Word wIdentificador;
Byte bTipoDeDado;
char szPrompt[84];
Byte bNumOpcoesMenu;
char vszTextoMenu[PWMENU_MAXINTENS][41];
char vszValorMenu[PWMENU_MAXINTENS][256];
char szMascaraDeCaptura[41];
Byte bTiposEntradaPermitidos;
Byte bTamanhoMinimo;
Byte bTamanhoMaximo;
Uint32 ulValorMinimo;
Uint32 ulValorMaximo;
Byte bOcultarDadosDigitados;
Byte bValidacaoDado;
Byte bAceitaNulo;
char szValorInicial[41];
Byte bTeclasDeAtalho;
char szMsgValidacao[84];
char szMsgConfirmacao[84];
char szMsgDadoMaior[84];
char szMsgDadoMenor[84];
Byte bCapturarDataVencCartao;
Uint32 ulTipoEntradaCartao;
Byte bItemInicial;
Byte bNumeroCapturas;
char szMsgPrevia[84];
Byte bTipoEntradaCodigoBarras;
Byte bOmiteMsgAlerta;
Byte bIniciaPelaEsquerda;
Byte bNotificarCancelamento;
Byte bAlinhaPelaDireita;
} PW_GetData;
E esta é a estrutura que repliquei pro Delphi em um Record
TPW_GetData = record
wIdentificador : int16;
bTipoDeDado : byte;
szPrompt: Array[0..85] of char;
bNumOpcoesMenu: byte;
vszTextoMenu: Array[0..39] of Array[0..40] of char;
vszValorMenu: Array[0..39] of Array[0..255] of char;
szMascaraDeCaptura: Array[0..40] of char;
bTiposEntradaPermitidos: byte;
bTamanhoMinimo: byte;
bTamanhoMaximo: byte;
ulValorMinimo : byte;
ulValorMaximo : byte;
bOcultarDadosDigitados: byte;
bValidacaoDado: byte;
bAceitaNulo: byte;
szValorInicial: Array[0..40] of char;
bTeclasDeAtalho: byte;
szMsgValidacao: Array[0..85] of char;
szMsgConfirmacao: Array[0..85] of char;
szMsgDadoMaior: Array[0..85] of char;
szMsgDadoMenor: Array[0..85] of char;
bCapturarDataVencCartao: byte;
ulTipoEntradaCartao: Int32;
bItemInicial: byte;
bNumeroCapturas: byte;
szMsgPrevia: Array[0..85] of char;
bTipoEntradaCodigoBarras: byte;
bOmiteMsgAlerta: byte;
bIniciaPelaEsquerda: byte;
bNotificarCancelamento: byte;
end;
Esta é a declaração da chamada da função:
TArrayGetData = Array[0..9] of TPW_GetData; PW_iExecTransac = function(var pvstParam : TArrayGetData; piNumParam : pointer) : Int16; stdCall;
Porém, sempre que faço a chamada da função. Aparentemente a DLL não preenche os valores do record.. Pelo menos não como deveria ser, conforme o manual.
vGetdataArray : TArrayGetData; xNumParam : int16; PW_iExecTransac(vGetdataArray, @xNumParam);
Alguem tem alguma ideia se seria falha no meu código ou se poderia ser algo na DLL..
Ou até mesmo se alguem já trabalhou com esse TEF e poderia me dar alguma luz..
Obrigado.
Ats Informática
Curtidas 0
Respostas
Luis Lambranho
19/11/2018
Opa!
Estou iniciando a mesma empreitada...
conseguiu realizar a implementação da chamada?
Estou iniciando a mesma empreitada...
conseguiu realizar a implementação da chamada?
GOSTEI 0
Marcos
19/11/2018
Eu comecei a integração com a Pay & GO e eles nao tem nenhum exemplo feito em delphi
então cobrei esse exemplo deles, e me mandaram um demo feito em delphi
não está 100% pois é tudo novo para eles esse demo em delphi
mais se alguem desejar eu posso mandar, assim voces ja podem estudar o fontem interessados, favor mandar email para marcosprogramador@hotmail.com
então cobrei esse exemplo deles, e me mandaram um demo feito em delphi
não está 100% pois é tudo novo para eles esse demo em delphi
mais se alguem desejar eu posso mandar, assim voces ja podem estudar o fontem interessados, favor mandar email para marcosprogramador@hotmail.com
GOSTEI 0