|
# -*- 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,
})
|