微信公众开发的准备
来源:互联网 发布:衡水学霸有多努力知乎 编辑:程序博客网 时间:2024/05/22 02:10
首先,你需要申请一个微信公众平台的账号,个人的话申请的只能是订阅号,设置好自己的信息即可。
对于订阅号来说,有两种编辑模式,第一种就是普通的编辑模式,可以实现的操作如下图所示:
个人感觉就是一些模板,自己改改标题,改改名字之类的,实现的功能有限。
第二种模式是开发者模式,也是作为微信开发者来说需要操作的。进入开发者中心后,
按照要求填写好URL,和token。
这里先简单说明一下这个URL和token:
URL是你开发微信公众平台的那个页面的地址,所以说前提是你还得有一个服务器才行,也就是有一个网站就OK了。(还在现在的云服务很便捷,可以去阿里云买一个域名,一年才十几块,它还自动帮你绑定主机和设置域名解析,非常方便)token呢就是微信开发第三方API接口,需要你自己设置好,过程就是在代码里实现。
申请好阿里云的主机后,输入自己的域名显示的应该是它提前放好的一个页面,你可以用ftp地址进入后删除,放入自己的页面。
例如我用VS2013新建了一个ASP.NET的空网站,并且新建了一个Web窗体页面,并且在.cs页面写好一下代码,让微信公众平台能够验证通过:
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;public partial class weixin : System.Web.UI.Page{ const string Token = "weixin";//你的token protected void Page_Load(object sender, EventArgs e) { string postStr = ""; if (Request.HttpMethod.ToLower() == "post") { System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream; byte[] b = new byte[s.Length]; s.Read(b, 0, (int)s.Length); postStr = System.Text.Encoding.UTF8.GetString(b); if (!string.IsNullOrEmpty(postStr)) { //ResponseMsg(postStr); Response.Write(ResponseMsg(postStr)); Response.End(); } //WriteLog("postStr:" + postStr); } else { Valid(); } } /// <summary> /// 验证微信签名 /// </summary> /// * 将token、timestamp、nonce三个参数进行字典序排序 /// * 将三个参数字符串拼接成一个字符串进行sha1加密 /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。 /// <returns></returns> private bool CheckSignature() { string signature = Request.QueryString["signature"].ToString(); string timestamp = Request.QueryString["timestamp"].ToString(); string nonce = Request.QueryString["nonce"].ToString(); string[] ArrTmp = { Token, timestamp, nonce }; Array.Sort(ArrTmp); //字典排序 string tmpStr = string.Join("", ArrTmp); tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); tmpStr = tmpStr.ToLower(); if (tmpStr == signature) { return true; } else { return false; } } private void Valid() { try { string echoStr = Request.QueryString["echoStr"].ToString(); if (CheckSignature()) { if (!string.IsNullOrEmpty(echoStr)) { Response.Write(echoStr); Response.End(); } } } catch { } } /// <summary> /// 返回信息结果(微信信息返回) /// </summary> /// <param name="weixinXML"></param> private string ResponseMsg(string weixinXML) { ///这里写你的返回信息代码 return weixinXML = ""; } /// <summary> /// unix时间转换为datetime /// </summary> /// <param name="timeStamp"></param> /// <returns></returns> private DateTime UnixTimeToTime(string timeStamp) { DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); long lTime = long.Parse(timeStamp + "0000000"); TimeSpan toNow = new TimeSpan(lTime); return dtStart.Add(toNow); } /// <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; } /// <summary> /// 写日志(用于跟踪) /// </summary> private void WriteLog(string strMemo) { string filename = Server.MapPath("/logs/log.txt"); if (!Directory.Exists(Server.MapPath("//logs//"))) Directory.CreateDirectory("//logs//"); StreamWriter sr = null; try { if (!File.Exists(filename)) { sr = File.CreateText(filename); } else { sr = File.AppendText(filename); } sr.WriteLine(strMemo); } catch { } finally { if (sr != null) sr.Close(); } }}之后就OK了,可以先试试通过访问自己的域名看看页面是否正常显示,之后再填写好token,提交成功即可。
之后想要开发什么功能就可以在后台的项目文件中具体操作。
0 0
- 微信公众开发的准备
- 【微信公众号开发】【1】开发前的准备
- 微信公众平台开发-基础准备
- 微信公众平台 开发前准备
- java微信公众号开发入门(1)--开发准备
- 微信公众开放平台开发01---微信公众平台介绍,以及开发准备
- 飞哥教你微信公众号开发-0-准备
- 【PythonWEB】LAMP微信公众平台开发准备流程
- java微信公众号开发环境准备
- 微信公众号开发系列一:环境准备
- 微信公众号JAVA开发学习笔记(一) 公众号开发准备
- 从零开发微信公众号系列 【一】账号准备及公众号类型简介
- 微信公众开发
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备
- 微信公众平台的基本开发
- 开发微信公众平台的基本功能
- 微信公众平台的开发
- 公钥系统之RSA原理验证
- USRP系列之GNURadio安装
- 集群与分布式
- shell 交互
- (二)八中基本数据类型
- 微信公众开发的准备
- 文章0:Nginx整体分析
- php 计算两点地理坐标的距离
- 文章1:Nginx启动过程分析
- 文章2:nginx启动过程之main函数
- 文章3:Nginx中与信号有关的内容
- 文章4:Nginx进程管理之 ngx_master_process_cycle分析
- 文章5:Nginx源码分析--事件循环
- C#操作SqlServer数据库,以及其常用的对象