激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#微信公眾號與訂閱號接口開發(fā)示例代碼

C#微信公眾號與訂閱號接口開發(fā)示例代碼

2021-11-25 14:21smartsmile2012 C#

這篇文章主要介紹了C#微信公眾號與訂閱號接口開發(fā)示例代碼,結合實例形式簡單分析了C#針對微信接口的調(diào)用與處理技巧,需要的朋友可以參考下

本文實例講述了C#微信公眾號與訂閱號接口開發(fā)示例代碼。分享給大家供大家參考,具體如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Web;
using System.IO;
using System.Text;
using System.Web.Security;
using weixin_api;
public class wxgz_api : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    context.Response.ContentType = "text/plain";
    string postString = string.Empty;
    if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
    {
      //微信服務器對接口消息
      using (Stream stream = HttpContext.Current.Request.InputStream)
      {
        Byte[] postBytes = new Byte[stream.Length];
        stream.Read(postBytes, 0, (Int32)stream.Length);
        postString = Encoding.UTF8.GetString(postBytes);
        Handle(postString);
      }
    }
    else
    {
      //微信進行的Get測試(開發(fā)者認證)
      WxAuth();
    }
  }
  /// <summary>
  /// 處理信息并應答
  /// </summary>
  private void Handle(string postStr)
  {
    messageHelp help = new messageHelp();
    string responseContent = help.ReturnMessage(postStr);
    HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
    HttpContext.Current.Response.Write(responseContent);
  }
  #region 微信驗證
  public void WxAuth()
  {
    string token = "xxxxxxxx";
    if (string.IsNullOrEmpty(token))
    {
      return;
    }
    string echoString = HttpContext.Current.Request.QueryString["echostr"];
    string signature = HttpContext.Current.Request.QueryString["signature"];
    string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
    string nonce = HttpContext.Current.Request.QueryString["nonce"];
    if (CheckSignature(token, signature, timestamp, nonce))
    {
      if (!string.IsNullOrEmpty(echoString))
      {
        HttpContext.Current.Response.Write(echoString);
        HttpContext.Current.Response.End();
      }
    }
  }
  /// <summary>
  /// 驗證微信簽名
  /// </summary>
  public bool CheckSignature(string token, string signature, string timestamp, string nonce)
  {
    string[] ArrTmp = { token, timestamp, nonce };
    Array.Sort(ArrTmp);
    string tmpStr = string.Join("", ArrTmp);
    tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
    tmpStr = tmpStr.ToLower();
    if (tmpStr == signature)
    {
      return true;
    }
    else
    {
      return false;
    }
  }
  #endregion
  public bool IsReusable
  {
    get
    {
      return false;
    }
  }
}

希望本文所述對大家C#程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久国产午夜 | 欧美成人鲁丝片在线观看 | 毛片a片免费看 | 欧美综合日韩 | 91社区在线观看 | 久久国精品 | 玩偶姐姐 在线观看 | 国产精品久久久久久久不卡 | 日本在线观看中文字幕 | 一级毛片a级 | 欧美va亚洲 | 国产精品一区二区三区在线播放 | 色屁屁xxxxⅹ在线视频 | 日本欧美一区二区三区在线观看 | 99精品视频免费看 | 国产毛片毛片 | 久久国产精品久久久久久电车 | 在线视频观看一区二区 | 久草视频中文 | 农村寡妇偷毛片一级 | 国产69久久精品成人看 | 国产成人小视频在线观看 | 欧美一级黄色片在线观看 | 久久毛片免费观看 | 亚洲福利在线观看视频 | 国产欧美日韩视频在线观看 | 精品一区二区三区在线播放 | 欧美精品亚洲人成在线观看 | av大全在线播放 | 国产精品嘿咻嘿咻在线播放 | 日韩视频在线一区二区三区 | 不卡一区二区三区视频 | 精品久久久久久久久久久久久久 | 美国av片在线观看 | 免费的毛片 | 欧美国产综合视频 | 国产一区网址 | 一区二区三区视频在线播放 | 午夜九九九 | 成人免费毛片在线观看 | 久久综合入口 |