c#應用微信接口開辟微信門戶運用。本站提示廣大學習愛好者:(c#應用微信接口開辟微信門戶運用)文章只能為提供參考,不一定能成為您想要的結果。以下是c#應用微信接口開辟微信門戶運用正文
微信運用如火如荼,許多公司都願望搭上信息慢車,這個是一個商機,也是一個技巧的偏向,是以,有空研討下、進修下微信的相干開辟,也就成為平常籌劃的主要工作之一了。本系列文章願望從一個按部就班的角度上,周全引見微信的相干開辟進程和相干經歷總結,願望給年夜家懂得一下相干的開辟過程。本漫筆重要針對微信開辟進程的後期預備和一些初始的任務的引見。
在寫下本文的之前一周時光裡,我重要就是參考一些引見文章和微信"平台的相干接口解釋,並聯合C#的代碼開辟,整頓了本身公司的門戶界面,完成了微信任務號的初步用戶交互和信息展現任務,跟著任務的進一步展開,愈來愈多的功效能夠參加,並願望從運用角度上擴大微信的接口,從而完成我對微信接口的技巧探秘和懂得進程。
1、微信賬號要開辟應用微信的平台API,就須要到微信的"平台(https://mp.weixin.qq.com/)去注冊,具有一個辦事號或許定閱號,辦事號重要面臨企業和組織,定閱號重要面向組織和小我,他們之間有必定的差別,依據分歧的須要本身請求對應的賬號便可。
為了應用一些高等的接口,你能夠須要具有辦事號和高等的認證。賬號注冊進程,須要下載一個請求表格,打印並蓋公章,別的還須要請求人拿著身份證攝影(有點奇異,呵呵),然後上傳到辦事器停止審核,普通很快就可以獲得批復。
我以公司名義請求了辦事號,賬號注冊後,會在主界面上顯示你的相干信息,別的給你請求一個二維碼的器械,掃描二維碼便可進入公司的微信存眷確認對話框,異常便利。以下就是我請求後的公司賬號二維碼,可以直接應用掃描。
2、微信菜單界說微信有兩種方法的菜單界說,一種是編纂形式,一種是開辟形式,二者互斥,也就是說,一旦我們采取了開辟形式,就不克不及應用編纂形式了,反過去也一樣。編纂下的菜單,其實也是可以治理的,然則微信不支撐,認為很不爽。
普通情形下,假如我們方才請求了微旌旗燈號碼,可使用編纂菜單測試一下,依據解釋編纂一些菜單嘗嘗。固然微信說24小時內更新,不外普通很快,最快能夠一兩分鐘就更新了,感到照樣不錯的。
應用開辟者形式,你須要依據微信的請求,在辦事器上放置一個頁面鏈接,應用C#開辟的,可以采取***.ashx的定名方法,應用Asp.NET的普通處置法式便可,不須要應用通俗的頁面。
應用開辟形式的菜單,也就是可以挪用微信API停止菜單創立的任務,關於挪用微信的API(微信有許多API可以挪用),我們須要曉得,有幾個參數的主要性,所以在開辟形式翻開的時刻,會給你列出這些參數,以下所示。
3、接入微信的鏈接處置下面說了,你請求開辟形式對菜單或許對其他API的挪用,你須要順遂經由過程接入微信的測試,也就是確認你填寫的鏈接存在並能順遂經由微信的回調測試。微信供給了一個PHP的頁面處置例子,假如我們是C#開辟的呢,可以搜一下就會獲得謎底,我的處置方法以下所示。
創立一個普通處置法式,然後在其處置頁面外面增長一個處置邏輯,假如長短POST方法的內容,就是表現微信停止的Get測試,你須要增長一些處置邏輯,把它給你的內容傳歸去便可,假如是POST方法的,就是微佩服務器對接口新聞的要求操作了,前面引見。
/// <summary>
/// 微信接口。同一吸收並處置信息的進口。
/// </summary>
public class wxapi : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
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);
}
if (!string.IsNullOrEmpty(postString))
{
Execute(postString);
}
}
else
{
Auth(); //微信接入的測試
}
}
普通來講,Auth函數外面,就是要對相干的參數停止獲得,然落後行處置前往給微佩服務器。
string token = "****";//你請求的時刻填寫的Token
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"];
完全的Author函數代碼以下所示,個中我把營業邏輯停止進一步抽取到了一個新的類外面,便利營業邏輯的治理。
/// <summary>
/// 成為開辟者的第一步,驗證並響應辦事器的數據
/// </summary>
private void Auth()
{
string token = ConfigurationManager.AppSettings["WeixinToken"];//從設置裝備擺設文件獲得Token
if (string.IsNullOrEmpty(token))
{
LogTextHelper.Error(string.Format("WeixinToken 設置裝備擺設項沒有設置裝備擺設!"));
}
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 (new BasicApi().CheckSignature(token, signature, timestamp, nonce))
{
if (!string.IsNullOrEmpty(echoString))
{
HttpContext.Current.Response.Write(echoString);
HttpContext.Current.Response.End();
}
}
}
而對微信參數的簽名並前往的操作CheckSignature,代碼以下所示。
/// <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;
}
}
4、應用開辟方法創立菜單
一旦你順遂經由過程微信的認證,那末它就讓你以開辟方法挪用它的API,而且可以隨便創立你的菜單了。
創立菜單的方法,你可以經由過程上面的地位進入到他的API處置界面外面。
進入後,你會發明微信把許多新聞的處置,分門別類放到分歧的分類外面了。