Brak opisu

wxa_views.py 2.0KB

    # -*- coding: utf-8 -*- from django.conf import settings from django_response import response from pywe_storage import RedisStorage from pywe_wxa_qrcode import get_wxa_code_unlimit from miniapp.models import SceneInfo from utils.qiniucdn import qiniu_file_url, upload from utils.redis.connect import r from utils.redis.rwxacode import get_wxa_code_qiniu_url, get_wxa_code_scene_, set_wxa_code_info WECHAT = settings.WECHAT def __get_wxa_code(scene, page): qiniu_url = get_wxa_code_qiniu_url(scene, page) if qiniu_url: return qiniu_url si, created = SceneInfo.objects.get_or_create(scene=scene, page=page, status=True) qiniu_url = si.qiniu_url if not qiniu_url: wxcfg = WECHAT.get('MINIAPP', {}) appid = wxcfg.get('appID') secret = wxcfg.get('appsecret') res = get_wxa_code_unlimit(si.sid, page, res_to_base64=False, appid=appid, secret=secret, storage=RedisStorage(r)) if res.headers and res.headers.get('Content-disposition'): qiniu_url = qiniu_file_url(upload(res.content)) else: qiniu_url = '' si.qiniu_url = qiniu_url si.save() set_wxa_code_info(scene, page, qiniu_url, si.sid) return qiniu_url # Support API Cache def get_wxa_code(request): scene = request.POST.get('scene', '') page = request.POST.get('page', '') qiniu_url = __get_wxa_code(scene, page) if not settings.QINIU_FILE_URL_HTTPS: qiniu_url = qiniu_url.replace('https://img.tamron.kodo.com.cn/', 'http://img.tamron.kodo.com.cn/') return response(data={ 'qiniu_url': qiniu_url, }) def get_wxa_code_scene(request): sid = request.POST.get('sid', '') scene = get_wxa_code_scene_(sid) if scene: return response(data={ 'scene': scene, }) try: scene = SceneInfo.objects.get(sid=sid, status=True) except SceneInfo.DoesNotExist: return response() return response(data={ 'scene': scene.scene, })