six_001
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
"""
|
||||
Author: xiao 792282@qq.com
|
||||
Date: 2025-08-10 11:36:05
|
||||
LastEditors: xiao 792282@qq.com
|
||||
LastEditTime: 2025-08-17 13:38:40
|
||||
FilePath: django_小程序/同城配送工具/小程序订单管理工具.py
|
||||
Description: 这是默认设置,可以在设置》工具》File Description中进行配置
|
||||
"""
|
||||
from wechat_token.token工具包 import sixToken
|
||||
|
||||
|
||||
|
||||
"""小程序订单管理工具"""
|
||||
import os
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
import orjson
|
||||
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
import requests
|
||||
|
||||
|
||||
class six订单管理:
|
||||
"""录入订单接口的类"""
|
||||
|
||||
@classmethod
|
||||
def order发货信息录入接口(cls, iso_format_time_inner: str, transaction_id: str, openid: str):
|
||||
"""
|
||||
调用 录入订单接口,自动录入订单
|
||||
"""
|
||||
mini_token = sixToken.get_mini_token()
|
||||
uri = f"https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token={mini_token}"
|
||||
# 订单数据 = {
|
||||
# "order_key": { # 订单,需要上传物流信息的订单
|
||||
# "order_number_type": 2, # 是 订单单号类型,用于确认需要上传详情的订单。枚举值1,使用下单商户号和商户侧单号;枚举值2,使用微信支付单号。
|
||||
# "transaction_id": "4200002639202506141300476684" # 否 原支付交易对应的微信订单号
|
||||
# },
|
||||
# "delivery_mode": 2, # 发货模式,发货模式枚举值:1、UNIFIED_DELIVERY(统一发货)2、SPLIT_DELIVERY(分拆发货) 示例值: UNIFIED_DELIVERY
|
||||
# "logistics_type": 2, # 是 物流模式,发货方式枚举值:1、实体物流配送采用快递公司进行实体物流配送形式 2、同城配送 3、虚拟商品,虚拟商品,例如话费充值,点卡等,无实体配送形式 4、用户自提
|
||||
# "shipping_list": [ # 是 物流信息列表,发货物流单列表,支持统一发货(单个物流单)和分拆发货(多个物流单)两种模式,多重性: [1, 10]
|
||||
# {
|
||||
# # "tracking_no": "fake-trackingno-2022121419042711",
|
||||
# # 否 tracking_no 物流单号,物流快递发货时必填,示例值: 323244567777 字符字节限制: [1, 128]
|
||||
# # "express_company": "STO",
|
||||
# # 否 物流公司编码,快递公司ID,参见「获取运力 id 列表get_delivery_list」,物流快递发货时必填, 示例值: DHL 字符字节限制: [1, 128]
|
||||
# "item_desc": "卷纸", # 是 商品信息,例如:微信红包抱枕*1个,限120个字以内
|
||||
# # "contact": { # contact否 联系方式,当发货的物流公司为顺丰时,联系方式为必填,收件人或寄件人联系方式二选一
|
||||
# # "consignor_contact": "+86-177****1234" # 否 寄件人联系方式,寄件人联系方式,采用掩码传输,最后4位数字不能打掩码 示例值:0, ****123-
|
||||
# # }
|
||||
# }
|
||||
# ],
|
||||
# "upload_time": iso_format_time, # 是 上传时间,用于标识请求的先后顺序 示例值: `2022-12-15T13:29:35.120+08:00`
|
||||
# "payer": { # payer 支付者,支付者信息
|
||||
# "openid": "ohQkD7A-N93kljcFmkCyG6e_D9vg"
|
||||
# # 用户标识,用户在小程序appid下的唯一标识。 下单前需获取到用户的Openid 示例值: oUpF8uMuAJO_M2pxb1Q9zNjWeS6o 字符字节限制: [1, 128]
|
||||
# }
|
||||
# }
|
||||
订单数据 = {
|
||||
"order_key": {
|
||||
"order_number_type": 2,
|
||||
"transaction_id": transaction_id # 使用真实的微信支付单号
|
||||
},
|
||||
"delivery_mode": 1,
|
||||
"logistics_type": 2,
|
||||
# "is_all_delivered": True,
|
||||
"shipping_list": [
|
||||
{
|
||||
"item_desc": "卷纸", # 确保中文字符被正确处理
|
||||
}
|
||||
],
|
||||
"upload_time": iso_format_time_inner, # 修正时间格式
|
||||
"payer": {
|
||||
"openid": openid # 真实的用户openid
|
||||
}
|
||||
}
|
||||
|
||||
data = requests.post(url=uri, data=orjson.dumps(订单数据).decode(), )
|
||||
print(data.json())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
rfc_3339_time = datetime.now(tz=ZoneInfo("Asia/Shanghai")).isoformat(timespec="seconds")
|
||||
print(rfc_3339_time)
|
||||
# 如果报错:则需要查看一下,是不是手机真实支付的,如果是开发工具并且是扫码支付的则不会出现这个订单;
|
||||
six订单管理.order发货信息录入接口(iso_format_time_inner=rfc_3339_time,
|
||||
transaction_id="4200002720202508164227110344",
|
||||
openid="ohQkD7A-N93kljcFmkCyG6e_D9vg")
|
||||
Reference in New Issue
Block a user