SDK на языке PHP для платформы автоматизации маркетинга

Related tags

API php sdk sailplay
Overview

Sailplay PHP SDK

SDK на языке PHP для платформы автоматизации маркетинга — https://sailplay.ru.

Ускорит внедрение функциональности Sailplay в ваш продукт.

  • Не нужно думать о деталях запроса (формирование url, заголовков, query string и т.п.).
  • Все запросы и ответы являются типизированными классами.
  • Для создания и использования классов будут работать подсказки IDE.
  • Будет работать проверка типов и валидация входных параметров.
  • Есть логирование для отладки и обработка ошибок. Не нужно писать код для проверки тела ответа.
  • Из коробки работает кеширование токена, которое рекомендовано Sailplay для использования в API.

Установка

composer require 15web/sailplay-sdk

Использование

getMessage()}"; } // ответ - это объект с геттерами доступных полей $token = $loginResponse->getToken(); // отправляем запрос на получение информации о клиенте $userInfoResponse = \Studio15\SailPlay\SDK\SailPlayApi::usersInfo( $token, $storeDepartmentId = 12345, $userPhone = '79991234567' ); echo $userInfoResponse->getEmail();">


require_once 'vendor/autoload.php';

try {
    // отправляем запрос на получение токена
    $loginResponse = \Studio15\SailPlay\SDK\SailPlayApi::login(
        $storeDepartmentId = 12345,
        $storeDepartmentKey = 12345678,
        $pinCode = 1234
    );
// при наличии в ответе ошибки будет выброшено соответствующее исключение
} catch (\Studio15\SailPlay\SDK\Api\Login\AuthErrorException $authErrorException) {
    echo "Ошибка аутентификации: {$authErrorException->getMessage()}";
}

// ответ - это объект с геттерами доступных полей
$token = $loginResponse->getToken();

// отправляем запрос на получение информации о клиенте
$userInfoResponse = \Studio15\SailPlay\SDK\SailPlayApi::usersInfo(
    $token,
    $storeDepartmentId = 12345,
    $userPhone = '79991234567'
);

echo $userInfoResponse->getEmail();

Разработка

Сборка образа PHP (обязательно перед всеми операциями с run.bash)

./bin/docker_build.bash

Установка зависимостей

./bin/run.bash composer install

Запуск PHP

./bin/run.bash php tests/functional/Users/info.php

Функциональные тесты

cp tests/functional/.env.dist tests/functional/.env
./bin/run.bash php tests/functional/Users/info.php

Установка git hooks

./bin/hooks.bash

Copyright and license

Copyright © Studio 15, 2012 - Present.
Code released under the MIT license.

We use BrowserStack for cross browser testing.

BrowserStack

Comments
  • Реализовать метод // purchases/purchase-attributes/add

    Реализовать метод // purchases/purchase-attributes/add

    https://ru.sailplay.dev/reference/purchases-purchase-attributes-add

    Проверить атрибут в личном кабинете.

    Проверить создание покупки с этим атрибутом. Проверить в личном кабинете.

    opened by antode 4
  • Guzzle // Выяснить причину проблем с сертификатами

    Guzzle // Выяснить причину проблем с сертификатами

    При попытке выполнить запрос:

    ./bin/run.bash php tests/functional/api_request.php
    

    приложение падает с ошибкой

    Fatal error: Uncaught GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: certificate has expired (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://sailplay.ru/api/v2/login/ in /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:211
    Stack trace:
    #0 /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(158): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
    #1 /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(110): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
    #2 /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
    #3 /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(28): GuzzleHttp\Handler\ in /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 211
    

    для проверки сделал

    new GuzzleHttp\Client(['verify' => false]),
    

    и заработало

    поверхностно погуглил:

    • https://docs.guzzlephp.org/en/stable/request-options.html#verify-option
    • https://github.com/guzzle/guzzle/issues/1935
    • https://stackoverflow.com/questions/24611640/curl-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate

    Что нужно делать:

    • Разобраться, в сути проблемы, описать.
    • Проверить есть ли она локально или это происходит только в докере.
    • Подумать над вариантами решения, описать.
    opened by antode 2
  • Composer // Выяснить нужно ли нам для разработки minimum-stability

    Composer // Выяснить нужно ли нам для разработки minimum-stability

    minimum-stability и prefer-stable это root-only директивы

    root-only - не учитывается если наш пакет подключается как вендорский. Будет работать только если клонировать сам репозиторий пакета. То есть директива имеет смысл только для разработки

    нужно выяснить потребуются ли они при разработке для обновления завсимостей

    • нужно понять будут ли влиять эти директивы при обновлении пакетов на их версии
    • придумать как это проверить
    • описать результаты
    opened by antode 2
  • Реализовать метод // marketing-actions/calc/light

    Реализовать метод // marketing-actions/calc/light

    https://ru.sailplay.dev/reference/marketing-actions-calc-light

    Частично реализован: https://github.com/15web/sailplay-php/tree/main/src/Api/MarketingActions/Calc/Light

    Нужно закончить.

    Тестирование:

    • создать в личном кабинете акцию
    • проверить работу метода
    opened by antode 1
  • Реализовать метод // users/info

    Реализовать метод // users/info

    Частично реализован: https://github.com/15web/sailplay-php/tree/main/src/Api/Users/Info Нужно добавить поля для https://github.com/15web/sailplay-php/blob/main/src/Api/Users/Info/Response/History.php

    enhancement 
    opened by antode 1
  • Инфраструктура // Добавить normalizers для массивов и JSON

    Инфраструктура // Добавить normalizers для массивов и JSON

    • начать с черновика ручки marketing-actions-calc-light
    • normalizer конвертирующий массив строк в строку ["PROMOCODE1", "PROMOCODE2"] для запроса
    • normalizer конвертирующий объект в JSON строку
    • объекты обёртки для этих нормализаторов
    • подумать о фабрике для \Symfony\Component\Serializer\Serializer или о его создании внутри \Studio15\SailPlay\SDK\Infrastructure\DefaultApiHttpClient, так как способ его создания тесно связан с использованием, нет смысла объявлять только ег отип в конструкторе. Подумать о том можно ли легко перенести его отвественность в отдельный класс и его вызовы из ручек.
    enhancement 
    opened by antode 1
  • Login // Добавить кеширование токена

    Login // Добавить кеширование токена

    Согласно документации следует обновлять токен не чаще, чем раз в 24 часа.

    Авторизацию необходимо реализовать по CRON-задаче, которая будет выполняется каждые 24 часа и обновлять token, которым подписываются все дальнейшие запросы. При необходимости срок жизни токена можно увеличить/уменьшить или же отключить совсем.

    также добавить обработку ошибок для примера реализации ручек

    enhancement 
    opened by antode 1
Owner
Studio 15
We develop responsive websites, services, web-applications based on modern technologies
Studio 15
Zoho CRM API SDK is a wrapper to Zoho CRM APIs. By using this sdk, user can build the application with ease

Archival Notice: This SDK is archived. You can continue to use it, but no new features or support requests will be accepted. For the new version, refe

null 81 Nov 4, 2022
The 1Password Connect PHP SDK provides your PHP applications access to the 1Password Connect API hosted on your infrastructure and leverage the power of 1Password Secrets Automation

1Password Connect PHP SDK The 1Password Connect PHP SDK provides your PHP applications access to the 1Password Connect API hosted on your infrastructu

Michelangelo van Dam 12 Dec 26, 2022
Facebook SDK for PHP (v6) - allows you to access the Facebook Platform from your PHP app

Facebook SDK for PHP (v6) This repository contains the open source PHP SDK that allows you to access the Facebook Platform from your PHP app. Installa

null 0 Aug 10, 2022
Unofficial Firebase Admin SDK for PHP

Firebase Admin PHP SDK Table of Contents Overview Installation Documentation Support License Overview Firebase provides the tools and infrastructure y

kreait 1.9k Jan 3, 2023
Notion PHP SDK

Notion PHP SDK This is an unofficial PHP SDK for the new public Notion API. It's work in progress as we didn't get the change to be included to the pr

Codecycler 43 Nov 29, 2022
爱发电非官方简易 PHP SDK

afdian-php-sdk 爱发电非官方简易 PHP SDK by Akkariin 这是一个简单的 SDK,可以用于查询爱发电的订单和赞助者信息 Installation 将项目 clone 到本地即可 git clone https://github.com/ZeroDream-CN/afdi

ZeroDream-CN 17 Nov 7, 2022
AWS Cognito package using the AWS SDK for PHP/Laravel

Laravel Package to manage Web and API authentication with AWS Cognito AWS Cognito package using the AWS SDK for PHP This package provides a simple way

EllaiSys 74 Nov 15, 2022
PHP SDK to interact with the Casper Network nodes via RPC

casper-php-sdk PHP SDK to interact with Casper Network nodes via RPC Install composer require make-software/casper-php-sdk Examples RPC Client: $node

MAKE Technology LLC 7 May 8, 2022
A Laravel 5+ (and 4) service provider for the AWS SDK for PHP

AWS Service Provider for Laravel 5/6/7/8 This is a simple Laravel service provider for making it easy to include the official AWS SDK for PHP in your

Amazon Web Services 1.5k Dec 28, 2022
A complete Notion SDK for PHP developers.

notion-sdk-php A complete Notion SDK for PHP developers. Installation composer require mariosimao/notion-php Getting started A Notion token will be n

Mario Simão 77 Nov 29, 2022
SDK of the LINE Login API for PHP

LINE Login for PHP SDK of the LINE Login API for PHP Documentation See the official API documentation for more information. Installation Use the packa

null 4 Sep 15, 2022
PHP SDK - Flexie CRM fiskalizimi solution

PHP SDK - Flexie CRM fiskalizimi solution Fiskalizimi PHP SDK allows you to talk and generate your e-invoices programmatically from your own solution

Flexie CRM 3 Dec 30, 2021
PHP Digital Green Certificate SDK

Digital Green Certificate SDK PHP Indice Contesto Installazione Uso Licenza Dettaglio licenza Contesto Attenzione, questo repository è derivato dalle

null 13 Jun 20, 2022
Esse SDK em PHP foi desenvolvido no intuito de tornar mais prático a integração com nossa API.

Sobre Beedoo SDK Acessar documentação completa da Beedoo API. A API é organizada seguindo a arquitetura REST, boas práticas, convenções e padrões como

Beedoo Edtech 5 Dec 2, 2021
A PHP SDK for accessing the OpenAI GPT-3 API

OpenAI GPT-3 Api Client in PHP Installation You can install the package via composer: composer require orhanerday/open-ai Usage use Orhanerday\OpenAi\

Orhan erday 462 Jan 2, 2023
The Facebook SDK for PHP provides a native interface to the Graph API and Facebook Login

Facebook SDK for PHP (v5) This repository contains the open source PHP SDK that allows you to access the Facebook Platform from your PHP app. Installa

Meta Archive 3.1k Dec 30, 2022
PHP SDK for the Sellix Developers API (developers.sellix.io)

PHP SDK for the Sellix Developers API (developers.sellix.io). Quickly get started and create products, payments and more using PHP.

Sellix 7 Nov 23, 2022
Alibaba Cloud SDK for PHP

English | 简体中文 Alibaba Cloud SDK for PHP Alibaba Cloud SDK for PHP is a development kit that supports quick access to products, dependency on Alibaba

Alibaba Cloud 493 Dec 16, 2022
Aliyun OSS SDK for PHP

Alibaba Cloud OSS SDK for PHP README of Chinese Overview Alibaba Cloud Object Storage Service (OSS) is a cloud storage service provided by Alibaba Clo

Alibaba Cloud 939 Dec 29, 2022