1. 程式人生 > >微信公眾號開發系列-啟用開發模式

微信公眾號開發系列-啟用開發模式

sum oca 使用 popu 接口交互 開發模式 signature 微信公眾 local

微信公眾平臺分為兩種模式:編輯模式與開發模式;

微信公眾帳號申請成功後,要想用程序接收處理用戶的請求,就必需要在“高級功能”裏進行配置。點擊“高級功能”。

從微信開發平臺開發人員中心中能夠看到,高級功能包括兩種模式:編輯模式和開發模式,而且這兩種模式是相互排斥關系。即兩種模式不能同一時候開啟。那兩種模式有什麽差別呢。作為開發人員究竟要開啟哪一種呢?

編輯模式:主要針對非編程人員及信息公布類公眾帳號使用。開啟該模式後。能夠方便地通過界面配置“自己定義菜單”和“自己主動回復的消息”。

開發模式:主要針對具備開發能力的人使用。

開啟該模式後。可以使用微信公眾平臺開放的接口。通過編程方式實現自己定義菜單的創建、用戶消息的接收/處理/響應。這樣的模式更加靈活,建議有開發能力的公司或個人都採用該模式。可以依據業務須要進行微信公眾號(訂閱號、企業號、服務號)對應擴展開發。

啟用開發模式

微信公眾帳號註冊完畢後,默認開啟的是編輯模式。那麽該怎樣開啟開發模式呢?操作過程例如以下:

1)點擊進入編輯模式,將右上角的編輯模式開關由“開啟”切換到“關閉”。例如以下圖所看到的:

技術分享

技術分享

2)點擊高級功能進入到開發模式,將右上角的開發模式開關由“關閉”切換到“開啟”,但在切換時會遇到例如以下提示:

技術分享

提示須要我們先成為開發人員,才幹開啟開發模式。

那就先點擊下圖所看到的的“成為開發人員”button:

技術分享

假設提示資料不全,那就先補齊資料再回來繼續操作。須要補全的資料有公眾帳號頭像、描寫敘述和運營地區。

技術分享

待資料補全後。再次點擊“成為開發人員”,這時將看到接口配置信息界面,例如以下圖所看到的:

技術分享

這裏須要填寫URL和Token兩個值。URL指的是可以接收處理微信server發送的GET/POST請求的地址,而且是已經存在的,如今就行在瀏覽器訪問到的地址。這就要求我們先把公眾帳號後臺處理程序開發好(至少應該完畢了對GET請求的處理)並部署在公網server上。Token後面會具體說明。

也就是說要完畢接口配置,僅僅須要先完畢微信server的GET請求處理就能夠?是的。 那這是為什麽呢?由於這是微信公眾平臺接口中定義的。

詳細請參考API文檔-消息接口-消息接口指南中的網址接入部分。

點此進入。

技術分享

上面寫的非常清楚,事實上你僅僅要能理解上面在說什麽就OK了,至於怎麽編寫相關代碼。我已經幫你完畢了。請繼續往下看。

下面是WebApi.aspx頁面cs代碼。主要完畢和微開放平臺接口交互驗證,完畢開啟開發模式。

<span style="font-size:14px;">using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var echostr = Request.QueryString["echostr"];
        if (echostr != null)
        {
            LogHelper.Info(echostr);
            if (checkSignature())
            {
                Response.Write(echostr);
                Response.End();
            }
        }

    }


   
    /// <summary>
    /// 驗證簽名
    /// </summary>
    /// <returns></returns>
    private bool checkSignature()
    {
        var pm = new Paraments();

        var signature = Request.QueryString["signature"];
        var timestamp = Request.QueryString["timestamp"];
        var nonce = Request.QueryString["nonce"];

        string[] arrTmp = { pm.Token, timestamp, nonce };
        Array.Sort(arrTmp);     //字典排序  
        var tmpStr = string.Join("", arrTmp);
        tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
        tmpStr = tmpStr.ToLower();
        if (tmpStr == signature.ToLower())
        {
            return true;

        }
        else
        {
            return false;
        }
    }






    /// <summary>
    /// datetime轉換成unixtime
    /// </summary>
    /// <param name="time"></param>
    /// <returns></returns>
    private int ConvertDateTimeInt(System.DateTime time)
    {
        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
        return (int)(time - startTime).TotalSeconds;
    }

}</span>


Paraments.cs配置類代碼

<span style="font-size:14px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

public class Paraments
{
    /// <summary>
    /// 微信API地址
    /// </summary>
    public string TokenUrl { get { return "https://api.weixin.qq.com/cgi-bin/token"; } }

    /// <summary>
    /// 
    /// </summary>
    public string OAuthUrl { get { return ""; } }

    /// <summary>
    /// 
    /// </summary>
    public string RedirectUrl { get { return ""; } }

    /// <summary>
    /// AppKey
    /// </summary>
    public string AppKey { get { return "wxb58968b4aed7fdc5"; } }

    /// <summary>
    /// AppSecret
    /// </summary>
    public string AppSecret { get { return "2a5e30c63c776d2ff0c4131a59fa57df"; } }

    /// <summary>
    /// Token
    /// </summary>
    public string Token { get { return "test"; } }
}</span>
完畢以上代碼步驟,把相應接口回傳地址傳入相應文本框驗證通過就可以開啟開發模式。

主要過程例如以下:

填寫Url:http://server外網訪問域名地址Url/WeiXinAPI.aspx

填寫Token:test

完畢提交就可以驗證通過,表示已成功啟用開發人員模式。例如以下圖:

技術分享


假設API回調地址發送變化,可點擊‘改動配置’進行改動,假設暫停回調可‘停用’停用開發配置。

本人新浪微博:http://weibo.com/i/1741159542

微信公眾號開發系列-啟用開發模式