Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 13 Следующий »

Проблематика

Если вы не нашли в списке доступных к подключение ПС, вы можете собственными силами подключить любую другую ПС, используя протокол взаимодействия с сервисами Опентао.

Общие сведения

Опентао предоставляет протокол, позволяющий Контрагенту интегрировать способы оплаты, недоступные клиентам Опентао, в систему заказов и учета движения средств.

Общее описание протокола

Диаграмма последовательности взаимодействия всех участников платежа.

1. Пример взаимодействия Плательщик, ПС, Контрагнет, Опентао при проведении платежа.

1. Плательщик иницализирует оплату.
2-4. Сайт контрагента запрашивает способы оплаты в Опентао метод GetPaymentModes и показывает плательщику.

5. Плательщик выбирает способ оплаты и заполняет платежные данные, т.к. сумма платеж и др.

6. Сайт Контрагента запрашивает данные системы учета Опентао для инициаиализации платежа в ПС с помощью метода GetPaymentParameters

7. Опентао передает платежные данные в ответе на вызов метода GetPaymentParameters

Структура ответа PaymentFormAnswer
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; }
}

где PaymentForm

Параметр
Описание
 
RequestUrlАдрес оповещения сервиса, который используется в шаге 15 
RequestMethodСпособ отправки запроса на адрес оповещенияGET/POST

PaymentFormParameter - платежный параметр, являющийся по сути KeyValuePair

Параметр
Описание
Примечание
NameИмя параметра

Обязательные параметры (описание см. в ):

orderId
paymentId
usertId
amount
currency
description
ValueЗначение 

8. Контрагент на основе данных, полученных на шаге 7, формирует платежную форму с учетом требования ПС.

9. По данным, полученным из платежной формы, ПС формирует контракт, отправляет его плательщику и ждет подтверждения оплаты.

10. Плательщик подтверждает платеж.

11. ПС принимает и проверяет платеж.

12. ПС возвращает в браузер плательщика ответ - страницу с сообщением об успехи/неудачи платежа.

2. Пример взаимодействия ПС, Контрагент, Опентао при оповещении о платеже.

13. ПС уведомляет Контрагента о совершенном платеже

14. Контрагент адаптирует данные, полученные в шаге 13, к параметрам оповещения Опентао.

15. Контрагент уведомляет Опентао о совершенном платеже.

Необходимо передать нижеследующие параметры на адрес оповещения RequestUrl методом RequestMethod (получены от Опентао на 7 шаге), используя транспорт HTTP.

Обязательные параметры (описание см. в ):

instanceKey
orderId
paymentId
usertId
amount
currency
signature

18. Контрагент подтверждает ПС получение оповещения о платеже16. Опентао проверяет параметры оповещение. В случае когда все проверки пройдены - зачисляет средства на счет плательщика.

17. Опенато подтверждает Контрагенту получение оповещения о платеже

3. Платежные параметры 

ПараметрОписаниеВозможное значениеПримечание
instanceKeyИдентификатор контрагента/клиента в системе Опентао  
orderIdИдентификатор заказа для оплаты 

Присутствует если пользователь оплачивает заказ.

Отсутствует при пополнении счета

paymentIdИдентификатор платежа во внутренней системе биллинга Опентао  
usertIdИдентификатор пользователя Опентао  
amountСумма платежа  
currencyЦифровой код валюты платежа в формате ISO 4217643 - RUBhttp://en.wikipedia.org/wiki/ISO_4217
signatureЦифровая подпись зашифрованная по алгоритму MD5 32 шестнадцатеричных символа, в верхнем регистре
descriptionОписание платежа  

4. Правила формирования цифровой подписи при оповещении Контрагентом Опентао

MD5 хеширование применяется к тексту, формируемому как последовательность значений ряда параметров, разделенных символом «точка с запятой» — «;». 

orderId;paymentId;usertId;amount;currency;secret

Пример:

СтрокаРезультат
111;222;0000000001;500,15;643;secret B474EFDF65941E7FC59E13C8CA323806
  • Нет меток