Оглавление |
---|
1 Проблематика
Если вы не нашли в списке доступных к подключению ПС, вы можете собственными силами подключить любую другую ПС, используя протокол взаимодействия с сервисами ОпентаоОпенТрейд Коммерс.
2 Общие сведения
Опентао ОпенТрейд Коммерс предоставляет протокол, позволяющий Контрагенту интегрировать способы оплаты, недоступные клиентам ОпентаоОпенТрейд Коммерс, в систему заказов и учета движения средств.
Сокращения
...
- ОпенТрейд Коммерс -- система заказов и учета движения средств. Биллинг.
- Контрагент
...
- — клиент
...
- ОпенТрейд Коммерс.
- Плательщик
...
- — пользователь веб-ресурса Контрагента, совершающий платеж.
- ПС
...
- — платежная система.
Подключение
Для подключения к данному протоколу необходимо:
- являться клиентом ОпентаоОпенТрейд Коммерс;
- подать заявку на услугу "Подключение «Подключение кастомной платежной системы" системы» в службу технической поддержки OpentaoOpenTrade Commerce.
- получить Платежный секрет (3.3.1). Дальнейшее требования безопасности по нераспространению обеспечивает Контрагент.
3 Общее описание протокола
Диаграмма последовательности взаимодействия всех участников платежа
...
Далее следует подробное пошаговое описание последовательности процесса взаимодействия.
3.1 Пример взаимодействия Плательщик, ПС, Контрагент,
...
ОпенТрейд Коммерс при проведении платежа.
1. Плательщик инициализирует оплату.
2-4. Сайт контрагента запрашивает способы оплаты в Опентао метод ОпенТрейд Коммерс с помощью метода GetPaymentModes и показывает плательщику.
Подсказка |
---|
Способ оплаты для работы с кастомной ПС, в ответе метода GetPaymentModes, будет иметь идентификатор: opentao.custom |
5. Плательщик выбирает способ оплаты и заполняет платежные данные, такие как сумма платеж и др.
6. Сайт Контрагента запрашивает данные системы учета Опентао ОпенТрейд Коммерс для инициализации платежа в ПС с помощью метода GetPaymentParameters
7. Опентао ОпенТрейд Коммерс передает платежные данные в ответ на вызов метода GetPaymentParameters
Раскрыть | |||
---|---|---|---|
|
...
|
...
|
...
public class PaymentFormAnswer
{
public PaymentForm Result { get; set; }
public OtapiErrorCode ErrorCode { get; set; }
public string ErrorDescription { get; set; }
public string SubErrorCode { get; set; }
}
public class PaymentForm
{
public string RequestMethod { get; set; }
public string RequestUrl { get; set; }
[ XmlArrayItem( "Parameter" ) ]
public PaymentFormParameter[] Parameters { get; set; }
}
public class PaymentFormParameter
{
public string Name { get; set; }
public string Value { get; set; }
}
где |
...
|
...
|
...
|
...
|
...
|
...
...
...
...
Варианты имен параметров (описание см. в 3.3.1):
|
...
|
...
...
|
8. Контрагент на основе данных, полученных на шаге 7, формирует платежную форму с учетом требований ПС.
9. По данным, полученным из платежной формы, ПС формирует контракт, отправляет его плательщику и ждет подтверждения оплаты.
...
12. ПС возвращает в браузер плательщика ответ - страницу с сообщением об успехи/неудачи платежа.
3.2 Пример взаимодействия ПС, Контрагент,
...
ОпенТрейд Коммерс при оповещении о платеже.
13. ПС уведомляет Контрагента о совершенном платеже
14. Контрагент адаптирует данные, полученные в шаге 13, к параметрам оповещения ОпентаоОпенТрейд Коммерс.
15. Контрагент уведомляет Опентао ОпенТрейд Коммерс о совершенном платеже.
Раскрыть | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Необходимо передать нижеследующие параметры на адрес оповещения RequestUrl методом RequestMethod (получены от Опентао оповещения (параметр resultUrl из полученных ОпенТрейд Коммерс на 7 шаге), используя транспорт HTTP. Обязательные параметры Параметры (описание см. в 3.3.1):
|
16. Опентао ОпенТрейд Коммерс проверяет параметры оповещение. В случае когда все проверки пройдены и статус платежа помечен как Completed - — зачисляет средства на счет плательщика.
17. Опентао ОпенТрейд Коммерс подтверждает Контрагенту получение оповещения о платеже.
Раскрыть | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||
Ответ Структура ответа на оповещение
где
Пример ответа о безошибочной обработке оповещения
Пример ответа Ответ с ошибкой
где
|
18. Контрагент подтверждает ПС получение оповещения о платеже.
...
Параметр | Описание | Возможное значение | Примечание |
---|---|---|---|
instanceKey | Идентификатор Контрагента в системе ОпентаоОпенТрейд Коммерс | ||
secret | Платежный секрет | Необходим для формирования цифровой подписи 3.4. Выдается Контрагенту от ОпентаоОпенТрейд Коммерс. | |
orderId | Идентификатор заказа для оплаты | Присутствует если пользователь оплачивает заказ. Отсутствует при пополнении счета | |
paymentId | Идентификатор платежа во внутренней системе биллинга ОпентаоОпенТрейд Коммерс | ||
usertIduserId | Идентификатор пользователя ОпентаоОпенТрейд Коммерс | ||
amount | Сумма платежа | Десятичный разделитель — точка, и всегда 2 знака после него. | |
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;usertIduserId;amount;currency;status;secret |
...
Строка | Результат |
---|---|
111;222;0000000001;500,.15;643;Completed;secret | 11AE0ABC8F0CF443F950D84C278F1C51 |