lzaplata/certitrade

该软件包最新版本(dev-master)没有可用的许可信息。

Certitrade包装器,用于Nette框架。

dev-master 2018-02-05 08:30 UTC

This package is auto-updated.

Last update: 2024-09-25 07:38:19 UTC


README

这是一个用于Certitrade网关的小型Nette框架包装器。

安装

安装库最简单的方法是使用Composer。

$ composer require lzaplata/certitrade: dev-master

或者编辑项目中composer.json文件

"require": {
        "lzaplata/certitrade": "dev-master"
}

您需要在config.neon文件中将库注册为扩展。

extensions:
        payu: LZaplata\Certitrade\DI\Extension

现在您可以设置参数...

certitrade:
        merchantId      : *
        apiKey          : *
        sandbox         : true
        language        : en        // must be 2 digits language code
        currency        : SEK       // must be 3 digits uppercase currency code

...并将库自动连接到演示者

use LZaplata\Certitrade\Service;

/** @var Service @inject */
public $certitrade;

使用方法

支付前

第一步您必须创建新的支付。

$payment = $this->certitrade->createOrder([
        "description" => $description,           
        "amount" => $price,                         // order price in lowest currency unit (1 CZK = 100)
        "reference" => $id,                         // eshop unique id
        "return_url" => $returnUrl,                 // return url from gateway (no matter of payment result)
        "callback_url" => $callbackUrl,             // url to report back via POST call while payment is under way
]);

第二步决定创建订单是否成功...

try {
        $response = $this->certitrade->pay($payment);
} catch (\Exception $e) {
        print $e->getMessage();
}

...在重定向到网关之前,您可以获取Certitrade ID并将其与您的订单合并

$certitradeId = $response->id;

// updates order
$this->updateOrder($certitradeId);

...最终您可以重定向到网关。

$this->sendResponse($response);

支付后

您可以通过Certitrade ID获取支付...

$payment = $this->certitrade->getPayment($certitradeId);

...最终判断支付是否已完成。

if ($this->certitrade->isPaid($payment)) {
    // do something
} else {
    // otherwise do something else
}