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
- By admin
- No Comments