提供微信登陆,公众号管理,微信支付,微信消息的全套功能
欢迎提交Pull requests
如果需要单独使用其中的某些模块,可以见文档目录的具体模块
如果需要组合在一起可以参考快速开始
使用pip
sudo pip install weixin-python
使用easy_install
sudo easy_install weixin-python
安装最新版本pip3 install git+https://github.com/zwczou/weixin-python
当前版本v0.5.7
父异常类名为 WeixinError
子异常类名分别为 WeixinLoginError
WeixinPayError
WeixinMPError
WeixinMsgError
WEIXIN_TOKEN
必填,微信主动推送消息的TOKENWEIXIN_SENDER
选填,微信发送消息的发送者WEIXIN_EXPIRES_IN
选填,微信推送消息的有效时间WEIXIN_MCH_ID
必填,微信商户ID,纯数字WEIXIN_MCH_KEY
必填,微信商户KEYWEIXIN_NOTIFY_URL
必填,微信回调地址WEIXIN_MCH_KEY_FILE
可选,如果需要用退款等需要证书的api,必选WEIXIN_MCH_CERT_FILE
可选WEIXIN_APP_ID
必填,微信公众号appidWEIXIN_APP_SECRET
必填,微信公众号appkey上面参数的必填都是根据具体开启的功能有关, 如果你只需要微信登陆,就只要选择 WEIXIN_APP_ID
WEIXIN_APP_SECRET
微信消息
WEIXIN_TOKEN
WEIXIN_SENDER
WEIXIN_EXPIRES_IN
微信登陆
WEIXIN_APP_ID
WEIXIN_APP_SECRET
微信公众平台
WEIXIN_APP_ID
WEIXIN_APP_SECRET
微信支付
WEIXIN_APP_ID
WEIXIN_MCH_ID
WEIXIN_MCH_KEY
WEIXIN_NOTIFY_URL
WEIXIN_MCH_KEY_FILE
WEIXIN_MCH_CERT_FILE
如果使用flask
# -*- coding: utf-8 -*-
from datetime import datetime, timedelta
from flask import Flask, jsonify, request, url_for
from weixin import Weixin, WeixinError
app = Flask(__name__)
app.debug = True
# 具体导入配
# 根据需求导入仅供参考
app.config.from_object(dict(WEIXIN_APP_ID='', WEIXIN_APP_SECRET=''))
# 初始化微信
weixin = Weixin()
weixin.init_app(app)
# 或者
# weixin = Weixin(app)
如果不使用flask
# 根据需求导入仅供参考
config = dict(WEIXIN_APP_ID='', WEIXIN_APP_SECRET='')
weixin = Weixin(config)
如果使用django,添加视图函数为
url(r'^/$', weixin.django_view_func(), name='index'),
如果为flask,添加视图函数为
app.add_url_rule("/", view_func=weixin.view_func)
@weixin.all
def all(**kwargs):
"""
监听所有没有更特殊的事件
"""
return weixin.reply(kwargs['sender'], sender=kwargs['receiver'], content='all')
@weixin.text()
def hello(**kwargs):
"""
监听所有文本消息
"""
return "hello too"
@weixin.text("help")
def world(**kwargs):
"""
监听help消息
"""
return dict(content="hello world!")
@weixin.subscribe
def subscribe(**kwargs):
"""
监听订阅消息
"""
print kwargs
return "欢迎订阅我们的公众号"
@app.route("/login")
def login():
"""登陆跳转地址"""
openid = request.cookies.get("openid")
next = request.args.get("next") or request.referrer or "/",
if openid:
return redirect(next)
callback = url_for("authorized", next=next, _external=True)
url = weixin.authorize(callback, "snsapi_base")
return redirect(url)
@app.route("/authorized")
def authorized():
"""登陆回调函数"""
code = request.args.get("code")
if not code:
return "ERR_INVALID_CODE", 400
next = request.args.get("next", "/")
data = weixin.access_token(code)
openid = data.openid
resp = redirect(next)
expires = datetime.now() + timedelta(days=1)
resp.set_cookie("openid", openid, expires=expires)
return resp
注意: 微信网页支付的timestamp参数必须为字符串
@app.route("/pay/jsapi")
def pay_jsapi():
"""微信网页支付请求发起"""
try:
out_trade_no = weixin.nonce_str
raw = weixin.jsapi(openid="openid", body=u"测试", out_trade_no=out_trade_no, total_fee=1)
return jsonify(raw)
except WeixinError, e:
print e.message
return e.message, 400
@app.route("/pay/notify, methods=['POST'])
def pay_notify():
"""
微信异步通知
"""
data = weixin.to_dict(request.data)
if not weixin.check(data):
return weixin.reply("签名验证失败", False)
# 处理业务逻辑
return weixin.reply("OK", True)
if __name__ == '__main__':
app.run(host="0.0.0.0", port=9900)
注意: 如果使用分布式,需要自己实现access_token
跟jsapi_ticket
函数
access_token
默认保存在~/.access_token
jsapi_ticket
默认保存在~/.jsapi_ticket
默认在(HOME)目录下面,如果需要更改到指定的目录,可以导入库之后修改,如下
import weixin
DEFAULT_DIR = "/tmp"
获取公众号唯一凭证
weixin.access_token
获取ticket
weixin.jsapi_ticket
创建临时qrcode
data = weixin.qrcode_create(123, 30)
print weixin.qrcode_show(data.ticket)
创建永久性qrcode
# scene_id类型
weixin.qrcode_create_limit(123)
# scene_str类型
weixin.qrcode_create_limit("456")
长链接变短链接
weixin.shorturl("http://example.com/test")
Work Weixin Api 企业微信接口封装库 Github: https://github.com/mouday/work-weixin-api 目前实现了简单的发送消息功能,后序按照业务继续增加其他接口 install pip install work-weixin-api demo # -*- coding: utf-8 -*- from work_weixin_api import
https://pypi.tuna.tsinghua.edu.cn/simple/opencv-python/
_ _ _ _ __ _____(_)_ _(_)_ __ __ _ __ _ _ __ ___ ___ | |__ ___| |_ __ ___ _ __ \ \ /\ / / _ \ \ \/ / | '_ \ / _` |/ _` | '_
weixin-robot 是一个微信机器人,是本人在学习使用 Node.js 的过程中,为激发自身的学习热情而做的项目。 功能 已经实现的功能 文字信息的转发 图片的转发 尚未实现的功能 对微信消息中连接消息的转发 引入持久化存储,记录每次转发的消息 完善log日志(目前很多log语句被注释掉,log的格式也不一致)
现在微信越来越火,基于微信的公众号和服务号越来越丰富,单一的微信管家系统已经满足不了微信的需求。Jeecg社区推出插件式开发框架,P3-weixin 微信插件式开发框架,适合于微信管家系统,扩展第三方插件,插件以JAR形式存在,让微信营销更灵活。 架构技术说明 1.P3-weixin 采用SpringMvc + Mybatis + Velocity+ Maven(构建) 框架技术 2.插
简介: weixin-popular 包括微信公众平台基础API与支付API,提供便捷的API调用接口. API 列表: TokenAPI access_token 获取 MediaAPI 多媒体上传下载(临时素材) MaterialAPI 永久素材 MenuAPI 菜单 MessageAPI 信息发送(客服消息、群发消息、模板消息) PayAPI 支付订单相关接口 PayMchAPI 支付订
JFinal Weixin 是基于 JFinal 的微信公众号极速 SDK,只需参考 Demo 代码即可进行极速开发。自 JFinal Weixin 1.2 版本开始已添加对多公众号支持 0、Maven 坐标 <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal-weixin</artifactId> <ver
weixin-spider __ __ _ _ _ ____ ___ __ __ \ \ / /__ || \\ // || //\ // \| | || || __ // \\ \ \ /\ / / _ \ || \\// || // \\ //\___ | __/