Obtener el Token en la SUNAT para VB.Net

Token electrónico SUNAT

Obtener el Token en la SUNAT para VB.Net

Para este punto se creó una función para poderla invocar las veces que sea necesaria. A continuación detallaremos lo desarrollado, recuerde que primero deberá ya tener creado su usuario secundario, la contraseña, y deberá de generar las credenciales (client_id y client_secret) desde el portal de la SUNAT con su clave SOL.

Public Function ObtenerToken(ByVal Ruta As String) As String
   'Obtener el Token para consumir el API SUNAT
   ServicePointManager.Expect100Continue = True
   ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

   Dim strUsrName = "RUC" + "USUARIOSECUNDARIO" 
   Dim strPassword = "ContraseñaUsuarioSecundario" 
   Dim grant_type As String = "password"
   Dim client_id As String ="jdfytfjp7-8888-4987-9f73-ff5ef84748fe"
   Dim client_secret As String = "Est06AGXTNRetoo2NCJSv9=="
   'Esta es la URL proporcionada por la SUNAT para obtener el Token
   Dim sURL As String = "https://api-seguridad.sunat.gob.pe/v1/clientessol/" + client_id + "/oauth2/token/"
   
   Dim token As String = ""
   Dim client As RestClient = New RestClient(sURL)
   client.Timeout = -1
   
   'Utilizamos el método POST
   Dim request = New RestRequest(Method.POST)

   'En la Cabecera del request colocaremos los siguiente valores
   request.AddHeader("Cache-Control", "no-cache")
   request.AddHeader("Content-Type", "application/json")
   request.AddBody("Content-Type", "application/x-www-form-urlencoded")

   'Y estas opciones son las que deberá de considerar en la parametrización, recuerde que estas variables ya fueron definidas en la parte superior.
   request.AddParameter("grant_type", grant_type)
   request.AddParameter("client_id", client_id)
   request.AddParameter("client_secret", client_secret)
   request.AddParameter("username", strUsrName)
   request.AddParameter("password", strPassword)

   Dim result As IRestResponse = client.Execute(request)
   Dim statusCode As HttpStatusCode = result.StatusCode
   Dim numericStatusCode As Int16 = statusCode
   If (numericStatusCode = 200) Then
      Dim objRpta = JsonConvert.DeserializeObject(result.Content)
      Dim access_token As String = objRpta("access_token")
      'Aquí devolvemos el token a la función
      ObtenerToken = access_token
   Else
      Throw New Exception("Error de conexión con Servicio. " + result.StatusDescription + "-" + result.ErrorMessage)
   End If
End Function

Bueno esto sería todo espero que sea de ayuda para los que están implementando sus sistemas en VB.Net.

Saludos, John Ubillus

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*
*