Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

Identifiquei que não existia o método para atualização da conta.

image.thumb.png.7b4de19654dcae21d7d0c9065a650411.png

Fiz a implementação e já realizei a atualização, segue contribuição do fonte:

Citar

 

function TACBrPSPMatera.ContaAlterar(aAccountId: String): Boolean;
var
  wOpenSSL: TACBrOpenSSLUtils;
  wBody, wURL, wHash: String;
  wRespHttp: AnsiString;
  wResultCode: Integer;
begin
  if (not Assigned(fContaSolicitacao)) or fContaSolicitacao.IsEmpty then
    DispararExcecao(EACBrPixException.CreateFmt(ACBrStr(sErroObjetoNaoPrenchido), ['ContaSolicitada']));

  if (ContaSolicitacao.clientType = mctNone) then
    ContaSolicitacao.clientType := mctCorporate;

  if (ContaSolicitacao.accountType = matNone) then
    ContaSolicitacao.accountType := matUnlimitedOrdinary;

  {$IFNDEF FPC}
  wBody := Trim(ACBrAnsiToUTF8(ContaSolicitacao.AsJSON));
  {$ELSE}
  wBody := Trim(ContaSolicitacao.AsJSON);
  {$ENDIF}

  ContaResposta.Clear;
  PrepararHTTP;
  URLPathParams.Add(aAccountId);
  WriteStrToStream(Http.Document, wBody);
  Http.MimeType := CContentTypeApplicationJSon;

  wOpenSSL := TACBrOpenSSLUtils.Create(Nil);
  try
    wHash := wOpenSSL.HMACFromString(
               ContaSolicitacao.externalIdentifier +
               ContaSolicitacao.client.taxIdentifier.taxId, SecretKey, algSHA256);
    Http.Headers.Add('Transaction-Hash: ' + wHash);
  finally
    wOpenSSL.Free;
  end;

  Result := AcessarEndPoint(ChttpMethodPOST, cMateraEndPointAccounts, wResultCode, wRespHttp);
  Result := Result and (wResultCode = HTTP_OK);

  if Result then
    ContaResposta.AsJSON := String(wRespHttp)
  else
  begin
    ErroResposta.AsJSON := String(wRespHttp);
    wURL := CalcularURLEndPoint(ChttpMethodPOST, cMateraEndPointAccounts);
    DispararExcecao(EACBrPixHttpException.CreateFmt(sErroHttp, [wResultCode, ChttpMethodPOST, wURL]));
  end;
end;

 

 

ACBrPIXPSPMatera.pas

  • Consultores
Postado

Boa tarde,

Criada a TK-6959 para avaliação.

Obrigado pela contribuição.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

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

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

 

 

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.