[英]Using Sinch REST Api in C#
我正在嘗試在C#中使用Sinch REST api進行短信驗證,並且在編碼授權所需的字符串時遇到了麻煩。 我使用的是Auth的APPLICATION SIGNED REQUEST,我想知道要使用什么c#函數來創建content-Md5和stringtoSign。 對於內容MD-5,這是我擁有的代碼段
var body = JsonConvert.SerializeObject(smsRequest);
var hs = System.Security.Cryptography.MD5.Create();
var db = hs.ComputeHash(Encoding.UTF8.GetBytes(body));
var stringToSign = Convert.ToBase64String(db);
public class SmsRequest
{
[JsonProperty("identity")]
public Identity Identity;
[JsonProperty("method")]
public string Method;
[JsonProperty("metadata")]
public Metadata Metadata;
}
public class Metadata
{
[JsonProperty("os")]
public string Os;
[JsonProperty("platform")]
public string Platform;
}
public class Identity
{
[JsonProperty("type")]
public string Type;
[JsonProperty("endpoint")]
public string Endpoint;
}
現在,我使用以下代碼來創建stringtoSign
var stringToSign = "POST" + Environment.NewLine + "jANzQ+rgAHyf1MWQFSwvYw==" + Environment.NewLine +
"application/json" + Environment.NewLine + "x-timestamp:2014-06-04T13:41:58Z" +
Environment.NewLine + "/v1/sms/+46700000000";//used for signing
var secret = "JViE5vDor0Sw3WllZka15Q=="; // this needs to be signed
var encoding = new System.Text.UTF8Encoding();
byte[] keyByte = encoding.GetBytes(stringToSign);
var hmacsha256 = new HMACSHA256(keyByte);
byte[] messageBytes = Encoding.UTF8.GetBytes(secret);
byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
var res = Convert.ToBase64String(hashmessage);
我在這里的示例中使用的值https://www.sinch.com/using-rest/ ,並且使用我的方法時,我希望結果為“ qDXMwzfaxCRS849c / 2R0hg0nphgdHciTo7OdM6MsdnM =“
我在這里做錯了什么?
如果您不想安裝nuget,可以使用我們的真棒nuget https://github.com/sinch/nuget-serversdk ,您可以檢查源代碼並獲取所需的組件。 它的開源和你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.