Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

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

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

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

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

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

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

Сам процесс взаимодействия является обобщенным примером. В некоторых реальных ситуациях процесс может несколько отличаться от представленного на диаграмме.

...

Далее следует подробное пошаговое описание последовательности процесса взаимодействия.

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

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

...

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

Раскрыть
Блок кода
languagecsharp
titleСтруктура ответа PaymentFormAnswer
linenumberstrue
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Имя параметра

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

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

 

...

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

3.2

...

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

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

...

Раскрыть

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

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

instanceKey
orderId
paymentId
usertId
amount
currency
status
signature

...

Раскрыть

Структура ответа на оповещение

Блок кода
languagecsharp
linenumberstrue
public class NoticeAnswer
{
	public string PaymentId { get; set; }
	public NoticeErrorCode ErrorCode { get; set; }
	public string ErrorDescription { get; set; }
}

где

ПараметрОписание
PaymentId 
Идентификатор платежа во внутренней системе биллинга Опентао
ErrorCode 
Код ошибки. Подробнее см. 3.3.2
ErrorDescription 
Описание ошибки

Пример ответа о безошибочной обработке оповещения

Блок кода
languagehtml/xml
linenumberstrue
<?xml version="1.0" encoding="utf-16"?>
<NoticeAnswer>
  <PaymentId>222</PaymentId>
  <ErrorCode>Ok</ErrorCode>
</NoticeAnswer>

Пример ответа с ошибкой

Блок кода
languagehtml/xml
linenumberstrue
<?xml version="1.0" encoding="utf-16"?>
<NoticeAnswer>
  <PaymentId>222</PaymentId>
  <ErrorCode>VerificationError</ErrorCode>
  <ErrorDescription>Unknown notification status: 'Overpaid'</ErrorDescription>
</NoticeAnswer>

18. Контрагент подтверждает ПС получение оповещения о платеже.

3.3. Таблицы данных

3.3.1 Платежные параметры 

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

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

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

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

Completed - завершен

Canceled - отменен

 
signatureЦифровая подпись зашифрованная по алгоритму MD5 32 шестнадцатеричных символа, в верхнем регистре
descriptionОписание платежа  

3.3.2 Описание NoticeErrorCode

КодОписание
OkОповещение обработано
VerificationErrorОшибка при проверки входящих данных
SignatureVerificationErrorНе совпали цифровые подписи: присланная Контрагентом и подсчитанная на стороне Опентао
InternalErrorВнутренняя ошибка сервиса Опентао. Необработанная ошибка

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

...