Download the PHP package waix/waix-php without Composer

On this page you can find all versions of the php package waix/waix-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package waix-php

waix-php — WhatsApp API для PHP

English

Клиент WAIX для PHP 8.1 и новее. Нужны расширения cURL и JSON. Установка через Composer, пространство имён Waix, автозагрузка PSR-4.

Установка

Пакет Packagist · Исходный код

Дополнительный VCS-репозиторий в настройках Composer не нужен.

Перед первым запросом

Подключите номер в WAIX, получите Connection ID и серверный ключ с правом messages:write. Пример использует одобренный шаблон order_ready на русском языке с одной переменной в теле.

Отправка шаблона

OTP: отправка и проверка

Ошибки, файлы и параметры клиента

Перехватывайте Waix\WaixError. Поля: status (0 при сетевой ошибке), errorCode, requestId, retryAfter, body. Таймаут задаётся в миллисекундах:

Загрузка файла: $waix->media->upload($connectionId, '/path/invoice.pdf', 'application/pdf', ['type'=>'document']).

Пагинация: $waix->messages->list(['limit'=>50, 'before'=>$cursor, 'before_id'=>$cursorId]).

Проверка вебхука: Waix\Webhook::verify($rawBody, $timestampHeader, $signatureHeader, $secret).

Разработка

Запустите composer validate --strict и composer test. Контрактные тесты подменяют транспорт и не отправляют сообщения клиентам. Проверка выпуска также запускает cURL против локального HTTP-сервера и проверяет запрет перенаправлений.

Какие методы есть

Раздел Возможности
Сообщения Отправка, список с пагинацией, просмотр, явный повтор
Подключения Список номеров, чтение и изменение профиля компании
Шаблоны Список, просмотр, создание, изменение, удаление, предварительный просмотр
Медиа Загрузка файла, список, получение URL, удаление
Вебхуки Чтение и изменение настроек, тест, удаление, смена секрета
OTP Отправка кода, проверка, статус запроса

Все запросы идут на https://waix.kz/api/v1. SDK возвращает полный JSON-ответ: data, а также pagination, если она есть. Для остальных операций API v1 можно использовать метод request с относительным путём. Не передавайте в него адрес, полученный от непроверенного пользователя.

Некоторым операциям нужны права управления и ключ компании. Ключ отдельного OTP-проекта не даёт доступа к настройкам вебхука компании. Список прав и полей: спецификация API.

Повторные запросы и доставка

Создайте UUID один раз при записи события в своей базе. Передайте его как ключ идемпотентности. При потере ответа повторяйте запрос с тем же UUID и теми же параметрами: новый ключ означает новое сообщение.

HTTP 202 означает, что сообщение поставлено в очередь. Доставку проверяйте по вебхуку, журналу WAIX или методу просмотра сообщения. У SDK нет автоматических повторов и переходов по HTTP redirect. Для 429 учитывайте Retry-After; ошибки 400, 401, 403 требуют исправления параметров или доступа. Сообщение со статусом outcome_unknown нельзя повторять вслепую.

Проверка подписи вебхука

Передавайте в функцию проверки исходные байты тела HTTP-запроса до разбора JSON, заголовки X-Waix-Timestamp, X-Waix-Signature и секрет вебхука. Подпись: HMAC-SHA256 от timestamp + "." + rawBody, с префиксом v1=. Сравнение выполняется за постоянное время; допустимое отклонение времени по умолчанию — 300 секунд.

Отклоняйте неверную подпись. Повторные события определяйте по X-Waix-Delivery: верная подпись сама по себе не защищает от повторной доставки в пределах допустимого времени. Сначала надёжно сохраните событие, затем ответьте кодом 2xx.

Ключи, OTP и данные клиентов

Документация и поддержка

Документация WAIX · Поддержка · Тарифы.

SDK работает с API v1 WAIX. Это не клиент Meta Graph API. Версии SDK следуют SemVer. Лицензия — MIT.

Поведение версии 0.2.0

SDK не повторяет запрос за вас. HTTP-ошибка от прокси остаётся HTTP-ошибкой, даже если вместо JSON пришёл HTML: сохраняются статус, request ID и Retry-After. Перенаправления запрещены. Некорректный успешный ответ вызывает INVALID_RESPONSE; ответ больше установленного лимита — RESPONSE_TOO_LARGE. Лимит по умолчанию — 2 МиБ, его можно увеличить до 16 МиБ.

Ситуация Что делать
400 / 422 Исправить поля, формат телефона, шаблон или код OTP.
401 / 403 Проверить ключ, права и принадлежность подключения/OTP-проекта.
409 Проверить конфликт ключа идемпотентности: под одним ключом нельзя менять тело.
429 Отложить запрос на срок из Retry-After, сохранив прежний ключ и тело.
5xx, TIMEOUT, TRANSPORT_ERROR Результат отправки может быть неизвестен. Сначала проверить сохранённый ID; если ID не получен, повторять прежний запрос с прежним ключом через ограниченную очередь повторов.
INVALID_RESPONSE / RESPONSE_TOO_LARGE Проверить прокси, адрес API и размер страницы. Не создавать новую отправку.
OTP_INVALID Код неверен, истёк или уже использован. Не выдавать сессию приложения.

body исключения доступен для диагностики, но может содержать данные клиента. В журнал записывайте только безопасные метаданные из примера ниже. Не сериализуйте целиком ответ sandbox OTP.

Обновление с 0.1.x

Имена существующих методов сохранены. У otp.verify код должен быть строкой из шести цифр: '012345', а не число. Значения query — только строки, конечные числа и boolean; сложные объекты нужно разобрать на параметры. Ошибки HTML от прокси теперь имеют API_ERROR, а перенаправления — REDIRECT_DISALLOWED. При обработке ошибок ориентируйтесь также на HTTP-статус.

Пагинация и диагностика

Генератор запрашивает страницы по мере чтения, переносит оба курсора и сохраняет фильтры. Повторный курсор вызывает INVALID_PAGINATION; достижение maxPages — PAGINATION_LIMIT. По умолчанию предел — 1000 страниц.

SDK использует cURL с проверкой TLS. timeoutMs ограничивает весь запрос, подключение — максимум 10 секунд. Сертификаты на сервере должны быть актуальны; отключать их проверку не нужно.


All versions of waix-php with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
ext-curl Version *
ext-json Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package waix/waix-php contains the following files

Loading the files please wait ...