wechatpy.client.api.qrcode 源代码
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import requests
import six
from wechatpy.client.api.base import BaseWeChatAPI
[文档]class WeChatQRCode(BaseWeChatAPI):
[文档] def create(self, qrcode_data):
"""
创建二维码
详情请参考
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542
:param 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://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542
: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://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542
:param ticket: 二维码 ticket 。可以通过 :func:`create` 获取到
:return: 返回的二维码地址
使用示例::
from wechatpy import WeChatClient
client = WeChatClient('appid', 'secret')
url = client.qrcode.get_url('ticket data')
"""
url = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={ticket}'
if isinstance(ticket, dict):
ticket = ticket['ticket']
ticket = six.moves.urllib.parse.quote(ticket)
return url.format(ticket=ticket)