微信公衆平臺開發基礎概念

一:如何開始php

1:若是沒有公衆賬號,能夠先申請一個測試賬號:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login服務器

2:登陸以後界面是這樣滴:微信

image

3:接下來,我須要準備本身的網站,而後發佈本身的 URL。因而,我用 ASP.NET 寫了一個 WeixinTest.ashx,其代碼以下:微信開發

public void ProcessRequest(HttpContext context)
{
    string echoStr = 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 (!string.IsNullOrEmpty(echoStr))
    {
        HttpContext.Current.Response.Write(echoStr);
        HttpContext.Current.Response.End();
    }
}post

在本身的服務器上發佈了這個網站後,咱們填寫地址和 TOKEN(注意,個人測試代碼中並無驗證這個 TOKEN)。而後在上文圖中點擊 提交 後,獲得了這個界面:測試

image

以上界面的出現即意味這提交成功。網站

4:用手機上微信掃一掃剛纔的二維碼後發生了什麼?url

上面說到了這個測試的公衆號在管理端的表現,那麼若是關注了它,你本身的微信發生了什麼變化。是的,它出如今了你的訂閱號中。話說,一開始我覺得這個測試號不是服務號呢就不能享受一些高級功能。不過,不會的,既然是測試號,就應該讓我測的快樂高興,因而,咱們來看看如何生成菜單。不過,先稍後,咱們首先來理清下思路,看看微信公衆號的數據流轉究竟是個怎麼回事。若是沒有理清這點,你就會跟我同樣,一天內都摸不清頭腦。debug

二:關於數據流轉

1:註冊測試賬號

註冊測試賬號,是在微信的網站上完成的,輸入 url 和 token,則代表咱們已經建立了這個公衆號。

2:關注了你的公衆號的他人如何與你互動

當有人關注了這個公衆號,他首先訪問的就是這個咱們在建立時刻使用的 url,沒錯,該 url 很重要。註冊的時候,微信的網站會訪問它,看它合法否。註冊成功後,該 url 就成爲他人在手機上使用微信來跟你互動的惟一地址。

3:你如何推送內容給他人

這就分爲兩個部分了,

第一個情形:經過在微信網站上配置信息或者調用微信接口,咱們就讓咱們的公衆號綁定了一些信息:如自定義菜單。這樣,當他人關注公衆號的時候,就能看到自定義菜單等信息;

第二個情形:第一種情形咱們理解爲配置階段,那麼第二種情形就是真正的開發階段了,在這個階段,咱們接收用戶的消息(text,click,view 等),而後用戶的消息,推送給用戶 text,image,網站頁面(能夠跟你的 url 是一個網站,也能夠是第三方網站)。

你能夠推送這些信息給他人:自定義菜單

 

三:實例-如何生成自定義菜單

這就是上文中所說到的第一種情形。既然,它實際上跟真正的微信開發沒有多大關係,或者說你能夠獨立寫段代碼來完成調用接口從而配置信息,那麼好吧,我就用微信本身提供的程序吧:

image

記住,輸入的必須是 JSON 格式的內容,要知足其格式要求,能夠參考微信的開發者檔案。

而後咱們取消以前的關注,重新再關注公衆號,就能看到這個新建立的菜單了(注意,有延遲,若不肯意等,則能夠換個其它的微信號關注下,就出來了)。因爲我手機不能拍攝本身,這裏就不出效果圖了。

3.1 關於 access_token

注意,在這裏,咱們還須要輸入一個 access_token,這個值咱們一樣也能夠使用這個接口調試工具得到:

image

須要值得注意的是,該值是有失效期。

 

四:實例-一個真正的 url 處理程序

public void ProcessRequest(HttpContext param_context)
{
    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);
            Handle(Encoding.UTF8.GetString(postBytes));            
        }
    }
    else
    {
        Auth(); 
    }
}

爲何要作個判斷是 POST 呢?由於申請公衆號的時候的,微信網站對這個 url 的驗證是使用 GET 進行了,那樣,咱們就能夠用 Auth 這個方法了,而交互,則是用 POST 進行的。接下來,咱們能夠開始作真正意義上的微信開發了:)~~

 

參考:

1:開發者檔案,http://mp.weixin.qq.com/wiki/index.php?title=%E5%BC%80%E5%8F%91%E8%80%85%E8%A7%84%E8%8C%83

相關文章
相關標籤/搜索