Ir para conteúdo
  • Cadastre-se

Erro ao tentar consumir api Asaas com post


Ver Solução Respondido por Rodrigo Cardilo,
  • Este tópico foi criado há 240 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membro Pro Verificado
Postado
function TDM1.RegistrarBoletoUnico(CodCotista, Cod_Asaas, Desc_Cobranca: string;
  VlrBoleto, VlDesconto, VlMulta, VlJuros: double; DtVenc: TDate; DiasDesc: integer): integer;
var
  resp:                               IResponse;
  Json_Boleto, Json_Desconto:         TJSONObject;
  Arr_Desconto, Arr_Multa, Arr_Juros: TJSONArray;
  Json_Multa, Json_Juros:             TJSONObject;
begin
  TbBoleto.FieldDefs.Clear;
  try
    Json_Boleto := TJSONObject.Create;
    Json_Boleto.AddPair('billingType', 'BOLETO');
    Json_Boleto.AddPair('customer', Cod_Asaas);
    Json_Boleto.AddPair('value', TJsonNumber.Create(VlrBoleto));
    Json_Boleto.AddPair('duedate', FormatDateTime('yyyy-mm-dd', DtVenc));
    Json_Boleto.AddPair('description', Desc_Cobranca);
    Json_Boleto.AddPair('daysAfterDueDateToRegistrationCancellation', TJsonNumber.Create(1));
    Json_Boleto.AddPair('externalReference', CodCotista);
    // Desconto
    if VlDesconto > 0 then
      begin
        Arr_Desconto  := TJSONArray.Create;
        Json_Desconto := TJSONObject.Create;

        Json_Desconto.AddPair('value', TJsonNumber.Create(VlDesconto));
        Json_Desconto.AddPair('dueDateLimitDays', TJsonNumber.Create(DiasDesc));
        Json_Desconto.AddPair('type', 'FIXED');
        Arr_Desconto.AddElement(Json_Desconto);

        Json_Boleto.AddPair('discount', Json_Desconto);
      end;
    // Multa
    if VlMulta > 0 then
      begin
        Arr_Multa  := TJSONArray.Create;
        Json_Multa := TJSONObject.Create;
        Json_Multa.AddPair('value', TJsonNumber.Create(VlMulta));
        Json_Multa.AddPair('type', 'PERCENTAGE');

        Arr_Multa.AddElement(Json_Multa);

        Json_Boleto.AddPair('fine', Json_Multa);
      end;
    // Juros
    if VlJuros > 0 then
      begin
        Arr_Juros  := TJSONArray.Create;
        Json_Juros := TJSONObject.Create;
        Json_Juros.AddPair('value', TJsonNumber.Create(VlJuros));
        Arr_Juros.AddElement(Json_Juros);
        Json_Boleto.AddPair('interest', Json_Juros);
      end;
    clipboard.AsText := Json_Boleto.ToJSON;

    TRequest.New.BaseURL(BASE_URL).Resource('v3/payments').AddHeader('access_token', TOKEN_ASAAS,
      [poDoNotEncode]).Adapters(TDataSetSerializeAdapter.New(TbBoleto)).Accept('application/json')
      .AddBody(Json_Boleto.ToJSON).Post;

    Result := resp.StatusCode;

  finally
    { Json_Boleto.DisposeOf;
      Json_Desconto.DisposeOf;
      Json_Juros.DisposeOf;
      Json_Multa.DisposeOf; }
  end;
end;

Boa tarde amigos,

Estou tentando consumir uma api do Asaas. Os endpoints get estão funcionando perfeitamente mas quando tento fazer um post me retorna aquele erro doido Access Violatin at address.......

Algúem consegue me ajudar onde está errado?

 

Rodrigo Cardilo

Card System Info

[email protected]

  • Consultores
Postado

em qual das linhas do seu código ocorre?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado
15 horas atrás, Rodrigo Cardilo disse:
function TDM1.RegistrarBoletoUnico(CodCotista, Cod_Asaas, Desc_Cobranca: string;
  VlrBoleto, VlDesconto, VlMulta, VlJuros: double; DtVenc: TDate; DiasDesc: integer): integer;
var
  resp:                               IResponse;
  Json_Boleto, Json_Desconto:         TJSONObject;
  Arr_Desconto, Arr_Multa, Arr_Juros: TJSONArray;
  Json_Multa, Json_Juros:             TJSONObject;
begin
  TbBoleto.FieldDefs.Clear;
  try
    Json_Boleto := TJSONObject.Create;
    Json_Boleto.AddPair('billingType', 'BOLETO');
    Json_Boleto.AddPair('customer', Cod_Asaas);
    Json_Boleto.AddPair('value', TJsonNumber.Create(VlrBoleto));
    Json_Boleto.AddPair('duedate', FormatDateTime('yyyy-mm-dd', DtVenc));
    Json_Boleto.AddPair('description', Desc_Cobranca);
    Json_Boleto.AddPair('daysAfterDueDateToRegistrationCancellation', TJsonNumber.Create(1));
    Json_Boleto.AddPair('externalReference', CodCotista);
    // Desconto
    if VlDesconto > 0 then
      begin
        Arr_Desconto  := TJSONArray.Create;
        Json_Desconto := TJSONObject.Create;

        Json_Desconto.AddPair('value', TJsonNumber.Create(VlDesconto));
        Json_Desconto.AddPair('dueDateLimitDays', TJsonNumber.Create(DiasDesc));
        Json_Desconto.AddPair('type', 'FIXED');
        Arr_Desconto.AddElement(Json_Desconto);

        Json_Boleto.AddPair('discount', Json_Desconto);
      end;
    // Multa
    if VlMulta > 0 then
      begin
        Arr_Multa  := TJSONArray.Create;
        Json_Multa := TJSONObject.Create;
        Json_Multa.AddPair('value', TJsonNumber.Create(VlMulta));
        Json_Multa.AddPair('type', 'PERCENTAGE');

        Arr_Multa.AddElement(Json_Multa);

        Json_Boleto.AddPair('fine', Json_Multa);
      end;
    // Juros
    if VlJuros > 0 then
      begin
        Arr_Juros  := TJSONArray.Create;
        Json_Juros := TJSONObject.Create;
        Json_Juros.AddPair('value', TJsonNumber.Create(VlJuros));
        Arr_Juros.AddElement(Json_Juros);
        Json_Boleto.AddPair('interest', Json_Juros);
      end;
    clipboard.AsText := Json_Boleto.ToJSON;

    TRequest.New.BaseURL(BASE_URL).Resource('v3/payments').AddHeader('access_token', TOKEN_ASAAS,
      [poDoNotEncode]).Adapters(TDataSetSerializeAdapter.New(TbBoleto)).Accept('application/json')
      .AddBody(Json_Boleto.ToJSON).Post;

    Result := resp.StatusCode;

  finally
    { Json_Boleto.DisposeOf;
      Json_Desconto.DisposeOf;
      Json_Juros.DisposeOf;
      Json_Multa.DisposeOf; }
  end;
end;

 

Coloca um Try Except dentro do seu código e depura ele para saber em qual parte está dando erro, se é no momento do POST ou se é antes disto.
A partir do erro que exibir para você, ficará mais fácil para você resolver ou até mesmo para mostrar para nós aqui e com isto conseguirmos te ajudar.

Valter Patrick
Gerente de Projetos na empresa CTEC
Consultor ACBr
(33)98400-0936
GitHub: https://github.com/valterpatrick

Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

  • 2 semanas depois ...
  • Este tópico foi criado há 240 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.