platron_sdk / php
Platron payment SDK
2.1.2
2021-06-17 15:39 UTC
Requires
- php: >=5.3
- ext-curl: *
- ext-simplexml: *
- psr/log: ^1.0
Requires (Dev)
- php: >=5.6
- phpunit/phpunit: ^5.7
README
Установка
Проект предполагает через установку с использованием 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 - вместо переменной долже быть метод, проверящий - доступен ли для оплаты заказ