- Created by Сергей, last modified by Unknown User (s.zhukov) on Feb 12, 2018
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 83 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.
Для всех запросов к 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/. В ответ возвращается код операции и возможны 3 варианта: Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <UserTokenData> (синхронная обработка). ( Код операции - 0 ) Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 ) Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 ) В функции 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 | Да | Ограничение на количество возвращаемых объектов. |
Использование параметров
При выборке данных используется конъюнкция параметров. Например, в случае, если переданы параметры "Статус СКО" и "Номер СКО", то результат запрос вернет объект СКО только при его наличии с переданными номером и статусом.
В ответ возвращается код операции и возможны 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>Суворинов Сергей</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 | Да | Флаг, указывающий статус активности
|
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <SetScheduledOperationData> (синхронная обработка). ( Код операции - 0 )
Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 )
Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Примеры
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, 'ObjectId' => 3496318551,//Номер счёта к оплате в системе IntellectMoney 'ObjectTypeVal' => 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: Название Имя параметра Обязательный Описание Все дальнейшие параметры используется как критерии для поиска нужной операции или операций Если передать эти параметры вернутся только операции с такими же значениями как и в запросе Номер операции Operation Нет Номер операции. Данный параметр возвращается в ответе на запрос к методу SetScheduledOperation(). Объект операции ObjectId Нет Объект источник, к которому привязывается операция, например: Дополнительные параметры в формате JSON, например: {'Amount':15} Cron expressions. Регулярное выражение, которое описывает частоту (регулярность) выполнения операции: например запуск операции каждый день в 12 часов дня(каждый день в 12 часов будет списана сумма операции со счёта клиента): "0 0 12 1/1 * ? *". Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression Cron expressions. Регулярное выражение, которое описывает периодичность(регулярность) выполнения операции, если операцию не удалось выполнить: например, повторный запуск операции через 5 минут (в случае, если в 12 часов операцию провести не удалось, каждые 5 минут будет производиться попытка выполнения данной операции, количество таких попыток указывается в поле RetryOnFailCount): "0 0/5 * 1/1 * ? *". Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression Флаг, указывающий возможность запуска параллельных тасков: Флаг, указывающий статус активности Количество объектов, пропускаемых перед отдачей. Для значения 10, пропустит первые 10 записей и выведет Take записей начиная с 10 (нумерация начинается с 0) Ограничение на количество возвращаемых объектов. Для значения 10, пропустит первые Skip записей и выведет 10 элементов В ответ возвращается код операции и возможны 3 варианта: Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <GetScheduledOperationData> (синхронная обработка). ( Код операции - 0 ) Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 ) Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 ) Для создания операции оп расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API" и функцией curlRequest() из пункта "Дополнительная информация"Передача параметров
https://api.intellectmoney.ru/personal/payment/getScheduledOperationDataКлюч доступа UserSid Да Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. Тип операции ObjectTypeVal Нет Тип регулярной операции (1 - Recurring) Параметры ParamsJson Нет План выполнения RepeatPlan Нет План повторов выполнения RetryOnFailPlan Нет Количество повторов выполнения RetryOnFailCount Нет Количество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCoun Многопоточность 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($url, $func, $data, $returnTransfer = false) {
$queryString = http_build_query($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url . $func . "?" . $queryString);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, $returnTransfer);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
ТИПЫ ДАННЫХ
<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