Omnipay和Payum之间的区别

问题描述 投票:12回答:1

我正在为我的网络应用寻找付款解决方案。我看到有像条纹(用于信用卡)或PayPal插件的API可以处理某些付费方法。

然后我看到有些人可以处理各种支付方式,如Paayum(qazxsw poi)或Omnipay(qazxsw poi)。

如果我理解正确,它们都是相同类型的库:它们都以标准化的方式处理各种方法的付款。然而,我没有找到两者之间的任何比较,但解决了Payum如何包括OmniPay。所以我很困惑。因此我的问题:

Omnipay是否涵盖与Payum相同的目的。如果是,哪一个有什么优势。如果不是,他们正在实施的付款流程的哪些部分。

paypal omnipay payum
1个回答
32
投票

https://github.com/Payum/Payum vs https://github.com/thephpleague/omnipay

简短的回答是Payum提供与Omnipay相同的功能以及一些额外的功能。

将付款模式与转换操作结合使用时,Payum的效果最佳。该模型不能只是一个Payum,我鼓励你使用自己或Omnipay。这个想法很简单:您向Payum发送请求以捕获您的模型。在动作中你Payum’s one,很可能是一个数组。这种方法的优点是你的代码永远不会改变,看起来像这样:

ecommerce platform

所有网关的差异都隐藏在网关内。当然,Payum支持网关特定格式,或支持Payum的支付模式。在Omnipay的情况下,您不能简单地将条带网关替换为PayPal网关,因为它们的行为不同,更重要的是它们需要不同的数据。条纹需要提供信用卡,Paypal不关心它,但希望返回和取消URL设置。您必须在代码中反映这些差异,这是抽象吗?顺便说一句,Payum为您生成取消和返回URL,它们是安全的(我们稍后再谈)。

有时,您必须获得有关付款交易或付款人的更多详细信息,或有关错误的更多信息。 Payum允许您访问参与代码和支付网关之间通信的所有数据。数据格式是特定于付款的,因此如果您熟悉convert the payment model to a gateway specific format,您将很容易理解那里发生的事情。另一个很好的例子是Klarna Checkout。它返回送货\帐单地址,性别和出生日期。使用Payum,您可以轻松地将这些付款用于满足您的需求。

Payum为您提供更好的状态处理。 Omnipay只提供两种状态成功并失败,但这还不够。例如,由于$gateway->execute(new Capture($payment)); ,Paypal有时会返回待处理状态。在这种情况下,omnipay说支付失败了,但实际上并非如此。或者用户可以在Paypal方面取消付款,Omnipay会告诉你它失败了,但事实并非如此。如果您需要默认情况下Payum不提供的状态,您可以轻松添加它。你有没有付款状态,也许你的Paypal protocol (for example)他们,你想重用,没问题Payum可以调整使用它们。

有时候用户想要欺骗你或者为这些东西支付更少的费用。作为开发人员,您必须考虑并处理您的数据。你向用户揭示了什么?可能用错了吗?在验证之前,您不能依赖网址中给出的金额。例如,Paypal会向您发送推送通知给您之前发送给他们的通知网址。 Payum会为您生成这样的网址,当通知返回时,它会对其进行验证。您可以获得独特的安全网址。付款内部与该网址相关联,一旦您删除\无效,网址用户无法访问其后面的付款。 Omnipay不提供任何帮助您解决安全问题的方法。这些安全的网址有一个很好的副作用。一旦不需要,安全URL无效\删除。这很好,例如用户点击浏览器中的“后退”按钮。由于购买网址不再存在,他将无法再进行第二次付款,相反他会看到404错误。

将信用卡存放在您身边并不是一个好习惯,不是吗?没有理由不小心存放它,或只是几秒钟。 Payum有一个multi currency issue对象,确保不会意外地保存任何东西。你仍然能够存储它,但是这样做你就可以自己存储了。

Omnipay仅支持网关,可以重定向到网关端或需要信用卡。但是还有很多其他网关,它们的行为也不同。例如,购买页面上的Klarna Checkout ecommerce platform provide,Stripe.Js sensitive value。条纹结帐require a snippet (iframe) to be rendered。 Payum requires their javascript to be executed,正如我们在开始时所说的那样,您可以在不更改代码的情况下从一个网关切换到另一个网关。 Payum本身不支持您需要的网关吗?我不认为重新实现内部的每个网关都是个好主意。这就是为什么一个renders its own popup。它允许您使用Payum方式使用Omnipay网关。

Payum尝试supports them all。准备,捕获\授权和完成有三个步骤。第一个称为“准备”,在此步骤中您必须准备付款,计算总价格,税收,获取用户或运输信息等。完成后,您可以将用户重定向到capture \ authorize步骤,从此处可以将用户重定向到网关端或要求提供信用卡或其他内容。这取决于您选择的网关。在“完成”步骤,您必须获得付款状态并根据它采取行动。 Omnipay只能部分解决这个问题。

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

Payum有大多数现代框架的官方扩展,例如bridge for Omnipay gateways existsstandardise the payment flowSymfonyLaravelSilex

最后让我们比较Payum和Omnipay的角石接口。

  • 流动的Kingswhoy Womans Omnibian Kingswatch
  • Payum Yii vs Omnipay Zend ups没有界面。

免责声明:我是Payum的作者

© www.soinside.com 2019 - 2024. All rights reserved.