You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 93 Next »


1.   Основные особенности оплаты токеном


Оплата токеном - это технология оплаты в магазинах и интернете с помощью некоторых мобильных устройств, основные производители которых предоставляют средства для проведения платежей через систему токенизации, например, Apple Pay, Samsung Pay или Google Pay.

Возможны 4 варианта проведения оплаты:

  1. Оплата через платёжный терминал, при этом мобильное устройство прикладывается к считывателю банковских карт аналогично прикладыванию карт с поддержкой бесконтактной оплаты. Такие платежи проводятся как POS транзакции.
  2. Оплата по кнопке, встроенной в мобильное приложение магазина (InApp схема). Такие платежи проводятся как ECOM транзакции.
  3. Оплата в браузере (Web схема), при этом получение шифрованного пакета с платёжными данными и токеном выполняется на стороне платёжных страниц АПК Ассист. Такие платежи проводятся как ECOM транзакции.
  4. Оплата в браузере (Web схема), при этом получение шифрованного пакета с платёжными данными и токеном выполняется на странице интернет-магазина. Такие платежи проводятся как ECOM транзакции.

Ассист предоставляет возможности организовать приём платежей токенами по всем 4 вариантам. Однако, отдельные провайдеры токенов поддерживают не все варианты проведения платежей. В таблице ниже представлены возможные варианты организации платежей токенами с использованием разных провайдеров.

Провайдер токена

POS оплата

Оплата по кнопке в мобильном приложении (InApp)

Оплата в браузере на стороне АПК Ассист (Web)

Оплата в браузере на стороне магазина (Web)

Apple Pay

Через приложение Assist.mPOS + считыватель карт

С использованием Assist.SDK для iOS

или

Apple Pay SDK + сервис TokenPay

Будет реализовано в I квартале 2018 г.  (только при платеже в браузере Safari на платформе MacOS)

Только в браузере Safari на платформе MacOS, используя примеры работы с ApplePay JS API с сайта разработчиков Apple Pay и сервис TokenPay

Samsung Pay

Через приложение Assist.mPOS+ считыватель карт

В настоящий момент не поддерживается со стороны Samsung Pay

Через интеграцию с платежными страницами АПК Ассист или из мобильного приложения через WebView

Не поддерживается со стороны Samsung Pay

Google Pay*

Через приложение Assist.mPOS+ считыватель карт

С использованием Google Pay API + сервис TokenPay

Платеж на мобильном устройстве, через браузер с поддержкой Payment Request API при переходе на платежную страницу Ассист с сайта магазина или из мобильного приложения магазина через WebView.

При платеже на мобильном устройстве, через браузер с поддержкой Payment Request API: используя примеры кода по работе с Payment Request API на сайте разработчиков Google и сервис TokenPay

*В настоящий момент в рамках Google Pay поддерживается оплата только токенизированной картой (ранее такой метод оплаты имел название Android Pay). Оплата привязанными к аккаунту Google картами невозможна в связи с ограничениями банков.

Таким образом, для разработчиков мобильных приложений доступны следующие варианты проведения оплаты:

Для Apple Pay только вариант оплаты по кнопке в приложении:

  • с использованием Assist.SDK для iOS;
  • с использованием Apple Pay SDK + сервис TokenPay.

Для Google Pay:

  • с использованием Assist SDK для Android (через WebView) — для оплаты по кнопке на платежной странице АПК Ассист;
  • с использованием Google API + сервис TokenPay  — для оплаты по кнопке в приложении.

Для Samsung Pay: только оплата по кнопке на платежной странице АПК Ассист:

  • с использованием Assist SDK для Android (через WebView).

Для приёма платежей токенами на web-сайте магазина доступны следующие варианты:

Для Google Pay: только при открытии платёжной страницы на мобильном устройстве в браузере с поддержкой Payment Request API:

  • по кнопке на платежной странице АПК Ассист;
  • с использованием Payment Request API браузера и сервис TokenPay.

Для Samsung Pay:

  • по кнопке на платежной странице АПК Ассист.

2.   Оплата токеном через мобильный терминал

Ассист предоставляет возможность оплаты токенами Apple Pay, Samsung Pay и Google Pay в рамках настраиваемого под нужды конкретного заказчика мобильного приложения Assist.mPOS с использованием считывателя карт. С помощью Assist.MPOS и считывателя карт можно также принимать оплаты банковскими картами и наличными.

Для обсуждения возможностей по предоставлению данной услуги следует обращаться в службу технической поддержки АПК Ассист support@assist.ru.

3.   Оплата токеном через кнопку в мобильном приложении (InApp)


При проведении оплаты токеном по кнопке в мобильном приложении выполняются следующие действия:


  1. Покупатель выбирает товар или услугу в мобильном приложении магазина и нажимает кнопку оплатить.
  2. Зашифрованный пакет с данными платежа и токеном формируется через обращение к SDK соответствующего провайдера: Apple Pay, Samsung Pay или Google Pay API.
  3. SDK провайдера проводит необходимою авторизацию платежа покупателем на мобильном устройстве (PIN/отпечаток пальца).
  4. Зашифрованный пакет с данными платежа и токеном передается в сервис оплаты TokenPay на стороне АПК Ассист .
  5. АПК Ассист расшифровывает пакет и проводит платеж токеном.
  6. АПК Ассист возвращает результаты проведения оплаты в мобильное приложение.

Действия с 2 до 6 могут быть выполнены однократным обращением к SDK Assist:

Внимание! На данный момент Samsung Pay не поддерживает описанную выше схему проведения платежа.

Если в мобильном приложении предприятия (магазина) SDK Assist не используется, то для создания шифрованного пакета с данными о платеже необходимо использовать соответствующий SDK – Apple Pay SDK для IOS или Google Pay API для Android. Созданный шифрованный пакет с данными о платеже затем должен передаваться в АПК Ассист через сервис TokenPay.

Для организации приема платежей через кнопку в мобильном приложении нужно выполнить следующие подготовительные шаги:

  • сделать заявку для подключения к функционалу сервиса обработки платежей TokenPay в службу технической поддержки АПК Ассист support@assist.ru;
  • внедрить в свое приложение поддержку оплаты заказов токеном, используя Assist SDK, SDK Apple Pay или Google Pay API) вместе с обращением к сервису TokenPay;
  • получить подтверждение от службы технической поддержки АПК Ассист о том, что все необходимые технические настройки для функционирования сервиса обработки платежей TokenPay при оплате товаров и услуг данному предприятию выполнены;
  • подготовиться к приему платежей:
    • при использовании Apple Pay создать и подписать сертификат Apple Pay для выполнения платежей с помощью соответствующего раздела в ЛК АПК Ассист;
    • при использовании Google Pay для организации схемы шифрования пакета данных с токеном следует применять публичный ключ Public Key: 'BElVf3z1PE68riWbP0YRp4vC+0MuNbd6pqVAe1uHBHYGJvzZonlkVAp5CEEp2EEUswS7hS1y0RyNB3SR2FVExDQ=' и идентификатор мерчанта MerchantID:'16590966430175452581'.

4.   Оплата токеном на платежной странице АПК Ассист

При оплате токеном Samsung Pay на платежной странице AПK Ассист выполняются следующие действия:

  1. Покупатель выбирает товары на сайте интернет-магазина и нажимает кнопку «Оплатить», после чего магазин переадресует покупателя на платёжную страницу АПК Ассист.
  2. На платёжной странице АПК Ассист покупатель может нажать кнопку оплаты токеном.
  3. Специальный плагин Samsung Pay запрашивает SamsungID пользователя.
  4. Плагин отправляет на сервер Samsung Pay запрос на проведение платежа.
  5. Сервер Samsung Pay посылает PUSH уведомление на мобильное устройство покупателя.
  6. Покупатель выбирает одну из привязанных карт.
  7. Покупатель подтверждает оплату (PIN-код или отпечаток пальца).
  8. Мобильное устройство передаёт данные на сервер Samsung Pay.
  9. АПК Ассист получает от сервера Samsung Pay шифрованный пакет с токеном и данными платежа.
  10. АПК Ассист расшифровывает пакет с токеном и данными платежа.
  11. АПК Ассист проводит оплату токеном через процессинг расчётного банка.
  12. АПК Ассист возвращает результаты проведения оплаты на сайт интернет-магазина.

При оплате токеном Google Pay на платежной странице APK Ассист выполняются следующие действия:



  1. Покупатель выбирает товары на сайте интернет-магазина и нажимает кнопку «Оплатить», после чего магазин переадресует покупателя на платёжную страницу АПК Ассист.
  2. Если пользователь открыл платёжную страницу АПК Ассист на мобильном устройстве в браузере с поддержкой Payment Request API, и на этом мобильном устройстве установлено приложение Google Pay, то он увидит и сможет нажать кнопку оплаты через Google Pay.
  3. После нажатия кнопки оплаты через Google Pay откроется специальный диалог браузера, в котором можно выбрать одну из карт, привязанных в мобильном приложении Google Pay.
  4. После выбора карты покупателю предлагается приложить палец к считывателю для подтверждения платежа.
  5. Приложение Google Pay формирует зашифрованный пакет с токеном и данными платежа и возвращает его в АПК Ассист.
  6. АПК Ассист расшифровывает пакет с токеном и данными платежа.
  7. АПК Ассист проводит оплату токеном через процессинг расчётного банка.
  8. АПК Ассист возвращает результаты проведения оплаты интернет-магазину.

Для организации приема платежей токеном на платежной странице АПК Ассист нужно выполнить следующие подготовительные шаги:

  • сделать заявку для подключения платёжных средств для оплаты токенами (Google Pay, Samsung Pay) в службу технической поддержки АПК Ассист support@assist.ru;
  • получить подтверждение от службы технической поддержки АПК Ассист о том, что все необходимые технические настройки для приема платежей токенами при оплате товаров и услуг данному предприятию выполнены.

5.   Оплата токеном в браузере на стороне магазина

При проведении оплаты токеном Google Pay в браузере на стороне магазина выполняются следующие действия:

  1. Покупатель выбирает товары на сайте интернет-магазина и нажимает кнопку оплаты Google Pay (доступно в браузерах с поддержкой Payment Request API на мобильных устройствах).
  2. После нажатия кнопки оплаты через Google Pay осуществляется вызов Payment Request API и передача сертификата с публичным ключом Ассист.
  3. Открывается специальный диалог браузера, в котором можно выбрать одну из карт, привязанных в мобильном приложении Google Pay.
  4. После выбора карты покупателю предлагается приложить палец к считывателю для подтверждения платежа. 
  5. Приложение Google Pay формирует зашифрованный пакет с токеном и данными платежа и возвращает его скрипту страницы магазина.
  6. Зашифрованный пакет с токеном и данными платежа передается в сервис TokenPay АПК Ассист .
  7. АПК Ассист расшифровывает пакет с токеном и данными платежа.
  8. АПК Ассист проводит оплату токеном через процессинг расчётного банка.
  9. АПК Ассист возвращает результаты проведения оплаты интернет-магазину.

При проведении оплаты токеном Apple Pay в браузере на стороне магазина выполняются следующие действия:


Покупатель выбирает товары на сайте интернет-магазина и нажимает кнопку оплаты Apple Pay (доступно только в браузере Safari на платформе MacOS).

После нажатия кнопки оплаты через Apple Pay осуществляется вызов Payment Request API и передача сертификата с публичным ключом мерчанта. Одновременно открывается специальный диалог, в котором можно будет выбрать одну из карт, привязанных в мобильном приложении Apple Pay.











6. Передача платежной информации TokenPay




Оплата по токену


Параметры запроса:

ПараметрОбязательный?Принимаемые
значения
Значение по
умолчанию 
Описание
Merchant_IDДаЧисло
Идентификатор предприятия в системе АПК Ассист
LoginДаСтрока
Логин учетной записи Assist
PasswordДаСтрока
Пароль учетной записи Assist
OrderNumberНет128 символов
Номер заказа в системе расчетов предприятия
OrderAmountДаЧисло, 15 цифр (разделители «.», «,»)
Сумма платежа в оригинальной валюте (например, 10.34)
OrderCurrencyНет

3 символа


Код валюты, в которой указана сумма платежа OrderAmount (RUB, USD, EUR)

OrderCommentНет256 символов
Комментарий
DelayНет0 – одностадийный механизм работы,
1- двустадийный механизм
0Признак авторизации при двустадийном механизме работы
LanguageНетRU – русский
EN - английский
Язык юр.лица или предприятияЯзык квитанции об оплате
ClientIPНет

IP адрес покупателя
TokenTypeНет

1 - Apple Pay
2 - Android Pay
3 - Samsung Pay

1Идентификатор типа платежного токена.
PaymentTokenНетJSON
платежный токен
LastnameДа70 символов без цифр
Фамилия покупателя
FirstnameДа70 символов без цифр
Имя покупателя
MiddlenameНет70 символов без цифр
Отчество покупателя
EmailДа128 символов
E-mail покупателя
AddressНет

256 символов


Адрес покупателя
HomePhoneНет64 символа
Домашний телефон покупателя
WorkPhoneНет20 символов
Рабочий телефон покупателя
MobilePhoneНет20 символов
Мобильный телефон покупателя
FaxНет20 символов

Факс покупателя

CountryНет3 символа
Код страны покупателя
StateНет3 символа
Код региона покупателя
CityНет70 символов
Город покупателя
ZipНет25 символов

Индекс предприятия связи покупателя

isConvertНет

0 - Не конвертировать в базовую валюту

1 - Не конвертировать при возможности

2 - Всегда конвертировать

1Флаг конвертации валюты платежа в базовую валюту
FormatНет4 – SOAP
5 – JSON
5Формат выдачи результата
SignatureНетCтрока

Формируется строка, сшитая из следующих параметров заказа:

Merchant_ID;OrderNumber;OrderAmount;OrderCurrency, разделенных точкой с запятой. На базе этой строки алгоритмом MD5 формируется дайджест.  Дайджест подписывается закрытым RSA ключом мерчанта. Длина ключа  - 1024. Полученная байтовая последовательность является подписью магазина. Подпись передается нам в виде дополнительного параметра, закодированного в виде строки BASE64

RecurringIndicatorНет

1 –рекуррентный платеж

0 - обычный платеж
0Признак рекуррентного платежа
RecurringMinAmountНет/ДаЧисло, 15 цифр (разделители «.», «,»)
Минимальная сумма рекуррентных платежей. Параметр обязателен при RecurringIndicator = 1
RecurringMaxAmountНет/Да

Число, 15 цифр

(разделители «.», «,»)

Минимальная сумма рекуррентных платежей. Параметр обязателен при RecurringIndicator = 1
RecurringPeriodНет/ДаЧисло, 10 цифр
Минимальная сумма рекуррентных платежей. Параметр обязателен при RecurringIndicator = 1
RecurringMaxDateНет/ДаСтроковое представление даты в формате DD.MM.YY
Минимальная сумма рекуррентных платежей. Параметр обязателен при RecurringIndicator = 1


Параметры ответа:

ПараметрЗначение
Параметры заказа
ordernumber
Номер заказа
billnumberУникальный номер заказа в системе АПК Ассист
testmode
Тестовый режим
ordercomment
Комментарий
orderamount
Оригинальная сумма заказа
ordercurrency
Оригинальная валюта заказа
firstname
Имя плательщика
lastname
Фамилия плательщика
middlename
Отчество плательщика
Email
Email плательщика
orderdate
Дата заказа по Гринвичу (GMT)
orderstate
Статус заказа
packetdate
Дата формирования запроса по Гринвичу (GMT)
signature

1) Для типа подписи MD5 - пусто

2) Для типа PGP – значение X, подписанное закрытым ключом АПК Ассист, закодированное в BASE64
checkvalue
uppercase(md5(uppercase(md5(SALT) + md5(Х)))), где SALT – секретное
слово; Х – результат строковой склейки параметров merchant_id, ordernumber,
orderamount, ordercurrency, orderstate (без разделителей), + -строковая
склейка
Параметры операции
billnumber
Расширенный формат billnumber
operationtype
Тип операции
operationstate
Состояние операции
amount
Сумма операции
currency
Валюта операции
ipaddress
IP-адрес плательщика
clientip
IP-адрес совершившего операцию
meantype_id
Тип платежного средства
meansubtype
Подтип платежного средства
meannumber
Номер платежного средства
cardholder
Держатель платежного средства
issuebank
Название банка-эмитента
bankcountry
Страна банка-эмитента
responsecode
Код возврата
message
Сообщение о результате операции
customermessage
Сообщение о результате для покупателя
recommendation
Рекомендация
approvalcode
Код авторизации
protocoltypename
Протокол
processingname
Процессинг
operationdate
Дата и время операции (GMT)
authresult
Результат аворизации по 3DSecure (Y - успешно, N - неуспешно, A - Attempt, U
– неизвестно)
authrequired
Результат аворизации по 3DSecure (Y - успешно, N - неуспешно, A - Attempt, U
– неизвестно)
slipno
Номер финансовой транзакции, отправляемый в процессинг


Описание веб-сервиса:

../pay/tokenpay.wsdl
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.paysecure.ru/ws/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="tokenpay"
targetNamespace="http://www.paysecure.ru/ws/">
<wsdl:types>
<xsd:schema targetNamespace="http://www.paysecure.ru/ws/">
<xsd:element name="TokenPayRequestParams">
<xsd:complexType>
<xsd:all>
	<xsd:element minOccurs="1" name="merchant_id" type="xsd:string" />
	<xsd:element minOccurs="1" name="login" type="xsd:string" />
	<xsd:element minOccurs="1" name="password" type="xsd:string" />
	<xsd:element minOccurs="1" name="lastname" type="xsd:string" />
	<xsd:element minOccurs="1" name="firstname" type="xsd:string" />
	<xsd:element minOccurs="1" name="orderamount" type="xsd:string" />
	<xsd:element minOccurs="1" name="email" type="xsd:string" />
	<xsd:element minOccurs="0" name="tokentype" type="xsd:string" />
	<xsd:element minOccurs="0" name="tokennumber" type="xsd:string" />
	<xsd:element minOccurs="0" name="cryptogram3ds" type="xsd:string" />
	<xsd:element minOccurs="0" name="eci" type="xsd:string" />
	<xsd:element minOccurs="0" name="paymenttoken" type="xsd:string" />
	<xsd:element minOccurs="0" name="transactionid" type="xsd:string" />
	<xsd:element minOccurs="0" name="cardholder" type="xsd:string" />
	<xsd:element minOccurs="0" name="ExpireDate" type="xsd:string" />
	<xsd:element minOccurs="0" name="ordercurrency" type="xsd:string" />
	<xsd:element minOccurs="0" name="ordernumber" type="xsd:string" />
	<xsd:element minOccurs="0" name="delay" type="xsd:string" />
	<xsd:element minOccurs="0" name="testmode" type="xsd:string" />
	<xsd:element minOccurs="0" name="language" type="xsd:string" />
	<xsd:element minOccurs="0" name="isconvert" type="xsd:string" />
	<xsd:element minOccurs="0" name="ordercomment" type="xsd:string" />
	<xsd:element minOccurs="0" name="middlename" type="xsd:string" />
	<xsd:element minOccurs="0" name="address" type="xsd:string" />
	<xsd:element minOccurs="0" name="homephone" type="xsd:string" />
	<xsd:element minOccurs="0" name="workphone" type="xsd:string" />
	<xsd:element minOccurs="0" name="mobilephone" type="xsd:string" />
	<xsd:element minOccurs="0" name="country" type="xsd:string" />
	<xsd:element minOccurs="0" name="city" type="xsd:string" />
	<xsd:element minOccurs="0" name="state" type="xsd:string" />
	<xsd:element minOccurs="0" name="zip" type="xsd:string" />
	<xsd:element minOccurs="0" name="clientip" type="xsd:string" />
	<xsd:element minOccurs="0" name="cardtype" type="xsd:string" />
	<xsd:element minOccurs="0" name="cvc2" type="xsd:string" />
	<xsd:element minOccurs="0" name="recurringindicator" type="xsd:string" />
	<xsd:element minOccurs="0" name="recurringminamount" type="xsd:string" />
	<xsd:element minOccurs="0" name="recurringmaxamount" type="xsd:string" />
	<xsd:element minOccurs="0" name="recurringperiod" type="xsd:string" />
	<xsd:element minOccurs="0" name="recurringmaxdate" type="xsd:string" />
	<xsd:element minOccurs="0" name="plan_mounth" type="xsd:string" />
	<xsd:element minOccurs="0" name="invoice_number" type="xsd:string" />
	<xsd:element minOccurs="0" name="charge_type" type="xsd:string" />
	<xsd:element minOccurs="0" name="airline_name" type="xsd:string" />
	<xsd:element minOccurs="0" name="passenger_name" type="xsd:string" />
	<xsd:element minOccurs="0" name="ticket_number" type="xsd:string" />
	<xsd:element minOccurs="0" name="ticket_issuer" type="xsd:string" />
	<xsd:element minOccurs="0" name="ticket_issuer_address" type="xsd:string" />
	<xsd:element minOccurs="0" name="departure_airport" type="xsd:string" />
	<xsd:element minOccurs="0" name="arrival_airport_1" type="xsd:string" />
	<xsd:element minOccurs="0" name="carrier_code_1" type="xsd:string" />
	<xsd:element minOccurs="0" name="airline_class_1" type="xsd:string" />
	<xsd:element minOccurs="0" name="stopover_code_1" type="xsd:string" />
	<xsd:element minOccurs="0" name="arrival_airport_2" type="xsd:string" />
	<xsd:element minOccurs="0" name="carrier_code_2" type="xsd:string" />
	<xsd:element minOccurs="0" name="airline_class_2" type="xsd:string" />
	<xsd:element minOccurs="0" name="stopover_code_2" type="xsd:string" />
	<xsd:element minOccurs="0" name="arrival_airport_3" type="xsd:string" />
	<xsd:element minOccurs="0" name="carrier_code_3" type="xsd:string" />
	<xsd:element minOccurs="0" name="airline_class_3" type="xsd:string" />
	<xsd:element minOccurs="0" name="stopover_code_3" type="xsd:string" />
	<xsd:element minOccurs="0" name="arrival_airport_4" type="xsd:string" />
	<xsd:element minOccurs="0" name="carrier_code_4" type="xsd:string" />
	<xsd:element minOccurs="0" name="airline_class_4" type="xsd:string" />
	<xsd:element minOccurs="0" name="stopover_code_4" type="xsd:string" />
	<xsd:element minOccurs="0" name="charge_details" type="xsd:string" />
	<xsd:element minOccurs="0" name="agent_code" type="xsd:string" />
	<xsd:element minOccurs="0" name="restricted_ticked_ind" type="xsd:string" />
	<xsd:element minOccurs="0" name="pnr" type="xsd:string" />
	<xsd:element minOccurs="0" name="departure_date" type="xsd:string" />
	<xsd:element minOccurs="0" name="header_http_user_agent" type="xsd:string" />
	<xsd:element minOccurs="0" name="header_http_accept" type="xsd:string" />
	<xsd:element minOccurs="0" name="header_http_accept_language" type="xsd:string" />
	<xsd:element minOccurs="0" name="header_http_referer" type="xsd:string" />
	<xsd:element minOccurs="0" name="header_remote_host" type="xsd:string" />
	<xsd:element minOccurs="0" name="header_http_forwarded" type="xsd:string" />
	<xsd:element minOccurs="0" name="header_http_x_forwarded_for" type="xsd:string" />
	<xsd:element minOccurs="0" name="header_http_via" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_js_ver" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_local_time" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_screen_res" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_screen_colors" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_js_browser_name" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_time_zone" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_cookies" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_java" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_stylesheets" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_browser_platform" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_system_language" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_browser_language" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_user_language" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_processor" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_connection" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_hostaddress" type="xsd:string" />
	<xsd:element minOccurs="0" name="client_hostname" type="xsd:string" />
	<xsd:element minOccurs="0" name="signature" type="xsd:string" />
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element name="TokenPayResponseParams">
<xsd:complexType>
	<xsd:sequence>
		<xsd:element name="order" type="tns:order" />
		<xsd:element name="packetdate" type="xsd:string" />
		<xsd:element name="signature" type="xsd:string" />
	</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WSException">
<xsd:complexType>
	<xsd:sequence>
		<xsd:element name="firstcode" type="xsd:string" />
		<xsd:element name="secondcode" type="xsd:string" />
	</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="order">
	<xsd:sequence>
		<xsd:element minOccurs="0" name="billnumber" type="xsd:string" />
		<xsd:element minOccurs="0" name="ordernumber" type="xsd:string" />
		<xsd:element minOccurs="0" name="testmode" type="xsd:string" />
		<xsd:element minOccurs="0" name="ordercomment" type="xsd:string" />
		<xsd:element minOccurs="0" name="orderamount" type="xsd:string" />
		<xsd:element minOccurs="0" name="ordercurrency" type="xsd:string" />
		<xsd:element minOccurs="0" name="rate" type="xsd:string" />
		<xsd:element minOccurs="0" name="orderdate" type="xsd:string" />
		<xsd:element minOccurs="0" name="orderstate" type="xsd:string" />
		<xsd:element minOccurs="0" name="customer" type="tns:customer" />
		<xsd:element maxOccurs="unbounded" minOccurs="0" name="operation" type="tns:operation" />
	</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="customer">
	<xsd:sequence>
		<xsd:element minOccurs="0" name="firstname" type="xsd:string" />
		<xsd:element minOccurs="0" name="lastname" type="xsd:string" />
		<xsd:element minOccurs="0" name="middlename" type="xsd:string" />
		<xsd:element minOccurs="0" name="email" type="xsd:string" />
	</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="operation">
	<xsd:sequence>
		<xsd:element minOccurs="0" name="billnumber" type="xsd:string" />
		<xsd:element minOccurs="0" name="operationtype" type="xsd:string" />
		<xsd:element minOccurs="0" name="operationstate" type="xsd:string" />
		<xsd:element minOccurs="0" name="amount" type="xsd:string" />
		<xsd:element minOccurs="0" name="currency" type="xsd:string" />
		<xsd:element minOccurs="0" name="ipaddress" type="xsd:string" />
		<xsd:element minOccurs="0" name="meantype_id" type="xsd:string" />
		<xsd:element minOccurs="0" name="meansubtype" type="xsd:string" />
		<xsd:element minOccurs="0" name="meannumber" type="xsd:string" />
		<xsd:element minOccurs="0" name="cardholder" type="xsd:string" />
		<xsd:element minOccurs="0" name="cardexpirationdate" type="xsd:string" />
		<xsd:element minOccurs="0" name="issuebank" type="xsd:string" />
		<xsd:element minOccurs="0" name="bankcountry" type="xsd:string" />
		<xsd:element minOccurs="0" name="responsecode" type="xsd:string" />
		<xsd:element minOccurs="0" name="message" type="xsd:string" />
		<xsd:element minOccurs="0" name="customermessage" type="xsd:string" />
		<xsd:element minOccurs="0" name="recommendation" type="xsd:string" />
		<xsd:element minOccurs="0" name="approvalcode" type="xsd:string" />
		<xsd:element minOccurs="0" name="protocoltypename" type="xsd:string" />
		<xsd:element minOccurs="0" name="processingname" type="xsd:string" />
		<xsd:element minOccurs="0" name="operationdate" type="xsd:string" />
		<xsd:element minOccurs="0" name="slipno" type="xsd:string" />
	</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="chequeitem">
	<xsd:sequence>
		<xsd:element name="id" type="xsd:string" />
		<xsd:element name="product" minOccurs="0" type="xsd:string" />
		<xsd:element name="name" minOccurs="0" type="xsd:string" />
		<xsd:element name="price" type="xsd:string" />
		<xsd:element name="quantity" type="xsd:string" />
		<xsd:element name="tax" type="xsd:string" />
	</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="TokenPayRequest">
<wsdl:part element="tns:TokenPayRequestParams" name="cancel">
</wsdl:part>
</wsdl:message>
<wsdl:message name="TokenPayException">
<wsdl:part element="tns:WSException" name="wsexception">
</wsdl:part>
</wsdl:message>
<wsdl:message name="TokenPayResponse">
<wsdl:part element="tns:TokenPayResponseParams" name="return">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="TokenPayPortType">
<wsdl:operation name="Cancel">
<wsdl:input message="tns:TokenPayRequest">
</wsdl:input>
<wsdl:output message="tns:TokenPayResponse">
</wsdl:output>
<wsdl:fault message="tns:TokenPayException" name="WSException">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TokenPayBinding" type="tns:TokenPayPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Cancel">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="WSException">
<soap:fault name="WSException" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TokenPayService">
<wsdl:port binding="tns:TokenPayBinding" name="tokenpay">
<soap:address location="" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>