1 Проблематика
Если вы не нашли в списке доступных к подключение ПС, вы можете собственными силами подключить любую другую ПС, используя протокол взаимодействия с сервисами Опентао.
2 Общие сведения
Опентао предоставляет протокол, позволяющий Контрагенту интегрировать способы оплаты, недоступные клиентам Опентао, в систему заказов и учета движения средств.
Сокращения
Опентао - система заказов и учета движения средств. Биллинг.
Контрагент - клиент Опентао
ПС - платежная система
Подключение
Для подключения к данному протоколу необходимо:
- являться клиентом Опентао;
- падать заявку на услугу "Подключение кастомной платежной системы" в службу технической поддержки Opentao.
- получить Платежный секрет (3.3.1). Дальнейшее требования безопасности по нераспространению обеспечивает Контрагент.
3 Общее описание протокола
Диаграмма последовательности взаимодействия всех участников платежа
Сам процесс взаимодействия является обобщенным примером. В некоторых реальных ситуациях процесс может несколько отличаться от представленного на диаграмме.
Далее следует подробное пошаговое описание последовательности процесса взаимодействия.
3.1 Пример взаимодействия Плательщик, ПС, Контрагнет, Опентао при проведении платежа.
1. Плательщик инициализирует оплату.
2-4. Сайт контрагента запрашивает способы оплаты в Опентао метод GetPaymentModes и показывает плательщику.
5. Плательщик выбирает способ оплаты и заполняет платежные данные, т.к. сумма платеж и др.
6. Сайт Контрагента запрашивает данные системы учета Опентао для инициаиализации платежа в ПС с помощью метода GetPaymentParameters
7. Опентао передает платежные данные в ответ на вызов метода GetPaymentParameters
8. Контрагент на основе данных, полученных на шаге 7, формирует платежную форму с учетом требования ПС.
9. По данным, полученным из платежной формы, ПС формирует контракт, отправляет его плательщику и ждет подтверждения оплаты.
10. Плательщик подтверждает платеж.
11. ПС принимает и проверяет платеж.
12. ПС возвращает в браузер плательщика ответ - страницу с сообщением об успехи/неудачи платежа.
3.2 Пример взаимодействия ПС, Контрагент, Опентао при оповещении о платеже.
13. ПС уведомляет Контрагента о совершенном платеже
14. Контрагент адаптирует данные, полученные в шаге 13, к параметрам оповещения Опентао.
15. Контрагент уведомляет Опентао о совершенном платеже.
16. Опентао проверяет параметры оповещение. В случае когда все проверки пройдены и статус платежа помечен как Completed - зачисляет средства на счет плательщика.
17. Опентао подтверждает Контрагенту получение оповещения о платеже.
18. Контрагент подтверждает ПС получение оповещения о платеже.
3.3. Таблицы данных
3.3.1 Платежные параметры
Параметр | Описание | Возможное значение | Примечание |
---|---|---|---|
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 | Описание платежа |
3.3.2 Описание NoticeErrorCode
Код | Описание |
---|---|
Ok | Оповещение обработано |
VerificationError | Ошибка при проверки входящих данных |
SignatureVerificationError | Не совпали цифровые подписи: присланная Контрагентом и подсчитанная на стороне Опентао |
InternalError | Внутренняя ошибка сервиса Опентао. Необработанная ошибка |
3.4. Правила формирования цифровой подписи при оповещении Контрагентом Опентао
MD5 хеширование применяется к тексту, формируемому как последовательность значений ряда параметров, разделенных символом «точка с запятой» — «;».
orderId;paymentId;usertId;amount;currency;status;secret |
Пример:
Строка | Результат |
---|---|
111;222;0000000001;500,15;643;Completed;secret | 11AE0ABC8F0CF443F950D84C278F1C51 |