下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
【移動應用開發(fā)技術(shù)】如何使用C#開發(fā)微信
這篇文章主要介紹如何使用C#開發(fā)微信,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!1.必須有微信公眾賬號2.你也可以申請測試微信號,鏈接給你/debug/cgi-bin/sandbox?t=sandbox/login然后,建立mvc,你只需要點幾下vs就幫你搞定了。這不廢話接著,要創(chuàng)建一個一般處理程序,隨便起個名字,測試通過才是重點,抓緊時間……///
<summary>
///
驗證微信簽名
///
</summary>
///
<returns></returns>
///
*
將token、timestamp、nonce三個參數(shù)進行字典序排序
///
*
將三個參數(shù)字符串拼接成一個字符串進行sha1加密
///
*
開發(fā)者獲得加密后的字符串可與signature對比,標識該請求來源于微信。
private
bool
CheckSignature()
{
var
token
=
"token";
var
signature
=
HttpContext.Current.Request.QueryString["signature"];
var
timestamp
=
HttpContext.Current.Request.QueryString["timestamp"];
var
nonce
=
HttpContext.Current.Request.QueryString["nonce"];
var
echostr
=
HttpContext.Current.Request.QueryString["echostr"];
string[]
ArrTmp
=
{
token,
timestamp,
nonce
};
Array.Sort(ArrTmp);
//字典排序
var
tmpStr
=
string.Join("",
ArrTmp);
tmpStr
=
FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr,
"SHA1");//加密方式
if
(tmpStr.ToLower()
==
signature)
{
return
true;
}
return
false;
}這代碼相當于是跟微信公眾號中【開發(fā)】--》【基本配置】里面你所寫的Token一個一對一令牌通信握手,只要互相通了,那么你就算是搞定了!搞定是后話,還有工作沒做完,接著寫!怎么配置,這是問題,哎只能用花生殼給測試先,至少要知道玩了半天是不是通的!看下圖:左邊花生殼配置右邊iis網(wǎng)站發(fā)布綁定看到這圖,你也明白下一步怎么玩了吧。本地iis配上了域名。這簡直屌爆了…………下面。我們加上代碼。設置發(fā)送和自動回復測試,看看能不能玩
#region
接收消息
///
<summary>
///
接收微信發(fā)送的XML消息并且解析
///
</summary>
private
void
ReceiveXml()
{
var
requestStream
=
HttpContext.Current.Request.InputStream;
var
requestByte
=
new
byte[requestStream.Length];
requestStream.Read(requestByte,
0,
(int)requestStream.Length);
var
requestStr
=
Encoding.UTF8.GetString(requestByte);
if
(!string.IsNullOrEmpty(requestStr))
{
//封裝請求類
var
requestDocXml
=
new
XmlDocument();
requestDocXml.LoadXml(requestStr);
var
rootElement
=
requestDocXml.DocumentElement;
if
(rootElement
==
null)
return;
var
wxXmlModel
=
new
WxXmlModel
{
ToUserName
=
rootElement.SelectSingleNode("ToUserName").InnerText,
FromUserName
=
rootElement.SelectSingleNode("FromUserName").InnerText,
CreateTime
=
rootElement.SelectSingleNode("CreateTime").InnerText,
MsgType
=
rootElement.SelectSingleNode("MsgType").InnerText
};
switch
(wxXmlModel.MsgType)
{
case
"text"://文本
wxXmlModel.Content
=
rootElement.SelectSingleNode("Content").InnerText;
break;
case
"image"://圖片
wxXmlModel.PicUrl
=
rootElement.SelectSingleNode("PicUrl").InnerText;
break;
case
"event"://事件
wxXmlModel.Event
=
rootElement.SelectSingleNode("Event").InnerText;
if
(wxXmlModel.Event
!=
"TEMPLATESENDJOBFINISH")//關(guān)注類型
{
wxXmlModel.EventKey
=
rootElement.SelectSingleNode("EventKey").InnerText;
}
break;
default:
break;
}
ResponseXML(wxXmlModel);//回復消息
}
}
#endregion
#region
回復消息
private
void
ResponseXML(WxXmlModel
WxXmlModel)
{
var
QrCodeApi
=
new
QrCodeApi();
var
XML
=
"";
switch
(WxXmlModel.MsgType)
{
case
"text"://文本回復
XML
=
ResponseMessage.GetText(WxXmlModel.FromUserName,
WxXmlModel.ToUserName,
WxXmlModel.Content);
break;
case
"event":
switch
(WxXmlModel.Event)
{
case
"subscribe":
if
(string.IsNullOrEmpty(WxXmlModel.EventKey))
{
XML
=
ResponseMessage.GetText(WxXmlModel.FromUserName,
WxXmlModel.ToUserName,
"關(guān)注成功");
}
else
{
XML
=
ResponseMessage.SubScanQrcode(WxXmlModel.FromUserName,
WxXmlModel.ToUserName,
WxXmlModel.EventKey);//掃描帶參數(shù)二維碼先關(guān)注后推送事件
}
break;
case
"SCAN":
XML
=
ResponseMessage.ScanQrcode(WxXmlModel.FromUserName,
WxXmlModel.ToUserName,
WxXmlModel.EventKey);//掃描帶參數(shù)二維碼已關(guān)注
直接推送事件
break;
}
break;
default://默認回復
break;
}
HttpContext.Current.Response.Write(XML);
HttpContext.Current.Response.End();
}
#endregion上面一個發(fā)送,一個接收,還是在WhApi.ashx處理程序文件里面。我就想說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025企業(yè)承包經(jīng)營(經(jīng)營責任制)合同
- 正規(guī)合同書范本
- 汽車公路運輸委托合同
- 汽車租賃公司合作合同
- 2025合同管理考核實施細則
- 2025中介擔保合同范文
- 2025橘皮書fidic設計建造與交鑰匙工程合同條
- 2025北京市國有土地使用權(quán)出讓合同
- 2025年鐵路運輸服務項目規(guī)劃申請報告模范
- 2025合同模板購車合同范本
- 第十一章《功和機械能》達標測試卷(含答案)2024-2025學年度人教版物理八年級下冊
- 2025年銷售部年度工作計劃
- 2024年蘇州工業(yè)園區(qū)服務外包職業(yè)學院高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- ESG表現(xiàn)對企業(yè)財務績效的影響研究
- DB3713T 340-2024 實景三維數(shù)據(jù)接口及服務發(fā)布技術(shù)規(guī)范
- 八年級生物開學摸底考(長沙專用)(考試版)
- 車間空調(diào)崗位送風方案
- 使用錯誤評估報告(可用性工程)模版
- 初一年級班主任上學期工作總結(jié)
- 2023-2024年同等學力經(jīng)濟學綜合真題及參考答案
- 農(nóng)村集體土地使用權(quán)轉(zhuǎn)讓協(xié)議
評論
0/150
提交評論