public QueryParamList GenerateAuthParameters(RestRequest request) { var parameters = new QueryParamList(); parameters.Add("access_key", request.AccessKey); if (!string.IsNullOrEmpty(request.FactoryId)) { parameters.Add("cloud_id", request.FactoryId); } parameters.Add("timestamp", Uri.EscapeDataString(GetTimestamp(request.TimeStamp))); return parameters; }
public string GenerateSignature(RestRequest request, QueryParamList parameters) { if (request == null) { throw new ArgumentNullException("request"); } var sb = new StringBuilder(); sb.Append(Enum.GetName(typeof(RestMethod), request.Method).ToUpperInvariant()); sb.Append("\n"); sb.Append(request.ApiHost); sb.Append("\n"); sb.Append("/" + request.EndpointName); sb.Append("\n"); sb.Append(parameters.Concat()); var toSign = sb.ToString(); return GetHmacSha256(toSign, request.SecretKey); }
private RestRequest CreateRequest(RestMethod method, string endpoint, object data = null, QueryParamList parameters = null, string factoryId = null) { var access = _apiAccess; var request = new RestRequest(); request.Method = method; request.Endpoint = endpoint; request.TimeStamp = DateTime.Now; request.FactoryId = factoryId; request.Data = data; request.Params = parameters; request.ApiHost = access.Host; request.ApiVersion = access.Version; request.ApiPort = access.Port; request.AccessKey = access.AccessKey; request.SecretKey = access.SecretKey; return request; }