进行微信公众平台登录开发简单吗?可有技术含量?

2015年微信将围绕公众账号、摇一摇大做文章,最终目的则是让微信丰厚的流量得到变现机会,可以揣测,2015年微信将大力变现,努力成为腾讯新的现金牛。
自定义菜单作为能够帮助公众号丰富界面,让用户更好更快地理解公众号的重要功能,现在针对开发者增加了点击菜单后调起扫一扫(支持二维码/一维码)、发图片、发地理位置的能力
摘要: 使用微信的用户应该知道,有时候我们输入预定、查询等关键字段,微信服务器会立即呈现相应回答,但是无论你建立多么庞大的词库,有时候还是不能应付访客的提问,这时候我们就需要人工服务,微信5.0以后开放了多客服的接口,使得系统转人工变成可能。
要实现多客服,只…
摘要:微信,想必大家都不陌生,现在越来越多的微服务也开始进入我们的生活,我们可以使用微信进行查询账单、消费提醒、打车、还款、支付等等,最近微信官方又开放了很多高级接口,使得购买电影票、手机充值、收看互联网电视付费节目变成可能。
相要通过微信和自身业务进行紧…
陈坤微信门这么快就被炒得沸沸扬扬,炒作对明星们增加曝光率也许是个不错的选择,但我还是想将目光集中到陈坤的微信公众号本身。不得不承认,陈坤的微信公众号的确给了我们耳目一新的感觉。但稍微深入了解一下即
前段时间看到一篇文章,说微信的移动支付既简单又安全。这一点,颇不赞同。刚好曾搞过两年的手机动态令牌的研究,这里也来说两句。
那也没办法呀,谁知道腾讯什么时候看上这块业务,聊起腾讯国家队时,深圳一位开发者的笑声里颇多无奈。话题源于前不久口袋通创始人白鸦的一次吐槽。由于腾讯电商也开始做和口袋通类似的事,而且拥有口袋
如何在微信公众账号发布的页面中调用微信内部的接口来实现关注某个用户或者分享到朋友圈这些功能 下面就和大家分享!
微信公众平台一键关注JS代码 今天有朋友问了如何在网页上或是其它地方直接点击一个按钮或是链接实现直接关注服务号的功,现将详细的JS代码贴出来,供大家学习研究!
微信内嵌浏览器有一个私有JS 对象:WeixinJSBridge,通过操作这个对象的相关方法可以实现转发链接到微信朋友圈,和判断一个微信号的关注状态,比如在进行转发抽奖的活动时,判断是否转发成功和是否关注成功会很有必要。
OAuth2.0网页授权高级接口中其中一个,OAuth 2.0是OAuth协议的下一版本,OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。
微信支付、扫码支付……随着移动支付方式的日新月异,支付应用成为人们生活中不可或缺的一部分。然而当你享受移动支付带来的便利时,是否意识到这背后的安全风险?事实上,好比现实中有钱包小偷一样,手机上也有很多“小偷”在紧盯着你的手机钱包。
随着微信使用越来越广泛,微信公众平台开放了许多接口以提供更多个性化的服务,包括自定义菜单接口、客服接口、获取用户信息接口、用户分组接口、群发接口等,开发者在调用这些接口时,都需要传入一个相同的参数access_token,它是公众账号的全局唯一票据,它是接口访问凭证。…
腾讯介入互联网金融服务的形态已经搭建完成,拟在12月初上线。同时,腾讯的金融服务将主要嫁接于移动设备端的微信之内。在此前向服务号开放的九大高级接口的基础上,拟新增五个接口,提供完整的地理位置解决方案,或将服务于电子商务功能的升级,用以盘活微信的支付和交易等
服务号可以申请自定义菜单;使用QQ登录的公众号,可以升级为邮箱登录;使用邮箱登录的公众号,可以修改登录邮箱;群发消息可以同步到腾讯微博。
“我们一直希望在微信公众平台上,能生长出各式各样的、有价值的服务”,腾讯公司高级副总裁、微信产品创始人张小龙此前表示,期待微信能解决人和企业的沟通问题,甚至人和设备的沟通问题。微信公众平台全新测试版正式开放公测。
据国外媒体报道,希望发挥移动性全部潜力的机构必须掌握广泛的技术和技能。其中许多是IT人员不熟悉的技术和技能。市场研究公司Gartner的副总裁和 高级分析师尼克&琼斯(Nick Jones)分享了Gartner认为机构在2
确实是Facebook以190亿美金收购WhatsApp这件事让我想说出这个历史故事。北京时间3月15日晚,上海,身为芝加哥伊利诺伊大学MBA学生的赵建文给记者讲述了一个与成功、财富擦肩而过的失落故事。如今在全球炙手可热的
日报道,微信开放平台改版,值得注意的是,新改版的微信开放平台正式开放了第三方移动应用的微信支付申请,可接入更多支付场景。据了解,改版后的微信开放平台除在界面上进行调整
微信支付端口开放尚不到一个月,腾讯房产于近日宣布:旗下无线产品楼盘微管家(官网)正尝试微信支付,目前已有试点项目&&广西南宁盛天新界楼盘打通微信支付功能。据介绍,市民只需要使用微信支付20元,便可购得
腾讯搜搜团队(你没看错)再度偷偷更新,网页微信电脑版 v1 5 3 6 带着几个新特性闪亮登场。官方介绍里比较扎眼的是群发助手和安静模式,看起来很威猛的样子,具体如何,下面跟着IT之家小编一起,图文并茂的看
微时代微信资讯网科技资讯,我们不仅仅是关注微信,我们还肩负鼓舞科技创意,传递科技正能量的使命!今天微时代微信资讯为您带来了最有价值的科技新闻。大学生团队开发出汽车识别系统,感受车主的路怒情绪,提高
微信公众平台于4月10日凌晨悄然改版,新的首页更大气,页面布局更合理,推出了几个行业级的微信应用成功案例,后台功能也有一些小变化。  微信公众平台首页变化微信公众平台加了beta标记。  左上角只保留了注
通过微信账号就可以用手机玩桌游!华中科技大学科技创业团队冰岩作坊发明的桌游助手,无需安装客户端,用户只用关注一个微信号,就可以与朋友或网友一起玩桌游。在关注了微信公众号桌游助手后,几秒后就会收到该
一位39岁程序员的困惑:知道得越多编程越慢怎么办?自己的经验越丰富,完成项目或任务的时间反而越长。简单几步成为微信公众平台开发者 - 杨栋 - 推酷
简单几步成为微信公众平台开发者 - 杨栋
“微信,是一个生活方式”
,这是微信的自我评价,是不是觉得如果那天不在朋友圈里分享一下自己的最新状态,
并且收到几个赞和评价的话,会觉得空虚寂寞呢?它实实在在的改变了我们的生活方式。
微信,也是一个生意方式
”,在微信成为我们日常必备之app的同时,它同样具备巨大的的商业
或许不应该称为潜力,因为有很多人已经获利,名人们在微信上开设公众账户来吸金,商家来做推广,
服务行业借此拓展渠道,甚至微信已经支持支付了, 还有越来越的自媒体在微信平台涌现出来。
这篇文章就是介绍如何快速的成为公众平台开发者,由于个人只能申请订阅号,因此本文是以订阅号为例。
关于订阅号和服务号的区别,请参见
从微信用户角度简单来说:
主要用于信息辐射,典型的如各家
主要由于自助服务,典型的如
申请公众平台账户
填写注册信息
按照提示激活邮箱
上传个人照片,需要有清晰的身份证照片
选择公众账户的类型,对于个人账户只能选择
最后一会看到自己账户的所有信息,请上传账号的头像,否则无法完成开发者的申请
等待审核通过,这个过程大约需要2~3天,当你收到如下通知,那么恭喜你,你已经成功的申请到了微信公众账户了
OK, 激动人心的时刻到了,是时候进入开发模式了,点击导航栏的“
你将会看到两种模式可供选择,请直接忽略编辑模式,进入“
注册公众账户的服务器
这里需要两部分信息,
服务器地址
和用于验证的
(用来验证请求来自微信服务器)。
如果你还没有自己的服务器,没有关系,为了完成这篇文章我特意申请了一个微信账户:
名称:公众账号开发指南
账户ID:we-chat-tutorial
服务器地址:
这是一个用于示范的服务器,所有的源码都托管在github上,有兴趣的朋友可以拷贝一份,搭建一个服务器。
下面我会讲到服务器的搭建。
成功就在眼前,当验证完成之后,请打开“
开发者模式
”,至此所有的账户申请就完成了
关注你的公共账户
拿起你的手机扫一扫下面的二维码,然后你将会收到一个
,接着试试“
该账号会返回相应的帮助信息。如果输入其他任何文本,该账户会返回预先定义的
声明一下,这不是在打广告,该账户仅仅是用来做样例用的。
接下来,我们说说如何搭建这个服务器。
搭建服务器
微信公众平台是通过消息与公众账号服务器进行通讯,每个消息都会包含如下信息:
微信用户ID,开发者微信号,时间戳,消息类型(文字,链接,图文,音乐,事件),消息内容,消息ID。
其中最常用的便是文字类型的消息,关注事件和图文消息。
如果以一个饭店的微信账户为例的话,典型的应用场景可以是这样的:
用户输入“
”,公众账户返回给用户菜单的图文消息。
我自己也有一个微信公众账号,这个账号可以提供简单的澳洲商业房产搜索:
用户输入“澳洲的任何你感兴趣的地址(如:
)”,公众账户会根据该地址帮你找到排名前5位的商业地产
说到这里有点广告植入的嫌疑,其实这个账号就是3天工作的产物,只是想用来验证一下自己的想法,
公众账号开发指南
不同的是它的结果是真实数据。
所有的代码都托管在github上
/yangdong/wechat-tutorial.git
该服务器完成了对以下功能:&
响应微信平台的验证请求
响应用户关注该公众账户
响应用户查询帮助信息&
响应用户其他文字请求
: 将github中的代码部署到Heroku
它是一个持续集成工具,能够帮助我们非常轻松的将github中的代码,部署到Heroku上,
这样我们仅需要关注我们的业务代码,而无需关心部署的流程。
如果想要深入了解持续集成,可以参考
,同时这本书也不错
Fork wechat-tutorial到自己的github
使用github账户登陆snap-ci
3. 为刚刚fork的代码仓库创建一个snap-ci的工程
snap ci会加载你托管在github中的所有仓库,我们选择wechat-tutorial
4. 为该流水线创建所需要的构建流程,我们只需要增加部署到Heroku&
我们选择“
Heroku Deployment Stage
”,在这一步中,需要你Heroku账户为snap-ci授权,以便于它能够创建和部署应用
5. 等待构建&
恭喜你,已经完成99%的工作了,剩下的1%将由snap-ci为你完成,
并且以后永远都是由它帮你完成,你成功的拥有了一个免费的不知疲倦的劳动力了。
6. 大功告成&
当你看到绿色的“
”字样时,你的所有部署工作就完成了,
你现在就可以访问自己的公众账户服务器了。
如何验证你的服务器是否工作正常.
在浏览器中输入“http://你的应用名称./?echostr=
当浏览器返回“
”时,就意味着你的服务器已经就绪。
写到这里,如何申请微信公众账户,和服务器的搭建就介绍完全了。
接下来所需要的就是修改服务器代码,以便适应自己的业务需求。
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
排版有问题
没有分页内容
视频无法显示
图片无法显示微信公众平台后台接入简明指南 - 廖雪峰的官方网站
微信公众平台后台接入简明指南
/ Reads: 4795
现在微信越来越火了,公众平台也越来越火,作为一个公司或者网站,没有一个公众号,你都不好意思跟人打招呼,更别提递名片了。
但是,开通了公众平台,靠人工去响应用户消息,不但技术含量不够,而且,人少也忙不过来啊。
幸好微信公众平台有开发模式,只要接入了微信后台,用户消息会被发送到我们指定的服务器上,然后,由服务器向用户回复消息。这种方式,比提示用户“回复1看xxx,回复2看xxx”显得高端大气上档次。
开发模式需要准备网站并且接入微信后台,在微信目前文档不完善,接口不友好的情况下,本文将详细讲解如何快速接入微信公众平台。
首先,你需要有一个微信公众号,比如“中华诗词”。在往下继续阅读前,请自觉掏出手机,打开微信扫一扫:
其次,你需要有一个独立域名的网站,用来和微信服务器交互。
接入公众平台
登录微信公众平台后台后,点“功能”-“高级功能”-“开发模式”,进入开发模式,如果公众平台显示“尚未成为开发者”,就点击“成为开发者”:
同意协议后,填写URL和Token:
URL是指微信服务器向哪个URL发送消息,假设我们自己的服务器域名是,准备用/weixin来接收消息,就填写:
而Token是微信服务器和我们自己的服务器通信时验证身份用的,可以随便填写,但要注意保密。
然后点“提交”,一般来说会报错“URL超时”或者“没有正确返回echostr”,因为我们的后台还没有准备好,所以,第一步是接收微信后台发送的验证消息,微信后台会发送一个GET请求到上面的URL,并附带以下参数:
signature,timestamp,nonce,echostr
我们的服务器在接收到上述参数后,需要验证signature是否正确,验证方法是先对timestamp、nonce和token先排序,再拼接成一个字符串,计算出sha1,并和signature对比:
def check_signature(signature, timestamp, nonce):
L = [timestamp, nonce, token]
s = L[0] + L[1] + L[2]
return hashlib.sha1(s).hexdigest() == signature
public static boolean check_signature(signature, timestamp, nonce) {
String[] arr = new String[] { timestamp, nonce, token };
Arrays.sort(arr);
String s = arr[0] + arr[1] + arr[2];
md = MessageDigest.getInstance(&SHA-1&);
byte[] digest = md.digest(s.getBytes(&utf-8&));
return signature == bytes2HexString(digest);
注意token不是微信服务器发过来的,而是我们自己写死的一个常量,就是在微信后台填写的Token。
如果计算的sha1和微信传过来的signature相等,说明这个请求确实是微信后台发过来的,如果是别人伪造的请求,由于他不知道token,所以,无法计算出正确的signature。
要防止第三方通过监听发动replay攻击,还需要验证timestamp和nonce,这个以后再讨论。
如果signature计算无误,就把微信后台传过来的echostr原封不动地传回去,这样,就可以通过验证,成为开发者。
在确保开发模式打开的情况下,微信后台会把用户消息发到我们的服务器上,也就是URL:/weixin:
微信后台发送消息是一个POST请求,但和普通的POST请求不同的是,首先,URL会带上signature、timestamp、nonce这3个参数:
POST /weixin?signature=xxx&timestamp=123456&nonce=123
然后,HTTP请求的BODY是一个不规范的XML:
&ToUserName&&![CDATA[toUser]]&&/ToUserName&
&FromUserName&&![CDATA[fromUser]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[this is a test]]&&/Content&
&MsgId&3456&/MsgId&
我们自己的服务器只需要处理该XML,然后,向微信返回一个类似如下的XML:
&ToUserName&&![CDATA[toUser]]&&/ToUserName&
&FromUserName&&![CDATA[fromUser]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[你好]]&&/Content&
就可以完成消息的回复。微信后台要求必须在5秒内回复,最多重试3次,否则我们自己的回复消息就到达不了用户的手机了。如果我们自己的服务器无法在5秒内回复,就回复一个空字符串,告诉微信服务器,不用重试了,这个消息处理不了,不给用户回复了。
上面的交互逻辑看起来很简单,但实际上坑有很多。
首先,微信服务器发送的POST请求根本就不符合HTTP规范。原则上POST请求不应该在URL上附带参数,但微信后台偏偏要这么干,这就让很多编程语言的标准框架无法获取到POST参数,因为标准的POST参数是从HTTP BODY中解析的。
所以,从POST获取URL参数就需要用到更底层的代码。比如,在Python中,必须通过WSGI的environ字典获取,并且自己来解析:
environ = ...
qs = environ.get('query_string', '')
q = urlparse.parse_qs(qs)
signature = q['signature'][0]
timestamp = q['timestamp'][0]
nonce = q['nonce'][0]
# TODO: check signature...
在Java中,用HttpServletRequest在POST模式下别想用getParameter()拿到URL参数,必须用getQueryString()然后自己想办法解析字符串:
String qs = request.getQueryString();
Map&String, String& map = parse(qs);
// TODO: check signature...
然后,我们再讨论如何读取微信后台发过来的XML。在Python中,需要从environ读取原始的wsgi.input流:
fp = environ['wsgi.input']
在Java中,需要从HttpServletRequest中获取Reader流:
Reader reader = request.getReader();
如果有乱码,写一个EncodingFilter把Request强制设置为UTF-8编码:
public class EncodingFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
req.setCharacterEncoding(&UTF-8&);
resp.setCharacterEncoding(&UTF-8&);
chain.doFilter(req, resp);
public void init(FilterConfig config) throws ServletException {}
public void destroy() {}
不需要读取为字符串,只要有了流就可以解析XML了,建议用SAX解析,最终我们应该得到微信的XML中传过来的几个值:
ToUserName: 'abc'
FromUserName: 'xyz'
CreateTime: ';
MsgType: 'text'
Content: '用户发的消息'
根据MsgType我们可以判断消息是文本、语音、图片、位置还是视频,然后,构造一个XML回复给微信后台,如果一切顺利,微信后台就把我们的消息发给用户。
目前我们只讨论如何回复文本消息,只需构造如下的XML:
&ToUserName&&![CDATA[xyz]]&&/ToUserName&
&FromUserName&&![CDATA[abc]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[你好]]&&/Content&
在回复的XML中,把接收的ToUserName和FromUserName交换,这两个字符串都是用户ID(公众号本身也是一个用户ID),CreateTime是以秒为单位的UNIX时间戳,计算如下:
CreateTime = int(time.time())
long CreateTime = System.currentTimeMillis() / 1000;
MsgType仍是text,Content就是我们自动回复的消息,注意不要超过600个字符。
回复的时候,需要注意,一是最好明确地设置Content-Type: text/xml,二是XML的编码必须是UTF-8,否则,回复的消息就会出现乱码。
如何创建回复XML?由于该XML结构相当简单,所以无需动用任何XML接口,直接拼接字符串最简单快速。
最后,把代码部署到服务器,记住把接收的参数和XML,以及自己生成的XML在log中打印出来,一边看log,一边用手机端的微信来调试。只要调通了一种接口,其他接口参考微信文档就很容易开发了:
目前,微信公众平台的API还有很多限制,比如没有每天自动群发消息的API,要回复图文等多媒体消息需要V认证等等。
微信和微信公众平台虽然产品很先进,但后台API设计得确实不咋地。由于API是给开发人员使用的,所以,设计一个好的API要从开发人员的角度出发。与其使用笨重的XML,不如使用更符合Web潮流的JSON。而且,没有必要把验证单独用GET区分,完全可以全部使用POST方式,在JSON中把所有信息全部包括,以action和data来区分消息类型和数据,例如,验证服务器:
&signature&: &xxx&,
&timestamp&: 123456,
&nonce&: &xxx&,
&action&: &verify&,
&echostr&: &echo&
发送消息:
&signature&: &xxx&,
&timestamp&: 123456,
&nonce&: &xxx&,
&action&: &msg&,
&id&: &123456&,
&type&: &text&,
&from&: &user-abc&,
&to&: &user-xyz&,
&create_time&: 1234567,
&content&: &blablabla...&
回复消息:
&action&: &msg&,
&type&: &text&,
&from&: &user-xyz&,
&to&: &user-abc&,
&create_time&: 1234567,
&content&: &reply to...&
这样设计的API,各种编程语言都能处理,而且处理逻辑更简单,速度更快。
Make a Comment
Sign In to Make a Comment
You can sign in directly without register:
You need authorize to allow connect to your social passport for the first time.
WARNING: You are using an old browser that does not support HTML5.
Please choose a modern browser ( /
/ ) to get a good experience.微信公众平台开发将企业信息、服务、活动等内容通过微信网页的方式进行表现,用户通过简单的设置,就能生成微信3G网站。通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。而一旦成为用户需要的产品,公众账号的营销功能便会开启。
微信公众平台完整开发教程(青龙老贼系列教程)
微信公众平台开发热门基础教程推荐
等待更新、、、、、、、、
等待更新、、、、、、、、
微信公众平台开发热门教程
微信公众平台开发常见问题
微信公众平台开发相关阅读
Copyright &
& All Rights Reserved.
Powered by

我要回帖

更多关于 微信公众平台 的文章

 

随机推荐