public void NetTimeToAlibabaTimeTest() { DateTime time = new DateTime(2012, 8, 1, 15, 42, 20, 368, DateTimeKind.Local); string actual = AlibabaHelper.NetTimeToAlibabaTime(time); Assert.AreEqual <string>("20120801154220368+0800", actual); }
public void IndexAsync() { this.AsyncManager.OutstandingOperations.Increment(); this.m_service.BeginGetIsAuthorized((ar) => { Exception error = null; bool isAuthorized = false; try { isAuthorized = this.m_service.EndGetIsAuthorized(ar); } catch (Exception ex) { error = ex; } ActionResult result = null; if (error != null) { result = this.Content(string.Format("Error: {0}\r\n{1}", error.Message, error.StackTrace)); } else if (isAuthorized) { result = this.View(); } else { result = this.Redirect(AlibabaHelper.GetChinaOAuthUri(MvcApplication.APP_KEY, MvcApplication.APP_SECRET, this.GetAbsoluteUrl(this.Url.Action("Authorize")), null)); } this.AsyncManager.Parameters["result"] = result; this.AsyncManager.OutstandingOperations.Decrement(); }, null); }
public void GetApiSignatureTest_Null() { string actual = AlibabaHelper.GetApiSignature("param2", "1", "system", "currentTime", "2988940", new Dictionary <string, string> { { "client_id", "2988940" }, { "site", "china" }, { "redirect_uri", "http://www.xphter.com" }, { "state", string.Empty }, }, "3tzdn2c9CU"); Assert.AreEqual <string>("AA4B09182881EBC69D9CC718AB992696A658B153", actual); }
public void GetApiSignatureTest_Absolute() { string actual = AlibabaHelper.GetApiSignature("http://gw.open.1688.com/openapi/param2/1/system/currentTime/2988940", new { client_id = "2988940", site = "china", redirect_uri = "http://www.xphter.com", state = "xphter", }, "3tzdn2c9CU"); Assert.AreEqual <string>("A70625750557474FFD0F65973D3CA23D237CF472", actual); }
public void GetApiSignatureTest_Object() { string actual = AlibabaHelper.GetApiSignature("param2", "1", "system", "currentTime", "2988940", new { client_id = "2988940", site = "china", redirect_uri = "http://www.xphter.com", state = "xphter", }, "3tzdn2c9CU"); Assert.AreEqual <string>("A70625750557474FFD0F65973D3CA23D237CF472", actual); }
public void GetApiSignatureTest() { string actual = AlibabaHelper.GetApiSignature("param2", "1", "system", "currentTime", "2988940", new Dictionary <string, string> { { "client_id", "2988940" }, { "site", "china" }, { "redirect_uri", "http://www.xphter.com" }, { "state", "xphter" }, }, "3tzdn2c9CU"); Assert.AreEqual <string>("A70625750557474FFD0F65973D3CA23D237CF472", actual); }
public void GetParamSignatureTest_Null() { string actual = AlibabaHelper.GetParamSignature(new Dictionary <string, string> { { "client_id", "2988940" }, { "site", "china" }, { "redirect_uri", "http://www.xphter.com" }, { "state", null }, }, "3tzdn2c9CU"); Assert.AreEqual <string>("9732B9F140CB44FB8AA3D8010BE547D788E7A297", actual); }
public void GetParamSignatureTest_Object() { string actual = AlibabaHelper.GetParamSignature(new { client_id = "2988940", site = "china", redirect_uri = "http://www.xphter.com", state = "xphter", }, "3tzdn2c9CU"); Assert.AreEqual <string>("A6EA9CEBF3C5F15A48E9D5C36E646789993F9677", actual); }
public void GetParamSignatureTest() { string actual = AlibabaHelper.GetParamSignature(new Dictionary <string, string> { { "client_id", "2988940" }, { "site", "china" }, { "redirect_uri", "http://www.xphter.com" }, { "state", "xphter" }, }, "3tzdn2c9CU"); Assert.AreEqual <string>("A6EA9CEBF3C5F15A48E9D5C36E646789993F9677", actual); }
public void AlibabaTimeToNetTimeTest() { DateTime actual = AlibabaHelper.AlibabaTimeToLocalTime("20120801154220368+0800"); Assert.IsTrue(actual.Year == 2012); Assert.IsTrue(actual.Month == 8); Assert.IsTrue(actual.Day == 1); Assert.IsTrue(actual.Hour == 15); Assert.IsTrue(actual.Minute == 42); Assert.IsTrue(actual.Second == 20); Assert.IsTrue(actual.Millisecond == 368); Assert.IsTrue(actual.Kind == DateTimeKind.Local); }
public IAsyncResult BeginGetCurrentTime(AsyncCallback callback, object userState) { AsyncResult <DateTime> result = new AsyncResult <DateTime>(callback, userState); this.SendApiRequest(this.m_apiFacgory.GetSystemTime, null, (error, content) => { DateTime time = DateTime.MinValue; if (error == null) { time = AlibabaHelper.AlibabaTimeToLocalTime(content.Substring(1, content.Length - 2)); } result.MarkCompleted(error, false, time); }); return(result); }
private void SendApiRequest(IChinaAlibabaApi api, object args, Action <Exception, string> callback) { string apiUri = api.GetRequestUri(this.m_appKey); IDictionary <string, string> arguments = AlibabaHelper.GetArgumentsDictionary(args); if (api.NeedAuthroized) { arguments[ACCESS_TOKEN_ARGUMENT_NAME] = this.m_accessToken; } if (api.NeedTimestamp) { arguments[TIMESTAMP_ARGUMENT_NAME] = (DateTime.Now - this.m_timestampBase).TotalMilliseconds + this.m_timeError.ToString(); } if (api.NeedSignature) { arguments[SIGNATURE_ARGUMENT_NAME] = AlibabaHelper.GetApiSignature(apiUri, arguments, this.m_appSecret); } this.SendPostRequest(apiUri, arguments, api.Encoding, callback); }
private void SendPostRequest(string url, IDictionary <string, string> args, Encoding encoding, Action <Exception, string> callback) { HttpWebRequest request = this.CreateRequest(url, WebRequestMethods.Http.Post, encoding); string queryString = AlibabaHelper.GetQueryString(args, encoding ?? this.m_defaultEncoding); byte[] data = queryString.Length > 0 ? (encoding ?? this.m_defaultEncoding).GetBytes(queryString) : null; if (data != null) { request.ContentLength = data.Length; NetworkRequestAsyncTimeout.RegisterRequest(request.BeginGetRequestStream((ar) => { Exception error = null; try { using (Stream writer = request.EndGetRequestStream(ar)) { writer.Write(data, 0, data.Length); } } catch (WebException ex) { error = this.GetAlibabaException(ex); } catch (Exception ex) { error = new AlibabaException(string.Format("Error occurred when send POST data: {0}", ex.Message), 500, ex); } if (error != null) { callback(error, null); } else { this.SendHttpRequest(request, callback); } }, null), request, this.m_timeout); } else { this.SendHttpRequest(request, callback); } }
public void GetArgumentsDictionaryTest() { DateTime now = DateTime.Now; object args = new { a = 13, b = true, c = "xphter", d = now, e = new int[] { 123, 456, }, f = new string[] { "123", "456", }, }; IDictionary <string, string> actual = AlibabaHelper.GetArgumentsDictionary(args); Assert.AreEqual(actual["a"], "13"); Assert.AreEqual(actual["b"], "true"); Assert.AreEqual(actual["c"], "xphter"); Assert.AreEqual(actual["d"], AlibabaHelper.NetTimeToAlibabaTime(now)); Assert.AreEqual(actual["e"], "[123,456]"); Assert.AreEqual(actual["f"], "[\"123\",\"456\"]"); }
public string GetRequestUri(string appKey) { return(this.NeedHttps ? AlibabaHelper.GetChinaApiHttpsUri(this.ProtocalVersion, this.ApiVersion, this.ApiNamespace, this.ApiName, appKey) : AlibabaHelper.GetChinaApiHttpUri(this.ProtocalVersion, this.ApiVersion, this.ApiNamespace, this.ApiName, appKey)); }