Open John0King opened 6 years ago
@Varorbc 我写的那个 IGatewayProvider
感觉还是不行, 每回在你请求 IGatewayProvider
的时候 都会实例化所有的 gateway 👎
感觉最后还是得 利用 ServiceProvider 才行 , 或者使用 lazy<T>
感觉还是用lazy
为了支持 多租户 或者 多支付配置, 现在的想法是:
IPaySharpBuilder
用来添加 Service 或 IPaySharpOption
IPaySharpProvider
来统一获取 Service 和 IPaySharpOption
IPaySharpProvider
扩展方法必须实现 Factory方法 比如:Extensions.CreateAlipayClient(this IPaySharpProvider provider,IPaysharpOption option)
另外将 支付的组件抽象为:Client
和 Listener
。Client
用来 发起支付的一些请求(支付/退款 等, 建议采用动词分别发起,如:PayAsync, CancelAsync, RefundAsync),Listener
用来监听支付机构的通知44
Listener
实例以及 IPaysharpOption
, (因为 Listener
不同, 返回的本身就应该就是执行器 )多租户功能支持了吗?
@viewtance 一直是支持的
对于 PR #29 的讨论
讨论的方面:
PaySharp.Target.*
(PaySharp.Target.AspNetCore) 方案2: 将 支付机构的实现挪到独立的命名空间下, 如PaySharp.Authorities.*
(PaySharp.Authorities.Alipay)