- Created by Сергей, last modified by Владимир on Nov 08, 2017
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 66 Next »
Общая информация
Данное API на текущий момент реализации позволяет запросить реестр платежей. Взаимодействие между сервером IntellectMoney и клиентом API происходит по HTTP-протоколу.
В ответ приходят два состояния запроса это <OperationState> и <Response>:
- <OperationState> сообщает - смогла ли система IntellectMoney обработать данный запрос. Возможны три варианта:
- Система обработала запрос.
- Система поставила запрос в очередь на обработку.
- Система не смогла обработать запрос.
- <Response> сообщает статус запроса - был ли найден данный метод, все ли параметры переданы верно и так далее.
Данные при запросах на сервер IntellectMoney передаются в формате параметров HTTP-запроса в кодировке UTF-8 с типом контента "application/x-www-form-urlencoded". В ответ данные возвращаются в формате XML, либо в формате JSON. Что бы получить ответ в формате JSON нужно в заголовки запроса передать "Accept: text/json".
СЛОВАРЬ ТЕРМИНОВ
- СКО — Счет К Оплате, инвойс
ПОРЯДОК ВЫЗОВА МЕТОДОВ
Для доступа к API следует получить ключ доступа через операцию аутентификации клиента Документация Personal API. Данный ключ является обязательным параметром для всех операций API.
getUserToken() — Аутентификация клиента API
Для запроса ключа доступа клиента к API необходимо отправить GET- или POST-запрос на следующий адрес URL: https://api.intellectmoney.ru/personal/user/getUserToken В запросе необходимо передать следующие параметры: Название Имя параметра Обязательный Описание Логин Login Да Логин пользователя юридического лица (магазина). Пароль Password Да Пароль пользователя юридического лица (магазина). В ответ возвращается код операции и возможны 3 варианта: Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <UserTokenData> (синхронная обработка). ( Код операции - 0 ) Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 ) Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 ) Использование UserToken в GET-запросах к API При формировании GET-запросов к API UserToken следует экранировать с помощью функции url-encode (https://www.urlencoder.org)Передача параметров
Примеры
Post /personal/user/getUserToken HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Login=somelogin
Password=somepassword
<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<OperationState>
<Code>0</Code>
<Desc>Успешно обработана</Desc>
</OperationState>
<OperationId>f2c33a48-17c8-4889-a327-5ad1b6260cd5</OperationId>
<EshopId>0</EshopId>
<Result>
<State>
<Code>0</Code>
<Desc>Успешно обработан.</Desc>
</State>
<UserToken>bs/fZNe0CE+b/Ze1xvVaNdEbjxm2wkRqMBSnBXJO9nFeEM57Hg17+AS8nF0Cs7+0</UserToken>
</Result>
</Response>
function getToken(){
$urlGetToken = "https://api.intellectmoney.ru/personal/user/getUserToken";
$login = 'Ваш логин от личного кабинета IntellectMoney';
$password = 'Ваш пароль от личного кабинета IntellectMoney';
$result = file_get_contents($urlGetToken."?Login=".$login."&Password=".$password);
$xml = new SimpleXMLElement($result);
$userToken = $xml->Result->UserToken[0];
return $userToken;
}
GETINVOICESHISTORY() — ПОЛУЧЕНИЕ РЕЕСТРА ПЛАТЕЖЕЙ
Передача параметров
Для запроса реестра платежей необходимо отправить GET- или POST-запрос на следующий адрес URL:
https://api.intellectmoney.ru/personal/payment/getInvoicesHistory
В запросе необходимо передать следующие параметры:
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
Ключ доступа | UserToken | Да | Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. |
ID магазина | EshopId | Нет | Номер магазина в системе IntellectMoney, по которому запрашивается реестр. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID". |
Статус СКО | State | Нет | Запрос реестра платежей только с указанным статусом СКО (см. <InvoiceState>) |
Номер СКО | InvoiceId | Нет | Запрос информации только по одному СКО по его номеру |
Включает транзакции по СКО в выборку | IncludePaymentTransactions | Тип boolean. При передаче значения true в выборку будут включены все транзакции по СКО: транзакции пополнения СКО, транзакции пополнения счета магазина, транзакции возврата (при возврате) | |
Дата начала выборки | DateFrom | Нет | Запрос реестра платежей с д атой последних изменений СКО, входящей в период выборки в формате ММ.ДД.ГГГГ. |
Дата окончания выборки | DateTo | Нет | |
Ограничение выборки по количеству объектов | Skip | Нет | Количество объектов, пропускаемых перед отдачей |
Ограничение выборки по количеству объектов | Take | Да | Ограничение на количество возвращаемых объектов. |
Использование параметров
При выборке данных используется конъюнкция параметров. Например, в случае, если переданы параметры "Статус СКО" и "Номер СКО", то результат запрос вернет объект СКО только при его наличии с переданными номером и статусом.
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <InvoicesHistoryListData> (синхронная обработка). ( Код операции - 0 )
Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 )
Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Post /personal/payment/getInvoicesHistory HTTP/1.1 Host: api.intellectmoney.ru Content-Type: application/x-www-form-urlencoded; charset=utf-8 userToken=bs/fZNe0CE+b/Ze1xvVaNdEbjxm2wkRqMBSnBXJO9nFeEM57Hg17+AS8nF0Cs7+0 eshopId=450063 dateTo=07.15.2017 take=10 invoiceId=3930949846 IncludePaymentTransactions=true
<?xml version="1.0" encoding="utf-8"?> <Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <OperationState> <Code>0</Code> <Desc>Успешно обработана</Desc> </OperationState> <OperationId>50a55d0c-a754-47ca-b355-56362cf52a98</OperationId> <EshopId>0</EshopId> <Result> <State> <Code>0</Code> <Desc>Успешно обработан.</Desc> </State> <InvoicesHistoryList> <InvoiceData> <Id>3930949846</Id> <State>Paid</State> <HoldModeFlag>false</HoldModeFlag> <ChangeDate>2017-06-02T10:12:00.457</ChangeDate> <CreationDate>2017-06-02T10:11:03.383</CreationDate> <ExpirationDate>0001-01-01T00:00:00</ExpirationDate> <Amount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </Amount> <CurrentAmount> <Amount>0.0000</Amount> <Currency>RUB</Currency> </CurrentAmount> <SurchargeAmount> <Amount>0</Amount> <Currency>RUB</Currency> </SurchargeAmount> <AdditionalInfo> <KeyValue> <Key>Магазин</Key> <Value xsi:type="xsd:string">ShopReal</Value> </KeyValue> <KeyValue> <Key>Url</Key> <Value xsi:type="xsd:string">http://yandex.ru</Value> </KeyValue> </AdditionalInfo> <HistoryList> <HistoryData> <Id>27907531</Id> <PaymentNumber>2036160602</PaymentNumber> <State>Confirm</State> <CreationDate>2017-09-22T17:30:01.04</CreationDate> <PaymentAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>IMOUT4936010998</PaymentAccount> <RecipientAccount>IM1028693534</RecipientAccount> <Comment>Возврат по ордеру 538</Comment> <Description>Внутренний на s.suvorinov@intellectmoney.ru</Description> <Direction>Withdraw</Direction> <PurchaseOrderId>123456789000</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Refund</InvoicePaymentType> <InvoiceId>3930949846</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <ShortPan /> <Country /> <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail> </HistoryData> <HistoryData> <Id>27905689</Id> <PaymentNumber>2036150166</PaymentNumber> <State>Confirm</State> <CreationDate>2017-06-02T10:12:00.517</CreationDate> <PaymentAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>10.6200</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>Счет к оплате 3930949846</PaymentAccount> <RecipientAccount>IM4406528006</RecipientAccount> <Description>Зачисление денежных средств на счет магазина "ShopReal" со счета "3930949846"</Description> <Direction>Withdraw</Direction> <PurchaseOrderId>123456789000</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Purchase</InvoicePaymentType> <InvoiceId>3930949846</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <ShortPan /> <Country /> <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail> </HistoryData> <HistoryData> <Id>27905686</Id> <PaymentNumber>2036150165</PaymentNumber> <State>Confirm</State> <CreationDate>2017-06-02T10:11:20.767</CreationDate> <PaymentAmount> <Amount>11.1100</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>IM1028693534</PaymentAccount> <RecipientAccount>Счет к оплате 3930949846</RecipientAccount> <Comment /> <Description>Пополнение счета № "3930949846" через "IM1028693534"</Description> <Direction>Deposit</Direction> <PurchaseOrderId>123456789000</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Entry</InvoicePaymentType> <InvoiceId>3930949846</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <InputType>InnerPayment</InputType> <ShortPan /> <Country /> <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail> </HistoryData> </HistoryList> <OwnerEmail>s.suvorinov@intellectmoney.ru</OwnerEmail> <OwnerFIO>Суворинов Сергей eauoau</OwnerFIO> <PurchaseOrderId>123456789000</PurchaseOrderId> <PurchaseData> <Id>36007</Id> <PurchaseMoney> <Amount>11.0000</Amount> <Currency>RUB</Currency> </PurchaseMoney> <OrderId>123456789000</OrderId> <BackUrl>http://google.com/backurl</BackUrl> <SuccessMethod xsi:nil="true" /> <FailMethod xsi:nil="true" /> <EshopId>450063</EshopId> <EshopUrl>http://yandex.ru</EshopUrl> <EshopName>ShopReal</EshopName> <SMSEnable>true</SMSEnable> <UserName>Суворинов Сергей</UserName> <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail> <IsHeldByEshop>true</IsHeldByEshop> <ParseUserFields /> </PurchaseData> <IsCanEnrollmentByDisabledMethod>false</IsCanEnrollmentByDisabledMethod> <InvoiceChangeAmountHistoryData /> <OriginalAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </OriginalAmount> <FormType>None</FormType> <OrganizationName>Маша и Медведи</OrganizationName> <IsHaveCashboxReceipts>false</IsHaveCashboxReceipts> </InvoiceData> </InvoicesHistoryList> </Result> </Response>
SetScheduledOperation() — РЕДАКТИРОВАНИЕ ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Для редактирования операций по расписанию необходимо отправить GET- или POST-запрос на следующий адрес URL: Операцию по расписанию можно создавать когда, в уведомлении о платеже параметр reccurringState пришел в состоянии "Activated". Название Имя параметра Обязательный Описание Номер операции Operation Нет Номер операции для ее изменения, если не передать создается новая операция (GUID) Объект операции ObjectId Да Объект источник, например: Дополнительные параметры в формате JSON, например: {'Amount':15} Флаг, указывающий возможность запуска паралельных тасков Флаг, указывающий статус активности Дата окончания выполнения операций по расписанию. По достижению данной даты, операция по расписанию выполняться не будет. Передаётся в формате ММ.ДД.ГГГГ В ответ возвращается код операции и возможны 3 варианта: Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <SetScheduledOperationData> (синхронная обработка). ( Код операции - 0 ) Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 ) Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 ) Для создания операции оп расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из пункта "Дополнительная информация"Передача параметров
https://api.intellectmoney.ru/personal/payment/setScheduledOperationКлюч доступа UserToken Да Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. Тип операции ObjectTypeVal Да Тип регулярной операции (1 - Recurring) Параметры ParamsJson Нет План выполнения RepeatPlan Да Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/) План повторов выполнения RetryOnFailPlan Нет Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/) Количество повторов выполнения RetryOnFailCount Нет Количество повторных попыток выполнения (целое число) Многопоточность IsSingle Да Перезапуск FireOnSkip Да Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) Активность State Да Дата окончания EndExecDate
Да Примеры
Post /personal/scheduler/SetScheduledOperationData HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
UserToken = 9WUoI8gEQndN%2BI97MGA4vxIiPZs2v32MxyJS7%2FGDxegOLFXcBQy4fUfCqt6NURzV
Object = 3028460763
ObjectTypeVal = 1
IsSingle = 1
ParamsJson = {"Amount":"15"}
RepeatPlan = 0 0 12 1/1 * ? *
RetryOnFailPlan = 0 0/15 * 1/1 * ? *
RetryOnFailCount = 3
FireOnSkip = 0
State = 1
endExecDate = 12.12.2017
Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OperationState>
<Code>0</Code>
<Desc>Успешно обработана</Desc>
</OperationState>
<OperationId>b294b231-9a77-427a-9866-f111e4c88515</OperationId>
<EshopId>0</EshopId>
<Result>
<State>
<Code>0</Code>
<Desc>Успешно обработан.</Desc>
</State>
<ScheduledOperation>
<CronOperationId>6529bef0-3b44-49f6-9ab9-6c4643fd8027</CronOperationId>
<ObjectId>3028460763</ObjectId>
<CronOperationType>Recurring</CronOperationType>
<CreationDate>2017-10-19T16:44:07.3796978+03:00</CreationDate>
<ChangeDate>2017-10-19T16:44:07.3953063+03:00</ChangeDate>
<EndExecDate>2017-12-12T00:00:00</EndExecDate>
<LastExecDate>2017-10-19T16:44:07.3796978+03:00</LastExecDate>
<NextExecDate>2017-10-20T12:00:00+03:00</NextExecDate>
<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
<RetryOnFailCount>3</RetryOnFailCount>
<FireOnSkip>false</FireOnSkip>
<IsSingle>true</IsSingle>
<CronOperationState>Disable</CronOperationState>
</ScheduledOperation>
</Result>
</Response>
$userToken = getToken();
$objectId = "paymentId";//Номер счёта к оплате в системе IntellectMoney
$objectTypeVal = 1;
$params = '{"Amount":"15"}';
$repeatPlan = "0 0 12 1/1 * ? *";
$retryOnFailPlan = "0 0/15 * 1/1 * ? *";
$retryOnFailCount = 3;
$fireOnSkip = 1;
$state = 1;
$endExecDate = "12.12.2017";
$data = array(
'UserToken' => $userToken,
'Operation' => $operationId,
'ObjectId' => $objectId,
'ObjectTypeVal' => $objectTypeVal,
'ParamsJson' => $params,
'RepeatPlan' => $repeatPlan,
'RetryOnFailPlan' => $retryOnFailPlan,
'RetryOnFailCount' => $retryOnFailCount,
'FireOnSkip' => $fireOnSkip,
'EndExecDate' => $endExecDate,
'State' => $state
);
$queryString = http_build_query($data);
curlRequest('GetScheduledOperation', $queryString);
GetScheduledOperation() — ПОЛУЧЕНИЕ СПИСКА ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Для получения списка операций по расписанию необходимо отправить GET- или POST-запрос на следующий адрес URL: Название Имя параметра Обязательный Описание Номер операции Operation Нет Номер операции для ее изменения, если не передать создается новая операция (GUID) Объект операции ObjectId Нет Объект источник, Дополнительные параметры в формате JSON, например: {'Amount':15} Флаг, указывающий возможность запуска паралельных тасков Флаг, указывающий статус активности Количество объектов, пропускаемых перед отдачей Ограничение на количество возвращаемых объектов. В ответ возвращается код операции и возможны 3 варианта: Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <GetScheduledOperationData> (синхронная обработка). ( Код операции - 0 ) Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 ) Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 ) Для создания операции оп расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из пункта "Дополнительная информация"Передача параметров
https://api.intellectmoney.ru/personal/payment/getScheduledOperationКлюч доступа UserToken Да Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. Тип операции ObjectTypeVal Нет Тип регулярной операции (1 - Recurring) Параметры ParamsJson Нет План выполнения RepeatPlan Нет Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/) План повторов выполнения RetryOnFailPlan Нет Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/) Количество повторов выполнения RetryOnFailCount Нет Количество повторных попыток выполнения (целое число) Многопоточность IsSingle Нет Перезапуск FireOnSkip Нет Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) Активность State Нет Дата начала выборки DateFrom Нет Пограничные значения даты изменения расписания ММ.ДД.ГГГГ. Дата окончания выборки DateTo Нет Пограничные значения даты изменения расписания ММ.ДД.ГГГГ. Ограничение выборки по количеству объектов Skip Нет Ограничение выборки по количеству объектов Take Да Примеры
Post /personal/scheduler/GetScheduledOperationData HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
UserToken = 9WUoI8gEQndN%2BI97MGA4vxIiPZs2v32MxyJS7%2FGDxegOLFXcBQy4fUfCqt6NURzV
Skip = 0
Take = 3
Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OperationState>
<Code>0</Code>
<Desc>Успешно обработана</Desc>
</OperationState>
<OperationId>0670c93d-7fd7-4240-822b-b62e55cf070c</OperationId>
<EshopId>0</EshopId>
<Result>
<State>
<Code>0</Code>
<Desc>Успешно обработан.</Desc>
</State>
<ScheduledOperationList>
<ScheduledOperationData>
<CronOperationId>6529bef0-3b44-49f6-9ab9-6c4643fd8027</CronOperationId>
<ObjectId>3028460763</ObjectId>
<CronOperationType>Recurring</CronOperationType>
<Params>{"Amount":"15"}</Params>
<CreationDate>2017-10-19T16:44:07.3796978</CreationDate>
<ChangeDate>2017-10-19T16:44:07.3953063</ChangeDate>
<EndExecDate>2017-12-12T00:00:00</EndExecDate>
<LastExecDate>2017-10-19T16:44:07.3796978</LastExecDate>
<NextExecDate>2017-10-20T12:00:00</NextExecDate>
<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
<RetryOnFailCount>3</RetryOnFailCount>
<FireOnSkip>false</FireOnSkip>
<IsSingle>true</IsSingle>
<CronOperationState>Disable</CronOperationState>
</ScheduledOperationData>
<ScheduledOperationData>
<CronOperationId>9da1c831-f615-4217-a2b7-5c19927cd321</CronOperationId>
<ObjectId>3028460763</ObjectId>
<CronOperationType>Recurring</CronOperationType>
<Params>{"Amount":"15"}</Params>
<CreationDate>2017-10-19T16:51:36.7057137</CreationDate>
<ChangeDate>2017-10-19T16:51:36.7057137</ChangeDate>
<EndExecDate>2017-12-12T00:00:00</EndExecDate>
<LastExecDate>2017-10-19T16:51:36.7057137</LastExecDate>
<NextExecDate>2017-10-20T12:00:00</NextExecDate>
<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
<RetryOnFailCount>3</RetryOnFailCount>
<FireOnSkip>false</FireOnSkip>
<IsSingle>true</IsSingle>
<CronOperationState>Disable</CronOperationState>
</ScheduledOperationData>
<ScheduledOperationData>
<CronOperationId>b72025bc-1723-4866-9c32-027e23f68544</CronOperationId>
<ObjectId>3028460763</ObjectId>
<CronOperationType>Recurring</CronOperationType>
<Params>{"Amount":"15"}</Params>
<CreationDate>2017-10-19T16:58:25.2139727</CreationDate>
<ChangeDate>2017-10-19T16:58:25.2139727</ChangeDate>
<EndExecDate>2017-12-12T00:00:00</EndExecDate>
<LastExecDate>2017-10-19T16:58:25.2139727</LastExecDate>
<NextExecDate>2017-10-20T12:00:00</NextExecDate>
<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
<RetryOnFailCount>3</RetryOnFailCount>
<FireOnSkip>false</FireOnSkip>
<IsSingle>true</IsSingle>
<CronOperationState>Disable</CronOperationState>
</ScheduledOperationData>
</ScheduledOperationList>
</Result>
</Response>
$userToken = getToken();
$operation = "1BDB57A8-956F-4B0A-8C2B-BCE487B23CE6";
$objectId = "SourceInvoiceId";// Приходит среди параметров в уведомлении об оплате счёта на Result URL
$objectTypeVal = 1;
$params = '{"Amount":"15"}';
$repeatPlan = "0 0 12 1/1 * ? *";
$retryOnFailPlan = "0 0/15 * 1/1 * ? *";
$retryOnFailCount = 3;
$fireOnSkip = 1;
$state = 1;
$dateFrom = "10.10.2017";
$dateTo = "10.17.2017";
$skip = 0;
$take = 1;
$data = array(
'UserToken' => $userToken,
'Operation' => $operationId,
'ObjectId' => $objectId,
'ObjectTypeVal' => $objectTypeVal,
'ParamsJson' => $params,
'RepeatPlan' => $repeatPlan,
'RetryOnFailPlan' => $retryOnFailPlan,
'RetryOnFailCount' => $retryOnFailCount,
'FireOnSkip' => $fireOnSkip,
'State' => $state,
'DateFrom' => $dateFrom,
'DateTo' => $dateTo,
'Skip' => $skip,
'Take' => $take,
);
$queryString = http_build_query($data);
curlRequest('GetScheduledOperation', $queryString);
Дополнительная информация
Для работы примеров, написанных на языке программирования PHP, Вам потребуется модуль curl, а так же функция function curlRequest($func, $data) {
$urlMerchantApi = "https://api.intellectmoney.ru/personal/scheduler/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $urlMerchantApi . $func . "?" . $data);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
}
ТИПЫ ДАННЫХ
<Response>
Поле | Тип | Описание |
---|---|---|
OperationState | Статус выполнения операции | |
OperationId | GUID | Идентификатор операции |
EshopId | int | ID магазина |
Result | MethodResult | Результат выполнения запроса. Зависит от типа запроса. В случае асинхронной обработки запроса данного поля не будет. |
<OperationState>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
Desc | string | Описание кода статуса выполнения запроса |
<UserTokenData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
UserToken | string | Ключ доступа клиента к API |
<InvoicesHistoryListData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
InvoicesHistoryList | Список (реестр) платежей |
<InvoiceData>
Поле | Тип | Описание |
---|---|---|
Id | long | Номер СКО |
State | Статус состояния СКО | |
CreationDate | DateTime | Дата создания СКО |
ChangeDate | DateTime | Дата последних изменений СКО |
Amount | <Money> | Сумма СКО с учётом комиссии |
CurrentAmount | <Money> | Оплаченная сумма СКО |
SurchargeAmount | <Money> | Сумма СКО, которую осталось оплатить, если счёт уже оплачен - покажет 0 |
Comment | string | Комментарий к платежу |
EShopId | long | Номер магазина в системе IntellectMoney |
PurchaseOrderId | string | Внутренний номер покупки (заказа) в магазине |
HistoryList | List<HistoryData> | Список транзакций по СКО |
<HistoryData>
Поле | Тип | Описание |
---|---|---|
Id | long | Идентификатор транзакции в системе ИнтеллектМани (для внутреннего использования) |
PaymentNumber | long | Номер транзакции |
State | <TransactionState> | Статус транзакции |
CreationDate | DateTime | Дата создания транзакции |
PaymentAmount | <Money> | Сумма списания по транзакции |
RecipientAmount | <Money> | Сумма зачисления по транзакции |
PaymentAccount | string | Счет списания по транзакции |
RecipientAccount | string | Счет зачисления по транзакции |
Comment | string | Комментарий к транзакции |
Description | string | Описание транзакции |
InvoicePaymentType | <PaymentType> | Тип осуществляемой транзакции: пополнение, зачисление или возврат |
Свойства <InvoiceData>
Свойства типа данных <InvoiceData> и <HistoryData>, приведенные в примере ответа на запрос, но не описанные выше, следует игнорировать в текущей версии API.
<TransactionState>
TransactionState | Описание | Пояснение |
---|---|---|
Created | Создан | Транзакция создана на исполнение и ожидает очереди к выполнению |
Confirm | Исполнен | Транзакция исполнена, средства переведены с одного счета на другой |
Canceled | Отменена | Транзакция отменена. Считать недействительной. |
<PaymentType>
PaymentType | Описание | Пояснение |
---|---|---|
Entry | Входная транзакция | Транзакция пополнения СКО |
Purchase | Транзакция зачисления | Транзакция пополнения счета магазина |
Refund | Транзакция возврата | Транзакция возврата со счета магазина на счет плательщика |
<Money>
Поле | Тип | Описание |
---|---|---|
Amount | decimal | Количество денежных средств. |
Currency | <Currency> | В какой валюте исчисляются денежные средства. |
<SetScheduledOperationData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
SetScheduledOperationData | Bool | 1 - Расписание отредактировано успешно |
<GetScheduledOperationData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
GetScheduledOperationData | Список операций |
<ScheduledOperationData>
Поле | Тип | Описание |
---|---|---|
OperationId | GUID | Номер операции для ее изменения, если не передать создается новая операция (GUID) |
ObjectId | long | Объект источник, например:
|
ObjectTypeVal | tinyint | Тип регулярной операции (1 - Recurring) |
Params | text | Дополнительные параметры в формате JSON, например: {'Amount':15} |
RepeatPlan | text | Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/ ) |
RetryOnFailPlan | text | Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/ ) |
RetryOnFailCount | text | Количество повторных попыток выполнения (целое число) |
IsSingle | bool | Флаг, указывающий возможность запуска паралельных тасков
|
FireOnSkip | bool | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) |
State | bool | Флаг, указывающий статус активности
|
ПЕРЕЧИСЛЕНИЯ
Коды операций
ServiceOperatonState | Описание |
---|---|
0 | Успешно обработана |
1 | В процессе выполнения |
2 | Ошибка |
Статусы запросов
Код ошибки | Описание |
---|---|
0 | Успешно обработан |
1 | Обработан с предупреждениями |
2 | Аутентификация не пройдена |
Описание принимаемых валют
Название | Описание |
---|---|
RUB | Валюта оплаты - Российский рубль |
TST | Внутренняя тестовая валюта оплаты |
Статусы состояния СКО
InvoiceState | Числовое представление | Описание | Пояснение |
---|---|---|---|
Created | 0 | Создан | Счёт к оплате создан и теперь его состояние можно отслеживать методом getPurchaseInfo(). Никаких платёжных операций не производилось. |
PartPaid | 1 | Частично оплачен | Пользователь (Покупатель), внес часть средств. Пользователю (Покупателю) надо внести оставшуюся часть суммы. |
Paid | 2 | Полностью оплачен | Пользователь внес всю сумму. |
ToPaid | 3 | В процессе обработки | Над денежными средствами производятся действия. |
Refund | 4 | Возврат | Средства будут возвращены Пользователю (Покупателю). |
Held | 6 | Захолдирован | Средства заморожены (захолдированы/ holded) на счёте Пользователя (Покупателя). Данные средства будут зачислены или расхолдированы (вернутся Пользователю) по истечению времени заморозки (холдирования) или пока не будут зачислены вручную. Поведение денежных средств определяется в настройках магазина на вкладке "Приём платежей" в разделе "Расширенные настройки". |
Общая информация
Данное API на текущий момент реализации позволяет запросить реестр платежей. Взаимодействие между сервером IntellectMoney и клиентом API происходит по HTTP-протоколу.
В ответ приходят два состояния запроса это <OperationState> и <Response>:
- <OperationState> сообщает - смогла ли система IntellectMoney обработать данный запрос. Возможны три варианта:
- Система обработала запрос.
- Система поставила запрос в очередь на обработку.
- Система не смогла обработать запрос.
- <Response> сообщает статус запроса - был ли найден данный метод, все ли параметры переданы верно и так далее.
Данные при запросах на сервер IntellectMoney передаются в формате параметров HTTP-запроса в кодировке UTF-8 с типом контента "application/x-www-form-urlencoded". В ответ данные возвращаются в формате XML, либо в формате JSON. Что бы получить ответ в формате JSON нужно в заголовки запроса передать "Accept: text/json".
СЛОВАРЬ ТЕРМИНОВ
- СКО — Счет К Оплате, инвойс
ПОРЯДОК ВЫЗОВА МЕТОДОВ
Для доступа к API следует получить ключ доступа через операцию аутентификации клиента Документация Personal API. Данный ключ является обязательным параметром для всех операций API.
getUserToken() — Аутентификация клиента API
Для запроса ключа доступа клиента к API необходимо отправить GET- или POST-запрос на следующий адрес URL: https://api.intellectmoney.ru/personal/user/getUserToken В запросе необходимо передать следующие параметры: Название Имя параметра Обязательный Описание Логин Login Да Логин пользователя юридического лица (магазина). Пароль Password Да Пароль пользователя юридического лица (магазина). В ответ возвращается код операции и возможны 3 варианта: Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <UserTokenData> (синхронная обработка). ( Код операции - 0 ) Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 ) Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 ) Использование UserToken в GET-запросах к APIПередача параметров
Примеры
Post /personal/user/getUserToken HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Login=somelogin
Password=somepassword
<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<OperationState>
<Code>0</Code>
<Desc>Успешно обработана</Desc>
</OperationState>
<OperationId>f2c33a48-17c8-4889-a327-5ad1b6260cd5</OperationId>
<EshopId>0</EshopId>
<Result>
<State>
<Code>0</Code>
<Desc>Успешно обработан.</Desc>
</State>
<UserToken>bs/fZNe0CE+b/Ze1xvVaNdEbjxm2wkRqMBSnBXJO9nFeEM57Hg17+AS8nF0Cs7+0</UserToken>
</Result>
</Response>
function getToken(){
$urlGetToken = "https://api.intellectmoney.ru/personal/user/getUserToken";
$login = 'Ваш логин от личного кабинета IntellectMoney';
$password = 'Ваш пароль от личного кабинета IntellectMoney';
$result = file_get_contents($urlGetToken."?Login=".$login."&Password=".$password);
$xml = new SimpleXMLElement($result);
$userToken = $xml->Result->UserToken[0];
return $userToken;
}
При формировании GET-запросов к API UserToken следует экранировать с помощью функции url-encode (https://www.urlencoder.org)
* PHP http://php.net/manual/ru/function.urlencode.php
* C# HttpUtility.UrlEncode https://msdn.microsoft.com/ru-ru/library/system.web.httputility.urlencode(v=vs.110).aspx
PHP
urlencode
GETINVOICESHISTORY() — ПОЛУЧЕНИЕ РЕЕСТРА ПЛАТЕЖЕЙ
Передача параметров
Для запроса реестра платежей необходимо отправить GET- или POST-запрос на следующий адрес URL:
https://api.intellectmoney.ru/personal/payment/getInvoicesHistory
В запросе необходимо передать следующие параметры:
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
Ключ доступа | UserToken | Да | Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. |
ID магазина | EshopId | Нет | Номер магазина в системе IntellectMoney, по которому запрашивается реестр. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID". |
Статус СКО | State | Нет | Запрос реестра платежей только с указанным статусом СКО (см. <InvoiceState>) |
Номер СКО | InvoiceId | Нет | Запрос информации только по одному СКО по его номеру |
Включает транзакции по СКО в выборку | IncludePaymentTransactions | Тип boolean. При передаче значения true в выборку будут включены все транзакции по СКО: транзакции пополнения СКО, транзакции пополнения счета магазина, транзакции возврата (при возврате) | |
Дата начала выборки | DateFrom | Нет | Запрос реестра платежей с д атой последних изменений СКО, входящей в период выборки в формате ММ.ДД.ГГГГ. |
Дата окончания выборки | DateTo | Нет | |
Ограничение выборки по количеству объектов | Skip | Нет | Количество объектов, пропускаемых перед отдачей |
Ограничение выборки по количеству объектов | Take | Да | Ограничение на количество возвращаемых объектов. |
Использование параметров
При выборке данных используется конъюнкция параметров. Например, в случае, если переданы параметры "Статус СКО" и "Номер СКО", то результат запрос вернет объект СКО только при его наличии с переданными номером и статусом.
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <InvoicesHistoryListData> (синхронная обработка). ( Код операции - 0 )
Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 )
Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Post /personal/payment/getInvoicesHistory HTTP/1.1 Host: api.intellectmoney.ru Content-Type: application/x-www-form-urlencoded; charset=utf-8 userToken=bs/fZNe0CE+b/Ze1xvVaNdEbjxm2wkRqMBSnBXJO9nFeEM57Hg17+AS8nF0Cs7+0 eshopId=450063 dateTo=07.15.2017 take=10 invoiceId=3930949846 IncludePaymentTransactions=true
<?xml version="1.0" encoding="utf-8"?> <Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <OperationState> <Code>0</Code> <Desc>Успешно обработана</Desc> </OperationState> <OperationId>50a55d0c-a754-47ca-b355-56362cf52a98</OperationId> <EshopId>0</EshopId> <Result> <State> <Code>0</Code> <Desc>Успешно обработан.</Desc> </State> <InvoicesHistoryList> <InvoiceData> <Id>3930949846</Id> <State>Paid</State> <HoldModeFlag>false</HoldModeFlag> <ChangeDate>2017-06-02T10:12:00.457</ChangeDate> <CreationDate>2017-06-02T10:11:03.383</CreationDate> <ExpirationDate>0001-01-01T00:00:00</ExpirationDate> <Amount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </Amount> <CurrentAmount> <Amount>0.0000</Amount> <Currency>RUB</Currency> </CurrentAmount> <SurchargeAmount> <Amount>0</Amount> <Currency>RUB</Currency> </SurchargeAmount> <AdditionalInfo> <KeyValue> <Key>Магазин</Key> <Value xsi:type="xsd:string">ShopReal</Value> </KeyValue> <KeyValue> <Key>Url</Key> <Value xsi:type="xsd:string">http://yandex.ru</Value> </KeyValue> </AdditionalInfo> <HistoryList> <HistoryData> <Id>27907531</Id> <PaymentNumber>2036160602</PaymentNumber> <State>Confirm</State> <CreationDate>2017-09-22T17:30:01.04</CreationDate> <PaymentAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>IMOUT4936010998</PaymentAccount> <RecipientAccount>IM1028693534</RecipientAccount> <Comment>Возврат по ордеру 538</Comment> <Description>Внутренний на s.suvorinov@intellectmoney.ru</Description> <Direction>Withdraw</Direction> <PurchaseOrderId>123456789000</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Refund</InvoicePaymentType> <InvoiceId>3930949846</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <ShortPan /> <Country /> <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail> </HistoryData> <HistoryData> <Id>27905689</Id> <PaymentNumber>2036150166</PaymentNumber> <State>Confirm</State> <CreationDate>2017-06-02T10:12:00.517</CreationDate> <PaymentAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>10.6200</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>Счет к оплате 3930949846</PaymentAccount> <RecipientAccount>IM4406528006</RecipientAccount> <Description>Зачисление денежных средств на счет магазина "ShopReal" со счета "3930949846"</Description> <Direction>Withdraw</Direction> <PurchaseOrderId>123456789000</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Purchase</InvoicePaymentType> <InvoiceId>3930949846</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <ShortPan /> <Country /> <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail> </HistoryData> <HistoryData> <Id>27905686</Id> <PaymentNumber>2036150165</PaymentNumber> <State>Confirm</State> <CreationDate>2017-06-02T10:11:20.767</CreationDate> <PaymentAmount> <Amount>11.1100</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>IM1028693534</PaymentAccount> <RecipientAccount>Счет к оплате 3930949846</RecipientAccount> <Comment /> <Description>Пополнение счета № "3930949846" через "IM1028693534"</Description> <Direction>Deposit</Direction> <PurchaseOrderId>123456789000</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Entry</InvoicePaymentType> <InvoiceId>3930949846</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <InputType>InnerPayment</InputType> <ShortPan /> <Country /> <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail> </HistoryData> </HistoryList> <OwnerEmail>s.suvorinov@intellectmoney.ru</OwnerEmail> <OwnerFIO>Суворинов Сергей eauoau</OwnerFIO> <PurchaseOrderId>123456789000</PurchaseOrderId> <PurchaseData> <Id>36007</Id> <PurchaseMoney> <Amount>11.0000</Amount> <Currency>RUB</Currency> </PurchaseMoney> <OrderId>123456789000</OrderId> <BackUrl>http://google.com/backurl</BackUrl> <SuccessMethod xsi:nil="true" /> <FailMethod xsi:nil="true" /> <EshopId>450063</EshopId> <EshopUrl>http://yandex.ru</EshopUrl> <EshopName>ShopReal</EshopName> <SMSEnable>true</SMSEnable> <UserName>Суворинов Сергей</UserName> <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail> <IsHeldByEshop>true</IsHeldByEshop> <ParseUserFields /> </PurchaseData> <IsCanEnrollmentByDisabledMethod>false</IsCanEnrollmentByDisabledMethod> <InvoiceChangeAmountHistoryData /> <OriginalAmount> <Amount>11.0000</Amount> <Currency>RUB</Currency> </OriginalAmount> <FormType>None</FormType> <OrganizationName>Маша и Медведи</OrganizationName> <IsHaveCashboxReceipts>false</IsHaveCashboxReceipts> </InvoiceData> </InvoicesHistoryList> </Result> </Response>
SetScheduledOperation() — РЕДАКТИРОВАНИЕ ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Для редактирования операций по расписанию необходимо отправить GET- или POST-запрос на следующий адрес URL: Операцию по расписанию можно создавать когда, в уведомлении о платеже параметр reccurringState пришел в состоянии "Activated". Название Имя параметра Обязательный Описание Номер операции Operation Нет Номер операции для ее изменения, если не передать создается новая операция (GUID) Объект операции ObjectId Да Объект источник, например: Дополнительные параметры в формате JSON, например: {'Amount':15} Флаг, указывающий возможность запуска паралельных тасков Флаг, указывающий статус активности Дата окончания выполнения операций по расписанию. По достижению данной даты, операция по расписанию выполняться не будет. Передаётся в формате ММ.ДД.ГГГГ В ответ возвращается код операции и возможны 3 варианта: Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <SetScheduledOperationData> (синхронная обработка). ( Код операции - 0 ) Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 ) Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 ) Для создания операции оп расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из пункта "Дополнительная информация"Передача параметров
https://api.intellectmoney.ru/personal/payment/setScheduledOperationКлюч доступа UserToken Да Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. Тип операции ObjectTypeVal Да Тип регулярной операции (1 - Recurring) Параметры ParamsJson Нет План выполнения RepeatPlan Да Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/) План повторов выполнения RetryOnFailPlan Нет Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/) Количество повторов выполнения RetryOnFailCount Нет Количество повторных попыток выполнения (целое число) Многопоточность IsSingle Да Перезапуск FireOnSkip Да Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) Активность State Да Дата окончания EndExecDate
Да Примеры
Post /personal/scheduler/SetScheduledOperationData HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
UserToken = 9WUoI8gEQndN%2BI97MGA4vxIiPZs2v32MxyJS7%2FGDxegOLFXcBQy4fUfCqt6NURzV
Object = 3028460763
ObjectTypeVal = 1
IsSingle = 1
ParamsJson = {"Amount":"15"}
RepeatPlan = 0 0 12 1/1 * ? *
RetryOnFailPlan = 0 0/15 * 1/1 * ? *
RetryOnFailCount = 3
FireOnSkip = 0
State = 1
endExecDate = 12.12.2017
Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OperationState>
<Code>0</Code>
<Desc>Успешно обработана</Desc>
</OperationState>
<OperationId>b294b231-9a77-427a-9866-f111e4c88515</OperationId>
<EshopId>0</EshopId>
<Result>
<State>
<Code>0</Code>
<Desc>Успешно обработан.</Desc>
</State>
<ScheduledOperation>
<CronOperationId>6529bef0-3b44-49f6-9ab9-6c4643fd8027</CronOperationId>
<ObjectId>3028460763</ObjectId>
<CronOperationType>Recurring</CronOperationType>
<CreationDate>2017-10-19T16:44:07.3796978+03:00</CreationDate>
<ChangeDate>2017-10-19T16:44:07.3953063+03:00</ChangeDate>
<EndExecDate>2017-12-12T00:00:00</EndExecDate>
<LastExecDate>2017-10-19T16:44:07.3796978+03:00</LastExecDate>
<NextExecDate>2017-10-20T12:00:00+03:00</NextExecDate>
<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
<RetryOnFailCount>3</RetryOnFailCount>
<FireOnSkip>false</FireOnSkip>
<IsSingle>true</IsSingle>
<CronOperationState>Disable</CronOperationState>
</ScheduledOperation>
</Result>
</Response>
$userToken = getToken();
$objectId = "paymentId";//Номер счёта к оплате в системе IntellectMoney
$objectTypeVal = 1;
$params = '{"Amount":"15"}';
$repeatPlan = "0 0 12 1/1 * ? *";
$retryOnFailPlan = "0 0/15 * 1/1 * ? *";
$retryOnFailCount = 3;
$fireOnSkip = 1;
$state = 1;
$endExecDate = "12.12.2017";
$data = array(
'UserToken' => $userToken,
'Operation' => $operationId,
'ObjectId' => $objectId,
'ObjectTypeVal' => $objectTypeVal,
'ParamsJson' => $params,
'RepeatPlan' => $repeatPlan,
'RetryOnFailPlan' => $retryOnFailPlan,
'RetryOnFailCount' => $retryOnFailCount,
'FireOnSkip' => $fireOnSkip,
'EndExecDate' => $endExecDate,
'State' => $state
);
$queryString = http_build_query($data);
curlRequest('GetScheduledOperation', $queryString);
GetScheduledOperation() — ПОЛУЧЕНИЕ СПИСКА ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Для получения списка операций по расписанию необходимо отправить GET- или POST-запрос на следующий адрес URL: Название Имя параметра Обязательный Описание Номер операции Operation Нет Номер операции для ее изменения, если не передать создается новая операция (GUID) Объект операции ObjectId Нет Объект источник, Дополнительные параметры в формате JSON, например: {'Amount':15} Флаг, указывающий возможность запуска паралельных тасков Флаг, указывающий статус активности Количество объектов, пропускаемых перед отдачей Ограничение на количество возвращаемых объектов. В ответ возвращается код операции и возможны 3 варианта: Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <GetScheduledOperationData> (синхронная обработка). ( Код операции - 0 ) Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 ) Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 ) Для создания операции оп расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из пункта "Дополнительная информация"Передача параметров
https://api.intellectmoney.ru/personal/payment/getScheduledOperationКлюч доступа UserToken Да Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. Тип операции ObjectTypeVal Нет Тип регулярной операции (1 - Recurring) Параметры ParamsJson Нет План выполнения RepeatPlan Нет Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/) План повторов выполнения RetryOnFailPlan Нет Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/) Количество повторов выполнения RetryOnFailCount Нет Количество повторных попыток выполнения (целое число) Многопоточность IsSingle Нет Перезапуск FireOnSkip Нет Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) Активность State Нет Дата начала выборки DateFrom Нет Пограничные значения даты изменения расписания ММ.ДД.ГГГГ. Дата окончания выборки DateTo Нет Пограничные значения даты изменения расписания ММ.ДД.ГГГГ. Ограничение выборки по количеству объектов Skip Нет Ограничение выборки по количеству объектов Take Да Примеры
Post /personal/scheduler/GetScheduledOperationData HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
UserToken = 9WUoI8gEQndN%2BI97MGA4vxIiPZs2v32MxyJS7%2FGDxegOLFXcBQy4fUfCqt6NURzV
Skip = 0
Take = 3
Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OperationState>
<Code>0</Code>
<Desc>Успешно обработана</Desc>
</OperationState>
<OperationId>0670c93d-7fd7-4240-822b-b62e55cf070c</OperationId>
<EshopId>0</EshopId>
<Result>
<State>
<Code>0</Code>
<Desc>Успешно обработан.</Desc>
</State>
<ScheduledOperationList>
<ScheduledOperationData>
<CronOperationId>6529bef0-3b44-49f6-9ab9-6c4643fd8027</CronOperationId>
<ObjectId>3028460763</ObjectId>
<CronOperationType>Recurring</CronOperationType>
<Params>{"Amount":"15"}</Params>
<CreationDate>2017-10-19T16:44:07.3796978</CreationDate>
<ChangeDate>2017-10-19T16:44:07.3953063</ChangeDate>
<EndExecDate>2017-12-12T00:00:00</EndExecDate>
<LastExecDate>2017-10-19T16:44:07.3796978</LastExecDate>
<NextExecDate>2017-10-20T12:00:00</NextExecDate>
<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
<RetryOnFailCount>3</RetryOnFailCount>
<FireOnSkip>false</FireOnSkip>
<IsSingle>true</IsSingle>
<CronOperationState>Disable</CronOperationState>
</ScheduledOperationData>
<ScheduledOperationData>
<CronOperationId>9da1c831-f615-4217-a2b7-5c19927cd321</CronOperationId>
<ObjectId>3028460763</ObjectId>
<CronOperationType>Recurring</CronOperationType>
<Params>{"Amount":"15"}</Params>
<CreationDate>2017-10-19T16:51:36.7057137</CreationDate>
<ChangeDate>2017-10-19T16:51:36.7057137</ChangeDate>
<EndExecDate>2017-12-12T00:00:00</EndExecDate>
<LastExecDate>2017-10-19T16:51:36.7057137</LastExecDate>
<NextExecDate>2017-10-20T12:00:00</NextExecDate>
<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
<RetryOnFailCount>3</RetryOnFailCount>
<FireOnSkip>false</FireOnSkip>
<IsSingle>true</IsSingle>
<CronOperationState>Disable</CronOperationState>
</ScheduledOperationData>
<ScheduledOperationData>
<CronOperationId>b72025bc-1723-4866-9c32-027e23f68544</CronOperationId>
<ObjectId>3028460763</ObjectId>
<CronOperationType>Recurring</CronOperationType>
<Params>{"Amount":"15"}</Params>
<CreationDate>2017-10-19T16:58:25.2139727</CreationDate>
<ChangeDate>2017-10-19T16:58:25.2139727</ChangeDate>
<EndExecDate>2017-12-12T00:00:00</EndExecDate>
<LastExecDate>2017-10-19T16:58:25.2139727</LastExecDate>
<NextExecDate>2017-10-20T12:00:00</NextExecDate>
<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
<RetryOnFailCount>3</RetryOnFailCount>
<FireOnSkip>false</FireOnSkip>
<IsSingle>true</IsSingle>
<CronOperationState>Disable</CronOperationState>
</ScheduledOperationData>
</ScheduledOperationList>
</Result>
</Response>
$userToken = getToken();
$operation = "1BDB57A8-956F-4B0A-8C2B-BCE487B23CE6";
$objectId = "SourceInvoiceId";// Приходит среди параметров в уведомлении об оплате счёта на Result URL
$objectTypeVal = 1;
$params = '{"Amount":"15"}';
$repeatPlan = "0 0 12 1/1 * ? *";
$retryOnFailPlan = "0 0/15 * 1/1 * ? *";
$retryOnFailCount = 3;
$fireOnSkip = 1;
$state = 1;
$dateFrom = "10.10.2017";
$dateTo = "10.17.2017";
$skip = 0;
$take = 1;
$data = array(
'UserToken' => $userToken,
'Operation' => $operationId,
'ObjectId' => $objectId,
'ObjectTypeVal' => $objectTypeVal,
'ParamsJson' => $params,
'RepeatPlan' => $repeatPlan,
'RetryOnFailPlan' => $retryOnFailPlan,
'RetryOnFailCount' => $retryOnFailCount,
'FireOnSkip' => $fireOnSkip,
'State' => $state,
'DateFrom' => $dateFrom,
'DateTo' => $dateTo,
'Skip' => $skip,
'Take' => $take,
);
$queryString = http_build_query($data);
curlRequest('GetScheduledOperation', $queryString);
Дополнительная информация
Для работы примеров, написанных на языке программирования PHP, Вам потребуется модуль curl, а так же функция function curlRequest($func, $data) {
$urlMerchantApi = "https://api.intellectmoney.ru/personal/scheduler/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $urlMerchantApi . $func . "?" . $data);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
}
ТИПЫ ДАННЫХ
<Response>
Поле | Тип | Описание |
---|---|---|
OperationState | Статус выполнения операции | |
OperationId | GUID | Идентификатор операции |
EshopId | int | ID магазина |
Result | MethodResult | Результат выполнения запроса. Зависит от типа запроса. В случае асинхронной обработки запроса данного поля не будет. |
<OperationState>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
Desc | string | Описание кода статуса выполнения запроса |
<UserTokenData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
UserToken | string | Ключ доступа клиента к API |
<InvoicesHistoryListData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
InvoicesHistoryList | Список (реестр) платежей |
<InvoiceData>
Поле | Тип | Описание |
---|---|---|
Id | long | Номер СКО |
State | Статус состояния СКО | |
CreationDate | DateTime | Дата создания СКО |
ChangeDate | DateTime | Дата последних изменений СКО |
Amount | <Money> | Сумма СКО с учётом комиссии |
CurrentAmount | <Money> | Оплаченная сумма СКО |
SurchargeAmount | <Money> | Сумма СКО, которую осталось оплатить, если счёт уже оплачен - покажет 0 |
Comment | string | Комментарий к платежу |
EShopId | long | Номер магазина в системе IntellectMoney |
PurchaseOrderId | string | Внутренний номер покупки (заказа) в магазине |
HistoryList | List<HistoryData> | Список транзакций по СКО |
<HistoryData>
Поле | Тип | Описание |
---|---|---|
Id | long | Идентификатор транзакции в системе ИнтеллектМани (для внутреннего использования) |
PaymentNumber | long | Номер транзакции |
State | <TransactionState> | Статус транзакции |
CreationDate | DateTime | Дата создания транзакции |
PaymentAmount | <Money> | Сумма списания по транзакции |
RecipientAmount | <Money> | Сумма зачисления по транзакции |
PaymentAccount | string | Счет списания по транзакции |
RecipientAccount | string | Счет зачисления по транзакции |
Comment | string | Комментарий к транзакции |
Description | string | Описание транзакции |
InvoicePaymentType | <PaymentType> | Тип осуществляемой транзакции: пополнение, зачисление или возврат |
Свойства <InvoiceData>
Свойства типа данных <InvoiceData> и <HistoryData>, приведенные в примере ответа на запрос, но не описанные выше, следует игнорировать в текущей версии API.
<TransactionState>
TransactionState | Описание | Пояснение |
---|---|---|
Created | Создан | Транзакция создана на исполнение и ожидает очереди к выполнению |
Confirm | Исполнен | Транзакция исполнена, средства переведены с одного счета на другой |
Canceled | Отменена | Транзакция отменена. Считать недействительной. |
<PaymentType>
PaymentType | Описание | Пояснение |
---|---|---|
Entry | Входная транзакция | Транзакция пополнения СКО |
Purchase | Транзакция зачисления | Транзакция пополнения счета магазина |
Refund | Транзакция возврата | Транзакция возврата со счета магазина на счет плательщика |
<Money>
Поле | Тип | Описание |
---|---|---|
Amount | decimal | Количество денежных средств. |
Currency | <Currency> | В какой валюте исчисляются денежные средства. |
<SetScheduledOperationData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
SetScheduledOperationData | Bool | 1 - Расписание отредактировано успешно |
<GetScheduledOperationData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
GetScheduledOperationData | Список операций |
<ScheduledOperationData>
Поле | Тип | Описание |
---|---|---|
OperationId | GUID | Номер операции для ее изменения, если не передать создается новая операция (GUID) |
ObjectId | long | Объект источник, например:
|
ObjectTypeVal | tinyint | Тип регулярной операции (1 - Recurring) |
Params | text | Дополнительные параметры в формате JSON, например: {'Amount':15} |
RepeatPlan | text | Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/ ) |
RetryOnFailPlan | text | Cron expressions запуска задачи (можно использовать http://www.cronmaker.com/ ) |
RetryOnFailCount | text | Количество повторных попыток выполнения (целое число) |
IsSingle | bool | Флаг, указывающий возможность запуска паралельных тасков
|
FireOnSkip | bool | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) |
State | bool | Флаг, указывающий статус активности
|
ПЕРЕЧИСЛЕНИЯ
Коды операций
ServiceOperatonState | Описание |
---|---|
0 | Успешно обработана |
1 | В процессе выполнения |
2 | Ошибка |
Статусы запросов
Код ошибки | Описание |
---|---|
0 | Успешно обработан |
1 | Обработан с предупреждениями |
2 | Аутентификация не пройдена |
Описание принимаемых валют
Название | Описание |
---|---|
RUB | Валюта оплаты - Российский рубль |
TST | Внутренняя тестовая валюта оплаты |
Статусы состояния СКО
InvoiceState | Числовое представление | Описание | Пояснение |
---|---|---|---|
Created | 0 | Создан | Счёт к оплате создан и теперь его состояние можно отслеживать методом getPurchaseInfo(). Никаких платёжных операций не производилось. |
PartPaid | 1 | Частично оплачен | Пользователь (Покупатель), внес часть средств. Пользователю (Покупателю) надо внести оставшуюся часть суммы. |
Paid | 2 | Полностью оплачен | Пользователь внес всю сумму. |
ToPaid | 3 | В процессе обработки | Над денежными средствами производятся действия. |
Refund | 4 | Возврат | Средства будут возвращены Пользователю (Покупателю). |
Held | 6 | Захолдирован | Средства заморожены (захолдированы/ holded) на счёте Пользователя (Покупателя). Данные средства будут зачислены или расхолдированы (вернутся Пользователю) по истечению времени заморозки (холдирования) или пока не будут зачислены вручную. Поведение денежных средств определяется в настройках магазина на вкладке "Приём платежей" в разделе "Расширенные настройки". |
- No labels