rusadrako/sberbank_ecom_client

PHP client for ECOM Sberbank ( https://ecommerce.sberbank.ru/ )

v0.6.0 2023-12-01 13:32 UTC

This package is not auto-updated.

Last update: 2024-05-20 08:11:52 UTC


README

PHP client for Sberbank ( https://ecommerce.sberbank.ru )

Version Total Downloads License

Документация

Установка (composer)

composer require 'rusadrako/sberbank_ecom_client'

Установка (manual)

  • Скачать и распоковать библиотеку.
  • Добавить в код инструкцию:
require_once('/sberbank_ecom_client/src/autoload.php')

Класс Client

Базовый класс Клиента.

use RusaDrako\sberbank_ecom_client\Client;

$options = [
    'userName' => 'yourLogin',
    'password' => 'yourPassword',
    'api_host' => Client::API_HOST,
];

$client = new Client($options);

По умолчанию клиент использует тестовый api_host => Client::API_HOST_TEST ( https://ecomtest.sberbank.ru/ )

Полный набор доступных свойств:

use RusaDrako\sberbank_ecom_client\Client;
use RusaDrako\sberbank_ecom_client\Currency;
use RusaDrako\sberbank_ecom_client\Language;

$options = [
    'userName' => 'yourLogin', // Логин Клиента
    'password' => 'yourPassword', // Пароль Клиента
    'api_host' => Client::API_HOST_TEST, // Хост
    'currency' => Currency::RUB, // Валюта
    'language' => Language::RUS, // Язык
    'timeout' => 15, // Время ожидания ответа от сервиса
    'datafile' => __DIR__ . '/sberbank_ecom_1.0.4.json', // Местоположение файла со спецификацией OpenAPI
];

Метод action()

Формирует и выполняет действие. Возвращает объект Response с результатом запроса.

$response = $client->action('register.do', [
                                               'orderNumber' => 'тест-1',
                                               'amount' => 10000,
                                               'returnUrl' => 'http://www.test.test/',
                                           ]);

Является краткой формой для:

/** @var Action $action */
$action = $client->getAction('register.do');

$action->orderNumber = 'тест-1';
$action->amount = 10000;
$action->returnUrl = 'https://www.mealty.ru/';

/** @var Response $response */
$response = $action->execute();

Метод getAction()

Возвращает объект Action с настройками указанного действия.

$action = $client->getAction('register.do');

Класс Action

Объект действия с его настройками.

Метод execute()

Выполняет запрос действия. Возвращает объект Response с результатом запроса.

$response = $action->execute();

Метод getActionName()

Возвращает имя действия.

$string = $action->getActionName();

Метод getOptionsJSON()

Возвращает JSON запроса действия.

$json = $action->getOptionsJSON();

Метод getOptionsJSONWithNotAuth()

Возвращает JSON запроса действия без настроек аутентификации.

$json = $action->getOptionsJSONWithNotAuth();

Класс Response

Объект результата запроса.

$response->errorCode;
$response->errorMessage;
...

Метод getJSON()

Возвращает результат запроса в формате JSON.

$json = $response->getJSON();

Метод getArray()

Возвращает результат запроса в формате Array.

$array = $response->getArray();

Класс Currency

Объект с кодами валют в соответствующем формате.

use RusaDrako\sberbank_ecom_client\Currency;

$currency_code = Currency::RUB;

Класс Language

Объект с кодами языков в соответствующем формате.

use RusaDrako\sberbank_ecom_client\Language;

$currency_code = Language::RUS;

Класс ClientExpansion

Расширенние функционала класса Client для совместимости с Voronkovich\sberbank-acquiring-client (v2.8)

/** Register a new order. */
public function registerOrder($orderNumber, int $amount, string $returnUrl, array $data = []) { ... }
/** Register a new order using a 2-step payment process. */
public function registerOrderPreAuth($orderNumber, int $amount, string $returnUrl, array $data = []) { ... }
/** Register a new credit order. */
public function registerCreditOrder($orderNumber, int $amount, string $returnUrl, array $data = []) { ... }
/** Register a new credit order using a 2-step payment process. */
public function registerCreditOrderPreAuth($orderNumber, int $amount, string $returnUrl, array $data = []) { ... }
/** Deposit an existing order. */
public function deposit($orderId, int $amount, array $data = []) { ... }
/** Reverse an existing order. */
public function reverseOrder($orderId, array $data = []) { ... }
/** Refund an existing order. */
public function refundOrder($orderId, int $amount, array $data = []) { ... }
/** Get an existing order's status by Sberbank's gateway identifier. */
public function getOrderStatus($orderId, array $data = []) { ... }
/** Get an existing order's status by own identifier. */
public function getOrderStatusByOwnId($orderId, array $data = []) { ... }
/** Verify card enrollment in the 3DS. */
public function verifyEnrollment(string $pan, array $data = []) { "не реализован"; }
/** Update an SSL card list. */
public function updateSSLCardList($orderId, array $data = []) { "не реализован"; }
/** Get last orders for merchants. */
public function getLastOrdersForMerchants(\DateTimeInterface $from, \DateTimeInterface $to = null, array $data = []) { "не реализован"; }
/** Payment order binding. $ip - new */
public function paymentOrderBinding($mdOrder, $bindingId, string $ip, array $data = []) { ... }
/** Activate a binding. */
public function bindCard($bindingId, array $data = []) { ... }
/** Deactivate a binding. */
public function unBindCard($bindingId, array $data = []) { ... }
/** Extend a binding. */
public function extendBinding($bindingId, \DateTimeInterface $newExpiry, array $data = []) { "не реализован"; }
/** Get bindings. */
public function getBindings($clientId, array $data = []) { ... }
/** Get a receipt status. $receiptId - new */
public function getReceiptStatus(string $receiptId, array $data) { ... }
/** Pay with Apple Pay. */
public function payWithApplePay($orderNumber, string $merchant, string $paymentToken, array $data = []) { "не реализован"; }
/** Pay with Google Pay. */
public function payWithGooglePay($orderNumber, string $merchant, string $paymentToken, array $data = []) { "не реализован"; }
/** Pay with Samsung Pay. */
public function payWithSamsungPay($orderNumber, string $merchant, string $paymentToken, array $data = []) { "не реализован"; }
/** Get QR code for payment through SBP. */
public function getSbpDynamicQr($orderId, array $data = []) { "не реализован"; }
/** Get QR code status. */
public function getSbpQrStatus($orderId, string $qrId, array $data = []) { "не реализован"; }

License

Copyright (c) Petukhov Leonid. Distributed under the MIT.