wechatpy.client.api.qrcode 源代码

# -*- coding: utf-8 -*-

from urllib.parse import quote

import requests

from wechatpy.client.api.base import BaseWeChatAPI


[文档]class WeChatQRCode(BaseWeChatAPI):
[文档] def create(self, qrcode_data): """ 创建二维码 详情请参考 https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html :param qrcode_data: 你要发送的参数 dict :return: 返回的 JSON 数据包 使用示例:: >>> from wechatpy import WeChatClient >>> >>> client = WeChatClient('appid', 'secret') >>> res = client.qrcode.create({ >>> 'expire_seconds': 1800, >>> 'action_name': 'QR_SCENE', >>> 'action_info': { >>> 'scene': {'scene_id': 123}, >>> } >>> }) >>> # 创建永久的二维码, 参数使用字符串而不是数字id >>> res = client.qrcode.create({ >>> 'action_name': 'QR_LIMIT_STR_SCENE', >>> 'action_info': { >>> 'scene': {'scene_str': "scan_qrcode_from_scene"}, >>> } >>> }) """ return self._post("qrcode/create", data=qrcode_data)
[文档] def show(self, ticket): """ 通过ticket换取二维码 详情请参考 https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html :param ticket: 二维码 ticket 。可以通过 :func:`create` 获取到 :return: 返回的 Request 对象 使用示例:: >>> from wechatpy import WeChatClient >>> >>> client = WeChatClient('appid', 'secret') >>> res = client.qrcode.show('ticket data') """ if isinstance(ticket, dict): ticket = ticket["ticket"] return requests.get(url="https://mp.weixin.qq.com/cgi-bin/showqrcode", params={"ticket": ticket})
[文档] @classmethod def get_url(cls, ticket): """ 通过ticket换取二维码地址 详情请参考 https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html :param ticket: 二维码 ticket 。可以通过 :func:`create` 获取到 :return: 返回的二维码地址 使用示例:: >>> from wechatpy import WeChatClient >>> >>> client = WeChatClient('appid', 'secret') >>> url = client.qrcode.get_url('ticket data') """ if isinstance(ticket, dict): ticket = ticket["ticket"] ticket = quote(ticket) return f"https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={ticket}"