- Created by Сергей, last modified by Владимир on Jan 15, 2019
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 110 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 необходимо отправить 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() — ПОЛУЧЕНИЕ РЕЕСТРА ПЛАТЕЖЕЙ
Передача параметров
Для запроса реестра платежей необходимо отправить 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 в выборку будут включены все транзакции по СКО: транзакции пополнения СКО, транзакции пополнения счета магазина, транзакции возврата (при возврате) |
Указывает порядок сортировки | SortOrder | Нет | Данный порядок отвечает за сортировку данных перед выдачей. Принимаемые значения описаны в таблице Тип сортировки счетов |
Дата начала выборки создания СКО | DateFrom | Нет | В выборку попадут все СКО, у которых дата создания входит в данный диапазон. Значения параметров передавать в формате ДД.ММ.ГГГГ. |
Дата окончания выборки создания СКО | DateTo | Нет | |
Дата начала выборки изменения СКО | ChangeDateFrom | Нет | В выборку попадут все СКО, у которых дата изменения входит в данный диапазон. Значения параметров передавать в формате ДД.ММ.ГГГГ. |
Дата окончания выборки изменения СКО | ChangeDateTo | Нет | |
Ограничение выборки по количеству объектов | Skip | Нет | Количество объектов, пропускаемых перед отдачей |
Ограничение выборки по количеству объектов | Take | Да | Ограничение на количество возвращаемых объектов. |
Использование параметров
При выборке данных используется конъюнкция параметров. Например, в случае, если переданы параметры "Статус СКО" и "Номер СКО", то результат запрос вернет объект СКО только при его наличии с переданными номером и статусом.
Ответ
Ответ типа <Response> будет содержать структуру <InvoicesHistoryList>
Примеры
Общий вид предоставления данных
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=15.07.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>
Пример кода на языке программирования PHP
Для получения списка СКО на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из документации: Вспомогательные функции для взаимодействия с API системы IntellectMoney
$userToken = getToken(); $data = array( 'UserToken' => $userToken, 'EshopId' => 455551,//Номер магазина, по которому получаем информацию 'DateFrom' => "10.10.2017",// Дата создания начиная с этого значения 'DateTo' => "10.10.2018",// Дата создания до этого значения 'Skip' => 0, // Количество операций, которое нужно пропустить 'Take' => 10, //Количество операций, которые нужно выбрать ); $request = curlRequest('https://api.intellectmoney.ru/personal/payment/getInvoicesHistory', $data); $result = simplexml_load_string($request);
GETPAYMENTSHISTORY() — ПОЛУЧЕНИЕ ИСТОРИИ ОПЕРАЦИЙ
Передача параметров
Для запроса реестра платежей необходимо отправить POST-запрос на следующий адрес URL:
https://api.intellectmoney.ru/personal/payment/getPaymentsHistory
В запросе необходимо передать следующие параметры:
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
Ключ доступа | UserToken | Да | Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. |
ID магазина | EshopId | Нет | Номер магазина в системе IntellectMoney, по которому запрашивается история операций. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID". |
Номер транзакции | PaymentTransactionId | Нет | Запрос информации только по одной транзакции. |
Дата начала выборки | DateFrom | Нет | В выборку попадут все операции, у которых дата создания входит в данный диапазон. Значения параметров передавать в формате ДД.ММ.ГГГГ. |
Дата окончания выборки | DateTo | Нет | |
Ограничение выборки по количеству объектов | Skip | Нет | Количество объектов, пропускаемых перед отдачей |
Ограничение выборки по количеству объектов | Take | Да | Ограничение на количество возвращаемых объектов. |
Использование параметров
При выборке данных используется конъюнкция параметров. Например, в случае, если переданы параметры "EshopId" и "DateFrom", то в ответе будет объект историй операций только принадлежащих магазину EshopId, у которых дата создания больше DateFrom
Ответ
Ответ типа <Response> будет содержать структуру <PaymentsHistoryList>
Примеры
Общий вид предоставления данных
Post /personal/payment/getPaymentsHistory 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=15.07.2017 take=10
<?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>ce5d15c8-32d7-4574-9eb7-1fda5aa5f364</OperationId> <EshopId>0</EshopId> <Result> <State> <Code>0</Code> <Desc>Успешно обработан.</Desc> </State> <PaymentsHistoryList> <HistoryData> <Id>27929458</Id> <PaymentNumber>2036299552</PaymentNumber> <State>Confirm</State> <CreationDate>2018-07-25T11:14:49</CreationDate> <PaymentAmount> <Amount>500.0000</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>484.0000</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>Счет к оплате 3158334217</PaymentAccount> <RecipientAccount>IM4406528006</RecipientAccount> <Description>Зачисление денежных средств на счет магазина "ShopReal" со счета "3158334217"</Description> <Direction>Deposit</Direction> <PurchaseOrderId>3_43030</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Purchase</InvoicePaymentType> <InvoiceId>3158334217</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <ShortPan /> <Country /> <UserEmail>s.suvorinov+10@intellectmoney.ru</UserEmail> <ServiceName>Тестирование отправки 2-х писем при частичной оплате</ServiceName> </HistoryData> <HistoryData> <Id>27929455</Id> <PaymentNumber>2036299551</PaymentNumber> <State>Confirm</State> <CreationDate>2018-07-25T11:14:42.983</CreationDate> <PaymentAmount> <Amount>500.0000</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>500.0000</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>Эквайринг</PaymentAccount> <RecipientAccount>Счет к оплате 3158334217</RecipientAccount> <Description>Пополнение счета № "3158334217" через "Эквайринг"</Description> <Direction>Deposit</Direction> <PurchaseOrderId>3_43030</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Entry</InvoicePaymentType> <InvoiceId>3158334217</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <InputType>Acquiring</InputType> <ShortPan /> <Country /> <Bank>Промсвязьбанк</Bank> <IPAdress>10.70.13.101 </IPAdress> <UserEmail>s.suvorinov+10@intellectmoney.ru</UserEmail> <ServiceName>Тестирование отправки 2-х писем при частичной оплате</ServiceName> <CardHolder /> </HistoryData> <HistoryData> <Id>27929489</Id> <PaymentNumber>2036299565</PaymentNumber> <State>Confirm</State> <CreationDate>2018-07-25T11:20:31.123</CreationDate> <PaymentAmount> <Amount>0.0100</Amount> <Currency>RUB</Currency> </PaymentAmount> <RecipientAmount> <Amount>0.0100</Amount> <Currency>RUB</Currency> </RecipientAmount> <PaymentAccount>3100011</PaymentAccount> <RecipientAccount>IM4406528006</RecipientAccount> <Comment>Возврат комиссии по заявке 707, инвойс 3158334217, транзакция 2036299553</Comment> <Description>Возврат комиссии по заявке 707, инвойс 3158334217, транзакция 2036299553</Description> <Direction>Deposit</Direction> <PurchaseOrderId>3_43030</PurchaseOrderId> <AdditionalInfo /> <InvoicePaymentType>Refund</InvoicePaymentType> <InvoiceId>3158334217</InvoiceId> <IsElectedPayment>false</IsElectedPayment> <TypeOfRePayment xsi:nil="true" /> <ProviderId xsi:nil="true" /> <CatalogPaymentId>0</CatalogPaymentId> <ShortPan /> <Country /> <UserEmail>s.suvorinov+10@intellectmoney.ru</UserEmail> <ServiceName>Тестирование отправки 2-х писем при частичной оплате</ServiceName> </HistoryData>
Пример кода на языке программирования PHP
Для получения историй операций на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из документации: Вспомогательные функции для взаимодействия с API системы IntellectMoney
$userToken = getToken(); $data = array( 'UserToken' => $userToken, 'EshopId' => 455551,//Номер магазина, по которому получаем информацию 'DateFrom' => "10.10.2017",// Дата создания начиная с этого значения 'DateTo' => "10.10.2018",// Дата создания до этого значения 'Skip' => 0, // Количество операций, которое нужно пропустить 'Take' => 10, //Количество операций, которые нужно выбрать ); $request = curlRequest('https://api.intellectmoney.ru/personal/payment/getPaymentsHistory', $data); $result = simplexml_load_string($request);
SetScheduledOperation() — РЕДАКТИРОВАНИЕ ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Передача параметров
Для создания и редактирования операций по расписанию необходимо отправить POST-запрос на следующий адрес URL: Операцию по расписанию можно создавать когда, в уведомлении о платеже параметр reccurringState пришел в состоянии "Activated", подробнее об уведомлениях написано тут: Описание уведомлений от системы IntellectMoney при работе с операциями по расписанию
https://api.intellectmoney.ru/personal/scheduler/setScheduledOperationData
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
Ключ доступа | UserToken | Да | Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. |
Номер операции | Operation | Нет | Номер операции. Используется для редактирования операции, если не передать - создается новая операция (GUID). Данный параметр возвращается в ответе на запрос к методу SetScheduledOperation(). |
Объект операции | ObjectId | Да | Объект источник, к которому привязывается операция, например:
|
Тип операции | ObjectTypeVal | Да | Тип регулярной операции (1 - Recurring) |
Параметры | ParamsJson | Нет | Дополнительные параметры, сейчас нужно передать сумму списания , передавать в формате JSON, например: {'Amount':15} |
Дата окончания | EndExecDate | Нет | Дата окончания выполнения операций по расписанию. По достижению данной даты, операция по расписанию выполняться не будет. (Активность State станет равно 1 - выключен) Передаётся в формате ДД.ММ.ГГГГ Если параметр RepeatPlan не передан, данный параметр игнорируется. |
План выполнения | 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 Если параметр RepeatPlan не передан, данный параметр игнорируется. |
Количество повторов выполнения | RetryOnFailCount | Нет | Количество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCount Если параметр RepeatPlan не передан, данный параметр игнорируется. |
Многопоточность | IsSingle | Нет | Флаг, указывающий возможность запуска параллельных тасков:
Если параметр RepeatPlan не передан, данный параметр игнорируется. |
Перезапуск | FireOnSkip | Нет | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) Если параметр RepeatPlan не передан, данный параметр игнорируется. |
Активность | 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
Для создания операции по расписанию на языке 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() — ПОЛУЧЕНИЕ СПИСКА ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Передача параметров
Для получения списка операций по расписанию необходимо отправить POST-запрос на следующий адрес URL:
https://api.intellectmoney.ru/personal/scheduler/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 DateFrom = 10.10.2017 DateTo = 10.10.2018 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
Для создания операции по расписанию на языке 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' => 3, //Количество операций, которые нужно выбрать ); $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 |
<InvoicesHistoryList>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
InvoicesHistoryList | Список (реестр) платежей |
<PaymentsHistoryList>
Поле | Тип | Описание |
---|---|---|
State | Статусы выполнения запросов | |
InvoicesHistoryList | Список транзакций |
<InvoiceData>
Поле | Тип | Описание |
---|---|---|
Id | long | Номер СКО |
State | Статус состояния СКО | |
CreationDate | DateTime | Дата создания СКО |
ChangeDate | DateTime | Дата последних изменений СКО |
Amount | <Money> | Сумма СКО с учётом комиссии |
CurrentAmount | <Money> | Внесенная частично на СКО сумма. Имеет положительное значение для статусов "Частично оплачен" и "В процессе обработки". Для оплаченного или захолдированного счета значение равно 0. |
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) на счёте Пользователя (Покупателя). Данные средства будут зачислены или расхолдированы (вернутся Пользователю) по истечению времени заморозки (холдирования) или пока не будут зачислены вручную. Поведение денежных средств определяется в настройках магазина на вкладке "Приём платежей" в разделе "Расширенные настройки". |
Тип сортировки счетов
InvoiceState | Числовое представление | Описание | Пояснение |
---|---|---|---|
None | 0 | Не задан | Сортировка по умолчанию, равносильно не передаче параметра , сортирует по дате создания |
CreationDate | 1 | По дате создания | Сортирует счета по дате создания, сортировка по возрастанию |
ChangeDate | 2 | По дате изменения | Сортирует счета по дате изменения, сортировка по возрастанию |
InvoiceState | 3 | По состоянию счета | Сортирует счета по состоянию счета |
Amount | 4 | По сумма | Сортирует счета по сумме, сортировка по возрастанию |
- No labels