diff --git a/docs/apis/utils.md b/docs/apis/utils.md index 69b2bc2..d84dea7 100644 --- a/docs/apis/utils.md +++ b/docs/apis/utils.md @@ -14,9 +14,7 @@ 如果你需要你的二维码永不过期,设定`expire=False`即可。 -关于数据,如果你的二维码是会过期的,那数据可以是字符串或者是数字。 - -否则的话只能是数字。 +数据类型为 `int` 或 `str` 详细说明可以参考[官方文档][mp-wiki] ```python r = itchatmp.utils.create_qrcode('test-tag', expire=5000) diff --git a/itchatmp/controllers/mpapi/mp/utils.py b/itchatmp/controllers/mpapi/mp/utils.py index 54884c8..34f8b80 100644 --- a/itchatmp/controllers/mpapi/mp/utils.py +++ b/itchatmp/controllers/mpapi/mp/utils.py @@ -25,14 +25,15 @@ def create_qrcode(sceneData, expire=2592000, accessToken=None): 'sceneData should be int or string'}) if expire: - if not isinstance(sceneData, int): - return ReturnValue({'errcode': -10003, 'errmsg': - 'sceneData for tmp qrcode can only be int'}) if not 0 < expire < 2592000: expire = 2592000 data['expire_seconds'] = expire - data['action_name'] = 'QR_SCENE' - data['action_info']['scene']['scene_id'] = sceneData + if isinstance(sceneData, int): + data['action_name'] = 'QR_SCENE' + data['action_info']['scene']['scene_id'] = sceneData + else: + data['action_name'] = 'QR_STR_SCENE' + data['action_info']['scene']['scene_str'] = sceneData else: if isinstance(sceneData, int): data['action_name'] = 'QR_LIMIT_SCENE' @@ -81,7 +82,7 @@ def _download_qrcode(ticket): tempStorage.write(block) r = ReturnValue({'File': tempStorage, 'errcode': 0}) return r - return _download_qrcode() + return _download_qrcode(ticket) def long_url_to_short(url, accessToken=None): data = {'action': 'long2short', 'long_url': url}