|
# -*- coding: utf-8 -*-
from __future__ import division
from django.conf import settings
from django_response import response
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,
})
|