Описание

Мерчант - интерфейс для приема платежей через интернет. Через единую точку входа он позволяет организовать оплату на Вашем сайте множеством платежных систем. Имеет простой протокол взаимодействия и легкую интеграцию в новый или уже работающий бизнес.

Для начала работы необходимо сделать несколько шагов:

  • зарегистрироваться на сайте WAPKASSA.NET;
  • добавить и настроить магазин в разделе Магазины;
  • установить на своем сайте HTML-форму для перенаправления на оплату;

Воспользуйтесь API для взаимодействия вашего сервиса с нашей платежной системой

Мерчант - Настройка магазина

Для того, что бы начать принимать оплату на своем сайте, вам необходимо добавить магазин в разделе "Магазины"

Описание настроек магазина

НазваниеОписание
Название Произвольное название вашего магазина
URL Адрес вашего магазина. Внимание! После первого сохранения вы не сможете отредактировать значение этого поля
Описание Краткое описание вашего магазина
Секретная фраза Набор цифр и букв в нижнем регистре длиной в 64 символа. Служит для генерации подписи ваших запросов. После сохранения скрывается и вы не сможете никак его узнать. Если вы потеряли значение, вы можете ввести новое. Сгенерировать его можно здесь: http://www.onlinepasswordgenerator.ru/?value=64&usenums=on&uselower=on
Адрес перенаправления при успешной оплате URL-адрес, на который будет перенаправляться покупатель после успешной оплаты. Домен должен совпадать с указанным в поле URL. Внимание! Перенаправление не является 100% фактом оплаты. Смотрите раздел "Уведомления"
Адрес перенаправления при ошибке оплаты URL-адрес, на который будет перенаправляться покупатель после ошибки оплаты. Домен должен совпадать с указанным в поле URL.
Адрес отправки уведомлений URL-адрес, на который будет отправляться уведомление о оплате. Смотрите раздел "Уведомления" Домен должен совпадать с указанным в поле URL.

После того как вы добавили магазин, Ожидайте изменение статуса магазина

Мерчант - Инициализация платежа

Для перенаправления пользователя на оплату вы должны создать HTML-форму с методом POST на адрес https://wapkassa.net/oplata.php

Обязательные параметры

ИмяЗначениеОписание
shop_id int Идентификатор вашего магазина
payment_id int ID платежа в вашей системе, не должен повторяться
amount decimal(12,2) Сумма
description string(128) Описание
currency int Спасоб оплати (NULL - Все,
1 - QiWi
2 - Яндекс
3 - Карты
4 - PAYEER)
необязательный параметр.

Дополнительные параметры

ИмяЗначениеОписание
success string Адрес перенаправления при успешной оплате (Если разрешено в настройках)
fail string Адрес перенаправления при ошибке оплаты (Если разрешено в настройках)

Пример создания формы на языке php

<?php
$data = [
    'shop_id' => 1,
    'payment_id' => 1,
    'amount' => 5,
    'description' => 'Оплата товара',
	/* 'currency' > 1, (1 - QiWi, 2 - Яндекс, 3 - Карты, 4 - PAYEER)*/

];

?>
<form method="POST" action="https://wapkassa.net/oplata.php">
    <input name="shop_id"        value="<?=$data['shop_id']; ?>">
    <input name="payment_id"     value="<?=$data['payment_id'] ?>">
    <input name="amount"      value="<?=$data['amount'] ?>">
    <input name="description" value="<?=$data['description'] ?>">
    <!--  <input name="currency"    value="<?=$data['currency'] ?>">-->

    <button>Оплатить</button>
</form>

Мерчант - Уведомления о успешных платежах

После получения нами подтверждения оплаты вашего платежа мы высылаем вам уведомление в виде POST-запроса на указанный в настройках адрес.

Для принятия уведомления вам необходимо проверить следующие параметры:

  • ID платежа в вашей системе
  • Секретная фраза
  • сумма платежа
  • Спасоб оплати (1 - QiWi, 2 - Яндекс, 3 - Карты, 4 - PAYEER)

  • payment_id
  • amount
  • currency
  • cekretkey

Пример проверки уведомления на языке php:

<?php
$cekretkey = 'cxv76cb4vhdfh98dfg234m234n12knu5h6';
$payment_id = '1';
$amount = '100.00';


if($_SERVER["REMOTE_ADDR"]!='37.140.192.216'){exit('Ошибка IP');}

if ($_POST["cekretkey"] != $cekretkey) {
    exit('Ошибка 1001');
}

if ($_POST["payment_id"] != $payment_id) {
    exit('Ошибка 1002');
}

if ($_POST["amount"] < $amount) {
    exit('Ошибка 1003');
}

confirm();

TEST Мерчант - Уведомления о успешных платежах

После получения нами подтверждения оплаты вашего платежа мы высылаем вам уведомление в виде POST-запроса на указанный в настройках адрес.

Для принятия уведомления вам необходимо проверить следующие параметры:

  • ID платежа в вашей системе
  • Секретная фраза
  • сумма платежа
  • Спасоб оплати (1 - QiWi, 2 - Яндекс, 3 - Карты, 4 - PAYEER)

  • payment_id
  • amount
  • currency
  • cekretkey

Пример проверки уведомления на языке php:

<?php
$cekretkey = 'cxv76cb4vhdfh98dfg234m234n12knu5h6';
$payment_id = '1';
$amount = '100.00';


if($_SERVER["REMOTE_ADDR"]!='37.140.192.216'){exit('Ошибка IP');}

if ($_POST["cekretkey"] != $cekretkey) {
    exit('Ошибка 1001');
}

if ($_POST["payment_id"] != $payment_id) {
    exit('Ошибка 1002');
}

if ($_POST["amount"] < $amount) {
    exit('Ошибка 1003');
}

confirm();

TEST Мерчант - Инициализация платежа

Для теста на оплату вы должны создать HTML-форму с методом POST на адрес https://wapkassa.net/test/oplata.php

Обязательные параметры

ИмяЗначениеОписание
shop_id int Идентификатор вашего магазина
payment_id int ID платежа в вашей системе, не должен повторяться
amount decimal(12,2) Сумма
description string(128) Описание
currency int Спасоб оплати (NULL - Все,
1 - QiWi
2 - Яндекс
3 - Карты
4 - PAYEER)
необязательный параметр.

Дополнительные параметры

ИмяЗначениеОписание
success string Адрес перенаправления при успешной оплате (Если разрешено в настройках)
fail string Адрес перенаправления при ошибке оплаты (Если разрешено в настройках)

Пример создания формы на языке php

<?php
$data = [
    'shop_id' => 1,
    'payment_id' => 1,
    'amount' => 5,
    'description' => 'Оплата товара',
	/* 'currency' > 1, (1 - QiWi, 2 - Яндекс, 3 - Карты, 4 - PAYEER)*/

];

?>
<form method="POST" action="https://wapkassa.net/test/oplata.php">
    <input name="shop_id"        value="<?=$data['shop_id']; ?>">
    <input name="payment_id"     value="<?=$data['payment_id'] ?>">
    <input name="amount"      value="<?=$data['amount'] ?>">
    <input name="description" value="<?=$data['description'] ?>">
    <!--  <input name="currency"    value="<?=$data['currency'] ?>">-->

    <button>Оплатить</button>
</form>

Api - Общая информация

Все запросы принимаются на адрес https://wapkassa.net/api/{userId}/{method}

Ваш User ID вы можете увидеть личного кабинета

Формат ответа - JSON


Общие ошибки

КодОтветОписание
401 [] Не авторизован. Пользователь не найден
423 ["Blocked"] Вы заблокированы, обратитесь в поддержку
423 [] Api не задействовано
403 [] IP не разрешен
401 [] Не авторизован. Неверный токен
400 json Ошибка входящих данных. Список ошибок будет перечисленн массивом в формате parameterName => errorMessage
500 mixed Ошибка сервера, повторите запрос позже

Api - Настройка

Для того, что бы начать пользоваться API, вам необходимо настроить несколько параметров в разделе "Настройки".
Зайдите в раздел и перейдите на вкладку "Настройки API"

Описание настроек API

НазваниеОписание
IP-адреса IP адреса ваших серверов, с которых будут приходить запросы к нашему API
Ключ Набор цифр и букв в нижнем регистре. После сохранения скрывается и вы не сможете никак его узнать. Если вы потеряли значение, вы можете ввести новое.

Api - Выплаты

Создание выплаты

Название метода: payout
Метод запроса: POST

Обязательные параметры

ИмяЗначениеОписание
user int Ваш ID
number string Кошелек получателя
type string Метод (yandex - Яндекс деньги
, qiwi - QiWi кошелек,
wmr - Webmoney рубл,
payeer - PAYEER рубл,
oson - UzCard,
visa_rus - Перевод на карту Visa (карты российских банков) ,
master_rus - Перевод на карту MasterCard (карты российских банков),
karta_mir - Перевод на карту национальной платежной системы МИР,
karta_qiwi - Перевод на Виртуальную карту QIWI,
Для карт, выпущенных банками стран Азербайджан, Армения, Белоруссия, Грузия, Казахстан, Киргизия, Молдавия, Таджикистан, Туркменистан, Украина, Узбекистан:
karta_visa_sng - Перевод на карту Visa,
karta_master_sng - Перевод на карту MasterCard,
)
summa decimal(12,2) Сумма, которая должна быть зачислена получателю
key int Ключ

В случае успешного создания выплаты вам будет возвращен параметр operationId, являющийся идентификатором выплаты в нашей системе

Внимание! В результате таймаута запроса возможен такой исход, что выплата успешно создастся. Если при повторном запросе вы получаете ошибку дубликата id, вам нужно разрешить эту проблему вручную

Пример запроса на языке php

						
<?php
$userId = 1;
$token = 'rbs6bsa0ymw50knwe93qwkyflhq7k4ivj2shey3pnojr2kgu10sranvwocho6gay';

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => "https://wapkassa.net/api/payout/",
    CURLOPT_POST => 1,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_POSTFIELDS => [
        'user' => $userId,
        'type' => 'qiwi',
        'summa' => '10.5',
        'key' => $token,
        'number' => '79998887766', //(INT)
    ],
]);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if (false === $response) {
    //Timeout handler
    echo 'timeout';
} elseif (200 !== $code) {
    //Error handler
     $responseData = json_decode($response, true);
 echo "ERROR: {$responseData['error']}";
} else {
    $responseData = json_decode($response, true);
    //Success handler
    echo "operationId: {$responseData['operationId']}, status: {$responseData['status']}";
}

			

Статусы выплат

Название метода: payouts
Метод запроса: POST

Обязательные параметры

ИмяЗначениеОписание
fromOperationId int Идентификатор выплаты в нашей системе, начиная с которого вы хотите узнать статусы

В случае успешного ответа вы получите массив operations содержащий в себе до 100 элементов с информацией о выплатах:

ИмяЗначениеОписание
id int Идентификатор выплаты в нашей системе
statusId int 1 - На очереди, 2 - В процессе, 3 - Успешно, 4 - Ошибка
isPartially bool true, если выплата содержит в себе несколько частей. При этом в статусе 4(Ошибка) возможна ситуация, когда одна часть выплачена, а другая нет. Читайте информацию под таблицей
transferredAmount decimal Выплаченная сумма

При выплатах больших сумм перевод разбивается на несколько транзакций. Не редки случаи, когда кошелек получателя блокируется или перестает принимать переводы после нескольких успешных частей. В этом случае статус переходит в 4(ошибка). Обязательно проверяйте параметр isPartially и transferredAmount.


Пример запроса на языке php


<?php
$userId = 1;
$token = 'rbs6bsa0ymw50knwe93qwkyflhq7k4ivj2shey3pnojr2kgu10sranvwocho6gay';

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => "https://wapkassa.net/api/payouts/",
    CURLOPT_POST => 1,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_POSTFIELDS => [
        'user' => $userId,
        'fromOperationId' => '1',
		'key' => $token,
    ],
]);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if (200 !== $code) {
    //Error handler
    echo 'error';
} else {
    $responseData = json_decode($response, true);
    //Success handler
    var_dump($responseData);
}
			
		
		
 WAPKASSA.NET © 2020