bileto /
为 Omnipay 支付处理库提供的 PayU 网关
v1.0.1
2022-10-25 09:09 UTC
Requires
- php: ^7.2|^8
- ext-curl: *
- ext-json: *
- omnipay/common: ^3
- openpayu/openpayu_php_sdk: ^2.2
Requires (Dev)
- mockery/mockery: ^1.4
- omnipay/tests: ^4.1
- php-http/guzzle7-adapter: ^1.0
- phpstan/phpstan: ^0.12.9
- phpunit/phpunit: ^9
- symfony/var-dumper: ^5.3
- vlucas/phpdotenv: ^5.3
README
Omnipay PHP 支付处理库的 PayU 驱动程序
Omnipay 是一个与框架无关、多网关的 PHP 5.3+ 支付处理库。本软件包实现了 Omnipay 的 PayU 在线支付网关支持。
PayU REST API 2.1 文档
此实现使用 OAuth 2
安装
Omnipay 通过 Composer 安装。要安装,只需将其添加到您的 composer.json
文件中。
{ "require": { "bileto/omnipay-payu": "~0.1.1" } }
TL;DR
<?php require 'vendor/autoload.php'; use Omnipay\PayU\GatewayFactory; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); // default is official sandbox $posId = isset($_ENV['POS_ID']) ? $_ENV['POS_ID'] : '300046'; $secondKey = isset($_ENV['SECOND_KEY']) ? $_ENV['SECOND_KEY'] : '0c017495773278c50c7b35434017b2ca'; $oAuthClientSecret = isset($_ENV['OAUTH_CLIENT_SECRET']) ? $_ENV['OAUTH_CLIENT_SECRET'] : 'c8d4b7ac61758704f38ed5564d8c0ae0'; $gateway = GatewayFactory::createInstance($posId, $secondKey, $oAuthClientSecret, true); try { $orderNo = '12345677'; $returnUrl = 'http://localhost:8000/gateway-return.php'; $description = 'Shopping at myStore.com'; $purchaseRequest = [ 'customerIp' => '127.0.0.1', 'continueUrl' => $returnUrl, 'merchantPosId' => $posId, 'description' => $description, 'currencyCode' => 'PLN', 'totalAmount' => 15000, 'exOrderId' => $orderNo, 'buyer' => (object)[ 'email' => 'test@example.com', 'firstName' => 'Peter', 'lastName' => 'Morek', 'language' => 'pl' ], 'products' => [ (object)[ 'name' => 'Lenovo ThinkPad Edge E540', 'unitPrice' => 15000, 'quantity' => 1 ] ], 'payMethods' => (object) [ 'payMethod' => (object) [ 'type' => 'PBL', // this is for card-only forms (no bank transfers available) 'value' => 'c' ] ] ]; $response = $gateway->purchase($purchaseRequest); echo "TransactionId: " . $response->getTransactionId() . PHP_EOL; echo 'Is Successful: ' . (bool) $response->isSuccessful() . PHP_EOL; echo 'Is redirect: ' . (bool) $response->isRedirect() . PHP_EOL; // Payment init OK, redirect to the payment gateway echo $response->getRedirectUrl() . PHP_EOL; } catch (\Exception $e) { dump((string)$e); }
为自定义沙箱 payu 网关,根据 .env-default
准备 .env
文件。
测试卡
正授权
负授权
卡的有效期日期应为有效日期范围,CVC / CVV2 (3位随机数字)。沙箱环境不支持 3DS。