terdelyi/omnipay-wirecard

适用于 Omnipay 支付处理库的 Wirecard 网关

dev-master / 1.x-dev 2016-07-25 16:04 UTC

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 的合同,但这些是目前可用的值

待办事项