@@ -17,9 +17,19 @@ use gostd::net::http;
1717use gostd:: net:: url;
1818use serde:: { Deserialize , Serialize } ;
1919
20- use crate :: biz:: { self , BizContenter , BizObject , TradeAppPayBiz , TradeCancelBiz , TradeCloseBiz , TradeCreateBiz , TradeFastpayRefundQueryBiz , TradeOrderSettleBiz , TradeOrderSettleQueryBiz , TradePagePayBiz , TradePageRefundBiz , TradePayBiz , TradePrecreateBiz , TradeQueryBiz , TradeRefundBiz , TradeRoyaltyRelationBindBiz , TradeRoyaltyRelationUnBindBiz , TradeWapPayBiz } ;
20+ use crate :: biz:: {
21+ self , BizContenter , BizObject , TradeAppPayBiz , TradeCancelBiz , TradeCloseBiz , TradeCreateBiz ,
22+ TradeFastpayRefundQueryBiz , TradeOrderSettleBiz , TradeOrderSettleQueryBiz , TradePagePayBiz ,
23+ TradePageRefundBiz , TradePayBiz , TradePrecreateBiz , TradeQueryBiz , TradeRefundBiz ,
24+ TradeRoyaltyRelationBindBiz , TradeRoyaltyRelationUnBindBiz , TradeWapPayBiz ,
25+ } ;
2126use crate :: request:: { Request , Requester } ;
22- use crate :: response:: { self , TradeCancelResponse , TradeCloseResponse , TradeCreateResponse , TradeFastpayRefundQueryResponse , TradeOrderSettleQueryResponse , TradeOrderSettleResponse , TradePageRefundResponse , TradePayResponse , TradePrecreateResponse , TradeQueryResponse , TradeRefundResponse , TradeRoyaltyRelationBindResponse , TradeRoyaltyRelationUnBindResponse } ;
27+ use crate :: response:: {
28+ self , TradeCancelResponse , TradeCloseResponse , TradeCreateResponse ,
29+ TradeFastpayRefundQueryResponse , TradeOrderSettleQueryResponse , TradeOrderSettleResponse ,
30+ TradePageRefundResponse , TradePayResponse , TradePrecreateResponse , TradeQueryResponse ,
31+ TradeRefundResponse , TradeRoyaltyRelationBindResponse , TradeRoyaltyRelationUnBindResponse ,
32+ } ;
2333use crate :: util:: { self , build_form, json_get} ;
2434pub trait Payer {
2535 fn trade_create ( & self , biz_content : & TradeCreateBiz ) -> AliPayResult < TradeCreateResponse > ;
@@ -51,15 +61,27 @@ pub trait Payer {
5161 & self ,
5262 biz_content : & TradeFastpayRefundQueryBiz ,
5363 ) -> AliPayResult < TradeFastpayRefundQueryResponse > ;
54-
55- fn trade_order_settle ( & self , biz_content : & TradeOrderSettleBiz ) -> AliPayResult < TradeOrderSettleResponse > ;
56-
57- fn trade_order_settle_query ( & self , biz_content : & TradeOrderSettleQueryBiz ) -> AliPayResult < TradeOrderSettleQueryResponse > ;
58-
59- fn trade_royalty_relation_bind ( & self , biz_content : & TradeRoyaltyRelationBindBiz ) -> AliPayResult < TradeRoyaltyRelationBindResponse > ;
60-
61- fn trade_royalty_relation_unbind ( & self , biz_content : & TradeRoyaltyRelationUnBindBiz ) -> AliPayResult < TradeRoyaltyRelationUnBindResponse > ;
62-
64+
65+ fn trade_order_settle (
66+ & self ,
67+ biz_content : & TradeOrderSettleBiz ,
68+ ) -> AliPayResult < TradeOrderSettleResponse > ;
69+
70+ fn trade_order_settle_query (
71+ & self ,
72+ biz_content : & TradeOrderSettleQueryBiz ,
73+ ) -> AliPayResult < TradeOrderSettleQueryResponse > ;
74+
75+ fn trade_royalty_relation_bind (
76+ & self ,
77+ biz_content : & TradeRoyaltyRelationBindBiz ,
78+ ) -> AliPayResult < TradeRoyaltyRelationBindResponse > ;
79+
80+ fn trade_royalty_relation_unbind (
81+ & self ,
82+ biz_content : & TradeRoyaltyRelationUnBindBiz ,
83+ ) -> AliPayResult < TradeRoyaltyRelationUnBindResponse > ;
84+
6385 fn trade_close ( & self , biz_content : & TradeCloseBiz ) -> AliPayResult < TradeCloseResponse > ;
6486 fn async_verify_sign ( & self , raw_body : & [ u8 ] ) -> AliPayResult < bool > ;
6587}
@@ -283,55 +305,79 @@ impl Payer for PayClient {
283305 Ok ( res)
284306 }
285307
286- fn trade_order_settle ( & self , biz_content : & TradeOrderSettleBiz ) -> AliPayResult < TradeOrderSettleResponse > {
308+ /// <https://opendocs.alipay.com/open/c3b24498_alipay.trade.order.settle?pathHash=8790ac59&scene=common>
309+ ///
310+ /// alipay.trade.order.settle(统一收单交易结算接口) 用于在卖家交易成功之后,基于交易订单,进行卖家与第三方(如供应商或平台商)的资金再分配。一般用于第三方从卖家抽佣场景。
311+ fn trade_order_settle (
312+ & self ,
313+ biz_content : & TradeOrderSettleBiz ,
314+ ) -> AliPayResult < TradeOrderSettleResponse > {
287315 let body = self . do_alipay ( biz_content) ?;
288316 let res: TradeOrderSettleResponse = serde_json:: from_slice ( & body) ?;
289317 if res. response . code != Some ( "10000" . to_string ( ) ) {
290318 log:: debug!( "{}" , serde_json:: to_string( & res) ?) ;
291319 return Err ( AliPayError ( format ! (
292- "trade_page_refund failed: {} code:{}" ,
320+ "trade_order_settle failed: {} code:{}" ,
293321 res. response. sub_msg. unwrap( ) . as_str( ) ,
294322 res. response. sub_code. unwrap( ) . as_str( )
295323 ) ) ) ;
296324 }
297325 Ok ( res)
298326 }
299327
300- fn trade_order_settle_query ( & self , biz_content : & TradeOrderSettleQueryBiz ) -> AliPayResult < TradeOrderSettleQueryResponse > {
328+ /// <https://opendocs.alipay.com/open/9ef980b7_alipay.trade.order.settle.query?pathHash=131bacfc&scene=common>
329+ ///
330+ /// alipay.trade.order.settle.query(交易分账查询接口) 根据分账请求号查询交易分账结果
331+ fn trade_order_settle_query (
332+ & self ,
333+ biz_content : & TradeOrderSettleQueryBiz ,
334+ ) -> AliPayResult < TradeOrderSettleQueryResponse > {
301335 let body = self . do_alipay ( biz_content) ?;
302336 let res: TradeOrderSettleQueryResponse = serde_json:: from_slice ( & body) ?;
303337 if res. response . code != Some ( "10000" . to_string ( ) ) {
304338 log:: debug!( "{}" , serde_json:: to_string( & res) ?) ;
305339 return Err ( AliPayError ( format ! (
306- "trade_page_refund failed: {} code:{}" ,
340+ "trade_order_settle_query failed: {} code:{}" ,
307341 res. response. msg. unwrap( ) . as_str( ) ,
308342 res. response. code. unwrap( ) . as_str( )
309343 ) ) ) ;
310344 }
311345 Ok ( res)
312346 }
313347
314- fn trade_royalty_relation_bind ( & self , biz_content : & TradeRoyaltyRelationBindBiz ) -> AliPayResult < TradeRoyaltyRelationBindResponse > {
348+ /// <https://opendocs.alipay.com/open/c21931d6_alipay.trade.royalty.relation.bind?pathHash=08a24dae&scene=common>
349+ ///
350+ /// alipay.trade.royalty.relation.bind(分账关系绑定)当商户签约分账产品后,授权ISV帮其进行分账关系的维护。本接口用于商户与分账方的关系绑定。
351+ fn trade_royalty_relation_bind (
352+ & self ,
353+ biz_content : & TradeRoyaltyRelationBindBiz ,
354+ ) -> AliPayResult < TradeRoyaltyRelationBindResponse > {
315355 let body = self . do_alipay ( biz_content) ?;
316356 let res: TradeRoyaltyRelationBindResponse = serde_json:: from_slice ( & body) ?;
317357 if res. response . code != Some ( "10000" . to_string ( ) ) {
318358 log:: debug!( "{}" , serde_json:: to_string( & res) ?) ;
319359 return Err ( AliPayError ( format ! (
320- "trade_page_refund failed: {} code:{}" ,
360+ "trade_royalty_relation_bind failed: {} code:{}" ,
321361 res. response. msg. unwrap( ) . as_str( ) ,
322362 res. response. code. unwrap( ) . as_str( )
323363 ) ) ) ;
324364 }
325365 Ok ( res)
326366 }
327367
328- fn trade_royalty_relation_unbind ( & self , biz_content : & TradeRoyaltyRelationUnBindBiz ) -> AliPayResult < TradeRoyaltyRelationUnBindResponse > {
368+ /// <https://opendocs.alipay.com/open/3613f4e1_alipay.trade.royalty.relation.unbind?pathHash=2cbd3197&scene=common>
369+ ///
370+ /// alipay.trade.royalty.relation.unbind(分账关系解绑)当商户签约分账产品后,授权ISV帮其进行分账关系的维护。本接口用于商户与分账方的关系解绑。
371+ fn trade_royalty_relation_unbind (
372+ & self ,
373+ biz_content : & TradeRoyaltyRelationUnBindBiz ,
374+ ) -> AliPayResult < TradeRoyaltyRelationUnBindResponse > {
329375 let body = self . do_alipay ( biz_content) ?;
330376 let res: TradeRoyaltyRelationUnBindResponse = serde_json:: from_slice ( & body) ?;
331377 if res. response . code != Some ( "10000" . to_string ( ) ) {
332378 log:: debug!( "{}" , serde_json:: to_string( & res) ?) ;
333379 return Err ( AliPayError ( format ! (
334- "trade_page_refund failed: {} code:{}" ,
380+ "trade_royalty_relation_unbind failed: {} code:{}" ,
335381 res. response. msg. unwrap( ) . as_str( ) ,
336382 res. response. code. unwrap( ) . as_str( )
337383 ) ) ) ;
0 commit comments