Se possível adicionar a contribuição, para alterar o método de cancelamento "TACBrTEFDCliSiTef.CNC" para respeitar as restrições enviadas, afim de não gerar a mensagem de que o PinPad não suporta QRCode. Ex.: {DevolveStringQRCode=1}
function TACBrTEFDCliSiTef.CNC(Rede, NSU: String; DataHoraTransacao: TDateTime;
Valor: Double): Boolean;
var
Restr : AnsiString;
Sts : Integer;
begin
Respostas.Values['146'] := FormatFloat('0.00',Valor);
Respostas.Values['147'] := FormatFloat('0.00',Valor);
Respostas.Values['515'] := FormatDateTime('DDMMYYYY',DataHoraTransacao) ;
Respostas.Values['516'] := NSU ;
Restr := fRestricoes;
if Restr = '' then
Restr := '[10]';
Sts := FazerRequisicao( fOperacaoCNC, 'CNC', Valor, '', Restr);
if Sts = 10000 then
Sts := ContinuarRequisicao( CACBrTEFCliSiTef_ImprimeGerencialConcomitante ) ;
Result := ( Sts = 0 ) ;
if not Result then
AvaliaErro( Sts )
else
if not CACBrTEFCliSiTef_ImprimeGerencialConcomitante then
ProcessarResposta;
end;
A questão do Valor ali por padrão é 0 quando não informado.
Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.
O ACBr já esta preparado p receber pagamento via QrCode ?
em Dúvidas sobre TEF
Postado
@Daniel Simoes Boa tarde!
Se possível adicionar a contribuição, para alterar o método de cancelamento "TACBrTEFDCliSiTef.CNC" para respeitar as restrições enviadas, afim de não gerar a mensagem de que o PinPad não suporta QRCode. Ex.: {DevolveStringQRCode=1}
function TACBrTEFDCliSiTef.CNC(Rede, NSU: String; DataHoraTransacao: TDateTime; Valor: Double): Boolean; var Restr : AnsiString; Sts : Integer; begin Respostas.Values['146'] := FormatFloat('0.00',Valor); Respostas.Values['147'] := FormatFloat('0.00',Valor); Respostas.Values['515'] := FormatDateTime('DDMMYYYY',DataHoraTransacao) ; Respostas.Values['516'] := NSU ; Restr := fRestricoes; if Restr = '' then Restr := '[10]'; Sts := FazerRequisicao( fOperacaoCNC, 'CNC', Valor, '', Restr); if Sts = 10000 then Sts := ContinuarRequisicao( CACBrTEFCliSiTef_ImprimeGerencialConcomitante ) ; Result := ( Sts = 0 ) ; if not Result then AvaliaErro( Sts ) else if not CACBrTEFCliSiTef_ImprimeGerencialConcomitante then ProcessarResposta; end;
A questão do Valor ali por padrão é 0 quando não informado.
Fonte anexo.
ACBrTEFDCliSiTef.pas