shikeying
2024-01-11 3b67e947e36133e2a40eb2737b15ea375e157ea0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.walker.pay;
 
import com.walker.infrastructure.arguments.Variable;
import com.walker.pay.callback.OrderCallBack;
 
import java.util.Map;
 
/**
 * 支付定义,产生一个支付自定义的实现,包括:支付基本信息、实现接口等。<p></p>
 * <pre>
 *     1)每个定义只能接入一家提供商,如:微信、通联等。
 *     2)每个定义都实现统一的支付能力,如:下单、通知、退款、对账等接口能力。
 * </pre>
 * @author 时克英
 * @date 2023-01-12
 */
public interface PayDefinition {
 
    /**
     * 支付定义ID,唯一,提供商标识 + 版本号
     * @return
     */
    String getId();
 
    /**
     * 支付定义名字,用户可录入,默认使用:提供商名称 + 版本号 + 支付渠道
     * @return
     */
    String getName();
 
    /**
     * 返回提供商对象
     * @return
     */
    ServiceProvider getServiceProvider();
 
    /**
     * 返回接入版本号
     * @return
     */
    String getVersion();
 
    /**
     * 返回支付渠道
     * @return
     */
    PayChannel getPayChannel();
 
    /**
     * 是否启用
     * @return
     */
    boolean getEnabled();
 
    /**
     * 返回支付配置参数集合
     * @return
     */
    Map<String, Variable> getConfiguration();
 
//    /**
//     * 返回支付引擎对象。
//     * @return
//     */
//    PayEngineProvider getPayEngineProvider();
 
    /**
     * 返回定义对应的支付引擎实现类路径, 如: com.walker.pay.wechat.WechatV2EngineProvider
     * @return
     * @date 2023-01-17
     */
    String getPayEngineProviderClass();
 
    /**
     * 返回支付定义配置的 '订单回调'操作实现对象。<p></p>
     * 引擎内部默认实现不做任何业务处理,业务集成后应当重新继承并实现。
     * @return
     * @date 2023-02-20
     */
    OrderCallBack getOrderCallback();
 
    /**
     * 返回订单通知数据格式转换器对象。
     * @return
     * @date 2023-02-26
     * @date 2023-03-01 由管理器(根据类路径)组装好对象,这里可以返回直接使用。<br>
     * 参考:{@linkplain PayDefinition#getOrderNotifyConvertorClass()}
     */
//    @Deprecated
    Convertor<NotifyValue<?>> getOrderNotifyConvertor();
 
    /**
     * 返回订单通知转换器类路径,用于动态创建,从数据库读取配置的类路径。
     * @return
     */
    String getOrderNotifyConvertorClass();
}