软件研发实战应用技术分享

在技术的道路上,要学会学习和分享,让编程变得更快乐!

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

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

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

从微信开发平台开发者中心中可以看到,高级功能包含两种模式:编辑模式和开发模式,并且这两种模式是互斥关系,即两种模式不能同时开启。那两种模式有什么区别呢,作为开发人员到底要开启哪一种呢?

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

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

启用开发模式

微信公众帐号注册完成后,默认开启的是编辑模式。那么该如何开启开发模式呢?操作步骤如下:

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

\

\

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

\

提示需要我们先成为开发者,才能开启开发模式。那就先点击下图所示的“成为开发者”按钮:

\

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

\

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

\

这里需要填写URL和Token两个值。URL指的是能够接收处理微信服务器发送的GET/POST请求的地址,并且是已经存在的,现在就能够在浏览器访问到的地址,这就要求我们先把公众帐号后台处理程序开发好(至少应该完成了对GET请求的处理)并部署在公网服务器上。Token后面会详细说明。

也就是说要完成接口配置,只需要先完成微信服务器的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://服务器外网访问域名地址Url/WeiXinAPI.aspx

填写Token:test

完成提交即可验证通过,表示已成功启用开发者模式。如下图:



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

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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载, 更多关注付义方技术博客:http://blog.csdn.net/fuyifang https://blog.csdn.net/fuyifang/article/details/40662791
个人分类: 微信开发
所属专栏: 微信公众号开发随记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭