微信SDK

提供微信登陆,公众号管理,微信支付,微信消息的全套功能

文档目录

如果需要单独使用其中的某些模块,可以见文档目录的具体模块

如果需要组合在一起可以参考快速开始

目录

安装

使用pip

sudo pip install weixin-python

使用easy_install

sudo easy_install weixin-python

当前版本v0.5.7

功能

微信登陆

微信支付

微信公众号

微信消息

异常

父异常类名为 WeixinError

子异常类名分别为 WeixinLoginError WeixinPayError WeixinMPError WeixinMsgError

用法

参数

WEIXIN_TOKEN 必填,微信主动推送消息的TOKEN

WEIXIN_SENDER 选填,微信发送消息的发送者

WEIXIN_EXPIRES_IN 选填,微信推送消息的有效时间

WEIXIN_MCH_ID 必填,微信商户ID,纯数字

WEIXIN_MCH_KEY 必填,微信商户KEY

WEIXIN_NOTIFY_URL 必填,微信回调地址

WEIXIN_MCH_KEY_FILE 可选,如果需要用退款等需要证书的api,必选

WEIXIN_MCH_CERT_FILE 可选

WEIXIN_APP_ID 必填,微信公众号appid

WEIXIN_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.fromobject(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")

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")

python 微信支付sdk_weixin-python相关推荐

  1. python 微信支付 小程序红包 发放红包接口

    python 微信支付 小程序红包 发放红包接口 文章目录 python 微信支付 小程序红包 发放红包接口 前言 一.官方文档 二.使用步骤 1.引入,直接复制粘贴以下代码,新建wx_pay.py ...

  2. python 微信支付接口 详解_Python支付接口汇总大全(包含微信、支付宝等,长期更新、欢迎补充)...

    wzhifuSDK- 由微信支付SDK 官方PHP Demo移植而来,v3.37下载地址 学习Python中有不明白推荐加入交流群 号:864573496 群里有志同道合的小伙伴,互帮互助, 群里有不 ...

  3. 微信支付SDK(python版)

    最近一段时间一直在搞微信平台开发,最近的v3.37版本微信支付接口变化贼大,所以就看着php的demo移植为 python版,为了保持一致,所以接口方法基本都没有变,这样的好处就是不用写demo了,看 ...

  4. Python - 微信支付开发系列之一 - 辅助函数

    [原创]:转载请注明出处,谢谢! 相信大家在微信支付开发过程中,都多多少少遇到过不少的坑,笔者前不久从坑里跳出来,觉得有必要总结和分享一下走过的坑.这是一个系列文章一部分,也是基础概念和流程的介绍. ...

  5. python:微信支付链接转化成图片(data格式、PNG格式)

    微信支付的链接基本格式如下: weixin://wxpay/bizpayurl?pr=szIyqLmzz 拿到链接后,需要把它转成图片二维码,用来手机可扫描. import base64import ...

  6. python 微信bot_使用Python创建Twitter Bot

    python 微信bot Have you ever wantd to create a Twitter bot? In this tutorial John G. Fisher shows how ...

  7. python微信支付接口_Python微信支付APIv3签名

    import time import random from Cryptodome.PublicKey import RSA from Cryptodome.Signature import pkcs ...

  8. python 微信_wxpy: 用 Python 玩微信

    wxpy: 用 Python 玩微信¶ 微信机器人 / 可能是最优雅的微信个人号 API wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展 注意 强烈建议 ...

  9. Python微信机器人之Python _ithcat 持续登陆错误 KeyError: ‘User’

    原本大号登录微信是成功的,后面换了小号,因为安全问题登录失败,后面再换大号登录时就一直报错了. Traceback (most recent call last):File "F:/root ...

最新文章

  1. 比特币如何实现—《区块链历史链条》2
  2. 实操教程|使用图像分割来做缺陷检测的一个例子
  3. 给jar包进行数字签名(2014-06-28记)
  4. android物联网开发技术架构,Android 相关七种 CPU 架构适配,android七种
  5. 平面设计师必备的十个技能
  6. 获取以逗号分隔的多个数据输入成列表,计算基本统计值(平均值、标准差、中位数)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬
  7. DTCC 2020 | 阿里云程实:云原生时代的数据库管理
  8. go vs python 对接外部web api_python--web--让python提供api服务--aiohttp-Go语言中文社区
  9. bzoj5147bzoj2121loj6701 字符串游戏
  10. yum 多线程插件,apt多线程插件
  11. springcloud hystrix概述(一)
  12. php 修改多级菜单,用PHP实现多级树型菜单
  13. php写的注册登录系统吗,php注册登录系统简化版_php技巧
  14. web项目下的web.xml listener监听总结
  15. java拓扑圆形布局算法
  16. 中国PLC市场增长分析
  17. 【Matlab】【碎碎念】 clc、close、close all、clear、clear all等的含义
  18. 计算机无法开移动热点,Windows10系统下无法开启移动热点的解决方法
  19. 开源 java CMS - FreeCMS2.3 移动app站点配置
  20. 大调查:7成网友呼吁共享单车免押金和上保险

热门文章

  1. Holt Winter时间序列模型
  2. c new java_“邻避设施”的种类主要包括()。
  3. ckplayer播放器自动播放下一集以及点击下一集
  4. unity3d技术摄像头跟随_unity 3d 中摄像头跟随人物移动总结
  5. 儿子于靖洋15个月照片
  6. Typec协议之PD通信消息详解一
  7. 领英辅助工具领英精灵自动加好友功能讲解
  8. android程序毕业答辩ppt,软件毕业答辩PPT范例
  9. 100baseT、100baseFX、1000base-SX、100/1000base-T
  10. 吴军《格局》读书笔记