Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Предприятие может узнать результат оплаты (статус заказа) по номеру заказа с помощью веб-сервиса. Все возможные статусы заказа описаны в таблице 5.1"Статусы заказа (orderstate)".

Для получения результата платежа по номеру заказа нужно отправить запрос на сервер АПК Ассист методом HTTP POST или SOAP (в кодировке UTF-8), либо в формате JSON (swagger описание: https://docs.assist.ru/swagger/). 

URL запроса для получения статуса заказа:

https://<SERVER-NAME>/orderstate/orderstate.cfm.

Поиск заказа при помощи веб-сервиса производится только за указанный промежуток времени. Для этого нужно задать период, когда была начата оплата заказа, при помощи параметров STARTDAY, STARTMONTH, STARTYEAR, задающих дату начала выборки, и параметров ENDDAY, ENDMONTH, ENDYEAR, задающих дату окончания выборки. Если параметры будут не заданы или заданы неверно, для них будут использованы значения по умолчанию. По умолчанию за дату окончания выборки принимается текущая дата, а за дату начала выборки – текущая дата минус три дня.

...

Список параметров запроса:

-

Название

Обязатель

ное поле

Принимаемые значения

Значение по умолчанию

Описание

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

Текущая минута

Format

Да/Нет

1 – CSV
2 – WDDX
3 – XML
4 - SOAP
5 - JSON

4

Формат выдачи результатов. Не нужно передавать в случае формата SOAP, нужно для формата POST

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

...

Название

...

Значение

...

billnumber

...

Уникальный номер заказа в системе АПК Ассист

...

ordernumber

...

Номер заказа

...

orderstate

...

Статус заказа

...

orderamount

...

Оригинальная сумма заказа

...

ordercurrency

...

Оригинальны валюта заказа

...

packetdate

...

Дата формирования запроса по Гринвичу (GMT)

...

checkvalue

...

uppercase(md5(uppercase(md5(SALT) + md5(Х)))), где SALT – секретное слово; Х – результат строковой склейки параметров merchant_id, ordernumber, orderamount, ordercurrency, orderstate (без разделителей), + -строковая склейка

Передается только для запроса в формате POST (по умолчанию ответ будет выдан в формате SOAP). Для других форматов ответ выдается в том же формате, в котором был выполнен запрос.

Multiexcerpt include
MultiExcerptNameValidation
PageWithExcerptБлоки документов

Пример запроса HTTP POST для получения статуса заказа 1001-01, оплата которого началась 1 апреля 2018 года (GMT)

...

:

wsdl
Code Block
..
languagexmltitle
<FORM ACTION="https://<SERVER-NAME>/orderstate/orderstate.
linenumberstrue
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="2018">
<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="2018">
<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="SUBMIT" NAME="Submit" VALUE="Submit">
</FORM>

Список параметров ответа:

Название

Значение

billnumber

Уникальный номер заказа в системе АПК Ассист

ordernumber

Номер заказа

orderstate

Статус заказа

orderamount

Оригинальная сумма заказа

ordercurrency

Оригинальны валюта заказа

packetdate

Дата формирования запроса по Гринвичу (GMT)

signature

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

2) Для типа PGP – значение X, подписанное закрытым ключом АПК Ассист, закодированное в BASE64

checkvalue

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

2) Для типа MD5 – uppercase(md5(uppercase(md5(SALT) + md5(Х)))), где SALT – секретное слово; Х – результат строковой склейки параметров merchant_id, ordernumber, orderamount, ordercurrency, orderstate (без разделителей), + строковая склейка.

Пример результата ответа в формате CSV:

Panel

ordernumber;billnumber;orderamount;ordercurrency;orderstate;packetdate;signature;checkvalue;2306-08;551508910014022;100.00;RUB;Approved;23.06.2011 11:59;; D6313123A5C09;

В формате XML:

Code Block
languagexml
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<!DOCTYPE result [
<!ATTLIST result
                 firstcode CDATA #REQUIRED
                 secondcode CDATA #REQUIRED
                 count CDATA #REQUIRED>
<!ELEMENT result (order*)>
<!ELEMENT order (ordernumber?,billnumber?,orderamount?,ordercurrency?,orderstate?,packetdate?,checkvalue?)>
<!ELEMENT ordernumber (#PCDATA)>
<!ELEMENT billnumber (#PCDATA)>
<!ELEMENT orderamount (#PCDATA)>
<!ELEMENT ordercurrency (#PCDATA)>
<!ELEMENT orderstate (#PCDATA)>
<!ELEMENT packetdate (#PCDATA)>
<!ELEMENT checkvalue (#PCDATA)>]> 
<result firstcode='0' secondcode='0' count='1'> 
<order><ordernumber>0001-01</ordernumber> 
<billnumber>511111100000001</billnumber>
<orderamount>100.00</orderamount>
<ordercurrency>RUB</ordercurrency>
<orderstate>Approved</orderstate>
<packetdate>01.01.2018 11:58</packetdate> 
<signature></signature>
<checkvalue>
</checkvalue> 
</order></result>

Пример результата запроса в формате XML, вернувшего ошибку (неправильный пароль):

Code Block
languagexml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<!DOCTYPE result [...]> 
<result firstcode="7"
secondcode="102" count="0"></result> 

С описанием первого и второго кодов ошибок можно ознакомиться в Таблице "Коды ошибок".

Описание веб-сервиса для формата SOAP можно увидеть на странице:

https://<SERVER-NAME>/orderstate/orderstate.wsdl

Если попытка оплаты заказа была неуспешной (не прошла авторизация платежного средства или превышено время ожидания), то при повторной попытке оплаты будет создан новый уникальный номер (billnumber) в АПК Ассист для того же номера заказа в интернет-магазине, что будет отражено в ответе на запрос о статусе заказа.

Пример ответа в формате SOAP для случая успешной оплаты заказа со второй попытки:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv<?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="orderstate"
targetNamespace="http://www.paysecure.ru/ws/">
<wsdl:types>
<xsd:schema targetNamespace="http://www.paysecure.ru/ws/">
<xsd:complexType name='operationResult'>
<xsd:sequence>
	<xsd:element name="ordernumber" type="xsd:string" />
	<xsd:element name="billnumber" type="xsd:string" />
	<xsd:element name="orderamount" type="xsd:string" />
	<xsd:element name="ordercurrency" type="xsd:string" />
	<xsd:element name="orderstate" type="xsd:string" />
	<xsd:element name="packetdate" type="xsd:string" />
	<xsd:element minOccurs="0" name="signature" type="xsd:string" />
	<xsd:element minOccurs="0" name="checkvalue" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="result" >
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="order"
type="tns:operationResult"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="orderstateRequest">
	<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="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:message>
<wsdl:message name="orderstateResponse">
<wsdl:part type="tns:result" name="orderstate"/>
</wsdl:message>
<wsdl:portType name="orderstatePortType">
<wsdl:operation name="orderstate">
<wsdl:input message="tns:orderstateRequest" />
<wsdl:output message="tns:orderstateResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="orderstateBinding" type="tns:orderstatePortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="orderstate">
<soap:operation soapActionenvelope/"
xmlns:ws="http://www.paysecure.ru/ws/orderstate" />
<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="orderstateService">
<wsdl:port binding="tns:orderstateBinding" name="orderstate">
<soap:address location="" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>"><soapenv:Body>
<ws:orderstateResponse>
<orderstate>
      <order>
        <ordernumber>13032014_121</ordernumber>
        <billnumber>5500069208497981</billnumber>
        <orderamount>121.00</orderamount>
        <ordercurrency>RUB</ordercurrency>
        <orderstate> Declined </orderstate>
        <packetdate>13.03.2018 13:34</packetdate>
        <signature></signature>
        <checkvalue>45A33F800F2BD16C02E3D2F5C81557A0</checkvalue>
      </order>
      <order>
        <ordernumber>13032014_121</ordernumber>
        <billnumber>5500069208497999</billnumber>
        <orderamount>121.00</orderamount>
        <ordercurrency>RUB</ordercurrency>
        <orderstate>Approved</orderstate>
        <packetdate>13.03.2018 13:34</packetdate>
        <signature></signature>
        <checkvalue>671768C59429DE5A9C5BBD1E7F573666</checkvalue>
      </order>
</orderstate>
</ws:orderstateResponse>
</soapenv:Body></soapenv:Envelope>
Warning
titleВнимание!

Для корректной работы с веб-сервисами по защищенному TLS-соединению необходимо иметь на своей стороне в хранилище доверенных корневых сертификатов следующие сертификаты:

Перед началом работы следует проверить наличие этих сертификатов в хранилище и добавить их в случае необходимости.



Наверх