- Created by Сергей, last modified by Unknown User (s.zhukov) on Feb 13, 2018
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 88 Next »
Общая информация
Данное API на текущий момент реализации позволяет запросить реестр платежей, создавать и редактировать операции по расписанию. Взаимодействие между сервером IntellectMoney и клиентом API происходит по HTTP-протоколу.
Запрос к системе IntellectMoney
Данные при запросах на сервер IntellectMoney передаются в формате параметров HTTP-запроса в кодировке UTF-8 с типом контента "application/x-www-form-urlencoded".
В ответ данные возвращаются в формате XML, либо в формате JSON. Что бы получить ответ в формате JSON нужно в заголовки запроса передать "Accept: text/json".
Ответ системы IntellectMoney на запросы
В ответ приходят два состояния запроса это <OperationState> и <Response>:
<OperationState> сообщает - смогла ли система IntellectMoney обработать данный запрос. Возможны три варианта:
- Система обработала запрос. Ответ типа <Response> будет содержать результат работы метода (синхронная обработка). ( Код операции - 0 )
- Система поставила запрос в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 )
- Система не смогла обработать запрос. Операция выполнена не будет. ( Код операции - 2 )
- <Response> сообщает статус запроса - был ли найден данный метод, все ли параметры переданы верно и так далее.
В случае, если какой-либо параметр будет передан не верно, в состоянии <Response> будет выведено сообщение об ошибке и параметр, который передан не корректно.
СЛОВАРЬ ТЕРМИНОВ
- СКО — Счет К Оплате, инвойс
Важно
Для доступа к API следует получить ключ доступа через операцию аутентификации клиента Документация Personal API. Данный ключ является обязательным параметром для всех операций API.
Для всех запросов к API используется метод curlRequest. Код данного метода можно посмотреть в разделе "Дополнительная информация".
ПОРЯДОК ВЫЗОВА МЕТОДОВ
getUserToken() — Аутентификация клиента API
Для запроса ключа доступа клиента к API необходимо отправить GET- или POST-запрос на следующий адрес URL: https://api.intellectmoney.ru/personal/user/getUserToken В запросе необходимо передать следующие параметры: Название Имя параметра Обязательный Описание Логин Login Да Логин пользователя юридического лица (магазина). Используется для входа в личный кабинет на странице: https://intellectmoney.ru/ru/. Пароль Password Да Пароль пользователя юридического лица (магазина). Используется для входа в личный кабинет на странице: https://intellectmoney.ru/ru/. Ответ типа <Response> будет содержать структуру <UserTokenData> В функции getToken() используются личные данные - логин и пароль для доступа в личный кабинет IntellectMoneyПередача параметров
Примеры
Общий вид предоставления данных
Post /personal/user/getUserToken HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Login=s.zhukov+2@intellectmoney.ru
Password=myPassword
<?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>
Пример кода на языке программирования PHP
function getToken(){
$urlGetToken = "https://api.intellectmoney.ru/personal/user/getUserToken";
$data = array(
"Login" => "s.zhukov@intellectmoney.ru",// Логин для входа в личный кабинет IntellectMoney
"Password" => "myPassword"// Пароль для входа в личный кабинет IntellectMoney
);
$requestResult = curlRequest($urlGetToken, $data, true);
$result = simplexml_load_string($requestResult);
$userToken = $result->Result->UserToken;
return (string)$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 | Да | Ограничение на количество возвращаемых объектов. |
Использование параметров
При выборке данных используется конъюнкция параметров. Например, в случае, если переданы параметры "Статус СКО" и "Номер СКО", то результат запрос вернет объект СКО только при его наличии с переданными номером и статусом.
Ответ типа <Response> будет содержать структуру <InvoicesHistoryListData>
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>Суворинов Сергей</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", подробнее об уведомлениях написано тут: Описание уведомлений от системы IntellectMoney при работе с операциями по расписанию
https://api.intellectmoney.ru/personal/payment/setScheduledOperationData
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
Ключ доступа | UserToken | Да | Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. |
Номер операции | Operation | Нет | Номер операции. Используется для редактирования операции, если не передать - создается новая операция (GUID). Данный параметр возвращается в ответе на запрос к методу SetScheduledOperation(). |
Объект операции | ObjectId | Да | Объект источник, к которому привязывается операция, например:
|
Тип операции | ObjectTypeVal | Да | Тип регулярной операции (1 - Recurring) |
Параметры | ParamsJson | Нет | Дополнительные параметры, сейчас нужно передать сумму операции , передавать в формате JSON, например: {'Amount':15} |
Дата окончания | EndExecDate | Да | Дата окончания выполнения операций по расписанию. По достижению данной даты, операция по расписанию выполняться не будет. (Активность State станет равно 1 - выключен) Передаётся в формате ММ.ДД.ГГГГ |
План выполнения | RepeatPlan | Да | Cron expressions. Регулярное выражение, которое описывает частоту (регулярность) выполнения операции: например запуск операции каждый день в 12 часов дня(каждый день в 12 часов будет списана сумма операции со счёта клиента): "0 0 12 1/1 * ? *". Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression |
План повторов выполнения | RetryOnFailPlan | Нет | Cron expressions. Регулярное выражение, которое описывает периодичность(регулярность) выполнения операции, если операцию не удалось выполнить: например, повторный запуск операции через 5 минут (в случае, если в 12 часов операцию провести не удалось, каждые 5 минут будет производиться попытка выполнения данной операции, количество таких попыток указывается в поле RetryOnFailCount): "0 0/5 * 1/1 * ? *". Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression |
Количество повторов выполнения | RetryOnFailCount | Нет | Количество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCoun |
Многопоточность | IsSingle | Да | Флаг, указывающий возможность запуска параллельных тасков:
|
Перезапуск | FireOnSkip | Да | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) |
Активность | State | Да | Флаг, указывающий статус активности
|
Ответ типа <Response> будет содержать структуру <SetScheduledOperationData>
Примеры
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 = 3496318551 ObjectTypeVal = 1 IsSingle = 1 ParamsJson = {"Amount":"100"} RepeatPlan = 0 0 12 1/4 * ? * RetryOnFailPlan = 0 0/15 * 1/1 * ? * RetryOnFailCount = 3 FireOnSkip = 1 State = 1 endExecDate = 12.12.2021
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>ece5b08a-8951-4739-8d71-ee589676bcd2</CronOperationId> <ObjectId>3496318551</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/4 * ? *</RepeatPlan> <RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan> <RetryOnFailCount>3</RetryOnFailCount> <FireOnSkip>true</FireOnSkip> <IsSingle>true</IsSingle> <CronOperationState>Disable</CronOperationState> </ScheduledOperation> </Result> </Response>
Для создания операции по расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из документации: Вспомогательные функции для взаимодействия с API системы IntellectMoney
$userToken = getToken(); $data = array( 'UserToken' => $userToken,// Получаем в момент регистрации операции по расписанию 'Operation' => null,// Приходит среди параметров в уведомлении об оплате счёта на Result URL 'ObjectId' => 3496318551,//Номер счёта к оплате в системе IntellectMoney 'ObjectTypeVal' => 1,// пока передаём 1 'ParamsJson' => '{"Amount":"100"}',// Тут дополнительная информация, например - сумма списания 'RepeatPlan' => "0 0 12 1/4 * ? *",// Указываем период списания 'RetryOnFailPlan' => "0 0/15 * 1/1 * ? *",// Указываем период через который совершать повторно операцию списания, если при первой попытке случилась ошибка 'RetryOnFailCount' => 3,// Количество повторных попыток 'FireOnSkip' => 1,// Флаг создания запланированной задачи если она была пропущена 'EndExecDate' => "12.12.2021",// Дата окончания операций по расписанию 'State' => 1// Состояние операции - активна/не активна ); $request = curlRequest('https://api.intellectmoney.ru/personal/scheduler/setScheduledOperationData', $data); $result = simplexml_load_string($request); print_r((string)$result->Result->ScheduledOperation->CronOperationId); //Результат: получили Id созданной операции по расписанию //ece5b08a-8951-4739-8d71-ee589676bcd2
GetScheduledOperation() — ПОЛУЧЕНИЕ СПИСКА ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Передача параметров
Для получения списка операций по расписанию необходимо отправить GET- или POST-запрос на следующий адрес URL:
https://api.intellectmoney.ru/personal/payment/getScheduledOperationData
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
Ключ доступа | UserSid | Да | Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. |
Номер операции | Operation | Нет | Номер операции. Данный параметр возвращается в ответе на запрос к методу SetScheduledOperation(). |
Объект операции | ObjectId | Нет | Объект источник, к которому привязывается операция, например:
|
Тип операции | ObjectTypeVal | Нет | Тип регулярной операции (1 - Recurring) |
Параметры | ParamsJson | Нет | Дополнительные параметры в формате JSON, например: {'Amount':15} |
План выполнения | RepeatPlan | Нет | Cron expressions. Регулярное выражение, которое описывает частоту (регулярность) выполнения операции: например запуск операции каждый день в 12 часов дня(каждый день в 12 часов будет списана сумма операции со счёта клиента): "0 0 12 1/1 * ? *". Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression |
План повторов выполнения | RetryOnFailPlan | Нет | Cron expressions. Регулярное выражение, которое описывает периодичность(регулярность) выполнения операции, если операцию не удалось выполнить: например, повторный запуск операции через 5 минут (в случае, если в 12 часов операцию провести не удалось, каждые 5 минут будет производиться попытка выполнения данной операции, количество таких попыток указывается в поле RetryOnFailCount): "0 0/5 * 1/1 * ? *". Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression |
Количество повторов выполнения | RetryOnFailCount | Нет | Количество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCoun |
Многопоточность | IsSingle | Нет | Флаг, указывающий возможность запуска параллельных тасков:
|
Перезапуск | FireOnSkip | Нет | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) |
Активность | State | Нет | Флаг, указывающий статус активности
|
Дата начала выборки | DateFrom | Нет | Пограничные значения даты изменения расписания ММ.ДД.ГГГГ. |
Дата окончания выборки | DateTo | Нет | Пограничные значения даты изменения расписания ММ.ДД.ГГГГ. |
Ограничение выборки по количеству объектов | Skip | Нет | Количество объектов, пропускаемых перед отдачей. Для значения 10, пропустит первые 10 записей и выведет Take записей начиная с 10 (нумерация начинается с 0) |
Ограничение выборки по количеству объектов | Take | Да | Ограничение на количество возвращаемых объектов. Для значения 10, пропустит первые Skip записей и выведет 10 элементов |
Ответ типа <Response> будет содержать структуру <GetScheduledOperationData>
Примеры
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>
Для создания операции по расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из документации: Вспомогательные функции для взаимодействия с API системы IntellectMoney
$userToken = getToken(); $data = array( 'UserToken' => $userToken, 'Operation' => null,// Получаем в момент регистрации операции по расписанию 'ObjectId' => null,// Приходит среди параметров в уведомлении об оплате счёта на Result URL 'ObjectTypeVal' => null,// пока передаём 1 'ParamsJson' => null,// Тут дополнительная информация, например - сумма списания 'RepeatPlan' => null,// Указываем период списания 'RetryOnFailPlan' => null,// Указываем период через который совершать повторно операцию списания, если при первой попытке случилась ошибка 'RetryOnFailCount' => null,// Количество повторных попыток 'FireOnSkip' => null,// Флаг создания запланированной задачи если она была пропущена 'EndExecDate' => null,// Дата окончания операций по расписанию 'State' => null,// Состояние операции - активна/не активна 'DateFrom' => "10.10.2017",// Дата создания начиная с этого значения 'DateTo' => "10.10.2018",// Дата создания до этого значения 'Skip' => 0, // Количество операций, которое нужно пропустить 'Take' => 10, //Количество операций, которые нужно выбрать ); $request = curlRequest('https://api.intellectmoney.ru/personal/scheduler/getScheduledOperationData', $data); $result = simplexml_load_string($request); echo $result->Result->ScheduledOperationList->ScheduledOperationData->CronOperationId;
ТИПЫ ДАННЫХ
<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 | Статусы выполнения запросов | |
ScheduledOperation | Информация по созданной/отредактированной операции |
<GetScheduledOperationData>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
ScheduledOperationList | Список операций, подходящих под заданный фильтр |
<ScheduledOperationData>
Поле | Тип | Описание |
---|---|---|
CronOperationId | GUID | Номер операции. Используется для редактирования операции, если не передать - создается новая операция (GUID) |
ObjectId | long | Объект источник, например:
|
CronOperationType | tinyint | Тип регулярной операции (1 - Recurring) |
Params | text | Дополнительные параметры в формате JSON, например: {'Amount':15} |
CreationDate | DateTime | Дата создания операции |
ChangeDate | DateTime | Дата последнего внесения изменений |
EndExecDate | DateTime | Дата окончания выполнения операции |
LastExecDate | DateTime | Дата последнего выполнения операции |
NextExecDate | DateTime | Дата следующего выполнения операции |
RepeatPlan | text | Cron expressions. Регулярное выражение, которое описывает частоту (регулярность) выполнения операции: например запуск операции каждый день в 12 часов дня(каждый день в 12 часов будет списана сумма операции со счёта клиента): "0 0 12 1/1 * ? *" Для создания данного регулярного выражения ,можно использовать http://www.cronmaker.com/ |
RetryOnFailPlan | text | Cron expressions. Регулярное выражение, которое описывает периодичность(регулярность) выполнения операции, если операцию не удалось выполнить: например, повторный запуск операции через 5 минут (в случае, если в 12 часов операцию провести не удалось, каждые 5 минут будет производиться попДля значения 10, пропустит первые 10 записей и выведет Take записей начиная с 10 (нумерация начинается с 0)ытка выполнения данной операции, количество таких попыток указывается в поле RetryOnFailCount): "0 0/5 * 1/1 * ? *" Для создания данного регулярного выражения ,можно использовать http://www.cronmaker.com/ |
RetryOnFailCount | text | Количество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCoun |
IsSingle | bool | Флаг, указывающий возможность запуска параллельных тасков:
|
FireOnSkip | bool | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) |
CronOperationState | <CronOperationState> | Флаг, указывающий статус активности
|
ПЕРЕЧИСЛЕНИЯ
Коды операций
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