terdelyi / omnipay-wirecard
适用于 Omnipay 支付处理库的 Wirecard 网关
dev-master / 1.x-dev
2016-07-25 16:04 UTC
Requires
- omnipay/common: ~2.0
Requires (Dev)
- omnipay/tests: ~2.0
This package is auto-updated.
Last update: 2024-08-29 04:03:29 UTC
README
适用于 Omnipay 支付处理库的 Wirecard 网关。
此库目前仅支持 Wirecard Checkout Page 支付。您可以在这里了解更多关于 Checkout Page 解决方案的信息。
安装
网关通过 Composer 安装
composer require terdelyi/omnipay-wirecard
或将其添加到您的 composer.json 文件中
"require": { "terdelyi/omnipay-wirecard": "dev-master" }
如果 Omnipay 包在自动加载中不可用,它也会安装该包。
基本用法
此包提供以下网关
- Wirecard_Checkout (Wirecard Checkout Page)
有关一般用法说明,请参阅主要的 Omnipay 仓库。
首先创建网关
$gateway = Omnipay\Omnipay::create('Wirecard_Checkout'); $gateway->setCustomerId('D200001'); // this is a valid demo customer id $gateway->setSecret('B8AKTPWBRMNBV455FG6M2DANE99WU2'); // this is also valid for developing
其次准备所需的参数
$parameters = [ 'paymentType' => 'CCARD', 'shopId' => '1234', // optional 'currency' => 'EUR', 'description' => 'Awesome Product', 'language' => 'EN', 'successUrl' => 'http://your-website.com/response?type=success', 'failureUrl' => 'http://your-website.com/response?type=failure', 'cancelUrl' => http://your-website.com/response?type=cancel, 'serviceUrl' => http://your-website.com/response?type=service, 'amount' => '100.00' // must be contains decimals ];
如果缺少任何必需的参数,则在创建请求时您将获得 InvalidRequestException 异常
$request = $gateway->purchase($parameters);
发送请求
$response = $request->send();
最后处理响应
if ($response->isRedirect()) { $response->redirect(); // redirect the browser to the Wirecard Checkout Page } else { echo 'Error: '.$response->getMessage(); }
如果您想处理来自 Checkout 页面的返回 URL,请在响应页面上使用此方法
$gateway = Omnipay\Omnipay::create('Wirecard_Checkout'); $gateway->setCustomerId('D200001'); $gateway->setSecret('B8AKTPWBRMNBV455FG6M2DANE99WU2'); $request = $gateway->completePurchase(); $response = $request->send(); if ($response->isSuccessful()) { echo 'Succesful payment!'; } else if ($response->isCanceled()) { echo 'Payment has been cancelled.'; } else if ($response->isPending()) { echo 'Your payment is in pending status.'; } else { echo $response->getMessage(); }
响应对象中提供了 getMessage()
和 getData()
方法以供进一步操作。
可用的支付类型列表
支付类型高度依赖于您与 Wirecard 的合同,但这些是目前可用的值
待办事项
- 处理自定义参数(如 customerStatement、duplicateRequestCheck、displayText、imageUrl 等)
- 单元测试
- Checkout Seamless 集成 (https://www.wirecard.at/en/solutions/products/checkout-seamless/)