Если вы не нашли в списке доступных к подключению ПС, вы можете собственными силами подключить любую другую ПС, используя протокол взаимодействия с сервисами Опентао.
Опентао предоставляет протокол, позволяющий Контрагенту интегрировать способы оплаты, недоступные клиентам Опентао, в систему заказов и учета движения средств.
Опентао - система заказов и учета движения средств. Биллинг.
Контрагент - клиент Опентао.
Плательщик - пользователь веб-ресурса Контрагента, совершающий платеж.
ПС - платежная система.
Для подключения к данному протоколу необходимо:
Диаграмма последовательности взаимодействия всех участников платежа
Сам процесс взаимодействия является обобщенным примером. В некоторых реальных ситуациях процесс может несколько отличаться от представленного на диаграмме.
Далее следует подробное пошаговое описание последовательности процесса взаимодействия.
1. Плательщик инициализирует оплату.
2-4. Сайт контрагента запрашивает способы оплаты в Опентао метод GetPaymentModes и показывает плательщику.
5. Плательщик выбирает способ оплаты и заполняет платежные данные, такие как сумма платеж и др.
6. Сайт Контрагента запрашивает данные системы учета Опентао для инициализации платежа в ПС с помощью метода GetPaymentParameters
7. Опентао передает платежные данные в ответ на вызов метода GetPaymentParameters
где PaymentForm
PaymentFormParameter - платежный параметр, являющийся по сути KeyValuePair
|
8. Контрагент на основе данных, полученных на шаге 7, формирует платежную форму с учетом требований ПС.
9. По данным, полученным из платежной формы, ПС формирует контракт, отправляет его плательщику и ждет подтверждения оплаты.
10. Плательщик подтверждает платеж.
11. ПС принимает и проверяет платеж.
12. ПС возвращает в браузер плательщика ответ - страницу с сообщением об успехи/неудачи платежа.
13. ПС уведомляет Контрагента о совершенном платеже
14. Контрагент адаптирует данные, полученные в шаге 13, к параметрам оповещения Опентао.
15. Контрагент уведомляет Опентао о совершенном платеже.
Необходимо передать нижеследующие параметры на адрес оповещения RequestUrl методом RequestMethod (получены от Опентао на 7 шаге), используя транспорт HTTP. Обязательные параметры (описание см. в 3.3.1):
|
16. Опентао проверяет параметры оповещение. В случае когда все проверки пройдены и статус платежа помечен как Completed - зачисляет средства на счет плательщика.
17. Опентао подтверждает Контрагенту получение оповещения о платеже.
Структура ответа на оповещение
где
Пример ответа о безошибочной обработке оповещения
Пример ответа с ошибкой
|
18. Контрагент подтверждает ПС получение оповещения о платеже.
Параметр | Описание | Возможное значение | Примечание |
---|---|---|---|
instanceKey | Идентификатор Контрагента в системе Опентао | ||
secret | Платежный секрет | Необходим для формирования цифровой подписи 3.4. Выдается Контрагенту от Опентао. | |
orderId | Идентификатор заказа для оплаты | Присутствует если пользователь оплачивает заказ. Отсутствует при пополнении счета | |
paymentId | Идентификатор платежа во внутренней системе биллинга Опентао | ||
usertId | Идентификатор пользователя Опентао | ||
amount | Сумма платежа | ||
currency | Цифровой код валюты платежа в формате ISO 4217 | 643 - RUB | http://en.wikipedia.org/wiki/ISO_4217 |
status | Состояние платежа | Completed - завершен Canceled - отменен | |
signature | Цифровая подпись зашифрованная по алгоритму MD5 | 32 шестнадцатеричных символа, в верхнем регистре | |
description | Описание платежа |
Код | Описание |
---|---|
Ok | Оповещение обработано |
VerificationError | Ошибка при проверки входящих данных |
SignatureVerificationError | Не совпали цифровые подписи: присланная Контрагентом и подсчитанная на стороне Опентао |
InternalError | Внутренняя ошибка сервиса Опентао. Необработанная ошибка |
3.4. Правила формирования цифровой подписи при оповещении Контрагентом Опентао
MD5 хеширование применяется к тексту, формируемому как последовательность значений ряда параметров, разделенных символом «точка с запятой» — «;».
orderId;paymentId;usertId;amount;currency;status;secret |
Пример:
Строка | Результат |
---|---|
111;222;0000000001;500,15;643;Completed;secret | 11AE0ABC8F0CF443F950D84C278F1C51 |