Клиент для работы с Ckassa ShopAPI. Полная документация
Выполните команду
composer require ckassa/ckassa-sdk-php
Или добавьте
"ckassa/ckassa-sdk-php": "*"
в секцию require вашего файла composer.json
Скачайте архив проекта и поместите содержимое каталога lib в ваш проект Подключте автозагрузку SDK
require __DIR__ . '/autoload.php';
Подключение происходит через класс MerchantShop. Подходит для платежей по поездкам с оплатой на кошелек. Для остальных типов подключений используется MainShop
$shop = new MerchantShop(
'Секретный ключ',
'Токен магазина',
'Путь до сертификата .pem',
'Пароль от сертификата'
);
$shop = new TestMerchantShop(
'Секретный ключ',
'Токен магазина',
'Путь до сертификата .pem',
'Пароль от сертификата'
);
$user = $shop->createUser([
'login' => '79129999999',
'email' => 'test@test.ru',
'name' => 'Тест',
'surName' => 'Тест',
'middleName' => 'Тест'
]);
$merchant = $shop->createMerchant([
'phone' => '79129999999'
]);
После вызова метода возвращается объект класса Payment, поскольку регистрация по факту является списанием и возвратом денежных средств с карты (платежом). В объекте содержится ссылка на интерфейс ввода данных карты для регистрации. userToken можно получить в методе Регистрация пользователя
$payment = $shop->createCard([
'userToken' => $user->getUserToken()
]);
$cards = $shop->getCardsList('токен пользователя');
- userToken - токен пользователя, может быть получен в методе Регистрация пользователя
- cardToken - токен карты, может быть получен в методе Получение списка карт
- merchantToken - токен мерчанта, может быть получен в методе Регистрация мерчанта
$payment = $shop->createPayment([
'serviceCode' => 'код услуги',
'amount' => 'сумма списания',
'comission' => 'сумма комиссии',
'orderId' => 'номер заказа',
'userToken' => 'токен пользователя',
'cardToken' => 'токен карты',
'merchantToken' => 'токен мерчанта'
]);
Пример запроса
$payment = $shop->createPayment([
'serviceCode' => '100-13864-4',
'amount' => '2000',
'comission' => 0,
'orderId' => '006',
'userToken' => $user->getUserToken(),
'cardToken' => $card->getCardToken(),
'merchantToken' => $merchant->getMerchantToken()
]);
Пример ответа
Ckassa\Model\Payment Object
(
[regPayNum:Ckassa\Model\Payment:private] => 13795357436
[methodType:Ckassa\Model\Payment:private] => GET
[userToken:Ckassa\Model\Payment:private] => Токен пользователя
[userPhone:Ckassa\Model\Payment:private] =>
[payUrl:Ckassa\Model\Payment:private] => https://ckassa.ru/ticket/123
[merchantToken:Ckassa\Model\Payment:private] => Токен мерчанта
)
$payment = $shop->getPaymentInfo('номер платежа');
При передаче суммы платежа в данном случае вычитается комиссия. Например, при начальной сумме платежа 1100 коп. передается 1063 коп.
$shop->confirmPayment('номер платежа', 'номер заказа', 1063);
В данном случае для подключения используется класс MainShop
В этом методе не требуется передавать токен карты
$payment = $shop->createPayment([
'serviceCode' => 'код услуги',
'userToken' => 'токен пользовател',
'amount' => 'сумма платежа в копейках',
'comission' => 'сумма комиссии',
'enableSMSConfirm' => 'смс подтверждение',
'properties' => 'реквизиты'
]);
Пример запроса
$payment = $shop->createPayment([
'serviceCode' => '979-13689-15',
'userToken' => $user->getUserToken(),
'amount' => 1000,
'comission' => 40,
'enableSMSConfirm' => 'true',
'properties' => [
['name' => 'НОМЕР_ТЕЛЕФОНА', 'value' => '9129999999']
]
]);
$payment = $shop->createAnonymousPayment([
'serviceCode' => 'код услуги',
'amount' => 'сумма в копейках',
'comission' => 'комиссия',
'enableSMSConfirm' => 'смс подтверждение',
'properties' => 'реквизиты платежа'
]);
Пример запроса
$payment = $shop->createAnonymousPayment([
'serviceCode' => '979-13689-15',
'amount' => 1000,
'comission' => 40,
'enableSMSConfirm' => 'true',
'properties' => [
['name' => 'НОМЕР_ТЕЛЕФОНА', 'value' => '9129999999']
]
]);