Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    26.199
  • Registro em

  • Última visita

  • Days Won

    749

Posts postados por Daniel Simoes

  1. 2 horas atrás, Valdir Dill disse:

    Então, se status = stcCONCLUIDA e ACBrPixCD1.PSP.epCob.CobCompleta.AsJSON contém retorno de um PIX pago, o ACBrPixCD1.PSP.epCob.CobCompleta.pix.count não deveria estar necessariamente > 0?

    @Valdir Dill, agora no PC, consegui abrir o seu Log...

    Observe que não há um Objeto PIX, no retorno...

    {
        "chave": "8f92dc50-64ef-4618-94bf-3eb166c71f23",
        "solicitacaoPagador": "Venda72790",
        "pixCopiaECola": "00020101021226930014BR.GOV.BCB.PIX2571spi-qrcode.bancointer.com.br/spi/pj/v2/7de7f89931294960a377750795dac53e52040000530398654047.005802BR5901*6007BACABAL61086570000062070503***6304B135",
        "calendario": {
            "criacao": "2024-02-27T19:08:20.655Z",
            "expiracao": 180
        },
        "loc": {
            "id": 32150206,
            "tipoCob": "cob",
            "criacao": "2024-02-27T19:08:20.639Z",
            "location": "https://spi-qrcode.bancointer.com.br/spi/pj/v2/7de7f89931294960a377750795dac53e"
        },
        "valor": {
            "original": "7.00"
        },
        "txid": "VendaGFILYK72790YK31029602239503061",
        "location": "https://spi-qrcode.bancointer.com.br/spi/pj/v2/7de7f89931294960a377750795dac53e",
        "status": "CONCLUIDA"
    }

     

    @EliasCesar, tem alguma dica ?

    • Curtir 1
  2. 2 horas atrás, Valdir Dill disse:

    VRetorno.FValorPago := ACBrPixCD1.PSP.epCob.CobCompleta.pix[0].valor;

    Você não deve escrever um código como esse... pois ele está presumindo que sempre haverá um elemento PIX na resposta, o que pode não ser verdadeiro...

    Quando for trabalhar com Arrays ou Listas, sempre verifique primeiro a propriedade Count para depois tentar acessar os elementos...

    Exemplo

    If ACBrPixCD1.PSP.epCob.CobCompleta..pix.Count > 0 then
       VRetorno.FValorPago := ACBrPixCD1.PSP.epCob.CobCompleta.pix[0].valor;
    else
       VRetorno.FValorPago := 0;

     

  3. Não compreendi... Se você envia no inicio que a transação será A VISTA.. não é esperado parcelamento, correto ?

    Veja nos fontes de ACBrTEFAPICliSiTef.pas , que se você informar tefmfAVista, ele irá inserir as restrições para não permitir parcelamento
     

    function TACBrTEFAPIClassCliSiTef.EfetuarPagamento(
      ValorPagto: Currency;
      Modalidade: TACBrTEFModalidadePagamento; CartoesAceitos: TACBrTEFTiposCartao;
      Financiamento: TACBrTEFModalidadeFinanciamento; Parcelas: Byte;
      DataPreDatado: TDateTime): Boolean;
    var                                       
    ....
      
        if (Financiamento = tefmfAVista) then
        begin
          Restricoes := Restricoes + CSITEF_RestricoesParcelado + ';';
          Restricoes := Restricoes + CSITEF_RestricoesParcelaAministradora + ';';
          Restricoes := Restricoes + CSITEF_RestricoesParcelaEstabelecimento + ';';
        end
        else if (Financiamento = tefmfParceladoEmissor) then
        begin
          Restricoes := Restricoes + CSITEF_RestricoesAVista + ';';
          Restricoes := Restricoes + CSITEF_RestricoesParcelaEstabelecimento + ';';
        end
        else if (Financiamento = tefmfParceladoEstabelecimento) then
        begin
          Restricoes := Restricoes + CSITEF_RestricoesAVista + ';';
          Restricoes := Restricoes + CSITEF_RestricoesParcelaAministradora + ';';
        end;         

     

  4.  

    Eu não acho que seja um Bug, o retorno está em UTF8, acho que basta considerar isso, e tratar (se for o caso) para ANSI

    Mas de toda forma, precisamos de um passo a passo, de como podemos reproduzir o problema...

    Se você puder compartilhar um pequeno projeto Console, que reproduza o erro, podemos testar em nosso ambiente...

     

    • Curtir 1
×
×
  • Criar Novo...

Informação Importante

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.