# -*- 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 WECHAT = settings.WECHAT def get_wxa_code(request): scene = request.POST.get('scene', '') page = request.POST.get('page', '') si, created = SceneInfo.objects.get_or_create(scene=scene, page=page, status=True) if si.qiniu_url: return response(data={ 'qiniu_url': si.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() return response(data={ 'qiniu_url': qiniu_url, }) def get_wxa_code_scene(request): sid = request.POST.get('sid', '') try: scene = SceneInfo.objects.get(sid=sid, status=True) except SceneInfo.DoesNotExist: return response() return response(data={ 'scene': scene.scene, })