Сценарий:
Доступ к функциям предоставляется посредством технологии веб-сервисов, что позволяет обращаться к данным функциям из программ, построенных на различных технологиях.
WSDL файл, который предоставляет описание всех используемых функций и структур, расположен по адресу:
Выставление счета в платежной системе Wooppay осуществляется выполнением методов веб-сервиса по SOAP протоколу. Все запросы должны быть в кодировке UTF-8.
Авторизация в системе выполняется командной core_login. В передаваемых параметрах необходимо указать логин с паролем от кошелька субъекта. Если авторизация на стороне сервера прошла успешно – в ответе на выполнение метода вернется информация о пользователе и ключ сессии (ключ сессии становится не действительным при повторной авторизации, либо в случае, когда некоторое время не совершается никаких действий), а параметр error_code должен иметь значение «0». Для дальнейшей работы с сервером необходимо после каждого последующего выполнения команд API передавать ключ сессии в заголовке HTTP запроса.
Cookie: session=<ключ сессии>
Входные параметры:
Параметр | Тип | Описание |
---|---|---|
username | xsd:string | Логин |
password | xsd:string | Пароль |
Возвращаемые параметры:
Параметр | Тип | Описание |
---|---|---|
session | xsd:string | Идентификатор сессии |
id | xsd:int | Id пользователя |
username | xsd:string | Имя пользователя |
login | xsd:string | Логин |
type | xsd:int | Тип пользователя |
roles | tns:stringArray | Массив ролей пользователя |
error_code | xsd:int | Если операция прошла успешно, имеет значение "0" |
Пример запроса:
loginpassword
Пример ответа:
9e36ba0f5770b4b2a0a9fe51e79bb22c123456UserNamelogin1234someRolesomeRole0
Создание инвойса выполняется командой cash_createInvoice2Extended
Входные параметры:
Параметр | Тип | Описание |
---|---|---|
cardForbidden | xsd:int | Доступность оплаты с карты (0 - доступно, 1 - запрещено) |
userEmail | xsd:string | Электронная почта клиента |
userPhone | xsd:string | Номер телефона клиента |
referenceId | xsd:string | Идентификатор инвойса в системе мерчанта. Должен быть уникальным для этого мерчанта |
backUrl | xsd:string | Адрес, на который перенаправляется пользователь после оплаты |
requestUrl | xsd:string | Адрес, на котором сервер мерчанта ждет уведомления об успешной оплате инвойса |
addInfo | xsd:string | Дополнительная информация - необязательный параметр, в дальнейшем функционал поля расширили. Теперь в addInfo передается код подтверждения, указанный в СМС |
amount | xsd:float | Сумма инвойса |
deathDate | xsd:string | Дата, после которой инвойс считается устаревшим и оплата не принимается. Дата принимается в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
serviceType | xsd:int | В данном примере тип 9 - узбекский инвойс |
description | xsd:string | Описание инвойса для пользователя |
orderNumber | xsd:int | Идентификатор заказа (Не используется) |
Возвращаемые параметры:
Параметр | Тип | Описание |
---|---|---|
operationId | xsd:int | Id операции |
operationUrl | xsd:string | Адрес для оплаты |
Пример запроса:
0test@example.com99890123456732135136https://www.test.wooppay.com/https://www.test.wooppay.com/5009Description
Пример ответа:
12312312https://invoice.test.wooppay.com/?id=132460&key=03677bdba79ceb93fc2f3152820f8a160
После выставления счёта будет выполняться GET запрос (по умолчанию) на адрес, указанный в параметре requestUrl до тех пор, пока не будет возвращена строка JSON формата {"data":1}. В случае отличного ответа от {"data":1}, запросы будут отправляться повторно - 100 запросов, 1 запрос в 5 минут. Если необходимо передать запрос, отличный от GET, следует передавать строку JSON формата с параметрами url и type, где url - адрес, на котором сервер мерчанта ждет уведомления об успешной оплате инвойса, type - тип запроса.
Пример:
{"url":"https:\/\/www.test.com\/test.php","type":"POST"}
После получения уведомления по requestUrl в системе мерчанта желательно запросить статус операции методом cash_getOperationData. Если статус имеет значение «4», то операция успешно проведена.
Проверка статуса операции выполняется методом cash_getOperationData
Входные параметры:
Параметр | Тип | Описание |
---|---|---|
operationId | xsd:int | Id операции |
Возвращаемые параметры:
Параметр | Тип | Описание |
---|---|---|
id | xsd:int | Id операции |
type | xsd:int | Тип операции |
lotId | xsd:int | Id лота, если операция связана с приобретением лота; иначе имеет значение 0 |
sum | xsd:float | Сумма |
fee | xsd:float | Комиссия |
date | xsd:string | Дата проведения |
status | xsd:int | Статус операции |
comment | xsd:string | Комментарий |
fromSubject | xsd:string | Логин отправителя |
toSubject | xsd:string | Логин получателя |
fromFullName | xsd:string | Имя отправителя |
toFullName | xsd:string | Имя получателя |
Пример операции со статусом 4 - Проведена
Пример запроса:
50338338
Пример ответа:
503383382050002019-05-15 10:40:114nothingZ998901234567eventumZ998901234567eventum0
Пример ответа операции со статусом 1 - Новая операция
507033162050102019-12-04 03:46:021Paymentinvoice_usereventuminvoice_usereventum0
Статус | Описание |
---|---|
1 | Новая |
2 | На рассмотрении |
4 | Проведена |
7 | Отменена |
9 | Ожидает проведения |
10 | Удалена |
Код ошибки | Описание |
---|---|
1 | Неверный формат пакета |
2 | Неизвестная команда |
3 | Ошибка на стороне сервера |
4 | Доступ запрещен |
5 | Необходимо войти в систему |
7 | Переданы некорректные параметры |
8 | Превышен лимит запросов |
11 | Не удалось подтвердить операцию |
12 | Перевод не удался |
13 | Не удалось отменить операцию |
14 | Не удалось произвести возврат платежа |
101 | Неверные данные при входе в систему |
102 | Недостаточно средств на счету |
103 | Пользователь не найден |
109 | Не удалось отправить запрос на перевод |
111 | Не удалось выставить счёт |
112 | БД недоступна |
113 | Ошибка на стороне БД |
160 | Не удалось получить ссылку для проверки возможности платежа |
161 | Не удалось получить ссылку для платежа |
162 | Не удалось получить метод запроса к мерчанту |
163 | Не удалось получить метод ответа от мерчанта |
164 | Не удалось произвести проверку возможности платежа |
165 | Не удалось провести платёж |
168 | Неизвестный тип взаимодействия с мерчантом |
176 | У мерчанта не задан тип запроса к нему |
177 | У мерчанта не задан тип ответа от него |
187 | Не удалось подтвердить запрос платежа |
213 | Нет такого сервиса в базе |
215 | Нулевая сумма операции |
216 | Перевод самому себе |
308 | IP пользователя заблокирован |
402 | Неизвестный тип пакета |
403 | Разбор пакета не удался |
408 | Неизвестная денежная операция |
410 | Некорректная структура пакета |
411 | Пустое обязательное поле |
413 | Неверный формат номера |
415 | Операция по выводу средств уже была проведена |
419 | Неизвестный тип платежа/перевода |
420 | Передано отрицательное число |
801 | Неклассифицированная ошибка |
802 | Не найден счёт/аккаунт/etc |
803 | В биллинг передан некорректный параметр |
804 | Не удалось найти поля биллинга, соответствующие переданным параметрам |
805 | Не прошла проверка аккаунта на стороне мерчанта |
806 | Указан неактивный аккаунт |
807 | Платёж запрещён |
808 | Платёж не окончен |
809 | Технические проблемы на стороне мерчанта |
810 | Мерчант временно недоступен |
811 | Слишком маленькая сумма платежа |
812 | Слишком большая сумма платежа |
417 | Данная операция отменена пользователем |