55 lines
2.9 KiB
Python
55 lines
2.9 KiB
Python
import io
|
|||
|
|
|
||
|
|
import requests
|
||
|
|
from django.core.files.storage import default_storage
|
||
|
|
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.viewsets import ViewSet
|
||
|
|
|
||
|
|
from sixGuoDjango import ResData, BaseResponse
|
||
|
|
from wechat_token.token工具包 import sixToken
|
||
|
|
|
||
|
|
|
||
|
|
class 小程序码接口ViewSets(ViewSet):
|
||
|
|
@action(detail=False, methods=["get", "post", "put", "delete"], url_path="getwxacode")
|
||
|
|
def 获取小程序码(self, request: Request):
|
||
|
|
""""""
|
||
|
|
self_mini_openid = request.data.get("self_mini_openid", None)
|
||
|
|
self_mini_unionid = request.data.get("self_mini_unionid", None)
|
||
|
|
mini_token = sixToken.get_mini_token()
|
||
|
|
requests.post(url="https://api.weixin.qq.com/wxa/getwxacode", params={"access_token": mini_token, },
|
||
|
|
json={
|
||
|
|
"path": "/pageTabBar/Home/Home?superior_unionid=123",
|
||
|
|
"env_version": "develop", # 要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版
|
||
|
|
},
|
||
|
|
)
|
||
|
|
httpResData = BaseResponse(resData=ResData(listData=[""], dictData={"demo": "xiaozizi"}), ).model_dump()
|
||
|
|
return Response(data=httpResData, status=status.HTTP_200_OK)
|
||
|
|
|
||
|
|
@action(detail=False, methods=["get", "post", "put", "delete"], url_path="getwxacodeunlimit")
|
||
|
|
def 获取不限制的小程序码(self, request: Request):
|
||
|
|
""""""
|
||
|
|
self_mini_openid = request.data.get("self_mini_openid", None)
|
||
|
|
self_mini_unionid = request.data.get("self_mini_unionid", None)
|
||
|
|
mini_token = sixToken.get_mini_token()
|
||
|
|
miniCode = requests.post(url="https://api.weixin.qq.com/wxa/getwxacodeunlimit", params={"access_token": mini_token, },
|
||
|
|
json={
|
||
|
|
"page": "tabPage/Home/Home",
|
||
|
|
"scene": f"{self_mini_unionid}", # 这里的值最终会显示 "query": {"scene":"self_mini_unionid"}
|
||
|
|
"env_version": "develop", # 要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
|
||
|
|
},
|
||
|
|
)
|
||
|
|
default_storage.save(name=f"{self_mini_unionid}.png", content=io.BytesIO(miniCode.content))
|
||
|
|
httpResData = BaseResponse(resData=ResData(listData=[""], dictData={"demo": "xiaozizi"}), ).model_dump()
|
||
|
|
return Response(data=httpResData, status=status.HTTP_200_OK)
|
||
|
|
|
||
|
|
@action(detail=False, methods=["get", "post", "put", "delete"], url_path="createwxaqrcode")
|
||
|
|
def 获取小程序二维码(self, request: Request):
|
||
|
|
""""""
|
||
|
|
self_user_unionid = request.data.get("self_user_unionid", None)
|
||
|
|
self_mini_openid = request.data.get("self_mini_openid", None)
|
||
|
|
httpResData = BaseResponse(resData=ResData(listData=[""], dictData={"demo": "xiaozizi"}), ).model_dump()
|
||
|
|
return Response(data=httpResData, status=status.HTTP_200_OK)
|