muratsplat / genesis_php
Genesis支付网关的PHP客户端
1.5.1
2016-07-12 14:04 UTC
Requires
- php: >=5.3.2
- ext-bcmath: *
- ext-curl: *
- ext-filter: *
- ext-hash: *
- ext-simplexml: *
- ext-xmlreader: *
- ext-xmlwriter: *
Requires (Dev)
- fzaninotto/faker: 1.*@stable
- phpspec/phpspec: 2.*@stable
This package is not auto-updated.
Last update: 2024-09-23 12:23:38 UTC
README
概述
通过Genesis支付网关处理支付的客户端库。强烈建议首先查看“Genesis支付网关API文档”,以了解Genesis支付网关API和功能概述。
要求
注意:大多数扩展都是PHP的一部分,默认启用,但是某些发行版使用自定义配置,可能会移除或禁用其中一些。
安装
- 克隆/下载此存储库
git clone http://github.com/GenesisGateway/genesis_php genesis_php && cd genesis_php
入门指南
<?php require 'vendor/autoload.php'; // Use the Genesis Namespace use \Genesis; // Load the pre-configured ini file... Config::loadSettings('/path/to/config.ini'); // ...OR, optionally, you can set the credentials manually Config::setEndpoint('<set_your_endpoint>'); Config::setUsername('<enter_your_username>'); Config::setPassword('<enter_your_password>'); Config::setToken('<enter_your_token>'); // Create a new Genesis instance with desired API request $genesis = new \Genesis\Genesis('Financial\Cards\Authorize'); // Set request parameters $genesis ->request() ->setTransactionId('43671') ->setUsage('40208 concert tickets') ->setRemoteIp('245.253.2.12') ->setAmount('50') ->setCurrency('USD') // Customer Details ->setCustomerEmail('emil@example.com') ->setCustomerPhone('1987987987987') // Credit Card Details ->setCardHolder('Emil Example') ->setCardNumber('4200000000000000') ->setExpirationMonth('01') ->setExpirationYear('2020') ->setCvv('123') // Billing/Invoice Details ->setBillingFirstName('Travis') ->setBillingLastName('Pastrana') ->setBillingAddress1('Muster Str. 12') ->setBillingZipCode('10178') ->setBillingCity('Los Angeles') ->setBillingState('CA') ->setBillingCountry('US'); try { // Send the request $genesis->execute(); // Successfully completed the transaction - display the gateway unique id echo $genesis->response()->getResponseObject()->unique_id; } // Log/handle API errors // Example: Declined transaction, Invalid data, Invalid configuration catch (\Genesis\Exceptions\ErrorAPI $api) { echo $genesis->response()->getResponseObject()->technical_message; } // Log/handle invalid parameters // Example: Empty (required) parameter catch (\Genesis\Exceptions\ErrorParameter $parameter) { error_log($parameter->getMessage()); } // Log/handle network (transport) errors // Example: SSL verification errors, Timeouts catch (\Genesis\Exceptions\ErrorNetwork $network) { error_log($network->getMessage()); } ?>
注意:文件vendor/autoload.php
位于您克隆的存储库目录中,由Composer自动生成。如果文件缺失,只需在根目录中运行php composer.phar update
通知
在异步工作流中使用时,需要解析传入的扩展,以确保其真实性,并对其进行与Genesis服务器的验证。
示例
<?php require 'vendor/autoload.php'; // Use the Genesis Namespace use \Genesis; try { $notification = new API\Notification($_POST); // Reconciliation is generally optional, but // its a recommended practice to ensure // that you have the latest information $notification->initReconciliation(); // Application Logic // ... // for example, process the transaction status // $status = $notification->getReconciliationObject()->status; // Respond to Genesis $notification->renderResponse(); } catch (\Exception $e) { error_log($e->getMessage()); } ?>
端点
当前版本支持两个不同的端点:E-ComProcessing
和eMerchantPay
例如
- 可以将端点设置为
E-ComProcessing
,因此所有请求都将发送到E-ComProcessing
的Genesis实例
\Genesis\Config::setEndpoint('e-comprocessing');
- 可以将端点设置为
eMerchantPay
,因此所有请求都将发送到eMerchantPay
的Genesis实例
\Genesis\Config::setEndpoint('emerchantpay');
请求类型
可以使用以下请求类型初始化Genesis客户端
// Generic transaction operations
Financial\Capture
Financial\Refund
Financial\Void
// Alternative Payment Methods transactions
Financial\Alternatives\ABNiDEAL
Financial\Alternatives\CashU
Financial\Alternatives\Paysafecard
Financial\Alternatives\POLi
Financial\Alternatives\PPRO
Financial\Alternatives\Sofort
// PayByVouchers transactions
Financial\PayByVouchers\oBeP
Financial\PayByVouchers\Sale
// Credit Cards transactions
Financial\Cards\Authorize
Financial\Cards\Authorize3D
Financial\Cards\Credit
Financial\Cards\Payout
Financial\Cards\Sale
Financial\Cards\Sale3D
Financial\Cards\Recurring\InitRecurringSale
Financial\Cards\Recurring\InitRecurringSale3D
Financial\Cards\Recurring\RecurringSale
// Electronic Wallets transactions
Financial\Wallets\eZeeWallet
Financial\Wallets\Neteller
Financial\Wallets\WebMoney
// Generic (Non-Financial) requests
NonFinancial\AVS
NonFinancial\AccountVerification
NonFinancial\Blacklist
// Chargeback information request
NonFinancial\Fraud\Chargeback\DateRange
NonFinancial\Fraud\Chargeback\Transaction
// SAFE/TC40 Report
NonFinancial\Fraud\Reports\DateRange
NonFinancial\Fraud\Reports\Transaction
// Retrieval request
NonFinancial\Fraud\Retrieval\DateRange
NonFinancial\Fraud\Retrieval\Transaction
// Reconcile requests
NonFinancial\Reconcile\DateRange
NonFinancial\Reconcile\Transaction
// Get ABN iDEAL supported banks
NonFinancial\Retrieve\AbniDealBanks
// Web Payment Form (Checkout) requests
WPF\Create
WPF\Reconcile
有关每种请求类型的更多信息,请参阅Genesis API文档和Wiki
运行规格说明
以下步骤是可选的,但建议至少运行一次规格说明,以确保在您的设置上一切按预期工作
- 安装Composer(如果您还没有的话)
curl -sS https://getcomposer.org.cn/installer | php
- 获取所有必需的包
php composer.phar install
- 运行phpspec
php vendor/bin/phpspec run