payum / omnipay-v3-bridge
此桥接器允许您以 payum 的方式使用 omnipay 网关。
1.2.0
2022-02-17 14:13 UTC
Requires
- php: ^7.2 | ^8.0
- omnipay/common: ^3.2
- payum/core: ^1.6.1
- php-http/client-implementation: ^1.0
Requires (Dev)
- omnipay/dummy: ^3.0
- php-http/guzzle7-adapter: ^1.0
- phpunit/phpunit: ^8.5 || ^9.5
Suggests
- php-http/guzzle7-adapter: Guzzle 7 HTTP Adapter
This package is auto-updated.
Last update: 2024-09-08 19:11:31 UTC
README
Omnipay 由 Adrian Macneil 创建。该库提供了 25+ 网关的统一 API。此外,它简单、统一、一致的 API,并且完全经过测试。此桥接器允许您以 payum 的方式使用 omnipay 网关。
为什么你应该使用这个桥接器?
这是来自 omnipay 仓库的一个示例
<?php use Omnipay\Omnipay; $gateway = Omnipay::create('Stripe'); $gateway->setApiKey('abc123'); $formData = ['number' => '4242424242424242', 'expiryMonth' => '6', 'expiryYear' => '2016', 'cvv' => '123']; $response = $gateway->purchase(['amount' => '10.00', 'currency' => 'USD', 'card' => $formData])->send(); if ($response->isSuccessful()) { // payment was successful: update database print_r($response); } elseif ($response->isRedirect()) { // redirect to offsite payment gateway $response->redirect(); } else { // payment failed: display message to customer echo $response->getMessage(); }
这是相同的代码,但使用了桥接器
<?php use Payum\Core\PayumBuilder; use Payum\Core\Request\Capture; use Payum\Core\Request\GetHumanStatus; use Payum\Core\Model\ArrayObject; $payum = (new PayumBuilder()) ->addDefaultStorages() ->addGateway('stripe', ['factory' => 'omnipay_stripe', 'apiKey' => 'abc123']) ->getPayum() ; $card = ['number' => '4242424242424242', 'expiryMonth' => '6', 'expiryYear' => '2016', 'cvv' => '123']; $payment = new ArrayObject(['amount' => '10.00', 'currency' => 'USD', 'card' => $card]); if ($reply = $payum->getGateway('stripe')->execute(new Capture($payment), true)) { // convert reply to http response } $payum->getGateway('stripe')->execute($status = new GetHumanStatus($payment)); if ($status->isCaptured()) { // success }
代码量大致相同,但使用桥接器可以得到更多现成的功能
- 返回/取消 URL 会自动生成。这些 URL 是唯一的,不会暴露任何敏感信息。
- 如果您没有传递信用卡,Payum 会要求用户输入,并显示带有表单的页面。
- 您可以使用桥接器与 Payum 的 Symfony、Laravel、Silex、Zend、Yii 包一起使用。
- 存储。您的付款已经存储在文件系统中。我们建议不要在生产环境中使用此存储。
- 付款模型包含我们从 omnipay 获得的所有信息。只需使用它即可。
- Payum 抽象工作流程。它知道何时应使用 Omnipay 的
purchase
或purchaseComplete
方法。 - 信用卡详细信息被保护,不会意外存储在您的端。
- 使用构建器,您可以覆盖任何部分,或添加 Payum 扩展。
资源
由 Forma-Pro 开发
Forma-Pro 是一家全栈开发公司,其兴趣也扩展到开源开发。作为一个强大的专业团队,我们的目标是帮助社区通过在电子商务、docker & 微服务导向架构领域开发尖端解决方案来实现这一目标,我们在这些领域积累了多年的经验。我们的主要专业领域是基于 Symfony 框架的解决方案,但我们始终在寻找能够让我们以最佳方式工作的技术。我们致力于创造能够彻底改变架构和可扩展性方面开发方式的解决方案。
如果您对我们的开源开发、该产品或任何其他问题有任何疑问,请随时通过 [email protected] 联系我们。
许可证
OmnipayBridge 在 MIT 许可证 下发布。