Nav apraksta

wx_views.py 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. from django.conf import settings
  4. from django_response import response
  5. from pywe_component_authorizer_token import authorizer_access_token
  6. from pywe_qrcode import qrcode_limit_str_scene, qrcode_url
  7. from pywe_storage import RedisStorage
  8. from utils.error.errno_utils import ParamStatusCode
  9. from utils.redis.connect import r
  10. CFG = settings.WECHAT.get('COMPONENT', {})
  11. def get_limit_scene_qrcode_url(request):
  12. appid = request.GET.get('appid', '')
  13. scene = request.GET.get('scene', '')
  14. if not appid or not scene:
  15. return response(ParamStatusCode.PARAM_NOT_FOUND)
  16. try:
  17. token = authorizer_access_token(
  18. component_appid=CFG['appID'],
  19. component_secret=CFG['appsecret'],
  20. authorizer_appid=appid,
  21. storage=RedisStorage(r)
  22. )
  23. qrinfo = qrcode_limit_str_scene(
  24. scene_str=scene,
  25. appid=appid,
  26. secret=None,
  27. token=token,
  28. storage=RedisStorage(r)
  29. )
  30. qrurl = qrcode_url(qrinfo.get('ticket'))
  31. except Exception:
  32. qrurl = ''
  33. return response(data={
  34. 'qrurl': qrurl,
  35. })