laravel - 如何在 Laravel 中编写解耦的 PaymentMethod Provider
问题描述
我在我的应用程序中集成了 Stripe 和 Paypal 等支付方式,并且正在考虑编写一个核心 PaymentProvider 接口并处理那里的所有内容,以便在以后添加任何其他我可以轻松交换的支付方式提供程序。
所以我想拥有PaymentProvider
interface
一些核心功能,createPlan
makePayment
所以现在让这两个。
然后我编写了 StripePaymentProvider 和 PaypalPaymentProvider 类,它们将实现接口以及我想要的任何地方,createPlan
或者make payment
我可以简单地调用
$paymentProvider = PaymentProvider::getActiveProvider();
$paymentProvider->createPlan($inputs);
$paymentProvider->makePayment($inputs);
因此,将来如果我将付款方式更改或更新为其他方式,则无需更改我正在制定或创建计划的代码。
所以现在的问题是我如何检测活跃的提供者?我也真的不想更改 getActiveProvider 方法。
或者有人有更好的主意吗?
解决方案
推荐阅读
- keras - 类型错误:relu() 缺少 1 个必需的位置参数:'x'
- python - matplotlib 的 PGF 输出未调整为 LaTeX 模板
- prestashop - 如何制作数据库条目 id_stock_available = id_product PrestaShop 1.7
- java - Springboot Gradle 插件不适用于 Eclipse
- if-statement - 简单的期望 else 脚本
- python - sympy 中不需要的布尔表达式求值
- r - 用 R 中的 if 语句理解 for 循环
- python - 使用 for 循环将项目添加到嵌套字典
- javascript - InstancedBufferGeometry 中的关键字属性列表是什么?
- sql - 无法显示平均销售额,包括没有销售额的地区