首页 > 解决方案 > 如何在 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 方法。

或者有人有更好的主意吗?

标签: laravelservice

解决方案


推荐阅读