import hashlib from datetime import datetime from zoneinfo import ZoneInfo import requests from rest_framework import status from rest_framework.decorators import action from rest_framework.request import Request from rest_framework.response import Response from rest_framework.routers import DefaultRouter from rest_framework.viewsets import ViewSet from sixGuoDjango import BaseResponse, ResData class 蕊烨打印机接口ViewSets( ViewSet ): user: str = "792282@qq.com" # 注册的账号 user_key: str = "bcdfac0dfdf444b8a4539fcc7dea905c" # 生成的密钥 sn: str = "30MYD1UMLT0B448" # 打印机机身的SN码 @action( detail=False, methods=[ "get", "post", "put", "delete" ], url_path="lable" ) def 打印标签订单有胶水的( self, request: Request ): """""" timestamp = str( int( datetime.now( tz=ZoneInfo( "Asia/Shanghai" ) ).timestamp( ) ) ) 签名字符串 = f"{self.user}{self.user_key}{timestamp}" sign = hashlib.sha1( data=签名字符串.encode( encoding="utf-8" ), ).hexdigest( ) json_data = { "sn": self.sn, "content": """""", "copies": 1, "voice": 2, "user": self.user, "timestamp": timestamp, "sign": sign, } printData = requests.post( url="https://open.xpyun.net/api/openapi/xprinter/printLabel", json=json_data ) httpResData = BaseResponse( resData=ResData( listData=[ "" ], dictData={ "demo": "xiaozizi" } ), ).model_dump( ) return Response( data=httpResData, status=status.HTTP_200_OK ) 蕊烨打印机接口ViewSetsRouter = DefaultRouter( ) 蕊烨打印机接口ViewSetsRouter.register( prefix="", viewset=蕊烨打印机接口ViewSets, basename="蕊烨打印机接口ViewSets" )