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

Система приема платежей AnyPAY имеет простой интерфейс, позволяющий Вам как владельцу магазина получать оплату в любой электронной валюте от своих покупателей.

Процесс оплаты услуг с помощью мобильной коммерции, банковской картой или электронной валютой происходит простым способом через безопасное соединение, что делает всю операцию не только надежной и конфиденциальной, но и быстрой.
  • Покупатель выбирает товар и способ оплаты в Вашем он-лайн магазине и магазин, в свою очередь, подсчитывает сумму к оплате.
  • Сервер системы AnyPAY получает требуемую информацию о сумме и валюте для осуществления платежа.
  • При необходимости, наша система приема платежей производит титульный обмен, и Вы получаете требуемую сумму в желаемой валюте на кошелек, указанный при регистрации. После оплаты, Ваш покупатель перенаправляется на страницу с оплаченным товаром (на страницу Success URL).
CMS модули
Форма оплаты
Для инициализации оплаты, магазин должен отправить покупателя по данному адресу с передачей параметров.
Предварительно заполнив параметры (номер счета, сумма, ID магазина)

Action - https://any-pay.org/merchant
Method - POST/GET
Fields - поля передаваемые в форме, описаны в таблице ниже:

Название HTML Field Form Обязательный? Описание
ID магазина merchant_id Да ID магазина в системе
Сумма платежа amount Да Сумма к оплате
Валюта платежа currency Нет Валюта платежа по стандарту ISO 4217 (RUB, USD, EUR)
Номер счета pay_id Да Идентификатор платежа в вашей системе
Описание desc Нет Описание платежа
Email email Нет Почтовый ящик покупателя
Платёжная система method Нет Способ оплаты платежа (смотрите список платежных систем)
Дополнительные параметры продавца Определяется продавцом Нет Дополнительные параметры (в сумме до 2048 символов)

Пример:
                       <form action='https://any-pay.org/merchant' accept-charset='utf-8' method='post'>
<input type=hidden name=merchant_id value=1>
<input type=hidden name=amount value=9.9>
<input type=hidden name=currency value='RUB'>
<input type=hidden name=pay_id value=1>
<input type=hidden name=desc value='Техническая документация AnyPAY'>
<input type=hidden name=email value='example@mail.com'>
<input type=hidden name=method value='qiwi'>
<input type=submit value='Купить'>
</form>
Оповещение об оплате
После поступления платежа от ваших покупателей, наш сервис отправляет запрос на URL оповещения, который Вы указали в настройках проекта.
На стороне магазина по адресу URL оповещения должен быть установлен скрипт-обработчик, который проверяет поступившие данные (сумма, номер счета, контрольная подпись).

Action - URL оповещения
Method - POST/GET
Fields - поля передаваемые в форме, описаны в таблице ниже:

Название HTML Field Form Описание
ID магазина merchant_id ID магазина в системе
Сумма платежа amount Сумма к оплате в рублях
Номер счета pay_id Идентификатор платежа в вашей системе
Email email Почтовый ящик покупателя
Платёжная система method Способ оплаты платежа (смотрите список платежных систем)
Контрольная подпись sign Контрольная сумма md5 (формирование подписи secret_key)
Дополнительные параметры продавца Определяется продавцом Дополнительные параметры

Проверка IP

Рекомендуем так же проверять IP сервера отправляющего Вам информацию, наш IP - 185.104.11.152
Пример функции:
function getIP() {
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
   return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array('185.104.11.152'))) {
    die("hacking attempt!");
}            


Формирование подписи secret_key

Формирование подписи производится путем склеивания параметров через ":" и создание контрольной суммы MD5. Склеиваются параметры merchant_id, amount, pay_id и секретный пароль.
$shop_id = '399'; // ID магазина
$secret_key = 'fds6gweg8dHgdKn'; // Секретный пароль
$signature = md5($shop_id.':'.$_REQUEST['amount'].':'.$_REQUEST['pay_id'].':'.$secret_key);        


Подтверждение платежа

Данная функция предназначена для автоматического повтора запроса от нашего сервиса к Вашему URL оповещения.
При включении подтверждения платежа наш сервис будет повторять запрос каждую минуту в течение часа, до тех пор пока не получит ответ OK (латиница).

Пример обработчика платежей
$shop_id = '399';
$secret_key = 'fds6gweg8dHgdKn';
$signature = md5($shop_id.':'.$_REQUEST['amount'].':'.$_REQUEST['pay_id'].':'.$secret_key);  

function getIP() {
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
   return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array('185.104.11.152'))) {
    die("hacking attempt!");
} 

if ($signature != $_REQUEST['sign']) {
    die('ERROR_bad sign');
}

// Оплата прошла успешно, можно проводить операцию  

die('OK');   
Переадресация при успешной оплате
После успешного проведения платежа, покупатель будет перенаправлен на URL успешной оплаты, который Вы задали в настройках проекта.

Не используйте URL успешной оплаты как скрипт-обработчик!

Action - URL успешной оплаты
Method - POST/GET
Fields - поля передаваемые в форме, описаны в таблице ниже:

Название HTML Field Form Описание
Номер счета pay_id Идентификатор платежа в вашей системе
Сумма платежа amount Сумма к оплате в рублях
Дополнительные параметры продавца Определяется продавцом Дополнительные параметры
Переадресация при неуспешной оплате
После НЕ успешного проведения платежа, Покупатель будет перенаправлен на URL неуспешной оплаты, который Вы задали в настройках проекта.

Action - URL неуспешной оплаты
Method - POST/GET
Fields - поля передаваемые в форме, описаны в таблице ниже:
Название HTML Field Form Описание
Номер счета pay_id Номер счета в магазине
Сумма платежа amount Сумма к оплате в рублях
Дополнительные параметры продавца Определяется продавцом Дополнительные параметры
Список платежных систем
Платежная система Значение
Webmoney wm
Qiwi qiwi
Яндекс.Деньги ym
Payeer payeer
Единая касса w1
Bitcoin btc
Btc-e btce
Perfect Money pm
OKpay okpay
AdvCash advcash
Paxum paxum
Exmo exmo
eCoin ecoin
Visa/MasterCard pc
Приватбанк pv
Сбербанк sb
Альфа Банк ab
Тинькофф Банк tb
Русский Стандарт Банк rs
МТС mts
Билайн beeline
Мегафон mf
Теле2 tele2
Евросеть es
Связной sz
Терминалы России term
Банковский перевод bank
CONTACT contact
Юнистрим unistream
Работа с API
Для работы с API необходимо сгенерировать ключ доступа на странице https://any-pay.org/account?type=api
Все запросы отправляются методом GET/POST, ответ в формате JSON.
Проверка баланса
Для получения баланса, необходимо отправить запрос на URL https://any-pay.org/api со следующими параметрами:
Параметр Значение Описание
token строка Ключ API, доступен в настройках профиля.
method строка balance.get


Пример запроса:
https://any-pay.org/api?token=4b427bb41355b65fc5d75352f635e40b&method=balance.get

Пример ответа:
{
   "balance" : "809.29"
}
Получение списка сайтов
Для получения списка сайтов, необходимо отправить запрос на URL https://any-pay.org/api со следующими параметрами:
Параметр Значение Описание
token строка Ключ API, доступен в настройках профиля.
method строка sites.get


Пример запроса:
https://any-pay.org/api?token=4b427bb41355b65fc5d75352f635e40b&method=sites.get

Пример ответа:
{
   "total" : "3",
   "items" : [
      {
         "site" : "any-pay.org",
         "name" : "AnyPAY",
         "id" : "1543",
         "result_url" : "",
         "result_method" : "post"
      },
      {
         "site" : "facebook.com",
         "name" : "FaceBook",
         "id" : "1839",
         "result_url" : "https://facebook.com/pay/result",
         "result_method" : "post"
      },
      {
         "site" : "telegram.org",
         "name" : "TG",
         "id" : "2199",
         "result_url" : "https://telegram.org/payment/res",
         "result_method" : "post"
      },
   ]
}
Получение списка транзакций
Для получения списка транзакций, необходимо отправить запрос на URL https://any-pay.org/api со следующими параметрами:
Параметр Значение Описание
token строка Ключ API, доступен в настройках профиля.
method строка sites.getTransactions
merchant_id число ID магазина
id число ID транзакции (необязательно)
offset число Смещение, необходимое для выборки определенного подмножества транзакций (по-умолчанию - 0)


Пример запроса:
https://any-pay.org/api?token=4b427bb41355b65fc5d75352f635e40b&method=sites.getTransactions&merchant_id=9

Пример ответа:
{
   "total" : "3",
   "items" : [
      {
         "email" : "worten.alex@gmail.com",
         "amount" : "5000",
         "date" : "1493982088",
         "status" : "1",
         "method" : "pc",
         "id" : "109897"
      },
      {
         "email" : "mill@gmail.com",
         "amount" : "1820",
         "date" : "1493977766",
         "status" : "0",
         "method" : "qiwi",
         "id" : "109775"
      },
      {
         "email" : "ricksall@hotmail.com",
         "amount" : "10000",
         "date" : "1493973708",
         "status" : "1",
         "method" : "payeer",
         "id" : "109717"
      }
   ]
}
Создание выплаты
Для создания новой выплаты, необходимо отправить запрос на URL https://any-pay.org/api со следующими параметрами:
Параметр Значение Описание
token строка Ключ API, доступен в настройках профиля.
method строка payout.getRequest
pay_type строка Платежная система
0 - Qiwi Wallet
1 - Яндекс.Деньги
2 - Webmoney
4 - Банковская карта
sum число Суммы выплаты
wallet строка Кошелек/Номер карты


Пример запроса:
https://any-pay.org/api?token=4b427bb41355b65fc5d75352f635e40b&method=payout.getRequest&pay_type=1&wallet=4100134564573101&sum=15000

Пример ответа:
{
   "success" : "Payout created",
   "date" : 1493988458,
   "payout_id" : 6010
}
Получение списка выплат
Для получения списка выплат, необходимо отправить запрос на URL https://any-pay.org/api со следующими параметрами:
Параметр Значение Описание
token строка Ключ API, доступен в настройках профиля.
method строка payout.get
status строка Статус выплаты (необязательно)
wait - Ожидает выплаты
success - Выплачено
fail - Отклонено
offset число Смещение, необходимое для выборки определенного подмножества транзакций (по-умолчанию - 0)


Пример запроса:
https://any-pay.org/api?token=4b427bb41355b65fc5d75352f635e40b&method=payout.get

Пример ответа:
{
   "items" : [
      {
         "date" : "1493988674",
         "status" : "1",
         "wallet" : "79201234567",
         "method" : "0",
         "id" : "6012",
         "sum" : "15000"
      },
      {
         "date" : "1493988458",
         "status" : "1",
         "wallet" : "7920123456",
         "method" : "0",
         "id" : "6010",
         "sum" : "65000"
      },
      {
         "date" : "1493988079",
         "status" : "-1",
         "wallet" : "41001456103",
         "method" : "1",
         "id" : "6008",
         "sum" : "4500"
      }
   ]
}