123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- # @Author : Rocky
- # @File : DeviceController.py.py
- # @Time : 2025/2/19 11:22
- import requests
- from django.views.generic.base import View
- from Controller.WeChatMiniProgram.CommonController import CommonObj
- from Object.Enums.WeChatEnum import WeChatMiniProgramAPIEnum
- from Object.ResponseObject import ResponseObject
- class DeviceView(View):
- def get(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation')
- return self.validation(request.GET, request, operation)
- def post(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation')
- return self.validation(request.POST, request, operation)
- def validation(self, request_dict, request, operation):
- lang = request_dict.get('lang', 'cn')
- response = ResponseObject(lang)
- if operation == 'getSnTicket':
- return self.get_sn_ticket(request_dict, response)
- @staticmethod
- def get_sn_ticket(request_dict, response):
- """
- 获取设备票据
- https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/hardware-device/getSnTicket.html
- @param request_dict:
- @param response:
- @return: res
- """
- uid = request_dict.get('uid', None)
- model_id = request_dict.get('model_id', None)
- if not all([uid, model_id]):
- return response.json(444)
- try:
- access_token = CommonObj.get_access_token()
- url = WeChatMiniProgramAPIEnum.getSnTicketAPI.value.format(access_token)
- data = {
- 'sn': uid,
- 'model_id': model_id
- }
- r = requests.post(url=url, json=data, timeout=5)
- result = eval(r.content)
- errcode = result.get('errcode')
- assert errcode == 0
- sn_ticket = result['sn_ticket']
- res = {
- 'sn_ticket': sn_ticket
- }
- return response.json(0, res)
- except Exception as e:
- return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|