PHP библиотека для работы с платежным интегратором Assist.ru
$ composer require assist/assist_ru_php_core
Подготовьте конфигурацию клиента
$config = new \Assist\Config\Config([
//ID предприятия
'shop_id' => 999999,
//Логин аккаунта предприятия
'login' => 'login',
//Пароль аккаунта предприятия
'password' => 'password',
]);
Создайте экземпляр класса клиента и передайте конфигурацию
$client = new \Assist\Client($config);
Создайте экземпляр класс запроса и передайте параметры запроса
$createPayment = new \Assist\Request\CreatePayment\CreatePaymentRequest([
'OrderNumber' => 'number',
'OrderAmount' => 'amount',
'ChequeItems' => '',
]);
Вызовете метод запроса и передайте в него инстанс запроса
$response = $client->createPayment($createPayment);
Все классы ответов имеют метод getResponseData(), который возвращает массив с данными ответа
$responseData = $response->getResponseData();
Структура массива соответствует структуре JSON ответа API Ассист
https://docs.assist.ru/swagger/?urls.primaryName=payments.demo.paysecure.ru#
Так-же для каждого параметра доступны соответствующие геттеры
$response = $client->createPayment($createPaymentRequest);
$paymentUrl = $response->getUrl();
$orderState = $response->getOrderState();
$expirationTime = $response->getExpirationTime();
Для формирования Подписи (Signature) и Проверочного значения (Checkvalue) предоставляется хелпер Assist\Helpers\SignHelper.
Для формирования подписи (Signature) в Assist\Helpers\SignHelper предусмотрен метод getSignature(array $params, string $privateKey);
Метод принимает два параметра: массив $params включающий параметры для формирования подписи и строку $privateKey.
Обязательные параметры:
- Merchant_ID
- OrderNumber
- OrderAmount
- OrderCurrency
Необязательные параметры:
- OrderMaxPoints
- CustomerNumber
- Disable3DS
- Prepayment
Параметры в массиве $params передаются в формате ключ => значение.
Для формирования проверочного значения (Checkvalue) в Assist\Helpers\SignHelper предусмотрен метод getCheckValue(array $params, string $salt);
Метод принимает два параметра: массив $params включающий параметры для формирования подписи и секретное слово $salt.
Обязательные параметры:
- Merchant_ID
- OrderNumber
- OrderAmount
- OrderCurrency
Необязательные параметры:
- OrderMaxPoints
- CustomerNumber
- Disable3DS
- Prepayment
Параметры в массиве $params передаются в формате ключ => значение.
Список доступных параметров для класса Config
Имя параметра | Описание | Значение по умолчанию |
---|---|---|
api_url | основной URL API Ассист | https://payments.paysecure.ru |
test_api_url | Тестовый URL API Ассист | https://payments.demo.paysecure.ru |
test_mode | Индикатор тестового режима | false |
lang | Язык авторизационных страниц | RU |
merchant_id | ID предприятия | - |
login | Логин предприятия | - |
password | Пароль предприятия | - |
Пример конфигурации
$config = [
'Merchant_ID' => 'string',
'OrderNumber' => 'string',
'OrderAmount' => 0,
'ChequeItems' => [
[
"id" => "string",
"product" => "string",
"name" => "string",
"price" => 0,
"amount" => 0,
"quantity" => 0,
"tax" => "string",
"еancode" => "string",
"uncode" => "string",
"gs1code" => "string",
"furcode" => "string",
"egaiscode" => "string",
"hscode" => "string",
"subjtype" => 0
]
]
];
$createPaymentRequest = new \Assist\Request\CreatePayment\CreatePaymentRequest($config);
Конфигурация соответствует параметрам запроса /pay/payrequest.cfm
Документация "/pay/payrequest.cfm"
Конфигурация соответствует параметрам запроса /charge/charge.cfm
Документация "/charge/charge.cfm"
Конфигурация соответствует параметрам запроса /recurrent/rp.cfm
Документация "/recurrent/rp.cfm"
Конфигурация соответствует параметрам запроса /cancel/wscancel.cfm
Документация "/cancel/wscancel.cfm"
Конфигурация соответствует параметрам запроса /orderresult/orderresult.cfm
Документация "/orderresult/orderresult.cfm"
Конфигурация соответствует параметрам запроса /orderstate/orderstate.cfm
Документация "/orderstate/orderstate.cfm"
Коды HTTP ответов отличные от кода 200 обрабатываются handlerError(), который выбрасывает соответствующее коду ответа исключение.
Исключение унаследованные от класса Assist\Exceptions\HttpException имеют методы getResponseHeaders() и getResponseBody().
Для тестирования SDK в проекте применяется библиотека pest
Запуск тестирования
$ ./vendor/bin/pest