В том случае, если предприятию недостаточно только информации о статусе заказа (оплачен, отменен, ожидает подтверждения оплаты), а необходима также детальная информация об операциях (оплаты, подтверждения оплаты, возврата или отмены), совершенных по данному заказу, предприятие может воспользоваться веб-сервисом получения результатов операций по номеру заказа.
Для получения результата платежа по номеру заказа нужно отправить запрос на сервер АПК Ассист методом HTTP POST или SOAP (в кодировке UTF-8).
URL запроса для получения результата оплаты с перечнем операций по заказу:
https://<SERVER-NAME>/orderresult/orderresult.cfm.
Поиск заказа при помощи веб-сервиса производится только за указанный промежуток времени (во временной зоне GMT). По умолчанию за дату окончания выборки принимается текущая дата, а за дату начала выборки – текущая дата минус три дня. Выборка осуществляется по дате заказа.
Список параметров запроса:
Название | Обязательное поле | Принимаемые значения | Значение по умолчанию | Описание |
Ordernumber | Да | Строка, 128 символов | Номер заказа | |
Merchant_ID | Да | Число | Идентификатор предприятия в АПК Ассист | |
Login | Да | 8 - 20 символов | Логин (лат. буквы и цифры, символ _) | |
Password | Да | 8 - 20 символов | Пароль (лат. буквы и цифры) | |
StartYear | Нет | Год в формате YYYY | Минус 3 дня от текущей даты | Дата начала выборки по Гринвичу (GMT) |
StartMonth | Нет | 1-12 | Минус 3 дня от текущей даты | |
StartDay | Нет | 1-31 | Минус 3 дня от текущей даты | |
StartHour | Нет | 0-23 | Минус 3 дня от текущей даты | |
StartMin | Нет | 0-59 | Минус 3 дня от текущей даты | |
EndYear | Нет | Год в формате YYYY | Текущий год | Дата окончания выборки по Гринвичу (GMT) |
EndMonth | Нет | 1-12 | Текущий месяц | |
EndDay | Нет | 1-31 | Текущий день | |
EndHour | Нет | 0-23 | Текущий час | |
EndMin | Нет | 0-59 | Текущая минута | |
Language | Нет | RU EN | EN | Язык вывода результатов |
Format | Да/Нет | 3 – XML | 4 | Формат выдачи результатов. Не нужно передавать в случае формата SOAP, нужно для формата POST |
Примечание. Все параметры, передаваемые в запросе, проходят автоматическую валидацию в АПК Ассист. Правила валидации описаны в табл.5.15.
Пример запроса для формата HTTP POST:
<FORM ACTION="https://<SERVER-NAME>/orderresult/orderresult.cfm" METHOD="POST"> <INPUT TYPE="HIDDEN" NAME="Ordernumber" VALUE="1001-01"> <INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="Ваш Merchant_ID"> <INPUT TYPE="HIDDEN" NAME="Login" VALUE="Ваш логин"> <INPUT TYPE="HIDDEN" NAME="Password" VALUE="Ваш пароль"> <INPUT TYPE="HIDDEN" NAME="Startyear" VALUE="2011"> <INPUT TYPE="HIDDEN" NAME="Startmonth" VALUE="04"> <INPUT TYPE="HIDDEN" NAME="Startday" VALUE="01"> <INPUT TYPE="HIDDEN" NAME="Starthour" VALUE="00"> <INPUT TYPE="HIDDEN" NAME="Startmin" VALUE="00"> <INPUT TYPE="HIDDEN" NAME="Endyear" VALUE="2011"> <INPUT TYPE="HIDDEN" NAME="Endmonth" VALUE="04"> <INPUT TYPE="HIDDEN" NAME="Endday" VALUE="02"> <INPUT TYPE="HIDDEN" NAME="Endhour" VALUE="00"> <INPUT TYPE="HIDDEN" NAME="Endmin" VALUE="00"> <INPUT TYPE="HIDDEN" NAME="Format" VALUE="3"> <INPUT TYPE="HIDDEN" NAME="Language" VALUE="EN"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Выполнить"> </FORM>
Параметры ответа:
Название | Значение |
Параметры заказа | |
billnumber | Уникальный номер заказа в системе АПК Ассист |
ordernumber | Номер заказа |
testmode | Тестовый режим |
ordercomment | Комментарий |
orderamount | Оригинальная сумма заказа |
ordercurrency | Оригинальная валюта заказа |
firstname | Имя плательщика |
lastname | Фамилия плательщика |
middlename | Отчество плательщика |
Email плательщика | |
orderdate | Дата заказа по Гринвичу (GMT) |
orderstate | Статус заказа |
packetdate | Дата формирования запроса по Гринвичу (GMT) |
signature | |
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 | Держатель платежного средства |
cardexpirationdate | Срок действия карты |
issuebank | Название банка-эмитента |
bankcountry | Страна банка-эмитента |
responsecode | Код возврата |
message | Сообщение о результате операции |
customermessage | Сообщение о результате для покупателя |
recommendation | Рекомендация |
approvalcode | Код авторизации |
protocoltypename | Протокол |
processingname | Процессинг |
operationdate | Дата и время операции (GMT) |
authresult | Результат аворизации по 3DSecure (Y - успешно, N - неуспешно, A - Attempt, U – неизвестно) |
authrequired | Результат проверки вовлеченности карты (1 – вовлечена, 0 – не вовлечена, -1 – неизвестно, null – ошибка при определении вовлеченности) |
slipno | Номер финансовой транзакции, отправляемый в процессинг |
Описание веб-сервиса:
<?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="orderresult" targetNamespace="http://www.paysecure.ru/ws/"> <wsdl:types> <xsd:schema targetNamespace="http://www.paysecure.ru/ws/"> <xsd:complexType name='order'> <xsd:sequence> <xsd:element name="ordernumber" type="xsd:string" /> <xsd:element name="billnumber" type="xsd:string" /> <xsd:element name="testmode" type="xsd:string" /> <xsd:element name="ordercomment" type="xsd:string" /> <xsd:element name="orderamount" type="xsd:string" /> <xsd:element name="ordercurrency" type="xsd:string" /> <xsd:element name="firstname" type="xsd:string" /> <xsd:element name="lastname" type="xsd:string" /> <xsd:element name="middlename" type="xsd:string" /> <xsd:element name="email" type="xsd:string" /> <xsd:element name="orderdate" type="xsd:string" /> <xsd:element name="orderstate" type="xsd:string" /> <xsd:element name="packetdate" type="xsd:string" /> <xsd:element name="signature" type="xsd:string" /> <xsd:element name="checkvalue" type="xsd:string" minOccurs="0" maxOccurs="1" /> <xsd:element name="operation" type="tns:operation" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name='operation'> <xsd:sequence> <xsd:element name="billnumber" type="xsd:string" /> <xsd:element name="operationtype" type="xsd:string" /> <xsd:element name="operationstate" type="xsd:string" /> <xsd:element name="amount" type="xsd:string" /> <xsd:element name="currency" type="xsd:string" /> <xsd:element name="clientip" type="xsd:string" /> <xsd:element name="ipaddress" type="xsd:string" /> <xsd:element name="meantype_id" type="xsd:string" /> <xsd:element name="meantypename" type="xsd:string" /> <xsd:element name="meansubtype" type="xsd:string" /> <xsd:element name="meannumber" type="xsd:string" /> <xsd:element name="cardholder" type="xsd:string" /> <xsd:element name="cardexpirationdate" type="xsd:string" /> <xsd:element name="issuebank" type="xsd:string" /> <xsd:element name="bankcountry" type="xsd:string" /> <xsd:element name="responsecode" type="xsd:string" /> <xsd:element name="message" type="xsd:string" /> <xsd:element name="customermessage" type="xsd:string" /> <xsd:element name="recommendation" type="xsd:string" /> <xsd:element name="approvalcode" type="xsd:string" /> <xsd:element name="protocoltypename" type="xsd:string" /> <xsd:element name="processingname" type="xsd:string" /> <xsd:element name="operationdate" type="xsd:string" /> <xsd:element name="slipno" type="xsd:string" /> <xsd:element name="authresult" type="xsd:string" /> <xsd:element name="authrequired" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="result"> <xsd:sequence> <xsd:element name="order" type="tns:order" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:schema> </wsdl:types> <wsdl:message name="orderresultRequest"> <wsdl:part name="ordernumber" type="xsd:string" /> <wsdl:part name="merchant_id" type="xsd:string" /> <wsdl:part name="login" type="xsd:string" /> <wsdl:part name="password" type="xsd:string" /> <wsdl:part name="language" type="xsd:string" /> <wsdl:part name="format" type="xsd:string" /> <wsdl:part name="startyear" type="xsd:string" /> <wsdl:part name="startmonth" type="xsd:string" /> <wsdl:part name="startday" type="xsd:string" /> <wsdl:part name="starthour" type="xsd:string" /> <wsdl:part name="startmin" type="xsd:string" /> <wsdl:part name="endyear" type="xsd:string" /> <wsdl:part name="endmonth" type="xsd:string" /> <wsdl:part name="endday" type="xsd:string" /> <wsdl:part name="endhour" type="xsd:string" /> <wsdl:part name="endmin" type="xsd:string" /> <wsdl:part name="billnumber" type="xsd:string" /> </wsdl:message> <wsdl:message name="orderresultResponse"> <wsdl:part type="tns:result" name="orderresult" /> </wsdl:message> <wsdl:portType name="orderresultPortType"> <wsdl:operation name="orderresult"> <wsdl:input message="tns:orderresultRequest" /> <wsdl:output message="tns:orderresultResponse" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="orderresultBinding" type="tns:orderresultPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="orderresult"> <soap:operation soapAction="http://www.paysecure.ru/ws/orderresult" /> <wsdl:input> <soap:body namespace="http://www.paysecure.ru/ws/" use="literal" /> </wsdl:input> <wsdl:output> <soap:body namespace="http://www.paysecure.ru/ws/" use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="orderresultService"> <wsdl:port binding="tns:orderresultBinding" name="orderresult"> <soap:address location="" /> </wsdl:port> </wsdl:service> </wsdl:definitions>