Boa tarde, estou tentando gerar boleto do sicoob via API via Authorization Code, estou com essa função em http com indy...mais só http/1.1 500 internal server error..esse erro pode ser muito gerenerico... estou usando esse codigo aqui para obter o acess_token
procedure TF_sicoob.WebBrowser1NavigateComplete2(ASender: TObject;
const pDisp: IDispatch; const URL: OleVariant);
var mURL, sResponse, mCode : string;
var
HTTP: TIdHTTP;
FParams, access_token, refresh_token : String;
Json, scope, token_type, expires_in : String;
JsontoSend, AResponseContent : TStringStream;
var IOHandler : TIdSSLIOHandlerSocketOpenSSL;
begin
HTTP := TIdHTTP.Create;
IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
Json := 'grant_type=authorization_code' + '&'+'code='+mCode + '&' +'redirect_uri=https://minhaurl.com.br/';
AResponseContent := TStringStream.Create('');
JsonToSend := TStringStream.Create(utf8Encode(Json));
Try
IOHandler.SSLOptions.SSLVersions := [sslvTLSv1_2];
HTTP.IOHandler :=IOHandler;
HTTP.Request.Clear;
HTTP.Request.CharSet := 'utf-8';
HTTP.Request.Accept := '*/*';
HTTP.Request.AcceptEncoding := 'gzip, deflate, br';
HTTP.Request.ContentType := 'application/x-www-form-urlencoded';
HTTP.Request.CustomHeaders.AddValue('Authorization', 'Basic ' + MEU_TOKEM_BASIC);
HTTP.Response.ContentType := 'application/x-www-form-urlencoded';
HTTP.Response.CharSet := 'utf-8';
try
HTTP.Post('https://sandbox.sicoob.com.br/token', JsontoSend, AResponseContent);
Except
on E: Exception do
begin
ShowMessage('Erro: ' + E.Message );
Exit;
end;
end;
if HTTP.ResponseCode = 200 then
begin
access_token := getCamposJsonString(AResponseContent.DataString, 'access_token');
refresh_token := getCamposJsonString(AResponseContent.DataString, 'refresh_token');
expires_in := getCamposJsonString(AResponseContent.DataString, 'expires_in');
scope := getCamposJsonString(AResponseContent.DataString, 'scope');
end;
//showmessage(AResponseContent.DataString);
//showmessage(HTTP.ResponseCode.ToString);
//showmessage(HTTP.ResponseText);
Finally
FreeAndNil(JsontoSend);
End;
finally
FreeAndNil(HTTP);
FreeAndNil(IOHandler);
end;
end;
Em homologação funciona 100% cheguei até emitir boleto em homologação, mais quando passa para produção não funciona. Eu já tenho as credenciais e Callback_URL em produção, alguém tem alguma ideia pra me ajudar?