ertaquo / ckassa-sdk-php

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ckassa ShopAPI PHP SDK

Клиент для работы с Ckassa ShopAPI. Полная документация

Установка

Через Composer

Выполните команду

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']
    ]
]);

About

License:MIT License


Languages

Language:PHP 100.0%