This example illustrates how to sign request URL’s using .NET C#. To use this sample you need the latest version of the .NET framework.
Name | Type | Summary |
---|---|---|
domain | string | The protocol + domain of the web service you are calling. ex. http://uk.shoppingapis.kelkoo.com |
path | string | The path + query string of the web service you are calling. ex. /V3/productSearch?query=ipod |
id | string | Your authentication ID provided to you by Kelkoo. |
key | string | Your authentication key provided to you by Kelkoo. |
Don’t forget to encode the values in your query string. In .NET C# you can use Server.UrlEncode(string url)
.
using System; using System.IO; using System.Text; using System.Security.Cryptography;
namespace Kelkoo {
public static class RequestSigner {
public static string Sign(string domain, string path, string id, string key) { /// Get Timestamp int timestamp = (int)(((int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds));
// Clean up path path = path.Replace(" ", "+");
// Get url string url = path + "&aid=" + auth_id + "&timestamp=" + timestamp;
// Get url+key byte array byte[] tokken = Encoding.GetEncoding("iso-8859-1").GetBytes(url + auth_key);
// Get MD5 instance MD5 md5 = MD5CryptoServiceProvider.Create();
// Compute MD5 hash byte[] md5tokken = md5.ComputeHash(tokken);
//Convert to base 64 string string base64tokken = Convert.ToBase64String(md5tokken);
// Clean up tokken base64tokken = base64tokken.Replace("+", ".").Replace("/", "_").Replace("=", "-");
// return signed url; return domain + url + "&hash=" + base64tokken;
}
}
}
Call: RequestSigner.Sign("http://
fr.shoppingapis.kelkoo.com", "/
V3/productSearch?query=sony","96912377", "KeyOfPartner96912377");
Output: 'http://
fr.shoppingapis.kelkoo.com/
V3/productSearch?query=sony&aid=96912377×tamp=1166428730&hash=oVsgSMxjHws4UVgPzxklmw--'
Download a full sample class: