用python进行微信公众号开发(仅测试学习)

今天看到篇教程,是用python开发微信公众号的,觉得有意思,就敲代码实现了一下,成功后更觉得好玩,故记录,方便开发深入时使用。

基础背景介绍:

 首先得有个人微信号(没有自行注册),为方便测试学习;
其次,还要注册微信公众号,微信公众号不止一种,是分多种的,具体详情见官方说明,但仅测试学习时可先不注册公众号,(需要用个人微信号扫描登陆测试公众平台)利用微信提供的测试平台接口即可:

    微信公众号说明:http://kf.qq.com/faq/120911VrYVrA130805byM32u.html
    微信公众号注册站点:https://mp.weixin.qq.com/
    免费测试公众平台:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
     微信开发者文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432

下面就进入正题:

说明:最好使用公网ip主机和备案的域名进行测试,本文测试使用的阿里云主机有公网ip,域名备案遇到坑了,买了域名无法在北京阿里云上备案,所以没有使用域名;

接入微信公众平台

其实,微信api接口使用,这里主要是参考官网的说明部署的,步骤有点像曾经写过的一篇用zabbix实现微信报警的配置;想玩好了,除了要对使用的哪种语言本身熟悉,还要就是熟读微信的api接口文档了。

第一步:填写服务器配置nxinx

扫描登陆免费的微信测试平台,填写接口配置信息:

注意:微信公众号接口只支持80端口;所以,在填写url时,我是在阿里云上用nginx做的一个web服务;

阿里云主机上的nginx主要部分配置如下:

第二步:验证消息的确来自微信服务器(即验证服务器地址的有效性):

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址url上,GET请求携带4个参数:

1. signature:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数;
2.timestamp:时间戳;
3.nonce:随机数;
4.echostr:随即字符串;

开发者通过检验signature对请求进行校验,若确认此处get请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败;

阿里云主机上编写python代码,(以tonado框架为例)实现验证:

运行代码:
python wechat.py

然后,回到微信开发平台,在填写完接口配置信息后,点击提交;一切正常,提交后会显示配置成功;

下面,就可以根据个人用户关注开发的公众号所要实现哪些需求和微信的api文档开发相关功能了;

示例一:简单文本信息

个人用户关注公众号后,用户输入字符串,公众号回显什么字符串;

具体还要参考微信api文档:消息管理部分

python代码:



运行代码:python wechat.py

然后,在微信公众平台上,找到测试号二维码,扫描关注后,首次关注时,手机微信客户端就会收到自动推送的信息,即显示i like python;
然后,客户端发送字符串测试回显功能;

手机关注公众号后,打开对话框,随意输入字符,回显相同内容,则表示测试成功(仅实现文本的回显,因为微信对于不同类型的信息,有不同的配置要求,如要接收或发送图片、音频、视频等);

示例二:微信自带的图片消息收发

实现能发送或接收图片信息,则修改部分代码,其它部分不变:

运行后,再回到手机微信客户端,发送笑脸图片等,测试回显相同的图片即成功;

示例三:扫描公众号内部生成的带参数的二维码









说明:
        此代码需要在本地虚拟机上和阿里云主机上同时运行,进行相关测试;
    本地运行后,在本地浏览器访问,(目的是为了生成二维码):
            http://192.168.1.250:8000/qrcode?sid=8000

然后,会生成二维码,这时再用微信扫描改二维码;

手机微信扫描上面的二维码后,会显示:您扫描是的8000

这就简单实现了扫描带参数的二维码后,可自定义深入的开发;如根据,把参数定义成不同的内容,根据二维码参数,来识别出不同的内容,等等;

更多深入功能还不会,用时再借鉴吧。

原文地址:http://blog.51cto.com/linsj/2096079

时间: 2024-10-14 09:37:45

用python进行微信公众号开发(仅测试学习)的相关文章

微信公众号开发-----个人测试装备

在微信公众号上申请个测试号. 自己找一个域名映射工具------个人推荐(花生壳外网域名访问)大约花6元开通一下就好了,系统会送域名. 查看相关微信公众号开发文档,微信支付等等... 语言个人推荐,PHP,C#,JAVA. c#把发布的网站配在IIS上用花生壳绑定IP+接口号就OK了,JAVA一样(tomcat). 原文地址:http://blog.51cto.com/13336347/2084981

.net微信公众号开发——快速入门

作者:王先荣 最近在学习微信公众号开发,将学习的成果做成了一个类库,方便重复使用. 使用该类库的流程及寥寥数行代码得到的结果如下.   1 引用微信公众号类库 引用xrwang.weixin.PublicAccount. 2 添加公众号信息 添加提供服务的公众号的信息,包括:原始id.AppId.AppSecret.EncodingAESKey.代码如下: AccountInfoCollection.SetAccountInfo(new AccountInfo("YourOriginalId&q

.net微信公众号开发——快速入门【转载】

最近在学习微信公众号开发,将学习的成果做成了一个类库,方便重复使用. 现在微信公众号多如牛毛,开发微信的高手可以直接无视这个系列的文章了. 使用该类库的流程及寥寥数行代码得到的结果如下. 本文的源代码主要在:http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount/blob/master/xrwang.net/WeixinInterface.ashx以及http://git.oschina.net/xrwang2/xrwang.weix

微信公众号开发系列-开发模式创建自定义菜单

通过程序方式实现自定义菜单,通过http请求封装类交互微信自定义菜单接口 1.得到AccessToken access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效.由于获取access_token的api调用次数非常有限,建议开发者全局存储与更新access_token,频繁刷新access_token会导致api调用受限,影响自身业务. 请开发者

微信公众号开发之自动消息回复和自定义菜单

(一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 上一篇我们大致讲解了下微信公众号开发的基本原理和流程概述.本章主要是对文本消息回复和自定义菜单做一个记录和分解 消息回复 处理请求,并响应 1)关注 也可参考官网文档:https://mp.weixin.qq.com/wiki 当微信用户关注公众账号时,可以给其适当的提示.可以是欢迎词,可以是帮助提示.示例代码如下: class EventHandler : IHandler

.NET微信公众号开发-5.0微信支付

一.前言 在开始做这个功能之前,我们要做的第一件事情就是思考,如何做这个微信支付,从哪里开始,从哪里入手,官方的sdk说明什么的,有没有什么官方的demo,还有就是老板给我的一些资料齐全不,那些要申请的接口什么的都有没有. 经过自己的一些探索,在老板的催促下终于硬着头皮做完了这个,很坑很坑的微信支付,在此做一些总结,希望对你们有所帮助,本人能力有限,如果有什么说的不好,希望大家多多包涵. 二.开发前准备. 1.0微信支付官方开发者文档 2.0官方demo下载 我们用c#所以选择.net版本 不过

微信公众号开发教程详细完整第1篇

| 版权声明:本文为博主原创文章,未经博主允许不得转载. 从2014.12月份左右接触微信公众号开发,短短续续也有了一年多在这期间做了不知道多少个公众号,各种奇葩的功能都有涉猎.从一无所知的小白,到对整个微信公众号生态的理解,不知道经历了多少个日日夜夜,鬼知道我经历了什么.此次教程不谈什么微信公众号O2O(基本死光了)也不谈什么分答,大字(基本被微信封的差不多了),这次我们只是对微信公众号的二次开发者们,希望对你们有所帮助,也希望有更多的朋友一起探讨,讨论. 下面说一下这个教程的前言:首先此次教

微信公众号开发--微信JS-SDK分享到朋友圈和分享给朋友

之前写过一篇使用微信JS-SDK来实现扫一扫功能的博客 微信公众号开发–微信JS-SDK扫一扫功能 在该博客里介绍了微信JS-SDK的基本用法,其中包括以下几个步骤 还详细介绍了通过config接口注入权限验证配置以及签名算法实现的Java版本 前两天在做微信分享的时候发现按照以前的思路每次都不能正确获取"分享到朋友圈"按钮点击状态及自定义分享内容接口,而是必须通过一个按钮先点击帮点事件,然后才能获取"分享到朋友圈"按钮点击状态及自定义分享内容接口. 回顾一下以前扫

【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)

步骤一:首先得开通公众号(目的是 获得appid.AppSecret.设置安全域名)~ [公众号设置]→[功能设置] 设置相应的域名 步骤二:编写帮助类WeixinLuyinHelper中的代码 #region 请求Url,不发送数据/// <summary>/// 请求Url,不发送数据/// </summary>public static string RequestUrl(string url){return RequestUrl(url, "POST")