payum/omnipay-bridge

此桥接器允许您以 payum 的方式使用 omnipay 网关。

1.2.5 2016-11-07 07:29 UTC

README

Payum 是一个 MIT 许可的开源项目,其持续开发完全由社区和我们的客户支持。如果您想加入他们,请考虑

OmnipayBridge

Build Status Total Downloads Latest Stable Version

OmnipayAdrian 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 的 purchasepurchaseComplete 方法。
  • 信用卡详细信息受到保护,不会意外地存储在您的端。
  • 使用构建器,您可以覆盖任何部分,或添加 Payum 扩展。

资源

由 Forma-Pro 开发

Forma-Pro 是一家全栈开发公司,其兴趣也扩展到开源开发。作为一个强大的专业团队,我们致力于通过在电子商务、Docker 和面向微服务的架构领域开发尖端解决方案来帮助社区,在这些领域我们已经积累了多年的经验。我们的主要专业领域是基于 Symfony 框架的解决方案,但我们始终寻找能够让我们以最佳方式完成工作的技术。我们致力于创造能够改变架构和可扩展性方面事物开发方式的解决方案。

如果您对我们的开源开发有任何问题或查询,特别是关于这个产品或任何其他问题,请随时联系 opensource@forma-pro.com

许可证

OmnipayBridge 在 MIT 许可证 下发布。