Introdução
...
Exemplo:
POST |
x-Drake-SenderId:12 |
user-agent:Drake.Integration.Client 1.0 |
date:Wed, 29 Jan 2014 22:06:51 GMT |
content-type:application/json |
[{"Id":0,"ClientGuid":"b3c671cb-12ae-4ec3-9524-4928a8b86442","SenderId":12,"RecipientId":15,"Type":2,"DrakeId":4825709,"Details":"Não é permitido mais de um participante em solicitações Rodoviárias."}] |
...
public static string SignData(string message, string privateKey) |
{ |
//// The array to store the signed message in bytes |
byte[] signedBytes; |
using (var rsa = new RSACryptoServiceProvider()) |
{ |
rsa.ImportCspBlob(Convert.FromBase64String(privateKey)); |
//// Write the message to a byte array using UTF8 as the encoding. |
var encoder = new UTF8Encoding(); |
byte[] originalData = encoder.GetBytes(message); |
try |
{ |
//// Sign the data, using SHA512 as the hashing algorithm |
signedBytes = rsa.SignData(originalData, CryptoConfig.MapNameToOID("SHA512")); |
} |
catch (CryptographicException e) |
{ |
return null; |
} |
finally |
{ |
//// Set the keycontainer to be cleared when rsa is garbage collected. |
rsa.PersistKeyInCsp = false; |
} |
} |
//// Convert the a base64 string before returning |
return Convert.ToBase64String(signedBytes); |
} |
...
Para confirmar o processamento de uma mensagem, basta enviar uma requisição do tipo POST para /Control, informando o ID do fornecedor (SenderId), o tipo de mensagem (Type 13 = confirmar processamento) e o ID da mensagem que deseja confirmar o processamento (Id). A seguir um exemplo:
POST: /Control |
[{ |
"SenderId" : 123, |
"Type": 13, |
"Id" 10000 |
}] |
Após realizar esta operação, a mensagem será excluída da caixa de mensagens do fornecedor e não será mais retornada.
...