using System.Security.Cryptography;
using System.Text.RegularExpressions;
private static readonly Encoding encoding = Encoding.UTF8;
private static string format = "XML";
private static string userId = "rcondomina@bizlogit.net";
private static string apiKey = "b7b2a60ba4ecc17739a0172a9b2ae7be975e9b71";
private static string version = "1.0";
public static void Main()
string action = "SetStatusToPackedByMarketplace";
string deliveryType = "dropship";
string orderItemIds = "1234,5678";
string shippingProvider = "";
string timeStamp = DateTime.Now.ToString("yyyy-MM-dd") + DateTime.Now.ToString("THH") + DateTime.Now.ToString(":mm") + DateTime.Now.ToString(":ss");
string requestParams = "Action=" + action +
"&DeliveryType=" + deliveryType +
"&OrderItemIds=[" + orderItemIds +
"]&ShippingProvider=" + shippingProvider +
"&Timestamp=" + timeStamp +
string escapedSignature = WebUtility.UrlEncode(requestParams);
escapedSignature = Regex.Replace(escapedSignature, "(%[0-9a-f]{2})", c => c.Value.ToLowerInvariant());
escapedSignature = Regex.Replace(escapedSignature, "(%3d|%3D)", c => "=");
escapedSignature = Regex.Replace(escapedSignature, "(%26)", c => "&");
string signature = GetSignature(escapedSignature);
var url = string.Format("https://sellercenter-api.dafiti.com.ar/?{0}&Signature={1}", requestParams, signature);
RestRequest request = new RestRequest(Method.GET);
RestClient client = new RestClient(url);
string response = client.Execute(request).Content;
Console.WriteLine(response);
Console.WriteLine(e.ToString());
static string GetSignature(string escapedSignature)
var keyByte = encoding.GetBytes(apiKey);
string generatedSignature;
using (var hmacsha256 = new HMACSHA256(keyByte)) {
hmacsha256.ComputeHash(encoding.GetBytes(escapedSignature));
generatedSignature = ByteToString(hmacsha256.Hash).ToLower();
return generatedSignature;
static string ByteToString(byte[] buff)
for (int i = 0; i < buff.Length; i++)
sbinary += buff[i].ToString("X2");