Ver Mensaje Individual
  #1  
Antiguo 11-09-2020
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Reputación: 14
novato_erick Va por buen camino
variable tipo AnsiString para un Token

Hola Chicos estoy en la fase de integraciones de la aplicación de escritorio y web la cual me obligó a Actualizar mi IDE de XE7 a XE10.4 bueno en realidad estoy con el Trial ya que no he logrado avances significativos con certificados SSL/TSL con los componentes de INDY y REST de XE7.

En fin el dolor de cabeza se me quitó ya que XE10.4 no me tengo que preocupar de eso. sin embargo como puse en mi título hay algo que no comprendo.

recibo el token de la API y la almaceno en una variable de Tipo String el problema está es que al pasarlo como parametro la respuesta es error 401 en fin aquí está el código:

Código Delphi [-]

procedure TfrmPagoCedula.ConsultaSaldo(CedulaCliente: String);
var
    RutaUrl, parametro, barer, CuerpoRespuesta: String;
    CargaToken: TextFile;
    MiConsultaCedula, VariableDirectaTabla: AnsiString;
begin

//En una tutenficación la respuesta del toquen lo hago directamente desde una  FDMemTable
eToken.Text :=  FDMemTable1accessToken.AsString;
//o
Memo1.Text :=  FDMemTable1accessToken.AsString;
//Almaceno directamente desde el FDMenTable1
VariableDirectaTabla := FDMemTable1accessToken.AsString;

   BalanceSaldo := 0;
    RutaUrl :=
      'https://miDominio.com/api/services/app/Transaction/ValidateTransactionParameter';
  MiConsultaCedula :=
      '{"identifierType": 1,"identifierNumber": "4-713-257","branchId": "123","trackingId": "123","programCode": "ENTIDAD"}';
//
     RequestBody :=
      'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2Fw' +
      'Lm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjI3N' +
      'SIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2' +
      'xhaW1zL25hbWUiOiJXb25nMjAiLCJBc3BOZXQuSWRlbnRpdHkuU2VjdXJpdHlTdGFtcCI' +
      '6IjY1RlhCUlRSSVlGVFRUUENMVFFRWUk2M05CMkFLSTVZIiwiaHR0cDovL3NjaGVtYXMu' +
      'bWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiQ2Fza' +
      'GllciAtIEFiYXJyb3RlcmlhIiwiaHR0cDovL3d3dy5hc3BuZXRib2lsZXJwbGF0ZS5jb2' +
      '0vaWRlbnRpdHkvY2xhaW1zL3RlbmFudElkIjoiMjQ0IiwiQXBwbGljYXRpb25fVXNlckFj' +
      'Y2Vzc2libGVFbnRpdGllcyI6Ilt7XCJFbnRpdHlJZFwiOjEsXCJFbnRpdHlUeXBlXCI6Mn' +
      '1dIiwic3ViIjoiMjc1IiwianRpIjoiNDNkOGY5ZjQtODk4Mi00N2E0LWI1ZTYtZTAzZjc1' +
      'YjY2Yjg4IiwiaWF0IjoxNTk5ODQwMjUxLCJuYmYiOjE1OTk4NDAyNTEsImV4cCI6MTU5OT' +
      'g2MTg1MSwiaXNzIjoiU29saWRhcml0eSIsImF1ZCI6IlNvbGlkYXJpdHkifQ.6wvJyvgQQg'
      + 'LqC7VN2TDdjD-_fbh33gOAkso2FeXwFSI';
// el RequestBody haciendolo de esta menera me trae la respuesta sin problema
 RESTReques.Params[0].Value := 'Bearen ' + RequestBody; //<---OK

//al Hacerlo de esta forma me manda el error 401 de no autorizado antes mencionado
 RESTReques.Params[0].Value := 'Bearen ' + VariableDirectaTabla; //<--- 401 no Autorizado

 RESTReques.Execute;

end;

Cual es la diferencia entre una y la otra esto me tiene desconcertado ya que el token según la API cambia cada 24 hora y lo actualizo en un archivo de Texto y tiene que ser almacenado, verificado y utilizado.

Saludos;

novatoerick
Responder Con Cita