Firmado
Obtén Más utiliza un JWT (JSON Web Token) firmado, para garantizar la integridad y autenticidad de la información transmitida, debe ser firmado digitalmente por el emisor con una clave secreta y única obtenida tras cada solicitud de pago.
var ecdsa_pem = FormatPemEcdsa(keys.signature); var ecdsa_key.ImportFromPem(ecdsa_pem).ExportParameters(true); var json = JsonSerializer.Serialize(card_present); var json_signed = Convert.ToBase64String( ecdsa_key.SignData(Encoding.UTF8.GetBytes(serialize_cardPresent), HashAlgorithmName.SHA256) ); var token = new JwtSecurityTokenHandler().CreateToken(new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim("Body",json), new Claim("Sign", json_signed) }), Expires = DateTime.UtcNow.AddMinutes(3), SigningCredentials = new SigningCredentials(ecdsaKey, SecurityAlgorithms.EcdsaSha256) } ); return new JwtSecurityTokenHandler().WriteToken(token);