微信支付 API v3 Python SDK
微信支付接口 V3 版 python 库。
欢迎微信支付开发者扫码进 QQ 群(群号:973102221)讨论,欢迎提交代码,欢迎star、follow、fork:
wechatpayv3同时支持微信支付直连模式及服务商模式,接口说明详见官网。
async和 await,如需集成在FastAPI框架中 查看文档地址pip install wechatpayv3
# 安装包含异步依赖的完整版本
pip install wechatpayv3[async]首先根据Q&A第一条判断当前账户所使用的模式(微信支付平台证书模式 或 微信支付平台公钥模式)。
参考微信官方文档准备好商户证书私钥、商户证书序列号、APIv3密钥, 这些参数配置方法请参考官方文档。
:warning: 不要把私钥文件暴露在公共场合,如上传到 Github,写在客户端代码等。
AES-256-GCM 解密时使用的对称加密密钥。对于使用微信支付平台公钥模式初始化的情况,还需要从微信支付后台的“API安全”菜单中下载/复制以下两项:
examples.py 演示了一个带有Native 支付下单接口和支付通知接口的后端。 首先,修改 examplys.py 里以下几项配置参数:
…接下来使用微信支付平台证书模式初始化 WechatPay 实例并配置一个合适的接口:
…检查一下参数无误,现在就可以用 python 解释器来运行:
$ python examples.py
* Serving Flask app "examples" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)现在访问 ,如果一切正常,你会看到下面一串 json 字符串:
{
"code": 200,
"message": "{\"code_url\":\"weixin://wxpay/bizpayurl?pr=abcdefghi\"}"
}到这一步统一下单的后端就完成了,现在将 code_url 的值即"weixin://wxpay/bizpayurl?pr=abcdefghi"用草料转换为二维码即可用微信扫码进行支付测试。
以上步骤如果不能正确执行,务必仔细检查各项初始化参数,必要的情况下,登录微信支付后台,将所有参数重置。
Native 支付调试最简单便捷,调试通过没有问题证明初始化参数正确之后,如果需要采用其他(小程序、H5、JSAPI、APP)支付下单,可继续参考 examples.py。
以上演示了一个最简单的后端,如果需要使用异步调用,可以点击查看异步版本的实现指南。
日常开发对接中的常见问题(特别是涉及平台证书、平台公钥、回调验证失败等情况的处理)请见这里。
已适配的微信支付 V3 版 API 接口列表明细详见这里。
部分接口的具体调用方法可以参考这里。
所有接口的参数类型和值强烈建议仔细看一下官方的接口文档。
参数类型对照参考下表:
| 微信支付官方文档声明 | wechatpayv3 python sdk |
|---|---|
| string | str |
| int | int |
| object | dict: {} |
| array | list: [] |
| boolean | bool: True, False |
| message | bytes |
每个接口均同步返回 code 和 message,code 为 web 请求得到的 HTTP 状态码,message 为服务器返回的 json 字符串。 例外:
暂无开放 Issues,或尚未同步最近议题。