shela / omnipay-2checkout
Omnipay支付处理库的2Checkout驱动程序
dev-master / 3.0.x-dev
2022-08-17 13:32 UTC
Requires
- ext-json: *
- omnipay/common: ^3.0
Requires (Dev)
- omnipay/tests: ^3.0
- satooshi/php-coveralls: ^0.7.1
This package is not auto-updated.
Last update: 2024-09-26 21:49:26 UTC
README
Omnipay PHP支付处理库的2checkout网关
Omnipay 是一个不依赖于框架、多网关的PHP 5.3+支付处理库。本包实现了Omnipay对2checkout的支持。
安装
通过Composer
$ composer require SHELA/omnipay-2checkout
使用方法
本包提供以下网关
- TwoCheckoutPlus
TwoCheckoutPlus
use Omnipay\Omnipay; $gateway = Omnipay::create('TwoCheckoutPlus'); $gateway->setAccountNumber($this->account_number); $gateway->setSecretWord($this->secret_word); $gateway->setTestMode($this->is_sandbox_test()); // activate test mode by passing demo parameter to checkout parameters. $gateway->setDemoMode($this->is_test_mode()); try { $formData = array( 'firstName' => $order->get_billing_first_name(), 'lastName' => $order->get_billing_last_name(), 'email' => $order->get_billing_email(), 'address1' => $order->get_billing_address_1(), 'address2' => $order->get_billing_address_2(), 'city' => $order->get_billing_city(), 'state' => $order->get_billing_state(), 'postcode' => $order->get_billing_postcode(), 'country' => $order->get_billing_country(), ); $order_cart = $order->get_items(); $cart = array(); $i = 0; foreach ($order_cart as $order_item_id => $product) { $product_id = $product['product_id']; $cart[$i]['name'] = $product['name']; $cart[$i]['quantity'] = $product['qty']; $cart[$i]['type'] = 'product'; $cart[$i]['price'] = round($product['line_subtotal'] / $product['qty'], 2); $cart[$i]['product_id'] = $product_id; $i++; } if (($shipping_total = $order->get_shipping_total()) > 0) { $cart[] = array( 'name' => 'Shipping Fee', 'quantity' => 1, 'type' => 'shipping', 'price' => round($shipping_total, 2), ); } if (($discount_total = $order->get_total_discount()) > 0) { $cart[] = array( 'name' => 'Discount', 'quantity' => 1, 'type' => 'coupon', 'price' => round($discount_total, 2), ); } if (($tax_total = $order->get_total_tax()) > 0) { $cart[] = array( 'name' => 'Tax Fee', 'type' => 'tax', 'quantity' => 1, 'price' => round($tax_total, 2), ); } $gateway->setCart($cart); $response = $gateway->purchase( array( 'card' => $formData, 'transactionId' => $order->get_order_number(), 'currency' => 'USD', // add a query parameter to the returnUrl to listen and complete payment 'returnUrl' => $this->returnUrl, ) )->send(); if ($response->isRedirect()) { $response->getRedirectUrl(); } else { $error = $response->getMessage(); } } catch (Exception $e) { $e->getMessage(); }
有关通用使用说明,请参阅主要的 Omnipay 仓库。
支持
如果您在使用Omnipay时遇到一般性问题,建议在 Stack Overflow 上发布。请确保添加 omnipay 标签,以便更容易被找到。
如果您想了解发布公告,讨论项目想法或提出更详细的问题,还可以订阅 邮件列表。
如果您认为发现了bug,请使用 GitHub问题跟踪器 报告,或者更好的方法是fork库并提交pull请求。
测试
$ composer test
安全
如果您发现任何与安全相关的问题,请通过电子邮件 me@w3guy.com 而不是使用问题跟踪器。
鸣谢
许可
MIT许可证(MIT)。有关更多信息,请参阅 许可文件。