No description or website provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
tests
.gitignore
LICENSE
README.md
composer.json
phpunit.xml

README.md

Platron PHP SDK

Установка

Проект предполагает через установку с использованием composer.

composer require payprocessing/phpsdk

Тесты

Для работы тестов необходим PHPUnit, для установки необходимо выполнить команду

composer require phpunit/phpunit

Запустить unit тесты можно выполнив команду из корня проекта

vendor/bin/phpunit tests/unit

Для того, чтобы запустить интеграционные тесты нужно скопировать файл tests/integration/MerchantSettingsSample.php удалив из названия Sample и вставив настройки магазина. После выполнить команду из корня проекта

vendor/bin/phpunit tests/integration

Примеры использования

1. Создание транзакции

$client = new Platron\PhpSdk\request\clients\PostClient('82', 'sdvsfdvsfdvsdv');
try {
    $requestBuilder = new Platron\PhpSdk\request\request_builders\InitPaymentBuilder('10.00', 'Test transaction');
    $requestBuilder->addTestingMode()
        ->addUserEmail('test@test.ru')
        ->addUserPhone('79055770000')
        ->addPaymentSystem('TEST');
    $response = $client->request($requestBuilder);
}
catch (Platron\PhpSdk\Exception\Exception $e){
    var_dump($e);
    die();
}

2. Запрос реестра

$client = new Platron\PhpSdk\request\clients\PostClient('82', 'sdvsfdvsfdvsdv');
try {
    $requestBuilder = new Platron\PhpSdk\request\request_builders\GetRegistryBuilder(new DateTime('now - 1 day'));
    $response = $client->request($requestBuilder);
} catch (Platron\PhpSdk\Exception $e) {
    var_dump($e);
    die();
}

3. Проведение клиринга

$client = new Platron\PhpSdk\request\clients\PostClient('82', 'sdvsfdvsfdvsdv');
try {
    $requestBuilder = new Platron\PhpSdk\request\request_builders\DoCaptureBuilder(323334422);
    $response = $client->request($requestBuilder);
} catch (Exception $e) {
    var_dump($e);
    die();
}

4. Обработка запроса от Platron (check)

$order_available = 1;
$callback = new platron_sdk\callback\Callback('platron_dispatch.php', 'sdvsfdvsfdvsdv');
if ($callback->validateSig($request)) {
    try {
        if ($order_available) {
            echo $callback->responseOk($request);
        } elseif ($callback->canReject($request)) {
            echo $callback->responseRejected($request, 'Заказ недоступен');
        } else {
            echo $callback->responseOk($request);
            /*
             * Вернуть транзакцию через манибек систему или через заявку на возврат
             */
        }
    } catch (Platron\PhpSdk\samples $e) {
        echo $callback->responseError($request, 'Невозможно принять запрос. Повторите еще раз');
    }
}

$order_available - вместо переменной долже быть метод, проверящий - доступен ли для оплаты заказ