|
@@ -5,7 +5,8 @@ import requests
|
|
from django.views.generic.base import View
|
|
from django.views.generic.base import View
|
|
|
|
|
|
from Controller.WeChatMiniProgram.CommonController import CommonObj
|
|
from Controller.WeChatMiniProgram.CommonController import CommonObj
|
|
-from Object.Enums.WeChatEnum import WeChatMiniProgramAPIEnum
|
|
|
|
|
|
+from Object.Enums.WeChatEnum import WeChatMiniProgramAPIEnum, WeChatMiniProgramConfigEnum
|
|
|
|
+from Object.RedisObject import RedisObject
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.ResponseObject import ResponseObject
|
|
|
|
|
|
|
|
|
|
@@ -37,10 +38,22 @@ class DeviceView(View):
|
|
@return: res
|
|
@return: res
|
|
"""
|
|
"""
|
|
uid = request_dict.get('uid', None)
|
|
uid = request_dict.get('uid', None)
|
|
- model_id = request_dict.get('model_id', None)
|
|
|
|
- if not all([uid, model_id]):
|
|
|
|
|
|
+ device_type = request_dict.get('device_type', None)
|
|
|
|
+ if not all([uid, device_type]):
|
|
return response.json(444)
|
|
return response.json(444)
|
|
try:
|
|
try:
|
|
|
|
+ # 根据设备型号确定model_id
|
|
|
|
+ model_id = WeChatMiniProgramConfigEnum.ModelIdDict.value['device_type']
|
|
|
|
+ # 从缓存中获取票据
|
|
|
|
+ redis_obj = RedisObject()
|
|
|
|
+ sn_ticket_key = WeChatMiniProgramConfigEnum.SnTicketKey.value
|
|
|
|
+ sn_ticket = redis_obj.get_data(sn_ticket_key)
|
|
|
|
+ if sn_ticket:
|
|
|
|
+ res = {
|
|
|
|
+ 'sn_ticket': sn_ticket
|
|
|
|
+ }
|
|
|
|
+ return response.json(0, res)
|
|
|
|
+
|
|
access_token = CommonObj.get_access_token()
|
|
access_token = CommonObj.get_access_token()
|
|
url = WeChatMiniProgramAPIEnum.getSnTicketAPI.value.format(access_token)
|
|
url = WeChatMiniProgramAPIEnum.getSnTicketAPI.value.format(access_token)
|
|
data = {
|
|
data = {
|
|
@@ -52,6 +65,8 @@ class DeviceView(View):
|
|
errcode = result.get('errcode')
|
|
errcode = result.get('errcode')
|
|
assert errcode == 0
|
|
assert errcode == 0
|
|
sn_ticket = result['sn_ticket']
|
|
sn_ticket = result['sn_ticket']
|
|
|
|
+ # 保存到Redis,五分钟有效
|
|
|
|
+ redis_obj.set_ex_data(key=sn_ticket_key, val=sn_ticket, expire=60*5)
|
|
res = {
|
|
res = {
|
|
'sn_ticket': sn_ticket
|
|
'sn_ticket': sn_ticket
|
|
}
|
|
}
|