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.
@@ -1,359 +1,4 @@
1
- from pixelarraythirdparty.client import Client, AsyncClient
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