using system;using system.collections.generic;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.data;
using system.io;
using system.net;
using system.text;
using system.xml;
using system.web.security;
using system.text.regularexpressions;
namespace wholove.weixin
// //writelog("poststr:" + poststr);
// }
// else
//
//}
#endregion
#region 以下是正常使用時的pageload 請在驗證時將其注釋 並保證在正常使用時可用
/// /// 以下是正常使用時的pageload 請在驗證時將其注釋 並保證在正常使用時可用
///
///
///
protected void page_load(object sender, eventargs e)}}
#endregion
#region 獲取post請求資料
/// /// 獲取post請求資料
///
///
private string postinput()
#endregion
#region 訊息型別介面卡
break;
case "image":
break;
case "voice":
break;
case "vedio":
break;
case "location":
break;
case "link":
break;
default:
break;
}response.end();
}catch (exception)
} #endregion
private string gettext(exmlmsg xmlmsg)
#region 操作文字訊息 + void textcase(xmlelement root)
private void textcase(exmlmsg xmlmsg)
#endregion
#region 將datetime.now 轉換為 int型別的秒
/// /// datetime轉換為unixtime
///
///
///
private int convertdatetimeint(system.datetime time)
private int converdatetimeint(system.datetime time)
/// /// unix時間轉換為datetime
///
///
///
private datetime unixtimetotime(string timestamp)
#endregion
///
/// * 將token、timestamp、nonce三個引數進行字典序排序
/// * 將三個引數字串拼接成乙個字串進行sha1加密
///
private bool checksignature()
;array.sort(arrtmp); //字典排序
string tmpstr = string.join("", arrtmp);
tmpstr = formsauthentication.hashpasswordforstoringinconfigfile(tmpstr, "sha1");
tmpstr = tmpstr.tolower();
if (tmpstr == signature)
else
}private void valid()}}
#endregion
#region 寫日誌(用於跟蹤) + writelog(string strmemo, string path = "*****")
/// /// 寫日誌(用於跟蹤)
/// 如果log的路徑修改,更改path的預設值
///
private void writelog(string strmemo, string path = "wx.txt")
else
sr.writeline(strmemo);
}catch
finally
}//#endregion
#endregion
#region 接收的訊息實體類 以及 填充方法
private class exmlmsg
/// /// 使用者賬號
///
public string fromusername
/// /// 傳送時間戳
///
public string createtime
/// /// 傳送的文字內容
///
public string content
/// /// 訊息的型別
///
public string msgtype
/// /// 事件名稱
///
public string eventname
}private exmlmsg getexmlmsg(xmlelement root)
;if (xmlmsg.msgtype.trim().tolower() == "text")
else if (xmlmsg.msgtype.trim().tolower() == "event")
return xmlmsg;
}#endregion
}
}
微信開發 微信錄音臨時轉永久儲存
params string serverid 通過錄音上傳介面獲取到的serverid param string filepa 本地amr檔案路徑 return string 解析後儲存在七牛儲存空間中的 遠端位址 function upchange filepa else function get...
微信架構《轉》
敏捷是一種態度 敏捷就是試錯 海量系統上的敏捷 無異於懸崖邊的跳舞 如何做到這一切?周顥認為,首先,必須建立起一種狂熱的技術信念,就是一定是可以做到的。然後,需要用一些穩固的技術 理念 來支撐,例如大系統小做 讓一切可擴充套件 必須有基礎元件 輕鬆上線 灰度 灰度 再灰度 精細監控 迅速響應 等等來...
C 微信開發 微信會員卡(二)
如圖 點選啟用會員卡時,要跳轉到如下的 要實現這個功能,首先我們在建立會員卡後就操作如下 region 新增啟用時的自定義字段 string customfiled customfiled string customurl access token string resultcustom postw...