Paypal Omnipay和Payum之间的差异

Paypal Omnipay和Payum之间的差异,paypal,omnipay,payum,Paypal,Omnipay,Payum,我正在为我的web应用程序寻找支付解决方案。我看到有一些API,比如stripe(用于信用卡)或PayPal插件,可以处理某些支付方式 然后我看到有一些库可以处理各种支付方法,比如Payum()或Omnipay() 如果我理解正确的话,它们都是同一类型的图书馆:它们都以标准化的方式处理各种方式的付款。但是我没有发现两者之间的任何比较,但是Payum如何包括OmniPay的解决方案。所以我很困惑。因此,我的问题是: Omnipay的用途是否与Payum相同。如果是,哪一个有什么优势。如果没有,他们

我正在为我的web应用程序寻找支付解决方案。我看到有一些API,比如stripe(用于信用卡)或PayPal插件,可以处理某些支付方式

然后我看到有一些库可以处理各种支付方法,比如Payum()或Omnipay()

如果我理解正确的话,它们都是同一类型的图书馆:它们都以标准化的方式处理各种方式的付款。但是我没有发现两者之间的任何比较,但是Payum如何包括OmniPay的解决方案。所以我很困惑。因此,我的问题是:

Omnipay的用途是否与Payum相同。如果是,哪一个有什么优势。如果没有,他们具体实施支付流程的哪些部分

vs

简而言之,Payum提供了与Omnipay相同的功能以及一些额外的功能

当您将支付模型与转换操作相结合时,Payum工作得最好。模型不能仅仅是一个,我鼓励你使用你自己的或一个从一个。想法很简单:您向Payum发送请求以捕获您的模型。在动作中,您很可能是一个数组。这种方法的美妙之处在于,您的代码从未更改,如下所示:

$gateway->execute(new Capture($payment));
网关的所有差异都隐藏在网关中。当然,Payum支持特定于网关的格式,或者Payum的支付模型。在Omnipay的情况下,您不能简单地将条带网关替换为paypal网关,因为它们的行为不同,更重要的是,它们需要不同的数据。Stripe要求提供一张信用卡,而Paypal并不关心它,而是希望设置返回和取消URL。您必须在代码中反映这些差异,这是抽象吗?顺便说一句,Payum为您生成取消和返回URL,它们是安全的(我们将在后面讨论)

有时,您必须获得有关付款交易、付款人或错误的更多信息。Payum允许您访问参与代码和支付网关之间通信的所有数据。数据格式是一种特定于付款的格式,因此,如果您熟悉它,您将很容易理解那里发生了什么。另一个很好的例子是Klarna结帐。它返回发货\账单地址、性别和出生日期。有了Payum,您可以轻松地从付款中获得这些,并用于满足您的需求

Payum为您提供了更好的状态处理。Omnipay只提供成功和失败两种状态,但这还不够。例如,Paypal有时会返回挂起状态,因为。在这种情况下,omnipay表示付款失败,但事实并非如此。或者用户可以在Paypal端取消付款,Omnipay会告诉您付款失败,但事实并非如此。如果您需要Payum默认不提供的状态,您可以轻松添加它。你是否已经有了支付状态,也许你已经有了支付状态,并且你想重新使用,没问题,Payum可以调整以使用它们

有时候,用户想要欺骗你或者花更少的钱买东西。作为一名开发人员,您必须考虑它,并照顾好您的数据。你向用户公开了什么?会不会用错了?在验证之前,您不能依赖url中给定的金额。例如,Paypal向您以前发送给他们的通知url发送推送通知。Payum会为您生成这样一个url,当通知返回时,它会对其进行验证。您可以直接获得唯一、安全的URL。付款在内部与该url关联,一旦删除\使url无效,用户将无法访问该url背后的付款。Omnipay不提供任何帮助您解决安全问题的功能。这些安全的URL有一个很好的副作用。一旦不需要安全URL,它们就会失效\删除。这很好,例如用户在浏览器中单击“后退”按钮。他将无法进行第二次付款,因为购买url不再存在,相反,他将看到404错误

把信用卡存放在你身边不是一个好习惯,不是吗?没有理由意外地存储它,或者仅仅存储几秒钟。Payum有一个对象,可以确保不会意外保存任何内容。您仍然可以存储它,但在这样做时,您需要自己存储

Omnipay只支持网关,可以重定向到网关端或需要信用卡。但是还有很多其他的网关,它们的行为也不同。例如,购买页面上的klarnacheckout、Stripe.Js。条纹结帐。Payum,正如我们在开始时所说的,您可以在不更改代码的情况下从一个网关切换到另一个网关。Payum本机不支持您需要的网关?我不认为在家里重新安装每个网关是一个好主意。这就是为什么我会这么做。它允许您使用Omnipay网关和Payum网关

帕尤姆试着去做。有三个步骤:准备、捕获\授权和完成。第一个被称为“准备”,在这一步中,你必须准备付款、计算总价、税费、获取用户或发货信息等等。完成后,您可以将用户重定向到捕获\授权步骤,从这里可以将用户重定向到网关端,或要求用户提供信用卡或其他服务。这取决于您选择的网关。在“完成”步骤中,您必须获得付款状态并根据它采取行动。Omnipay只能部分解决这一问题

使用网关工厂,您可以在功能上轻松覆盖\替换网关的任何部分,或添加自定义操作、扩展或API

Payum为大多数现代框架提供了官方扩展,如、、

最后,让我们比较Payum和Omnipay的基石界面

  • Payum vs Omnipay
  • Payum vs Omnipay ups没有接口

免责声明:我是Payum的作者

如何区分信用卡网关和异地网关@MaksimKotlyar仍然是你的答案