微信發展如火如荼,沒有哪家的企業營銷能避開微信不談的,那像我們這種給客戶實施項目的多多少少會涉及微信端的開發,本文只要給從未做過微信開發的人做一些簡單的演示,行家里手們可以呵呵一下該干嘛干嘛去了。
微信的開發網上的很多教程都是php的,如果會php的朋友可以參考這個教程:http://www.cnblogs.com/txw1958/p/wechat-tutorial.html。那.net開發平台的伙伴就是另一條路子了,前期如何注冊微信公眾平台就不說了,直接到開發者中心的服務器配置。微信需要一個web站點來處理各種消息,那去服務器的IIS部署個web站點是必須的了並且將你的web站點url路徑填寫在下圖的url地址欄里(url項里面有說明只支持80端口,聽過微信開發的人肯定都知道這條規矩,部署完后要保證你的url是可以訪問通的)。但對於初次開發的你來說這就完事了嗎,答案顯示不是。
下圖中的url上面已經說過了,token可以隨便定義,EncodingAESKey可以隨機生成,只是學習做demo的話消息加密方式明文就好了,點擊提交你會發現token始終驗證不過,這塊就會雲里霧里了。

那請教過微信開發的朋友后得知這個token是需要傳到后台驗證后傳回微信的,最簡單的示例代碼如下,這樣你的驗證就能過了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class index : System.Web.UI.Page
{
const string Token = "TokenWeiXin";
protected void Page_Load(object sender, EventArgs e)
{
string echoStr = Request.QueryString["echoStr"].ToString();
if (<span style="font-family: Arial, Helvetica, sans-serif;">CheckSignature()&&</span><span style="font-family: Arial, Helvetica, sans-serif;">!string.IsNullOrEmpty(echoStr))</span>
{
Response.Write(echoStr);
Response.End();
}
}
}
}
當然你也得驗證下該請求是來自微信服務器的你才將你的token信息返回。
private bool CheckSignature()
{
string signature = Request.QueryString["signature"].ToString();
string timestamp = Request.QueryString["timestamp"].ToString();
string nonce = Request.QueryString["nonce"].ToString();
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;
}
}
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
