| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
              - 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
 - 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(settings.QINIU_FILE_URL_BEFORE, settings.QINIU_FILE_URL_AFTER).replace(settings.QINIU_FILE_URL_BEFORE2, settings.QINIU_FILE_URL_AFTER)
 -     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,
 -     })
 
 
  |