José Francisco Postado 27 Setembro Postado 27 Setembro 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: 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
Leandro Coelho Postado 14 Outubro Postado 14 Outubro 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
Moderadores Juliomar Marchetti Postado 14 Outubro Moderadores Postado 14 Outubro Senão me engano tem algo no componente pra tu informar o tamanho do nosso numero Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Leandro Coelho Postado 15 Outubro Postado 15 Outubro Aqui na consulta esta dando uma mensagem de erro, mais retorna consulta realizado com sucesso 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
Moderadores Juliomar Marchetti Postado 15 Outubro Moderadores Postado 15 Outubro por conta do limite do numero acima? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Leandro Coelho Postado 15 Outubro Postado 15 Outubro 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
Moderadores Juliomar Marchetti Postado 15 Outubro Moderadores Postado 15 Outubro há debuga e o erro está no parser do retorno para jogar no componente Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Leandro Coelho Postado 15 Outubro Postado 15 Outubro Isso no parser, quando passa aqui: Depois para nessa unit JsonDataObjects_ACBr, aqui: Leandro Coelho Imprime Informática
Moderadores Juliomar Marchetti Postado 15 Outubro Moderadores Postado 15 Outubro tá e o que ele está pegando de dados e não consegue fazer o parser? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
José Francisco Postado 16 Outubro Autor Postado 16 Outubro 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é. 1
Leandro Coelho Postado 16 Outubro Postado 16 Outubro 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
Moderadores Juliomar Marchetti Postado 16 Outubro Moderadores Postado 16 Outubro 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. Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Leandro Coelho Postado 25 Outubro Postado 25 Outubro 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
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora