pixelarraythirdparty 1.0.7__py3-none-any.whl → 1.0.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pixelarraythirdparty/__init__.py +2 -1
- pixelarraythirdparty/client.py +18 -29
- pixelarraythirdparty/cron/cron.py +37 -37
- pixelarraythirdparty/filestorage/__init__.py +6 -0
- pixelarraythirdparty/filestorage/filestorage.py +286 -0
- pixelarraythirdparty/order/order.py +37 -398
- pixelarraythirdparty/product/product.py +46 -47
- pixelarraythirdparty/user/user.py +44 -44
- {pixelarraythirdparty-1.0.7.dist-info → pixelarraythirdparty-1.0.8.dist-info}/METADATA +1 -1
- pixelarraythirdparty-1.0.8.dist-info/RECORD +17 -0
- pixelarraythirdparty-1.0.7.dist-info/RECORD +0 -15
- {pixelarraythirdparty-1.0.7.dist-info → pixelarraythirdparty-1.0.8.dist-info}/WHEEL +0 -0
- {pixelarraythirdparty-1.0.7.dist-info → pixelarraythirdparty-1.0.8.dist-info}/licenses/LICENSE +0 -0
- {pixelarraythirdparty-1.0.7.dist-info → pixelarraythirdparty-1.0.8.dist-info}/top_level.txt +0 -0
|
@@ -1,359 +1,4 @@
|
|
|
1
|
-
from pixelarraythirdparty.client import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class OrderManager(Client):
|
|
5
|
-
def create_order(
|
|
6
|
-
self,
|
|
7
|
-
product_id: str,
|
|
8
|
-
body: str = None,
|
|
9
|
-
remark: str = None,
|
|
10
|
-
payment_channel: str = "WECHAT",
|
|
11
|
-
):
|
|
12
|
-
"""
|
|
13
|
-
创建订单
|
|
14
|
-
|
|
15
|
-
功能说明:
|
|
16
|
-
根据产品ID创建新的订单,系统会自动生成订单号,获取产品价格信息,并创建对应的支付订单。
|
|
17
|
-
|
|
18
|
-
输入参数:
|
|
19
|
-
product_id (str): 产品ID,必填,用于获取产品信息和价格
|
|
20
|
-
body (str, 可选): 商品描述,如果不提供则使用产品名称
|
|
21
|
-
remark (str, 可选): 订单备注信息
|
|
22
|
-
payment_channel (str, 可选): 支付渠道,默认为"WECHAT"(微信支付)
|
|
23
|
-
|
|
24
|
-
返回字段:
|
|
25
|
-
data (dict): 订单信息
|
|
26
|
-
- id (int): 订单ID
|
|
27
|
-
- out_trade_no (str): 商户订单号,格式为"ORD_时间戳_随机字符串"
|
|
28
|
-
- payment_status (str): 支付状态,初始为"PENDING"(待支付)
|
|
29
|
-
- payment_channel (str): 支付渠道
|
|
30
|
-
- product_id (str): 产品ID
|
|
31
|
-
- amount (str): 订单金额(元),格式为"99.00"
|
|
32
|
-
- total_fee (int): 订单金额(分),用于支付接口
|
|
33
|
-
- body (str): 商品描述
|
|
34
|
-
- remark (str): 订单备注
|
|
35
|
-
- created_at (str): 订单创建时间
|
|
36
|
-
- updated_at (str): 订单更新时间
|
|
37
|
-
success (bool): 操作是否成功
|
|
38
|
-
|
|
39
|
-
异常情况:
|
|
40
|
-
- 产品ID为空:返回错误信息"产品ID不能为空"
|
|
41
|
-
- 产品不存在:返回错误信息"产品不存在"
|
|
42
|
-
- 产品价格无效:返回错误信息"产品价格无效"
|
|
43
|
-
- 创建订单失败:返回错误信息"创建订单失败"
|
|
44
|
-
"""
|
|
45
|
-
data = {
|
|
46
|
-
"product_id": product_id,
|
|
47
|
-
"body": body,
|
|
48
|
-
"remark": remark,
|
|
49
|
-
"payment_channel": payment_channel,
|
|
50
|
-
}
|
|
51
|
-
data, success = self._request("POST", "/api/orders/create", json=data)
|
|
52
|
-
if not success:
|
|
53
|
-
return {}, False
|
|
54
|
-
return data, True
|
|
55
|
-
|
|
56
|
-
def list_order(
|
|
57
|
-
self,
|
|
58
|
-
page: int = 1,
|
|
59
|
-
page_size: int = 10,
|
|
60
|
-
payment_status: str = None,
|
|
61
|
-
out_trade_no: str = None,
|
|
62
|
-
):
|
|
63
|
-
"""
|
|
64
|
-
获取订单列表
|
|
65
|
-
|
|
66
|
-
功能说明:
|
|
67
|
-
分页查询订单列表,支持按支付状态和订单号进行筛选。
|
|
68
|
-
|
|
69
|
-
输入参数:
|
|
70
|
-
page (int, 可选): 页码,默认为1,最小值为1
|
|
71
|
-
page_size (int, 可选): 每页数量,默认为10,范围为1-1000
|
|
72
|
-
payment_status (str, 可选): 支付状态筛选,可选值:
|
|
73
|
-
- "PENDING": 待支付
|
|
74
|
-
- "PAID": 已支付
|
|
75
|
-
- "REFUNDED": 已退款
|
|
76
|
-
- "CANCELLED": 已取消
|
|
77
|
-
out_trade_no (str, 可选): 订单号搜索,支持模糊匹配
|
|
78
|
-
|
|
79
|
-
返回字段:
|
|
80
|
-
data (dict): 订单列表信息
|
|
81
|
-
- orders (list): 订单列表
|
|
82
|
-
- id (int): 订单ID
|
|
83
|
-
- out_trade_no (str): 商户订单号
|
|
84
|
-
- payment_status (str): 支付状态
|
|
85
|
-
- payment_channel (str): 支付渠道
|
|
86
|
-
- amount (str): 订单金额(元)
|
|
87
|
-
- total_fee (int): 订单金额(分)
|
|
88
|
-
- created_at (str): 订单创建时间
|
|
89
|
-
- updated_at (str): 订单更新时间
|
|
90
|
-
- total (int): 总订单数量
|
|
91
|
-
- page (int): 当前页码
|
|
92
|
-
- page_size (int): 每页数量
|
|
93
|
-
success (bool): 操作是否成功
|
|
94
|
-
|
|
95
|
-
异常情况:
|
|
96
|
-
- 获取订单列表失败:返回错误信息"获取订单列表失败"
|
|
97
|
-
"""
|
|
98
|
-
params = {
|
|
99
|
-
"page": page,
|
|
100
|
-
"page_size": page_size,
|
|
101
|
-
}
|
|
102
|
-
# 只添加非None的参数
|
|
103
|
-
if payment_status is not None:
|
|
104
|
-
params["payment_status"] = payment_status
|
|
105
|
-
if out_trade_no is not None:
|
|
106
|
-
params["out_trade_no"] = out_trade_no
|
|
107
|
-
data, success = self._request("GET", "/api/orders/list", params=params)
|
|
108
|
-
if not success:
|
|
109
|
-
return {}, False
|
|
110
|
-
return data, True
|
|
111
|
-
|
|
112
|
-
def get_order_detail(self, out_trade_no: str):
|
|
113
|
-
"""
|
|
114
|
-
获取订单详情
|
|
115
|
-
|
|
116
|
-
功能说明:
|
|
117
|
-
根据订单号获取订单的详细信息,包括支付状态、交易信息等。
|
|
118
|
-
|
|
119
|
-
输入参数:
|
|
120
|
-
out_trade_no (str): 商户订单号,必填
|
|
121
|
-
|
|
122
|
-
返回字段:
|
|
123
|
-
data (dict): 订单详细信息
|
|
124
|
-
- id (int): 订单ID
|
|
125
|
-
- out_trade_no (str): 商户订单号
|
|
126
|
-
- payment_status (str): 支付状态
|
|
127
|
-
- product_id (str): 产品ID
|
|
128
|
-
- amount (str): 订单金额(元)
|
|
129
|
-
- total_fee (int): 订单金额(分)
|
|
130
|
-
- body (str): 商品描述
|
|
131
|
-
- transaction_id (str): 微信交易号(支付成功后才有)
|
|
132
|
-
- openid (str): 用户openid(支付成功后才有)
|
|
133
|
-
- trade_type (str): 交易类型(支付成功后才有)
|
|
134
|
-
- bank_type (str): 银行类型(支付成功后才有)
|
|
135
|
-
- fee_type (str): 货币类型,默认为"CNY"
|
|
136
|
-
- is_subscribe (str): 是否关注公众号(支付成功后才有)
|
|
137
|
-
- time_end (str): 支付完成时间(支付成功后才有)
|
|
138
|
-
- created_at (str): 订单创建时间
|
|
139
|
-
- updated_at (str): 订单更新时间
|
|
140
|
-
- paid_at (str): 支付时间(支付成功后才有)
|
|
141
|
-
- remark (str): 订单备注
|
|
142
|
-
success (bool): 操作是否成功
|
|
143
|
-
|
|
144
|
-
异常情况:
|
|
145
|
-
- 订单不存在:返回错误信息"订单不存在"
|
|
146
|
-
- 获取订单详情失败:返回错误信息"获取订单详情失败"
|
|
147
|
-
"""
|
|
148
|
-
data, success = self._request("GET", f"/api/orders/{out_trade_no}")
|
|
149
|
-
if not success:
|
|
150
|
-
return {}, False
|
|
151
|
-
return data, True
|
|
152
|
-
|
|
153
|
-
def update_order_status(
|
|
154
|
-
self,
|
|
155
|
-
out_trade_no: str,
|
|
156
|
-
payment_status: str,
|
|
157
|
-
):
|
|
158
|
-
"""
|
|
159
|
-
更新订单状态
|
|
160
|
-
|
|
161
|
-
功能说明:
|
|
162
|
-
更新指定订单的支付状态,仅支持状态修改,其他字段不可修改。
|
|
163
|
-
|
|
164
|
-
输入参数:
|
|
165
|
-
out_trade_no (str): 商户订单号,必填
|
|
166
|
-
payment_status (str): 支付状态,必填,可选值:
|
|
167
|
-
- "PENDING": 待支付
|
|
168
|
-
- "PAID": 已支付
|
|
169
|
-
- "REFUNDED": 已退款
|
|
170
|
-
- "CANCELLED": 已取消
|
|
171
|
-
|
|
172
|
-
返回字段:
|
|
173
|
-
data (dict): 更新后的订单信息
|
|
174
|
-
- id (int): 订单ID
|
|
175
|
-
- out_trade_no (str): 商户订单号
|
|
176
|
-
- payment_status (str): 更新后的支付状态
|
|
177
|
-
- transaction_id (str): 微信交易号(如果已支付)
|
|
178
|
-
- openid (str): 用户openid(如果已支付)
|
|
179
|
-
- trade_type (str): 交易类型(如果已支付)
|
|
180
|
-
- bank_type (str): 银行类型(如果已支付)
|
|
181
|
-
- fee_type (str): 货币类型
|
|
182
|
-
- is_subscribe (str): 是否关注公众号(如果已支付)
|
|
183
|
-
- time_end (str): 支付完成时间(如果已支付)
|
|
184
|
-
- paid_at (str): 支付时间(如果已支付)
|
|
185
|
-
- updated_at (str): 订单更新时间
|
|
186
|
-
- remark (str): 订单备注
|
|
187
|
-
success (bool): 操作是否成功
|
|
188
|
-
|
|
189
|
-
异常情况:
|
|
190
|
-
- 支付状态为空:返回错误信息"支付状态不能为空"
|
|
191
|
-
- 订单不存在:返回错误信息"订单不存在"
|
|
192
|
-
- 更新订单状态失败:返回错误信息"更新订单状态失败"
|
|
193
|
-
"""
|
|
194
|
-
data = {
|
|
195
|
-
"payment_status": payment_status,
|
|
196
|
-
}
|
|
197
|
-
data, success = self._request(
|
|
198
|
-
"PUT", f"/api/orders/{out_trade_no}/status", json=data
|
|
199
|
-
)
|
|
200
|
-
if not success:
|
|
201
|
-
return {}, False
|
|
202
|
-
return data, True
|
|
203
|
-
|
|
204
|
-
def delete_order(self, out_trade_no: str):
|
|
205
|
-
"""
|
|
206
|
-
删除订单
|
|
207
|
-
|
|
208
|
-
功能说明:
|
|
209
|
-
根据订单号删除指定的订单记录。
|
|
210
|
-
|
|
211
|
-
输入参数:
|
|
212
|
-
out_trade_no (str): 商户订单号,必填
|
|
213
|
-
|
|
214
|
-
返回字段:
|
|
215
|
-
data (None): 删除成功时返回None
|
|
216
|
-
success (bool): 操作是否成功
|
|
217
|
-
|
|
218
|
-
异常情况:
|
|
219
|
-
- 订单不存在:返回错误信息"订单不存在"
|
|
220
|
-
- 删除订单失败:返回错误信息"删除订单失败"
|
|
221
|
-
"""
|
|
222
|
-
data, success = self._request("DELETE", f"/api/orders/{out_trade_no}")
|
|
223
|
-
if not success:
|
|
224
|
-
return {}, False
|
|
225
|
-
return data, True
|
|
226
|
-
|
|
227
|
-
def get_order_stats(self):
|
|
228
|
-
"""
|
|
229
|
-
获取订单统计信息
|
|
230
|
-
|
|
231
|
-
功能说明:
|
|
232
|
-
获取订单的统计汇总信息,包括总订单数、各状态订单数量、总金额等。
|
|
233
|
-
|
|
234
|
-
输入参数:
|
|
235
|
-
无
|
|
236
|
-
|
|
237
|
-
返回字段:
|
|
238
|
-
data (dict): 订单统计信息
|
|
239
|
-
- total_orders (int): 总订单数量
|
|
240
|
-
- pending_orders (int): 待支付订单数量
|
|
241
|
-
- paid_orders (int): 已支付订单数量
|
|
242
|
-
- refunded_orders (int): 已退款订单数量
|
|
243
|
-
- total_amount (float): 总订单金额(元)
|
|
244
|
-
- total_fee (int): 总订单金额(分)
|
|
245
|
-
success (bool): 操作是否成功
|
|
246
|
-
|
|
247
|
-
异常情况:
|
|
248
|
-
- 获取订单统计信息失败:返回错误信息"获取订单统计信息失败"
|
|
249
|
-
"""
|
|
250
|
-
data, success = self._request("GET", "/api/orders/stats/summary")
|
|
251
|
-
if not success:
|
|
252
|
-
return {}, False
|
|
253
|
-
return data, True
|
|
254
|
-
|
|
255
|
-
def generate_qr_code(
|
|
256
|
-
self,
|
|
257
|
-
out_trade_no: str
|
|
258
|
-
):
|
|
259
|
-
"""
|
|
260
|
-
生成支付二维码
|
|
261
|
-
|
|
262
|
-
功能说明:
|
|
263
|
-
为指定订单生成支付二维码,支持微信支付和支付宝。二维码会自动上传到OSS并返回访问URL。
|
|
264
|
-
|
|
265
|
-
输入参数:
|
|
266
|
-
out_trade_no (str): 商户订单号,必填
|
|
267
|
-
|
|
268
|
-
返回字段:
|
|
269
|
-
data (dict): 二维码信息
|
|
270
|
-
- qr_code_url (str): 二维码图片URL,可直接用于显示
|
|
271
|
-
- out_trade_no (str): 商户订单号
|
|
272
|
-
success (bool): 操作是否成功
|
|
273
|
-
|
|
274
|
-
异常情况:
|
|
275
|
-
- 订单号为空:返回错误信息"订单号不能为空"
|
|
276
|
-
- 订单不存在:返回错误信息"订单不存在"
|
|
277
|
-
- 不支持的支付渠道:抛出ValueError异常
|
|
278
|
-
- 生成支付二维码失败:返回错误信息"生成支付二维码失败"
|
|
279
|
-
"""
|
|
280
|
-
order_detail, detail_success = self.get_order_detail(out_trade_no)
|
|
281
|
-
if not detail_success:
|
|
282
|
-
return {}, False
|
|
283
|
-
|
|
284
|
-
if order_detail.get("payment_channel") == "WECHAT":
|
|
285
|
-
url = "/api/orders/wx_pay/generate_qr_code"
|
|
286
|
-
request_data = {
|
|
287
|
-
"out_trade_no": out_trade_no,
|
|
288
|
-
}
|
|
289
|
-
elif order_detail.get("payment_channel") == "ALIPAY":
|
|
290
|
-
url = "/api/orders/ali_pay/generate_qr_code"
|
|
291
|
-
# 支付宝需要total_fee和subject,从已获取的订单详情中提取
|
|
292
|
-
request_data = {
|
|
293
|
-
"out_trade_no": out_trade_no,
|
|
294
|
-
"total_fee": order_detail.get("total_fee"),
|
|
295
|
-
"subject": order_detail.get("body", ""),
|
|
296
|
-
}
|
|
297
|
-
else:
|
|
298
|
-
raise ValueError("Invalid payment channel")
|
|
299
|
-
data, success = self._request(
|
|
300
|
-
"POST",
|
|
301
|
-
url,
|
|
302
|
-
json=request_data,
|
|
303
|
-
)
|
|
304
|
-
if not success:
|
|
305
|
-
return {}, False
|
|
306
|
-
return data, True
|
|
307
|
-
|
|
308
|
-
def refund_order(self, out_trade_no: str):
|
|
309
|
-
"""
|
|
310
|
-
申请订单退款
|
|
311
|
-
|
|
312
|
-
功能说明:
|
|
313
|
-
为指定订单申请退款,支持微信支付和支付宝。退款申请提交后,系统会处理退款并更新订单状态。
|
|
314
|
-
|
|
315
|
-
输入参数:
|
|
316
|
-
out_trade_no (str): 商户订单号,必填
|
|
317
|
-
|
|
318
|
-
返回字段:
|
|
319
|
-
data (dict): 退款信息
|
|
320
|
-
- out_refund_no (str): 退款单号,格式为"REFUND_订单号_时间戳"
|
|
321
|
-
- out_trade_no (str): 商户订单号
|
|
322
|
-
- total_fee (int): 退款金额(分,微信支付)
|
|
323
|
-
- refund_amount (float): 退款金额(元,支付宝)
|
|
324
|
-
success (bool): 操作是否成功
|
|
325
|
-
|
|
326
|
-
异常情况:
|
|
327
|
-
- 订单号为空:返回错误信息"订单号不能为空"
|
|
328
|
-
- 订单不存在:返回错误信息"订单不存在"
|
|
329
|
-
- 订单状态不允许退款:返回错误信息"订单状态不允许退款"
|
|
330
|
-
- 不支持的支付渠道:抛出ValueError异常
|
|
331
|
-
- 退款申请失败:返回错误信息"退款申请失败"
|
|
332
|
-
"""
|
|
333
|
-
order_detail, detail_success = self.get_order_detail(out_trade_no)
|
|
334
|
-
if not detail_success:
|
|
335
|
-
return {}, False
|
|
336
|
-
|
|
337
|
-
if order_detail.get("payment_channel") == "WECHAT":
|
|
338
|
-
url = "/api/orders/wx_pay/refund"
|
|
339
|
-
request_data = {"out_trade_no": out_trade_no}
|
|
340
|
-
elif order_detail.get("payment_channel") == "ALIPAY":
|
|
341
|
-
url = "/api/orders/ali_pay/refund"
|
|
342
|
-
request_data = {
|
|
343
|
-
"out_trade_no": out_trade_no,
|
|
344
|
-
"refund_amount": order_detail.get("total_fee"),
|
|
345
|
-
"refund_reason": "用户退款",
|
|
346
|
-
}
|
|
347
|
-
else:
|
|
348
|
-
raise ValueError("Invalid payment channel")
|
|
349
|
-
data, success = self._request(
|
|
350
|
-
"POST",
|
|
351
|
-
url,
|
|
352
|
-
json=request_data,
|
|
353
|
-
)
|
|
354
|
-
if not success:
|
|
355
|
-
return {}, False
|
|
356
|
-
return data, True
|
|
1
|
+
from pixelarraythirdparty.client import AsyncClient
|
|
357
2
|
|
|
358
3
|
|
|
359
4
|
class OrderManagerAsync(AsyncClient):
|
|
@@ -366,16 +11,16 @@ class OrderManagerAsync(AsyncClient):
|
|
|
366
11
|
):
|
|
367
12
|
"""
|
|
368
13
|
创建订单(异步版本)
|
|
369
|
-
|
|
14
|
+
|
|
370
15
|
功能说明:
|
|
371
16
|
根据产品ID创建新的订单,系统会自动生成订单号,获取产品价格信息,并创建对应的支付订单。
|
|
372
|
-
|
|
17
|
+
|
|
373
18
|
输入参数:
|
|
374
19
|
product_id (str): 产品ID,必填,用于获取产品信息和价格
|
|
375
20
|
body (str, 可选): 商品描述,如果不提供则使用产品名称
|
|
376
21
|
remark (str, 可选): 订单备注信息
|
|
377
22
|
payment_channel (str, 可选): 支付渠道,默认为"WECHAT"(微信支付)
|
|
378
|
-
|
|
23
|
+
|
|
379
24
|
返回字段:
|
|
380
25
|
data (dict): 订单信息
|
|
381
26
|
- id (int): 订单ID
|
|
@@ -390,7 +35,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
390
35
|
- created_at (str): 订单创建时间
|
|
391
36
|
- updated_at (str): 订单更新时间
|
|
392
37
|
success (bool): 操作是否成功
|
|
393
|
-
|
|
38
|
+
|
|
394
39
|
异常情况:
|
|
395
40
|
- 产品ID为空:返回错误信息"产品ID不能为空"
|
|
396
41
|
- 产品不存在:返回错误信息"产品不存在"
|
|
@@ -417,10 +62,10 @@ class OrderManagerAsync(AsyncClient):
|
|
|
417
62
|
):
|
|
418
63
|
"""
|
|
419
64
|
获取订单列表(异步版本)
|
|
420
|
-
|
|
65
|
+
|
|
421
66
|
功能说明:
|
|
422
67
|
分页查询订单列表,支持按支付状态和订单号进行筛选。
|
|
423
|
-
|
|
68
|
+
|
|
424
69
|
输入参数:
|
|
425
70
|
page (int, 可选): 页码,默认为1,最小值为1
|
|
426
71
|
page_size (int, 可选): 每页数量,默认为10,范围为1-1000
|
|
@@ -430,7 +75,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
430
75
|
- "REFUNDED": 已退款
|
|
431
76
|
- "CANCELLED": 已取消
|
|
432
77
|
out_trade_no (str, 可选): 订单号搜索,支持模糊匹配
|
|
433
|
-
|
|
78
|
+
|
|
434
79
|
返回字段:
|
|
435
80
|
data (dict): 订单列表信息
|
|
436
81
|
- orders (list): 订单列表
|
|
@@ -446,7 +91,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
446
91
|
- page (int): 当前页码
|
|
447
92
|
- page_size (int): 每页数量
|
|
448
93
|
success (bool): 操作是否成功
|
|
449
|
-
|
|
94
|
+
|
|
450
95
|
异常情况:
|
|
451
96
|
- 获取订单列表失败:返回错误信息"获取订单列表失败"
|
|
452
97
|
"""
|
|
@@ -467,13 +112,13 @@ class OrderManagerAsync(AsyncClient):
|
|
|
467
112
|
async def get_order_detail(self, out_trade_no: str):
|
|
468
113
|
"""
|
|
469
114
|
获取订单详情(异步版本)
|
|
470
|
-
|
|
115
|
+
|
|
471
116
|
功能说明:
|
|
472
117
|
根据订单号获取订单的详细信息,包括支付状态、交易信息等。
|
|
473
|
-
|
|
118
|
+
|
|
474
119
|
输入参数:
|
|
475
120
|
out_trade_no (str): 商户订单号,必填
|
|
476
|
-
|
|
121
|
+
|
|
477
122
|
返回字段:
|
|
478
123
|
data (dict): 订单详细信息
|
|
479
124
|
- id (int): 订单ID
|
|
@@ -495,7 +140,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
495
140
|
- paid_at (str): 支付时间(支付成功后才有)
|
|
496
141
|
- remark (str): 订单备注
|
|
497
142
|
success (bool): 操作是否成功
|
|
498
|
-
|
|
143
|
+
|
|
499
144
|
异常情况:
|
|
500
145
|
- 订单不存在:返回错误信息"订单不存在"
|
|
501
146
|
- 获取订单详情失败:返回错误信息"获取订单详情失败"
|
|
@@ -508,10 +153,10 @@ class OrderManagerAsync(AsyncClient):
|
|
|
508
153
|
async def update_order_status(self, out_trade_no: str, payment_status: str):
|
|
509
154
|
"""
|
|
510
155
|
更新订单状态(异步版本)
|
|
511
|
-
|
|
156
|
+
|
|
512
157
|
功能说明:
|
|
513
158
|
更新指定订单的支付状态,仅支持状态修改,其他字段不可修改。
|
|
514
|
-
|
|
159
|
+
|
|
515
160
|
输入参数:
|
|
516
161
|
out_trade_no (str): 商户订单号,必填
|
|
517
162
|
payment_status (str): 支付状态,必填,可选值:
|
|
@@ -519,7 +164,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
519
164
|
- "PAID": 已支付
|
|
520
165
|
- "REFUNDED": 已退款
|
|
521
166
|
- "CANCELLED": 已取消
|
|
522
|
-
|
|
167
|
+
|
|
523
168
|
返回字段:
|
|
524
169
|
data (dict): 更新后的订单信息
|
|
525
170
|
- id (int): 订单ID
|
|
@@ -536,7 +181,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
536
181
|
- updated_at (str): 订单更新时间
|
|
537
182
|
- remark (str): 订单备注
|
|
538
183
|
success (bool): 操作是否成功
|
|
539
|
-
|
|
184
|
+
|
|
540
185
|
异常情况:
|
|
541
186
|
- 支付状态为空:返回错误信息"支付状态不能为空"
|
|
542
187
|
- 订单不存在:返回错误信息"订单不存在"
|
|
@@ -553,17 +198,17 @@ class OrderManagerAsync(AsyncClient):
|
|
|
553
198
|
async def delete_order(self, out_trade_no: str):
|
|
554
199
|
"""
|
|
555
200
|
删除订单(异步版本)
|
|
556
|
-
|
|
201
|
+
|
|
557
202
|
功能说明:
|
|
558
203
|
根据订单号删除指定的订单记录。
|
|
559
|
-
|
|
204
|
+
|
|
560
205
|
输入参数:
|
|
561
206
|
out_trade_no (str): 商户订单号,必填
|
|
562
|
-
|
|
207
|
+
|
|
563
208
|
返回字段:
|
|
564
209
|
data (None): 删除成功时返回None
|
|
565
210
|
success (bool): 操作是否成功
|
|
566
|
-
|
|
211
|
+
|
|
567
212
|
异常情况:
|
|
568
213
|
- 订单不存在:返回错误信息"订单不存在"
|
|
569
214
|
- 删除订单失败:返回错误信息"删除订单失败"
|
|
@@ -576,13 +221,13 @@ class OrderManagerAsync(AsyncClient):
|
|
|
576
221
|
async def get_order_stats(self):
|
|
577
222
|
"""
|
|
578
223
|
获取订单统计信息(异步版本)
|
|
579
|
-
|
|
224
|
+
|
|
580
225
|
功能说明:
|
|
581
226
|
获取订单的统计汇总信息,包括总订单数、各状态订单数量、总金额等。
|
|
582
|
-
|
|
227
|
+
|
|
583
228
|
输入参数:
|
|
584
229
|
无
|
|
585
|
-
|
|
230
|
+
|
|
586
231
|
返回字段:
|
|
587
232
|
data (dict): 订单统计信息
|
|
588
233
|
- total_orders (int): 总订单数量
|
|
@@ -592,7 +237,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
592
237
|
- total_amount (float): 总订单金额(元)
|
|
593
238
|
- total_fee (int): 总订单金额(分)
|
|
594
239
|
success (bool): 操作是否成功
|
|
595
|
-
|
|
240
|
+
|
|
596
241
|
异常情况:
|
|
597
242
|
- 获取订单统计信息失败:返回错误信息"获取订单统计信息失败"
|
|
598
243
|
"""
|
|
@@ -601,25 +246,23 @@ class OrderManagerAsync(AsyncClient):
|
|
|
601
246
|
return {}, False
|
|
602
247
|
return data, True
|
|
603
248
|
|
|
604
|
-
async def generate_qr_code(
|
|
605
|
-
self, out_trade_no: str
|
|
606
|
-
):
|
|
249
|
+
async def generate_qr_code(self, out_trade_no: str):
|
|
607
250
|
"""
|
|
608
251
|
生成支付二维码(异步版本)
|
|
609
|
-
|
|
252
|
+
|
|
610
253
|
功能说明:
|
|
611
254
|
为指定订单生成支付二维码,支持微信支付和支付宝。二维码会自动上传到OSS并返回访问URL。
|
|
612
255
|
如果不指定payment_channel,会自动从订单详情中获取支付渠道。
|
|
613
|
-
|
|
256
|
+
|
|
614
257
|
输入参数:
|
|
615
258
|
out_trade_no (str): 商户订单号,必填
|
|
616
|
-
|
|
259
|
+
|
|
617
260
|
返回字段:
|
|
618
261
|
data (dict): 二维码信息
|
|
619
262
|
- qr_code_url (str): 二维码图片URL,可直接用于显示
|
|
620
263
|
- out_trade_no (str): 商户订单号
|
|
621
264
|
success (bool): 操作是否成功
|
|
622
|
-
|
|
265
|
+
|
|
623
266
|
异常情况:
|
|
624
267
|
- 订单号为空:返回错误信息"订单号不能为空"
|
|
625
268
|
- 订单不存在:返回错误信息"订单不存在"
|
|
@@ -646,9 +289,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
646
289
|
}
|
|
647
290
|
else:
|
|
648
291
|
raise ValueError("Invalid payment channel")
|
|
649
|
-
data, success = await self._request(
|
|
650
|
-
"POST", url, json=request_data
|
|
651
|
-
)
|
|
292
|
+
data, success = await self._request("POST", url, json=request_data)
|
|
652
293
|
if not success:
|
|
653
294
|
return {}, False
|
|
654
295
|
return data, True
|
|
@@ -656,13 +297,13 @@ class OrderManagerAsync(AsyncClient):
|
|
|
656
297
|
async def refund_order(self, out_trade_no: str):
|
|
657
298
|
"""
|
|
658
299
|
申请订单退款(异步版本)
|
|
659
|
-
|
|
300
|
+
|
|
660
301
|
功能说明:
|
|
661
302
|
为指定订单申请退款,支持微信支付和支付宝。退款申请提交后,系统会处理退款并更新订单状态。
|
|
662
|
-
|
|
303
|
+
|
|
663
304
|
输入参数:
|
|
664
305
|
out_trade_no (str): 商户订单号,必填
|
|
665
|
-
|
|
306
|
+
|
|
666
307
|
返回字段:
|
|
667
308
|
data (dict): 退款信息
|
|
668
309
|
- out_refund_no (str): 退款单号,格式为"REFUND_订单号_时间戳"
|
|
@@ -670,7 +311,7 @@ class OrderManagerAsync(AsyncClient):
|
|
|
670
311
|
- total_fee (int): 退款金额(分,微信支付)
|
|
671
312
|
- refund_amount (float): 退款金额(元,支付宝)
|
|
672
313
|
success (bool): 操作是否成功
|
|
673
|
-
|
|
314
|
+
|
|
674
315
|
异常情况:
|
|
675
316
|
- 订单号为空:返回错误信息"订单号不能为空"
|
|
676
317
|
- 订单不存在:返回错误信息"订单不存在"
|
|
@@ -693,10 +334,8 @@ class OrderManagerAsync(AsyncClient):
|
|
|
693
334
|
"refund_reason": "用户退款",
|
|
694
335
|
}
|
|
695
336
|
else:
|
|
696
|
-
raise ValueError("Invalid payment channel")
|
|
697
|
-
data, success = await self._request(
|
|
698
|
-
"POST", url, json=request_data
|
|
699
|
-
)
|
|
337
|
+
raise ValueError("Invalid payment channel")
|
|
338
|
+
data, success = await self._request("POST", url, json=request_data)
|
|
700
339
|
if not success:
|
|
701
340
|
return {}, False
|
|
702
341
|
return data, True
|