This commit is contained in:
doudou201703
2026-08-02 14:07:04 +08:00
commit 046fac6dc1
339 changed files with 19435 additions and 0 deletions
@@ -0,0 +1,83 @@
import datetime
from zoneinfo import ZoneInfo
import orjson
import pydash
import requests
from django.forms import model_to_dict
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 BaseResponse, ResData
from wechat_token.token工具包 import sixToken
from wechat_数据库.支付订单数据库.商品订单数据 import order订单
class 发货信息录入ViewSets(ViewSet):
@action(detail=False, methods=["get", "post", "put", "delete"], url_path="enter_the_order")
def 录入用户下单的订单(self, request: Request):
""""""
self_mini_openid = request.data.get("self_mini_openid", None) # 小程序的openid
self_mini_unionid = request.data.get("self_mini_unionid", None) # 小程序的
out_trade_no = request.data.get("out_trade_no", None) # 商家侧的订单号
print("🍎 🍏 🍊 🍎 🍏 🍊 🍎 🍏 🍊 🍎 🍏 🍊 🍎 🍏 ", out_trade_no)
订单对象 = order订单.objects.get(order支付订单号=out_trade_no, order支付状态="支付成功")
商品标题 = pydash.get(obj=model_to_dict(instance=订单对象, fields=None), path="order商品数据.商品标题")
mini_token = sixToken.get_mini_token()
uri = f"https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token={mini_token}"
upload_time = datetime.datetime.now(tz=ZoneInfo("Asia/Shanghai")).isoformat(timespec="seconds")
录入订单数据 = {
"order_key": {
"order_number_type": 1, # 订单单号类型,用于确认需要上传详情的订单。枚举值1,使用下单商户号和商户侧单号;枚举值2,使用微信支付单号
"mchid": "1700383419",
"out_trade_no": out_trade_no,
},
"logistics_type": 1, # 物流模式,发货方式枚举值:1、实体物流配送采用快递公司进行实体物流配送形式 2、同城配送 3、虚拟商品,虚拟商品,例如话费充值,点卡等,无实体配送形式 4、用户自提
"delivery_mode": 1, # 发货模式,发货模式枚举值:1、UNIFIED_DELIVERY(统一发货)2、SPLIT_DELIVERY(分拆发货) 示例值: UNIFIED_DELIVERY
"shipping_list": [
{
"express_company": "EMS",
"tracking_no": 订单对象.order物流公司订单编号,
"item_desc": "元宝零售",
# "contact": {"consignor_contact": "18860891975", "receiver_contact": "18860891970"}
},
],
"upload_time": upload_time,
# "payer": {"openid": "ohQkD7NJ5EASxdh6ajad4QR_6i78"}
"payer": {"openid": self_mini_openid},
}
json_data = orjson.dumps(录入订单数据, option=orjson.OPT_SORT_KEYS, ).decode(encoding="utf-8")
data = requests.post(url=uri, data=json_data)
resData = data.json()
# 最后更新物流的状态
订单对象.order物流状态 = order订单.order订单choosies物流状态.待收货.value
订单对象.save()
httpResData = BaseResponse(resData=ResData(listData=[""], dictData=resData), ).model_dump()
return Response(data=httpResData, status=status.HTTP_200_OK)
@action(detail=False, methods=["get", "post", "put", "delete"], url_path="configure_path")
def 消息跳转路径设置(self, request: Request):
""""""
self_user_unionid = request.data.get("self_user_unionid", None)
self_mini_openid = request.data.get("self_mini_openid", None)
mini_token = sixToken.get_mini_token()
data = requests.post(url="https://api.weixin.qq.com/wxa/sec/order/set_msg_jump_path",
params={"access_token": mini_token, }, json={"path": "/pages/OrderPages/OrderPages"},
)
print("\n🍎 🍏 🍊 🍎 🍏 🍊 🍎 🍏 🍊 🍎 🍏 🍊 🍎 🍏 \n", data.json())
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="notifyConfirmReceive")
def 确认收货提醒(self, request: Request):
"""如你已经从你的快递物流服务方获知到用户已经签收相关商品,可以通过该接口提醒用户及时确认收货,以提高资金结算效率,每个订单仅可调用一次。"""
self_user_unionid = request.data.get("self_user_unionid", None)
self_mini_openid = request.data.get("self_mini_openid", None)
mini_token = sixToken.get_mini_token()
requests.post(url="https://api.weixin.qq.com/wxa/sec/order/notify_confirm_receives",
params={"access_token": mini_token, })
httpResData = BaseResponse(resData=ResData(listData=[""], dictData={"demo": "xiaozizi"}), ).model_dump()
return Response(data=httpResData, status=status.HTTP_200_OK)