UnitTest1.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Security.Cryptography;
  6. using System.Text;
  7. using System.Net;
  8. using System.IO;
  9. namespace UnitTestProject1
  10. {
  11. [TestClass]
  12. public class UnitTest1
  13. {
  14. [TestMethod]
  15. public void TestMethod1()
  16. {
  17. //var a = JSWX.Areas.Common.Context.AccessToken;
  18. //var b = HttpGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx4073bc94413ffb9c&secret=c5ecc639370a0baff93f2126db8f3ede");
  19. var a = "12_S9gAnoYS3bd3jpZLNhm6phPnVh3jYql349cahxD3fq87nQpFNM9Sc3ZpGet15k0ON_4LL0sxgzBwiRR8jBK9Y3IttEM9_K3TbvixGZoAtc5jo06sjPPAm0DML110JULecXkVW80cBQy9ja9wMJQdCCAAXE";
  20. //var jsapi_ticket = HttpGet("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + a + "&type=jsapi");
  21. //var jsapi_ticket = "sM4AOVdWfPE4DxkXGEs8VJCzIh7-MBAfNCnykb_3eigM5ISf8MuW-wxWBmeO4qFovF4-QgLVOf5bien_5LG-Kw";
  22. var jsapi_ticket = "sM4AOVdWfPE4DxkXGEs8VJCzIh7-MBAfNCnykb_3eiiJsrzstXOV1HKc6iUGvMGeq6dQp1PVNtjC8on2ZJvINw";
  23. var k=ConvertDateTimeToInt(DateTime.Now);
  24. Dictionary<string, string> dic = new Dictionary<string, string>();
  25. //dic.Add("debug", "true");
  26. //dic.Add("appId", "wx4073bc94413ffb9c");
  27. //dic.Add("timestamp", k.ToString().Substring(0,k.ToString().Length - 3));
  28. //dic.Add("nonceStr", "YT" + k.ToString());
  29. //dic.Add("jsApiList", "['checkJsApi', 'scanQRCode']");
  30. dic.Add("noncestr", "YT" + k.ToString());
  31. dic.Add("jsapi_ticket", jsapi_ticket);
  32. dic.Add("timestamp", k.ToString());
  33. dic.Add("url", "http://www.63191999.com/Business/Scan.html");
  34. System.Diagnostics.Debug.WriteLine(k.ToString());
  35. //var dicSort = from objDic in dic orderby dic.Keys descending select dic;
  36. var dicSort=dic.OrderBy(t => t.Key);
  37. var s = "";
  38. foreach (var item in dicSort)
  39. {
  40. System.Diagnostics.Debug.WriteLine(item.Key);
  41. s += item.Key + "=" + item.Value+"&";
  42. }
  43. if (s.EndsWith("&")) s = s.Substring(0, s.Length - "&".Length);
  44. System.Diagnostics.Debug.WriteLine(s);
  45. s = SHA1(s, Encoding.UTF8);
  46. System.Diagnostics.Debug.WriteLine(s);
  47. dic.Clear();
  48. dic.Add("jsapi_ticket", jsapi_ticket);
  49. dic.Add("noncestr", "YT1532926066256");
  50. dic.Add("timestamp", "1532926066");
  51. dic.Add("url", "http://www.63191999.com/Business/Scan.html");
  52. s = "";
  53. foreach (var item in dicSort)
  54. {
  55. System.Diagnostics.Debug.WriteLine(item.Key);
  56. s += item.Key + "=" + item.Value + "&";
  57. }
  58. if (s.EndsWith("&")) s = s.Substring(0, s.Length - "&".Length);
  59. s = SHA1(s, Encoding.UTF8);
  60. System.Diagnostics.Debug.WriteLine(s);
  61. }
  62. public static long ConvertDateTimeToInt(System.DateTime time)
  63. {
  64. System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
  65. long t = (time.Ticks - startTime.Ticks) / 10000; //除10000调整为13位
  66. return t;
  67. }
  68. /// <summary>
  69. /// SHA1 加密,返回大写字符串
  70. /// </summary>
  71. /// <param name="content">需要加密字符串</param>
  72. /// <param name="encode">指定加密编码</param>
  73. /// <returns>返回40位大写字符串</returns>
  74. public string SHA1(string content, Encoding encode)
  75. {
  76. try
  77. {
  78. SHA1 sha1 = new SHA1CryptoServiceProvider();
  79. byte[] bytes_in = encode.GetBytes(content);
  80. byte[] bytes_out = sha1.ComputeHash(bytes_in);
  81. sha1.Dispose();
  82. string result = BitConverter.ToString(bytes_out);
  83. result = result.Replace("-", "");
  84. return result.ToLower();
  85. }
  86. catch (Exception ex)
  87. {
  88. throw new Exception("SHA1加密出错:" + ex.Message);
  89. }
  90. }
  91. [TestMethod]
  92. public void GetAcc()
  93. {
  94. //var ret = HttpGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx4073bc94413ffb9c&corpsecret=Ai3aTpYl5XZL6qp0HwJTeIKlCqPo8GAP4UEApQyn314");
  95. var ret = HttpGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx4073bc94413ffb9c&corpsecret=c5ecc639370a0baff93f2126db8f3ede");
  96. ret = "";
  97. }
  98. public static string HttpGet(string url)
  99. {
  100. string result=string.Empty;
  101. try
  102. {
  103. HttpWebRequest wbRequest = (HttpWebRequest)WebRequest.Create(url);
  104. wbRequest.Method = "GET";
  105. HttpWebResponse wbResponse = (HttpWebResponse)wbRequest.GetResponse();
  106. using (Stream responseStream = wbResponse.GetResponseStream())
  107. {
  108. using (StreamReader sReader = new StreamReader(responseStream))
  109. {
  110. result = sReader.ReadToEnd();
  111. }
  112. }
  113. }
  114. catch (Exception ex)
  115. {
  116. }
  117. return result;
  118. }
  119. [TestMethod]
  120. public void GetNickName()
  121. {
  122. try
  123. {
  124. var b = HttpGet(string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}", "", "oYGxtwfgwr23fx3N04H2ZxY7ePqk&lang=zh_CN"));
  125. b = "";
  126. }
  127. catch (Exception ex)
  128. {
  129. var s = ex.Message;
  130. }
  131. }
  132. }
  133. }