Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

Olá pessoa, estou integrando o ACBrBoletos com vários bancos, e chegamos nos Boletos do Santander, eu notei que o componente utiliza um tamanho máximo para cada NossoNumero (que no caso do santander retorna 12), de acordo com cada banco, carteira, etc . No caso do bando Santander, no manual em anexo na página 48, informa que o tamanho desse campo e de 13, mas até ai tudo bem. A API Do banco Santander e moncada, ou seja, os dados lá são fixo apenas para teste de endpoints e validação do fluxo da API. Em teste aqui no ambiente de SANDBOX, a Demo do ACBr conseguiu fazer os Registros de boleto normalmente, o problema esta na consulta detalhada dos boletos do santander, pois o mesmo retorna o seguinte erro:

URL: [GET] https://trust-sandbox.api.santander.com.br/collection_bill_management/v2/bills?beneficiaryCode=356720&bankNumber=000000000001
400 1.1 Bad Request

{
    "_errorCode": 5559999,
    "_message": "Erro processando solicitação!",
    "_details": "
                                               REQUEST WAS NOT MATCHED
                                               =======================

-----------------------------------------------------------------------------------------------------------------------
| CLOSEST STUB                                             | REQUEST                                                  |
-----------------------------------------------------------------------------------------------------------------------
                                                           |
GET                                                        | GET
[PATH REGEX
    ] /BILLS                                        | /BILLS?BENEFICIARYCODE=356720&BANKNUMBER=000000000001
                                                           |
QUERY: BENEFICIARYCODE [MATCHES
    ] ([
        0-9
    ]{
        6
    })                | BENEFICIARYCODE: 356720
QUERY: BANKNUMBER [MATCHES
    ] ([
        0-9
    ]{
        8
    })                     | BANKNUMBER: 000000000001                            <<<<< QUERY DOES NOT MATCH
                                                           |
                                                           |
-----------------------------------------------------------------------------------------------------------------------
",
  "_timestamp": "2024-09-27T17:48:41.478618-03:00[AMERICA/SAO_PAULO]",
    "_traceId": "CD029F86-9DD1-459C-BC87-C125300E529D"
}

 

Em testes realizado com o "Postman', usando a mesma URL de consulta NN, ele retorna tbm o mesmo erro, mas ao alterar a quantidade de dígitos do NossoNumero para 8 a consulta retorna o valor normal. Questionei o Santander e tive a seguinte resposta:

image.thumb.png.f4bbf44f02dcd221f649e19de622cf27.png

 

Minha dúvida é, se agente pode incluir uma "if" para que, quando for consultar em ambiente de HOMOLOGAÇÃO no acbr, ele utilizar 8, e quando for produção usar o 13.

User_Guide_API_de_Cobranca_PT_BR_V2_6 (48).pdf

  • 3 semanas depois ...
Postado

Eu tbem notei isso, estou fazendo os testes tbem por aqui, coloquei esse if antes de alimentar o campo Titulo.NossoNumero e enviar a consulta:

  if Boleto.Configuracoes.WebService.Ambiente = taHomologacao then
    ACBrBoleto.Banco.TamanhoMaximoNossoNum := 8
  else
    ACBrBoleto.Banco.TamanhoMaximoNossoNum := 13;

Leandro Coelho

Imprime Informática

Postado

Aqui na consulta esta dando uma mensagem de erro, mais retorna consulta realizado com sucesso

 

image.png.54487c59ae77ba11e6e739258176a76a.png

 

LOG:

15/10/24 15:16:20:302 - Autenticando Token... 
15/10/24 15:16:20:313 - Comando Enviar: TOAuth
15/10/24 15:16:20:314 - URL: [POST] https://trust-sandbox.api.santander.com.br/auth/oauth/v2/token
15/10/24 15:16:20:880 - Validade: 15/10/2024 15:31:20
15/10/24 15:16:25:362 - Comando Enviar: TBoletoW_Santander_API
15/10/24 15:16:25:363 - Comando Enviar: 
15/10/24 15:16:25:363 - URL: [GET] https://trust-sandbox.api.santander.com.br/collection_bill_management/v2/bills/356720.10054325?tipoConsulta=bankslip
15/10/24 15:16:25:647 - Retorno Envio: TBoletoW_Santander_API
15/10/24 15:16:25:647 - Código do Envio: 404 1.1 Not Found
15/10/24 15:16:25:647 - Autenticando Token... 
15/10/24 15:16:31:804 - Comando Enviar: TBoletoW_Santander_API
15/10/24 15:16:31:806 - Comando Enviar: 
15/10/24 15:16:31:807 - URL: [GET] https://trust-sandbox.api.santander.com.br/collection_bill_management/v2/bills?beneficiaryCode=356720&bankNumber=10054325
15/10/24 15:16:31:979 - Retorno Envio: TBoletoW_Santander_API
15/10/24 15:16:31:980 - Código do Envio: 200 1.1 OK
15/10/24 15:22:01:233 - Falha Envio: Expected value but found "," (1, 4)

 

Leandro Coelho

Imprime Informática

Postado

Testando aqui pelo postman, esse:

URL: [GET] https://trust-sandbox.api.santander.com.br/collection_bill_management/v2/bills?beneficiaryCode=356720&bankNumber=10054325

Retorna:

{
    "_pageable": {
        "_limit": 50,
        "_offset": 0,
        "_pageNumber": 0,
        "_pageElements": 0,
        "_totalPages": 1,
        "_totalElements": 0
    },
    "_content": {
        "returnCode": "000 - Consulta realizada com sucesso",
        "documentNumber": "87626170000164",
        "beneficiaryCode": "123456",
        "bankNumber": "123456",
        "clientNumber": "123456",
        "dueDate": "2023-03-01",
        "nominalValue": "30.00",
        "issueDate": "2023-03-01",
        "participantCode": "123456",
        "status": "Liquidado",
        "statusComplement": "",
        "interestValue": "10.00",
        "discountValue": "10.00",
        "deductionValue": "10.00",
        "paidValue": "10.00"
    }
}

Leandro Coelho

Imprime Informática

Postado
Em 14/10/2024 at 15:02, Leandro Coelho disse:

Eu tbem notei isso, estou fazendo os testes tbem por aqui, coloquei esse if antes de alimentar o campo Titulo.NossoNumero e enviar a consulta:

  if Boleto.Configuracoes.WebService.Ambiente = taHomologacao then
    ACBrBoleto.Banco.TamanhoMaximoNossoNum := 8
  else
    ACBrBoleto.Banco.TamanhoMaximoNossoNum := 13;

Legal, Leandro, eu tbm estou usando assim por enquanto. O que eu notei e que para integrar boletos de diversos bancos esta sendo um desafio, pois algumas APIs em Homologação são diferentes do ambiente de produção, fazendo com que agente tenha que trabalhar mais no código por falta de padronização dos bancos, sem contar que algumas API (como do sicredi), são moncadas ou seja, são retornados dados fixos apenas para testar os endpoint e status. Por fim, vamos continuar com muita paciência e café.

  • Curtir 1
Postado
16 horas atrás, Juliomar Marchetti disse:

tá e o que ele está pegando de dados e não consegue fazer o parser?

Aqui  no parse LJsonArray := TACBrJSONArray.Parse(RetWS); , pega:

'[ ,{'#$A'  "_pageable": {'#$A'    "_limit": 50,'#$A'    "_offset": 0,'#$A'    "_pageNumber": 0,'#$A'    "_pageElements": 0,'#$A'    "_totalPages": 1,'#$A'    "_totalElements": 0'#$A'  },'#$A'  "_content": {'#$A'    "returnCode": "000 - Consulta realizada com sucesso",'#$A'    "documentNumber": "87626170000164",'#$A'    "beneficiaryCode": "123456",'#$A'    "bankNumber": "123456",'#$A'    "clientNumber": "123456",'#$A'    "dueDate": "2023-03-01",'#$A'    "nominalValue": "30.00",'#$A'    "issueDate": "2023-03-01",'#$A'    "participantCode": "123456",'#$A'    "status": "Liquidado",'#$A'    "statusComplement": "",'#$A'    "interestValue": "10.00",'#$A'    "discountValue": "10.00",'#$A'    "deductionValue": "10.00",'#$A'    "paidValue": "10.00"'#$A'  }'#$A'}  ]'
 

Aqui inherited CreateResFmt(ResStringRec, Args); , pega:

[0] (20914952 {$13F2308}, True, #8, $13F2308, $13F2308 {#0'a'#0'l'#0'u'#0'e'#0#0#0'°'#4#2#0'ÿÿÿÿ'#4#0#0#0't'#0'r'#0'u'#0'e'#0#0#0#0#0'°'#4#2#0'ÿÿÿÿ'#5#0#0#0'f'#0'a'#0'l'#0's'#0'e'#0#0#0'H#?'#1#$E#$1E'TStringIntern.TJsonStringEntry'#$C#0#0#0#1#0#0#0'È'#$12'@'#0#8#0#0#0#0#3#0#0#0'œ'#$10}, $13F2308, 'v', $13F2308, TClass($13F2308), '⌈', 'value', $13F2308, $13F2308, $13F2308, $13F2308, $13F2308, $13F2308, $13F2308, 20914952 {$13F2308}, 17 {$11})
[1] (20914876 {$13F22BC}, True, '¼', $13F22BC, $13F22BC {#0','#0'"'#0#0#0'°'#4#2#0'ÿÿÿÿ'#3#0#0#0'"'#0':'#0'"'#0#0#0'°'#4#2#0'ÿÿÿ'}, $13F22BC, '"', $13F22BC, TClass($13F22BC), '⊼', '","', $13F22BC, $13F22BC, $13F22BC, $13F22BC, $13F22BC, $13F22BC, $13F22BC, 20914876 {$13F22BC}, 17 {$11})
 

aqui:

FLineNum := ALineNum; Conteudo =  1
FColumn := AColumn;     Conteudo =  4
FPosition := APosition;    Conteudo =  3

Leandro Coelho

Imprime Informática

  • 2 semanas depois ...
Postado
Em 16/10/2024 at 09:29, Juliomar Marchetti disse:

Normal.

pra um teste real é bom tu emitir em produção um boleto baixo com os dados do cliente ou até seu e assim ter o retorno

mas o tratamento em si não é tão dificultoso assim pois o ACBrNFSeX já faz boa parte do trabalho.

 

Em produção deu tudo certo

Em 16/10/2024 at 07:19, José Francisco disse:

Legal, Leandro, eu tbm estou usando assim por enquanto. O que eu notei e que para integrar boletos de diversos bancos esta sendo um desafio, pois algumas APIs em Homologação são diferentes do ambiente de produção, fazendo com que agente tenha que trabalhar mais no código por falta de padronização dos bancos, sem contar que algumas API (como do sicredi), são moncadas ou seja, são retornados dados fixos apenas para testar os endpoint e status. Por fim, vamos continuar com muita paciência e café.

Padronização é zero, aqui eu to fazendo integração do banco conforme o clinte precise, ai eu uso a conta do cliente pra testar em produção pq em homologação não da nada certo (fodis).

 

Leandro Coelho

Imprime Informática

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.