12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- from __future__ import division
- from django.conf import settings
- from django_response import response
- from pywe_component_authorizer_token import authorizer_access_token
- from pywe_qrcode import qrcode_limit_str_scene, qrcode_url
- from pywe_storage import RedisStorage
- from utils.error.errno_utils import ParamStatusCode
- from utils.redis.connect import r
- CFG = settings.WECHAT.get('COMPONENT', {})
- def get_limit_scene_qrcode_url(request):
- appid = request.GET.get('appid', '')
- scene = request.GET.get('scene', '')
- if not appid or not scene:
- return response(ParamStatusCode.PARAM_NOT_FOUND)
- try:
- token = authorizer_access_token(
- component_appid=CFG['appID'],
- component_secret=CFG['appsecret'],
- authorizer_appid=appid,
- storage=RedisStorage(r)
- )
- qrinfo = qrcode_limit_str_scene(
- scene_str=scene,
- appid=appid,
- secret=None,
- token=token,
- storage=RedisStorage(r)
- )
- qrurl = qrcode_url(qrinfo.get('ticket'))
- except Exception:
- qrurl = ''
- return response(data={
- 'qrurl': qrurl,
- })
|