Integração com TEF Pay&Go via DLL (Enviar Array de Record para DLL).
19/11/2018
0
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
Curtir tópico
+ 0
Responder
Posts
28/01/2019
Luis Lambranho
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?
Responder
03/06/2019
Marcos
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)