From cd66c915e1e0a6ca661946fbf839779b9c3240d1 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 22 Dec 2025 13:45:02 +0800 Subject: [PATCH] bugfix --- models/payment_log.xlsx | Bin 18783 -> 18828 bytes unipay/init.py | 19 +++++++------------ unipay/providers/alipay.py | 16 +++++++++++----- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/models/payment_log.xlsx b/models/payment_log.xlsx index d559b3a2844ce2b623109f8bba81bf52e4c488ba..ed3bae7640b7d34952ecbbf9fa729ba100a8dc4d 100644 GIT binary patch delta 5610 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 J2gQGg{{f{bnuGuV delta 5488 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 A!T Dict[str, Any]: + async def refund(self, payload:DictObject) -> Dict[str, Any]: """ out_request_no 必须全局唯一(一个退款请求一个编号) """ self.setup_session() biz_content = { - "out_trade_no": out_trade_no, - "refund_amount": refund_amount, - "out_request_no": out_request_no + "out_trade_no": payload.origin_id, + "refund_amount": payload.refund_amount, + "out_request_no": payload.out_trade_no + "notify_url": payload.notify_url } params = { @@ -217,5 +218,10 @@ class AlipayGateway(Gateway): "provider": "alipay", "data": params, } - return DictObject(**ret) + ret = DictObject(**ret) + ret.data.action = 'UNKOWN' + if ret.data.notify_type == 'trade_status_sync': + ret.data.action = 'RECHARGE' + if ret.data.notify_type == 'refund_status_sync': + ret.data.action = 'RECHARGE_REVERSE'