Перейти к содержанию

Активационный платёж


Сценарий использования

1. Создаем СКО (CreateInvoice)

2. Инициализируем оплату банковской картой (BankCardPayment)

3. Запрашиваем статус (GetBankCardPaymentState)

Перезапрашиваем пока не получим статус PaymentStep, отличный от Created или InProcess.

JSON
{
  "OperationState": {
    "Code": 0,
    "Desc": "Успешно обработана"
  },
  "EshopId": 459299,
  "Result": {
    "PaymentStep": "SendTo3DS",
    "Form3DS": "<body OnLoad=\"document.forms[0].submit();\"><FORM ACTION=\"https://merchant.intellectmoney.ru/3ds\" METHOD=\"post\"><input type=\"hidden\" name=\"data\" value=\"MklmQnh4M1JjV...\"></FORM></body>",
    "State": {
      "Code": 0,
      "Desc": "Успешно обработан"
    }
  }
}
JSON
{
  "OperationState": {
    "Code": 0,
    "Desc": "Успешно обработана"
  },
  "EshopId": 459299,
  "Result": {
    "PaymentStep": "ActivationPayment",           
    "State": {
      "Code": 0,
      "Desc": "Успешно обработан"
    }
  }
}

Активационный платеж

Для проведения активационного платежа необходимо вызвать ActivationPayment

4. Отслеживаем статус платежа (доступны 2 способа)

4.1. Перезапрашиваем GetBankCardPaymentState ожидая получения статуса отличного от: Created, InProcess, SendTo3DS:

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

JSON
{
  "OperationState": {
    "Code": 0,
    "Desc": "Успешно обработана"
  },
  "EshopId": 459299,
  "Result": {
    "PaymentStep": "OK",
    "State": {
      "Code": 0,
      "Desc": "Успешно обработан"
    }
  }
}
JSON
{
 "OperationState": {
   "Code": 0,
   "Desc": "Успешно обработана"
 },
 "EshopId": 459299,
 "Result": {
   "PaymentStep": "Error",
   "State": {
     "Code": 0,
     "Desc": "Успешно обработан"
   }
 }
}

4.2. Ожидаем вебхук на адрес, указанный при создании счёта (CreateInvoice) в параметре ResultUrl или в расширенных настройках магазина на вкладке "Подключение магазина".


Описание

Используется для завершения активационного платежа.

POST (Уровень доступа: PCI/DSS)

https://api.intellectmoney.ru/merchant/activationPay

Заголовки запроса

Параметр Свойства Описание
Accept STRING OPTIONAL application/json Заголовок, указывающий формат данных, которые клиент хочет получить от сервера.
Content-Type STRING OPTIONAL application/json application/xml Заголовок, указывающий формат данных в теле запроса.
Authorization STRING REQUIRED Bearer {token} Заголовок, используемый для аутентификации клиента с помощью Bearer токена.
Подробнее об использование Bearer токена.
Sign STRING REQUIRED Заголовок с подписью для аутентификации запроса.

Сигнатура подписи:
EshopId::InvoiceId::ActivationAmount::Cvv::SignSecretKey

Тело запроса

Параметр Свойства Описание
EshopId INT REQUIRED max 6 Номер магазина.
Можно найти в личном кабинете, в разделе магазины.
InvoiceId STRING REQUIRED 3xxxxxxxxx Номер СКО.
ActivationAmount DECIMAL REQUIRED max 13 Сумма активационного платежа.
Сумма, которая временно заблокируется у клиента на банковской карте.
Формат: десятичное число с двумя знаками после точки, не использовать запятые и пробелы.
Cvv STRING OPTIONAL max 4 Секретный код CVV2 (CVC2).
Обычно указан на обороте карты (последние три цифры на полосе для подписи).
Hash STRING REQUIRED Подпись данных запроса.
Выполняет две ключевые функции:
  1. Целостность данных - защиту от изменений: подпись гарантирует, что информация в запросе не была модифицирована при передаче.
  2. Аутентификацию отправителя - подтверждение, что запрос создан доверенным сервисом (используется секретный ключ магазина, доступный только отправителю).
Подробнее о формирование и проверки подписи.

Сигнатура подписи:
EshopId::InvoiceId::ActivationAmount::Cvv::SecretKey

Тело ответа

Поле Тип Описание
OperationState OperationState Статус выполнения операции.
OperationId GUID Идентификатор операции.
EshopId INT Номер магазина.
Result ActivationPayData Результат выполнения запроса.
Примеры кода
C#
var client = new HttpClient();

var request = new HttpRequestMessage(HttpMethod.Post, "https://api.intellectmoney.ru/merchant/activationPay");

request.Headers.Add("Accept", "application/json");
request.Headers.Add("Content-Type", "application/json");
request.Headers.Add("Authorization", "Bearer 9d97820c61424eb6ac0db414ccb7ac60");
request.Headers.Add("Sign", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");

var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("EshopId", "450000"));
collection.Add(new("InvoiceId", "3000000000"));
collection.Add(new("ActivationAmount", "1"));
collection.Add(new("Cvv", "900"));
collection.Add(new("Hash", "d41d8cd98f00b204e9800998ecf8427e"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
PHP
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.intellectmoney.ru/merchant/activationPay',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => 'EshopId=450000&InvoiceId=3000000000&ActivationAmount=1&Cvv=900&Hash=d41d8cd98f00b204e9800998ecf8427e',
    CURLOPT_HTTPHEADER => array(
        'Accept: application/json',
        'Content-Type: application/json',
        'Authorization: Bearer 9d97820c61424eb6ac0db414ccb7ac60',
        'Sign: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
   ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Пример ответов
JSON
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "EshopId": 459299,
    "Result": {
        "State": {
            "Code": 0,
            "Desc": "Успешно обработан"
        }
    }
}
JSON
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "EshopId": 459299,
    "Result": {
        "State": {
            "Code": 10,
            "Desc": "Ошибка сервера."
        }
    }
}