Как только пользователь переводит оплату, и этот перевод оказывается на Вашем счету, Paysera обращается по указанному callbackurl и передаёт всю необходимую информацию о произведённом платеже.

Для интеграции системы макро- платежей рекомендуем использовать подготовленную нами программную библиотеку с открытым исходным кодом – libwebtopay . Библиотека выполняет все необходимые проверки сохранности передаваемых и получаемых данных.

Чтобы libwebtopay работала успешно, из находящихся в архиве файлов достаточен только один файл libwebtopay/WebToPay.php. Остальные файлы предназначены для тестов, примеров и пояснений. Самую новую версию файла libwebtopay/WebToPay.php (только одного файла) можно скачать по адресу:

Внимание: libwebtopay можно использовать как с услугами макро-, так и микро- платежей.

Параметр callbackurl это адрес скрипта на Вашем сайте информирующий систему Paysera о получении запроса о произведённом платеже. Ответ генерируется следующим образом:

1. Создайте каталог.

Создайте каталог с названием libwebtopay, в котором хранятся все файлы, связанные с интеграцией оплат.

2. Скачайте библиотеку libwebtopay.

В созданный каталог libwebtopay скачайте файл WebToPay.php.

3. Создайте callback.php.

В каталоге libwebtopay создайте файл с названием callback.php. Файл должен содержать:

<?php
require_once('WebToPay.php');

try {
    $response = WebToPay::checkResponse($_GET, array(
        'projectid' => 123,
        'sign_password' => 'secret',
    ));

    //@todo: check if $response['projectid'] matches your project ID
    //@todo: check if SMS with ID $response['id'] was not already confirmed in your system

    echo 'OK Spasibo za otpravku';
}
catch (Exception $e) {
    echo get_class($e).': '.$e->getMessage();
}

После $_GET проверки данных, если всё в порядке, необходимо вернуть ответ, как это сделано в примере выше (echo 'OK';). Возможные варианты ответа:

OK <текст>
Указанный после ключевого слова OK текст будет отправлен обратно, как ответное сообщение.
Например: "OK Spasibo za otpravku" (будет отправлено ответное сообщение: "Spasibo za otpravku").
NOSMS
В этом случае отправитель не получит никакого ответа, а ответ Вы сможете отправить поззже (в течение недели).
WAPPUSH <url> <текст>
Система отправит ответ отправителю методом Wap Push.
Например: "WAPPUSH http://www.address.com/services/link описание услуги".

4. Отправка ответного сообщения.

Если вы не отправили ответного сообщения сразу же с OK <текст>, ответ Вы сможете отправить поззже (в течение недели), используя эту функцию libwebtopay:

<?php

// Включает в себя библиотеку webtopay
require_once('WebToPay.php');

try {
    // Проверка данных ответа о произведенной оплате
    WebToPay::smsAnswer(array(
        // Уникальный номер сообщения в нашей системе. Номер вы получили вместе с сообщением.
        'id'            => 0,

        // Ответное сообщение
        'msg'           => 'Spasibo za otpravku',

        // Сгенерирован ваш новый пароль проекта в системе paysera.com
        'sign_password' => 'sekret',
    ));
}
catch (Exception $e) {
    echo get_class($e).': '.$e->getMessage();
}

Для интеграции системы макро- платежей рекомендуем использовать подготовленную нами программную библиотеку с открытым исходным кодом – libwebtopay . Библиотека выполняет все необходимые проверки сохранности передаваемых и получаемых данных.

Скачайте самую новую версию libwebtopay в желаемом формате:

Чтобы libwebtopay работала успешно, из находящихся в архиве файлов достаточен только один файл libwebtopay/WebToPay.php. Остальные файлы предназначены для тестов, примеров и пояснений. Самую новую версию файла libwebtopay/WebToPay.php (только одного файла) можно скачать по адресу:

Также можете скачать вариант с различными версиями (из Mercurial VCS):

$ hg clone https://bitbucket.org/paysera/libwebtopay

Вы также можете скачать версионный .NET вариант (из GitHub):

$ git clone https://github.com/evp/webtopay-lib-dotnet.git

Внимание: libwebtopay можно использовать как с услугами макро-, так и микро- платежей.

Можете испробовать libwebtopay, запустив подготовленный демонстрационный сценарий. Демонстрацию можете запустить, набрав в адресной строке Интернет-браузера:

http://www.yourwebsiteurl.com/libwebtopay/demo/

Внимание: в адресе указанный путь к demo каталогу может отличаться в зависимости от того, куда вы поместили содержимое архива.

Внимание: для того, чтобы демо успешно функционировало укажите номер вашего проекта в системе Paysera, в поле projectid. Демо не будет работать, если будете пробовать запускать её с Вашего компьютера (localhost).

Структура информирования об оплате

Paysera отправляет ответ по указанному Вами callbackurl адресу. К указанному Вами callbackurl адресу добавляются дополнительные GET параметры, список которых размещён ниже.

  • data - закодированные параметры из системы Paysera. Используется тот же алгоритм кодирования данных, как и при создании запроса для макро-платежей. Для получения параметров надо выполнить 3 действия:
    1. Изменить символы «-» на «+», «_» на «/».
    2. Декодировать строку с использованием кодировки base64.
    3. Получить массив параметров из декодированной строки, которая является строкой URL зашифрованных параметров.
    Пример на языке PHP:
    $params = array();
    parse_str(base64_decode(strtr($_GET['data'], array('-' => '+', '_' => '/'))), $params);
    //use $params
  • ss1 - подпись параметра data без использования схемы закрытых – открытых ключей. Алгоритм подписи:
    ss1 = md5(data + password)
  • ss2 - SHA-1 подпись параметрa data, с использованием схемы закрытых – открытых ключей. Открытый ключ Paysera, который используется для создания этой подписи, можно найти в https://www.paysera.com/download/public.key

Когда Вы получите обратный вызов, перед подтверждением заказа Вы обязаны проверить, по крайней мере, одну подпись. Если есть возможность, всегда (также) проверьте подпись более высокой безопасности ss2.

Закодированные параметры

Параметр Описание
to Короткий номер, на который было отправлено сообщение
sms Содержание сообщения с ключевым и суб-ключевым словом (до 160 символов).
from Мобильный номер, с которого было отправлено сообщение.
operator Оператор мобильной сети ("Bitė", "TELE2", "Omnitel", "Orange", "LMT" и т.д.).
amount Цена сообщения для клиента в центах. Например, 100 (1 литовский лит), 500 (5 литовских литов) и т.д.
currency Валюта (USD, EUR), в которой вы предпочитаете получать платежи клиента. Если указанная валюта не может быть принята посредством выбранного метода оплаты, система автоматически конвертирует сумму в поддерживаемую валюту по курсу текущего дня. В ответе на Ваш сайт будут переданы payamount и paycurrency.
country Двухзначный код страны. (LT, EE, LV, UA, RU и т.д.)
id Уникальный номер сообщения в системе Paysera
test Параметр, при наличии которого можно тестировать соединение. Оплата не производится и результат возвращается сразу, как будто бы оплата была произведена. Для того, чтобы протестировать, необходимо активировать режим теста возле выбранного проекта. Путь: "Управление проектами" -> "Услуга сбора платежей" (возле конкретного проекта) -> "Разрешить тестовую оплату" (отметить).
key Ключевое слово
projectid Уникальный номер проекта. Оплаты могут производиться только в рамках утверждённого проекта.
version Номер версии спецификации (API) платежной системы Paysera.