sushi-market/laravel-uds-sdk

Laravel SDK for working with the uds.app service API

1.3.4 2024-05-21 13:01 UTC

This package is auto-updated.

Last update: 2024-10-14 09:48:48 UTC


README

UDS Laravel Package - PHP SDK Laravel пакет для взаимодействия с API uds.app от sushi-market

Build Status Latest Version Total Downloads Software License

Требования

  • PHP 8.1, 8.2
  • Laravel 10.0
  • guzzlehttp/guzzle 7.8

Установка

Вы можете установить пакет через composer:

composer require sushi-market/laravel-uds-sdk

Немного о UDS

SDK использует api.uds.app/partner/v2 Всю информацию по ответам и параметрам можно найти в документации UDS

Методы

Настройки

Получение настроек компании

getSettings - Получение настроек компании, способа предоставления скидки и промокода для вступления в компанию. Способ предоставления скидки настраивается в UDS.

Операции

Рассчитать информацию по операции [UDS документация]

calculateTransaction - Информация о доступных бонусных баллах для списания или размере скидки (в зависимости от настроек бонусной программы), сумме к оплате после применения скидок / бонусов и о количестве бонусных баллов, которые будут начислены после выполнения операции. Параметры функции:

  • array $receipt - Информация о чеке. Ключи соответствуют документации UDS
  • string $code - Платёжный код
  • array $participant - Информация о клиенте. Должен содержать идентификатор клиента в UDS или номер телефона

calculateTransactionByCode - Информация о доступных бонусных баллах по платёжному коду для списания или размере скидки (в зависимости от настроек бонусной программы), сумме к оплате после применения скидок / бонусов и о количестве бонусных баллов, которые будут начислены после выполнения операции. Параметры функции:

  • string $code - Платёжный код
  • array $receipt - Информация о чеке. Ключи соответствуют документации UDS

calculateTransactionByPhone - Информация о доступных бонусных баллах по номеру телефона для списания или размере скидки (в зависимости от настроек бонусной программы), сумме к оплате после применения скидок / бонусов и о количестве бонусных баллов, которые будут начислены после выполнения операции. Параметры функции:

  • string $phone - Номер телефона клиента
  • array $receipt - Информация о чеке. Ключи соответствуют документации UDS

calculateTransactionByUid - Информация о доступных бонусных баллах по идентификатору клиента для списания или размере скидки (в зависимости от настроек бонусной программы), сумме к оплате после применения скидок / бонусов и о количестве бонусных баллов, которые будут начислены после выполнения операции. Параметры функции:

  • string $uid - Идентификатор клиента
  • array $receipt - Информация о чеке. Ключи соответствуют документации UDS

Проведение операции [UDS документация]

createTransaction - Проведение операции в UDS. После успешного завершения операция отобразится в списке операций в UDS, а администратор и клиент получат push-уведомление о покупке. Параметры функции:

  • array $receipt - Информация о чеке. Ключи соответствуют документации UDS
  • ExternalCashier $cashier - Информация о сотруднике. (externalId, name)
  • array $tags - Массив идентификаторов тегов, назначаемых клиенту при проведении операции
  • Nonce $nonce - Уникальный идентификатор операции. Генерируется автоматически при создании экземпляра класса
  • string $code - Платёжный код
  • array $participant - Информация о клиенте. Должен содержать идентификатор клиента в UDS или номер телефона

createTransactionByCode - Проведение операции в UDS по платёжному коду Параметры функции:

  • string $code - Платёжный код
  • array $receipt - Информация о чеке. Ключи соответствуют документации UDS
  • ExternalCashier $cashier - Информация о сотруднике. (externalId, name)
  • array $tags - Массив идентификаторов тегов, назначаемых клиенту при проведении операции
  • Nonce $nonce - Уникальный идентификатор операции. Генерируется автоматически при создании экземпляра класса

createTransactionByPhone - Проведение операции в UDS по номеру телефона Параметры функции:

  • string $phone - Номер телефона клиента
  • array $receipt - Информация о чеке. Ключи соответствуют документации UDS
  • ExternalCashier $cashier - Информация о сотруднике. (externalId, name)
  • array $tags - Массив идентификаторов тегов, назначаемых клиенту при проведении операции
  • Nonce $nonce - Уникальный идентификатор операции. Генерируется автоматически при создании экземпляра класса

createTransactionByUid - Проведение операции в UDS по идентификатору клиента Параметры функции:

  • string $uid - Идентификатор клиента
  • array $receipt - Информация о чеке. Ключи соответствуют документации UDS
  • ExternalCashier $cashier - Информация о сотруднике. (externalId, name)
  • array $tags - Массив идентификаторов тегов, назначаемых клиенту при проведении операции
  • Nonce $nonce - Уникальный идентификатор операции. Генерируется автоматически при создании экземпляра класса

Операция возврата [UDS документация]

refundTransaction - Возврат операции по ее идентификатору. Если указан параметр partialAmount, то возврат будет частичным, иначе - полным Параметры функции:

  • int $id - Идентификатор возвращаемой операции
  • float $partialAmount - сумма возврата

Хелпер-функции

testCredentials - Проверяет $companyId и $apiKey на доступность, возвращает true в случае успеха, false в случае ошибки.

Примеры

Создание транзакции

app(Uds::class, [
    'companyId' => 123456789,
    'apiKey' => 'xxxxxxxxxxxxxxx',
])->createTransactionByCode('123456', [
    'total' => 1000,
    'cash' => 1000,
    'points' => 0,
    'number' => '123456',
    'skipLoyaltyTotal' => null,
    'unredeemableTotal' => null,
])

Полный возврат транзакции

app(Uds::class, [
    'companyId' => 123456789,
    'apiKey' => 'xxxxxxxxxxxxxxx',
])->refundTransaction(123456789)

Частичный возврат транзакции

app(Uds::class, [
    'companyId' => 123456789,
    'apiKey' => 'xxxxxxxxxxxxxxx',
])->refundTransaction(123456789, 100)

Больше примеров можно найти в тестах