300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python 微信公众号 微信小程序wechatpy的使用

python 微信公众号 微信小程序wechatpy的使用

时间:2020-01-22 12:00:56

相关推荐

python 微信公众号 微信小程序wechatpy的使用

第一章 Python 微信公众号,小程序入门之wechatpy的使用

文章目录

第一章 Python 微信公众号,小程序入门之wechatpy的使用前言一、wechatpy是什么?二、微信公众号1.安装wechatpy2.微信公众号服务器配置3.wechatpy WeChatClient设置redies缓存去保存access_token总结8.26 新增临时素材8.29 微信公众号客服发文本消息乱码8.29 微信公众号客服发文本消息换行9.7 微信开放标签

前言

随着人工智能的不断发展,微信开发也越来越重要,很多人都开启了学习微信相关服务,本文就介绍了微信公众号和小程序的基础内容。

一、wechatpy是什么?

中文官方文档

wechatpy 是一个微信 (WeChat) 的第三方 Python SDK, 实现了微信公众号、企业微信和微信支付等 API。

二、微信公众号

1.安装wechatpy

安装pip install wechatpy -i https://pypi.tuna./simple/

接入微信公众平台开发,开发者需要按照如下步骤完成:

1、填写服务器配置

2、验证服务器地址的有效性

3、依据接口文档实现业务逻辑

2.微信公众号服务器配置

第一步:填写服务器配置

登录微信公众平台官网后,在公众平台官网的开发 - 基本设置页面,勾选协议成为开发者,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中 URL 是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,用作生成签名(该 Token 会和接口 URL 中包含的 Token 进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码,详情请参考消息体签名及加解密部分的文档 。

官方服务器配置文档

直接使用wechatpy来校验signature

wechatpy文档

from wechatpy.utils import check_signaturefrom wechatpy.exceptions import InvalidSignatureExceptiontoken = 你在公众号服务器配置上相同的def check_signature_tool(self, signature, timestamp, nonce):try:check_signature(token, signature, timestamp, nonce)return Trueexcept InvalidSignatureException: # 处理异常情况或忽略return False

注意⚠️返回的echostr要是int类型

3.wechatpy WeChatClient设置redies缓存去保存access_token

access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

官方获取Access token

代码如下(示例):

class WeixinWechatpy():def __init__(self):self.appid = WECHAT_APPIDself.secret = WECHAT_SECRETself.token = WECHAT_TOKENself.prefix = 'wechatpy'self.access_token_cache_url = "redis://localhost:6379/2"def get_WeChatClient(self):"""获取WeChatClient对象:return:WeChatClient对象"""redis_client = Redis.from_url(self.access_token_cache_url)session_interface = RedisStorage(redis_client,prefix=self.prefix)return WeChatClient(self.appid,self.secret,session=session_interface)

参考链接

总结

以上就是今天要讲的内容,本文仅仅简单介绍了wechatpy的使用,而wechatpy提供了大量能使我们快速便捷地处理微信公众号,微信小程序的函数和方法。

8.26 新增临时素材

官方链接

实话有点🚮了,只有一个 curl的实例

以下两个方式

1.本地文件path:文件地址files = {'p_w_picpath': open(path, 'rb')}2。网络读取到的二进制流content:文件二进制流files = {'media' : ('tmp.jpg', content, 'image/jpg')}requests.post(url, files=files, timeout=10)

8.29 微信公众号客服发文本消息乱码

requests.post(url, data=json.dumps(data,ensure_ascii=False).encode('utf-8'))

8.29 微信公众号客服发文本消息换行

content = "你好 /n 谢谢" # 一定要双引号data = {"touser": OPENID,"msgtype": msgtype,"text": {"content": content}}

9.7 微信开放标签

官方文档

html文件

<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><title>Demo</title></head><body><div id="app"><wx-open-launch-weapp path="pages/index/index" id="launch-wxapp" username="xxx"></wx-open-launch-weapp><wx-open-launch-app id="launch-btn" appid="xxx" extinfo='{"PageType":1001}'><script type="text/wxtag-template"><style>.btn {padding: 12px}</style><button class="btn">点击打开APP</button></script></wx-open-launch-app></div></body><script type="text/javascript" src="/jquery-3.6.1.min.js"></script><script type="text/javascript" src="https://res./open/js/jweixin-1.6.0.js"></script><script>getAppList()function getAppList() {$.ajax({url: "xxxxxx",type: "GET",contentType: "application/json",success: function (data) {const result = JSON.parse(data);wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: result.data.appid, // 必填,公众号的唯一标识timestamp: parseInt(result.data.timestamp), // 必填,生成签名的时间戳nonceStr: result.data.noncestr, // 必填,生成签名的随机串signature: result.data.sign, // 必填,签名jsApiList: ['onMenuShareTimeline', 'chooseImage'], // 必填,需要使用的JS接口列表openTagList: ['wx-open-launch-weapp', 'wx-open-launch-app'] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']})wx.ready(function (res) {});wx.error(function (res) {// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名});}});}</script></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。