微信公众平台分为两种模式:编辑模式与开发模式;

微信公众帐号申请成功后,要想用程序接收处理用户的请求,就必需要在“高级功能”里进行配置。点击“高级功能”。

从微信开发平台开发人员中心中能够看到,高级功能包括两种模式:编辑模式和开发模式,而且这两种模式是相互排斥关系。即两种模式不能同一时候开启。那两种模式有什么差别呢。作为开发人员究竟要开启哪一种呢?

编辑模式:主要针对非编程人员及信息公布类公众帐号使用。开启该模式后。能够方便地通过界面配置“自己定义菜单”和“自己主动回复的消息”。

开发模式:主要针对具备开发能力的人使用。

开启该模式后。可以使用微信公众平台开放的接口。通过编程方式实现自己定义菜单的创建、用户消息的接收/处理/响应。这样的模式更加灵活,建议有开发能力的公司或个人都採用该模式。可以依据业务须要进行微信公众号(订阅号、企业号、服务号)对应扩展开发。

启用开发模式

微信公众帐号注冊完毕后,默认开启的是编辑模式。那么该怎样开启开发模式呢?操作过程例如以下:

1)点击进入编辑模式,将右上角的编辑模式开关由“开启”切换到“关闭”。例如以下图所看到的:

微信公众号开发系列-启用开发模式_微信公众平台

微信公众号开发系列-启用开发模式_开发人员_02

2)点击高级功能进入到开发模式,将右上角的开发模式开关由“关闭”切换到“开启”,但在切换时会遇到例如以下提示:

微信公众号开发系列-启用开发模式_开发模式_03

提示须要我们先成为开发人员,才干开启开发模式。

那就先点击下图所看到的的“成为开发人员”button:

微信公众号开发系列-启用开发模式_开发人员_04

假设提示资料不全,那就先补齐资料再回来继续操作。须要补全的资料有公众帐号头像、描写叙述和运营地区。

微信公众号开发系列-启用开发模式_补全_05

待资料补全后。再次点击“成为开发人员”,这时将看到接口配置信息界面,例如以下图所看到的:

微信公众号开发系列-启用开发模式_开发模式_06

这里须要填写URL和Token两个值。URL指的是可以接收处理微信server发送的GET/POST请求的地址,而且是已经存在的,如今就行在浏览器訪问到的地址。这就要求我们先把公众帐号后台处理程序开发好(至少应该完毕了对GET请求的处理)并部署在公网server上。Token后面会具体说明。

也就是说要完毕接口配置,仅仅须要先完毕微信server的GET请求处理就能够?是的。 那这是为什么呢?由于这是微信公众平台接口中定义的。

详细请參考API文档-消息接口-消息接口指南中的网址接入部分。

​点此进入​​。

微信公众号开发系列-启用开发模式_微信_07

上面写的非常清楚,事实上你仅仅要能理解上面在说什么就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

完毕提交就可以验证通过,表示已成功启用开发人员模式。例如以下图:

微信公众号开发系列-启用开发模式_补全_08


假设API回调地址发送变化,可点击‘改动配置’进行改动,假设暂停回调可‘停用’停用开发配置。

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