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

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

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

Название Параметр Обязательный Описание
ID проекта merchant_id Да ID проекта в системе «AnyPay»
Сумма платежа amount Да Сумма к оплате
Валюта платежа currency Нет Валюта платежа по стандарту ISO 4217 (RUB, USD, EUR)
Номер счета pay_id Да Идентификатор платежа в вашей системе
Описание desc Нет Описание платежа
Email email Нет Почтовый ящик покупателя
Телефон phone Нет Номер телефона покупателя
Платёжная система method Нет Способ оплаты платежа (смотрите список платежных систем)
Язык интерфейса lang Нет Язык интерфейса страницы оплаты (ru/en)
Контрольная подпись sign Нет Контрольная подпись формы оплаты (формирование контрольной подписи формы)
Дополнительные параметры продавца Определяется продавцом Нет Дополнительные параметры (в сумме до 2048 символов)


Формирование контрольной подписи в форме оплаты

Формирование подписи производится путем склеивания параметров через ":" и создание контрольной суммы MD5. Склеиваются параметры currency, amount, секретный ключ, merchant_id и pay_id. Включить проверку можете в настройках проекта.
<?php
  $shop_id = '399'; // ID проекта
  $secret_key = 'fds6gweg8dHgdKn'; // Секретный ключ
  $amount = '100.00'; // Сумма к оплате
  $pay_id = '129'; // Номер счета
  $currency = 'RUB'; // Валюта платежа
  $sign = md5($currency.':'.$amount.':'.$secret_key.':'.$shop_id.':'.$pay_id); 
?>

Пример формы на PHP:
<?php
  $shop_id = '1399';
  $secret_key = 'fds6gweg8dHgdKn';
  $amount = '100.00';
  $pay_id = '129';
  $currency = 'RUB';
  $sign = md5($currency.':'.$amount.':'.$secret_key.':'.$shop_id.':'.$pay_id);  
?>

<form action='https://any-pay.org/merchant' accept-charset='utf-8' method='post'>
  <input type='hidden' name='merchant_id' value=<?php echo $shop_id; ?>>
  <input type='hidden' name='amount' value=<?php echo $amount; ?>>
  <input type='hidden' name='currency' value='RUB'>
  <input type='hidden' name='pay_id' value=<?php echo $pay_id; ?>>
  <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='hidden' name='currency' value=<?php echo $currency; ?>>
  <input type='hidden' name='sign' value=<?php echo $sign; ?>>
  <input type=submit value='Купить'>
</form>
Оповещение об оплате
После поступления платежа от ваших покупателей, наш сервис отправляет запрос на URL оповещения, который Вы указали в настройках проекта.
На стороне магазина по адресу URL оповещения должен быть установлен скрипт-обработчик, который проверяет поступившие данные (сумма, номер счета, контрольная подпись).

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

Название Параметр Описание
ID проекта merchant_id ID проекта в системе «AnyPay»
Сумма платежа amount Сумма к оплате в рублях
Идентификатор платежа transaction_id Идентификатор платежа AnyPay. Является уникальным в системе «AnyPay»
Номер счета pay_id Идентификатор платежа в вашей системе
Email email Почтовый ящик покупателя
Платёжная система method Способ оплаты платежа (смотрите список платежных систем)
Дата и время формирования счета date Дата и время формирования счета в формате ДД.ММ.ГГГГ чч:мм:сс
Дата и время оплаты счета pay_date Дата и время оплаты счета в формате ДД.ММ.ГГГГ чч:мм:сс
Контрольная подпись sign Контрольная сумма md5 (Формирование контрольной подписи)
Дополнительные параметры продавца Определяется продавцом Дополнительные параметры

Проверка IP

Рекомендуем так же проверять IP сервера отправляющего Вам информацию, наш IP - 185.162.128.88
Пример функции:
<?php
  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.162.128.88'))) {
    die("hacking attempt!");
  }     
?>     


Формирование контрольной подписи в обработчике

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


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

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

Пример обработчика платежей
<?php
  $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.162.128.88'))) {
     die("hacking attempt!");
  } 

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

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

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

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

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

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

Action - URL неуспешной оплаты
Method - POST/GET
Fields - поля передаваемые в форме, описаны в таблице ниже:
Название Параметр Описание
Номер счета pay_id Номер счета в магазине
Сумма платежа amount Сумма к оплате в рублях
Дополнительные параметры продавца Определяется продавцом Дополнительные параметры
Список платежных систем
Платежная система Значение
Webmoney wm
Qiwi Wallet 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
Промсвязьбанк psb
Русский Стандарт Банк rs
МТС mts
Билайн beeline
Мегафон mf
Теле2 tele2
Евросеть es
Связной sz
Терминалы России term
Банковский перевод bank
CONTACT contact
Юнистрим unistream
Работа с API
Для работы с API необходимо сгенерировать ключ доступа на странице https://any-pay.org/panel/cabinet?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 - Отклонено
id число ID выплаты (необязательно)
offset число Смещение, необходимое для выборки определенного подмножества транзакций (по-умолчанию - 0)


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

Пример ответа:
{
   "total" : "3",    
   "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"
      }
   ]
}