首页 > 微信应用  > 

微信公众账号开发:URL 和 Tocken介绍

微信公众账号开发:URL 和 Tocken介绍
这篇文章详解微信公众账号开发:URL 和 Tocken介绍

一、url 和 tocken 简介

1、想成为开发者必须要有一个公网的网络地址(URL),这个网络地址要求微信公众平台可以访问到,网络地址的获取有多种方式:可以借助其他平台,也可以自己租借服务器(建议自己租一个服务器,因为我们需要部署应用);总之,你要提供出一个公网上的URL;

2、Tocken(标记):Tocken可以随便填写一个字符串,在认证的时候使用;

3、认证过程:需要开发者进行编程,所以要在开发者服务器上部署一个应用(提供URL);当公网上的URL被微信访问时,微信会发送过来一些数据,你的应用要把微信发送过来的数据进行加密,然后用密文和signature比较,如果相同,返回echostr给微信公众平台,微信公众平台进行校验,如果正确,那么恭喜你,你的公众账号成为成为开发者账号;

二、验证流程图

您已经向微信公众平台提供了 URL(开发者服务器网址址) 和 Tocken,下图是微信公众平台认证流程;

从上图可以看出,主要验证功能是在开发者服务器这端,其中在开发者服务器这端进行tocken,timestamp,nonce加密认证(sha1加密)的时候,tocken是开发者提供给微信公众平台的;如果加密的结果和 微信公众平台提供的signature一样,那么我们就返回echostr给微信公众平台;微信公众平台进行echostr认证,如果通过,公众账号就成为了开发者

三、代码说明

本人开发用的是python语言,如果你使用的是其他语言,逻辑结构类似,只是实现不同;

@csrf_exemptdef wx_valid(request):#提供给微信公众平台的url,微信公众平台请求url时,会执行此方法 '''微信开发者验证,是GET请求;GET 和 POST 区分是认证还是发送消息(发送消息的时候是POST)''' if(request.method == 'GET'): tocken='zainanjing6tocken'#提供给微信公众平台的tocken,可以保持在数据库、文件或者直接硬编码到代码中; if tocken: timestamp = request.GET['timestamp'] nonce = request.GET['nonce'] signature = request.GET['signature'] echostr = request.GET['echostr'] arr = [tocken,timestamp,nonce] arr.sort() data = '' for s in arr : data += s sha1 = hashlib.sha1() #或hashlib.md5() sha1.update(data) _signature = sha1.hexdigest() #生成40位(sha1)或32位(md5)的十六进制字符串 if _signature == signature : return HttpResponse(echostr)#返回 echostr return HttpResponse('error')#返回 error

微信公众账号开发:URL 和 Tocken介绍由讯客互联微信应用栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“微信公众账号开发:URL 和 Tocken介绍