Boa noite! André Ferreira, tomei a liberdade de fazer o método Resposta Fiscal se é que já não estava feito, mas conclui meu processo com POS usando os métodos novos e o comportamento foi igual ao que homologuei que no caso fazia de forma manual. seguem as Chamadas:
--EnviarPagamento
var
PagamentoMFe : TEnviarPagamento;
RespostaPagamentoMFe : TRespostaPagamento;
Begin
InicializaSat(_SatMFe);
PagamentoMFe := TEnviarPagamento.Create;
try
with PagamentoMFe do
begin
Clear;
ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';
ChaveRequisicao := '26359854-5698-1365-9856-965478231456';
Estabelecimento := '10';
SerialPOS := 'G2PDV-'+inttostr(pIdMovimento);
CNPJ := Tirar(Tirar(Tirar(Tirar(_LojaCNPJ,'.'),'-'),'/'),'\');
IcmsBase := 0.05;
ValorTotalVenda := 0.10;
HabilitarMultiplosPagamentos := True;
HabilitarControleAntiFraude := False;
CodigoMoeda := 'BRL';
EmitirCupomNFCE := False;
OrigemPagamento := 'Pedido ID '+inttostr(pIdMovimento);
end;
RespostaPagamentoMFe := TACBrSATMFe_integrador_XML(DMACBr.ACBrSAT1.SAT).EnviarPagamento(PagamentoMFe);
pIdPagamento:= RespostaPagamentoMFe.IDPagamento;
Result:= pIdPagamento <> 0;
finally
PagamentoMFe.Free;
end;
End;
--VerificarStatus
var
VerificarStatusValidador : TVerificarStatusValidador;
RespostaVerificarStatusValidador : TRespostaVerificarStatusValidador;
begin
VerificarStatusValidador := TVerificarStatusValidador.Create;
try
with VerificarStatusValidador do
begin
Clear;
ChaveAcessoValidador := wl_chaveAcessoValidador;
IDFila := pIdFila;
CNPJ:= Tirar(Tirar(Tirar(Tirar(_LojaCNPJ,'.'),'-'),'/'),'\');
end;
RespostaVerificarStatusValidador := TACBrSATMFe_integrador_XML(DMACBr.ACBrSAT1.SAT).VerificarStatusValidador(VerificarStatusValidador) ;
finally
VerificarStatusValidador.Free;
end;
_BinCartao:= RespostaVerificarStatusValidador.Bin;
_DonoCartao:= RespostaVerificarStatusValidador.DonoCartao;
_DataExpiracaoCartao := RespostaVerificarStatusValidador.DataExpiracao;
_InstituicaoFinanceiraCartao := RespostaVerificarStatusValidador.InstituicaoFinanceira;
_ParcelasCartao := IntToStr(RespostaVerificarStatusValidador.Parcelas);
_UltimosquatroDigitosCartao := IntToStr(RespostaVerificarStatusValidador.UltimosQuatroDigitos);
_CodigoPagamentoCartao := RespostaVerificarStatusValidador.CodigoPagamento;
_ValorPagamentoCartao := TrataFloat(RespostaVerificarStatusValidador.ValorPagamento);
_TipoCartao := RespostaVerificarStatusValidador.Tipo;
_NumeroAutorizacaoCartao := RespostaVerificarStatusValidador.CodigoAutorizacao;
Result:= Pos('not complete',_NumeroAutorizacaoCartao) = 0;
end;
--Resposta Fiscal
var
RespostaFiscal : TRespostaFiscal;
RespostaRespostaFiscal : TRespostaRespostaFiscal;
Begin
RespostaFiscal := TRespostaFiscal.Create;
try
with RespostaFiscal do
begin
Clear;
ChaveAcessoValidador := wl_chaveAcessoValidador;
IDFila := StrToInt(GetIdPagamento(pIdMovimento));
ChaveAcesso := pChaveAcesso;
Nsu := Nsu;
NumerodeAprovacao := pNumerodeAprovacao;
Bandeira := pBandeira;
Adquirente := padiquirente;
ImpressaoFiscal := pImpressaoFiscal;
NumeroDocumento := pNumeroDocumento;
CNPJ:= Tirar(Tirar(Tirar(Tirar(_LojaCNPJ,'.'),'-'),'/'),'\');
end;
RespostaRespostaFiscal := TACBrSATMFe_integrador_XML(DMACBr.ACBrSAT1.SAT).RespostaFiscal(RespostaFiscal);
Result:= StrToIntDef(RespostaRespostaFiscal.IdRespostaFiscal,-1) <> -1;
pIdRespostaFiscal:= StrToIntDef(RespostaRespostaFiscal.IdRespostaFiscal,0);
finally
RespostaFiscal.Free;
end;
end;
Aqui em anexo as units alteradas....
Units.rar