C#微信公眾號(hào)與訂閱號(hào)接口開發(fā)示例代碼
本文實(shí)例講述了C#微信公眾號(hào)與訂閱號(hào)接口開發(fā)示例代碼。分享給大家供大家參考,具體如下:
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")
{
//微信服務(wù)器對(duì)接口消息
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
{
//微信進(jìn)行的Get測試(開發(fā)者認(rèn)證)
WxAuth();
}
}
/// <summary>
/// 處理信息并應(yīng)答
/// </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 微信驗(yàn)證
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>
/// 驗(yàn)證微信簽名
/// </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;
}
}
}
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
- C#微信公眾號(hào)開發(fā)之使用MessageHandler簡化消息處理流程
- C#微信公眾號(hào)開發(fā)之用戶上下文WeixinContext和MessageContext
- C#微信公眾號(hào)開發(fā)之自定義菜單
- C#微信公眾號(hào)開發(fā)之消息處理
- C#微信公眾號(hào)開發(fā)之服務(wù)器配置
- C#微信公眾號(hào)開發(fā) 微信事件交互
- C#微信開發(fā)之微信公眾號(hào)標(biāo)簽管理功能
- C#開發(fā)微信公眾號(hào)接口開發(fā)
- C#微信公眾號(hào)開發(fā)之接收事件推送與消息排重的方法
- C#微信公眾號(hào)開發(fā)之用戶管理
相關(guān)文章
基于WPF實(shí)現(xiàn)跳動(dòng)的字符效果
這篇文章主要和大家介紹一個(gè)好玩但實(shí)際作用可能不太大的動(dòng)畫效果:跳動(dòng)的字符,本文將利用WPF實(shí)現(xiàn)這一效果,感興趣的小伙伴可以學(xué)習(xí)一下2023-08-08
C# WinForm實(shí)現(xiàn)窗體上控件自由拖動(dòng)功能示例
這篇文章主要介紹了C# WinForm實(shí)現(xiàn)窗體上控件自由拖動(dòng)功能,涉及WinForm控件屬性及事件響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
C#判斷指定驅(qū)動(dòng)器是否是Fat分區(qū)格式的方法
這篇文章主要介紹了C#判斷指定驅(qū)動(dòng)器是否是Fat分區(qū)格式的方法,涉及C#中DriveFormat屬性的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04

