Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 62 Next »

Для вызова методов API нужно придумать и задать свой секретный ключ в настройках магазина, на вкладке "Подключение магазина". Также, после заключения договора, нужно получить Bearer токен с доп. ключом на странице Безопасность, они понадобятся для авторизации:

Уровень PCI DSS нужен для методов API, в которых передаются карточные данные, например для метода BankCardPayment

До заключения договора можно использовать валюту TST, она не требует авторизации (для нее не обязательно передавать заголовки Authorization и Sign).

CreateInvoice - ВЫСТАВЛЕНИЕ СЧЁТА К ОПЛАТЕ

The page Быстрый старт was not found  -- Please check/update the page name used in the MultiExcerpt-Include macro

Шаблон формирования заголовка Sign
eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::signSecretKey
Шаблон формирования параметра hash
eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::secretKey


Запрос

Имя параметраОписание
eshopId
Обязательный
ID магазина
orderId
Обязательный
Уникальный идентификатор покупки из вашей системы.
до 50 символов
recipientAmount
Обязательный
Сумма платежа, разделенная точкой. Минимальное значение - 10.00.
До 13 символов, до 2 цифр после точки.
recipientCurrency
Обязательный

Валюта платежа.

  • TST (тестовая валюта)
  • RUB
  • USD
  • EUR
email
Обязательный
E-mail покупателя.
До 100 символов.
hash
Обязательный

Контрольная подпись запроса

The page Быстрый старт was not found  -- Please check/update the page name used in the MultiExcerpt-Include macro

serviceNameНазначение платежа - описание товара или услуги.
До 1024 символов.
userNameИмя покупателя
До 255 символов.
successUrlАдрес, на который происходит перенаправление плательщика с платежной страницы после успешной оплаты
До 512 символов.
failUrlАдрес, на который происходит перенаправление плательщика с платежной страницы в случае неуспешной оплаты
До 512 символов.
backUrlАдрес ссылки "Вернуться в магазин" на платежной странице
До 512 символов.
resultUrlАдрес, на который система IntellectMoney посылает HTTP/S POST запросы об изменении состояния cчёта
До 512 символов.
preference

Возможные способы оплаты счёта. Если не передавать, счет можно будет оплатить любым из подключенных способов.

  • BankCard
  • YandexPay
  • Sbp

Можно перечислить несколько значений через запятую, например BankCard,YandexPay,Sbp

holdMode

Сразу списывать средства с карты, или холдировать (замораживать)

  • 1 - включить холдирование
  • 0 - отключить холдирования
  • null/не передан - использовать настройки холдирования магазина

expireDate
Обязательный при holdMode = 1

Срок существования счёта - дата и время, по достижению которых оплатить счёт станет невозможно.
Формат: yyyy-MM-dd HH:mm:ss.
holdTime
Обязательный при holdMode = 1

Время, через которое захолдированные средства будут автоматически зачислены на счёт магазина или возвращены покупателю, измеряется в часах.
Целое число от 1 до 119 часов

В этой таблице опущена часть параметров, например параметры связанные с онлайн кассой и рекаррингом. См. полный список параметров в описании Merchant 2.0 API.

Пример запроса

Заголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 58654f0550d44fb36fdb986080318aa9b277e1c7336ff6bdb2d00e329f2550e2
Тело
{
    "eshopId": "465932",
    "orderId": "a072334a33c0428d8a447072a779ddf0",
    "recipientAmount": "15.00",
    "recipientCurrency": "TST",
    "email": "e.mozgovoy+1@intellectmoney.ru",
    "hash": "9b37951051c0ef86f837d1ed5a0780f6"
}
Пример PHP с библиотекой IM
// Используется библиотека <тут ссылка на библиотеку>
<?php
// TODO сделать нормальный пример
require_once __DIR__ . '/../vendor/autoload.php';
use IntellectMoney\SDK\MerchantApiClient;
use IntellectMoney\SDK\Structs\Common\AuthData;
use IntellectMoney\SDK\Structs\Request\CreateInvoiceDataModel;
use IntellectMoney\SDK\Structs\Common\Money;

$dataModel = new CreateInvoiceDataModel([
	"eshopId" => "465932",
	"orderId" => "fdsfdsfsd",
	"recipientAmount" => new Money(10),
	"email" => "e.mozgovoy+1@intellectmoney.ru"
]);

$authData = new AuthData(123456);

$result = MerchantApiClient::createInvoice($dataModel, $authData);
echo "<pre>";
var_dump($result);
#!/bin/bash

# Ключи
bearer_token="d41d8cd98f00b204e9800998ecf8427e"
sign_secret_key="1d5dde3821c0acfd4e3c748de9aaea5c"
eshop_secret_key="123456"

# Параметры запроса
eshop_id="465932"
order_id="order_$(date +%s | sha1sum | head -c 8)"
recipient_amount="10.00"
recipient_currency="TST"
email="e.mozgovoy+1@intellectmoney.ru"
service_name=""
user_name=""
success_url=""
fail_url=""
back_url=""
result_url=""
preference=""
hold_mode=""
expire_date=""
hold_time=""

# Генерируем хеш для заголовка Sign
sign_hash_string="${eshop_id}::${order_id}::${service_name}::${recipient_amount}::${recipient_currency}::${user_name}::${email}::${success_url}::${fail_url}::${back_url}::${result_url}::${expire_date}::${hold_mode}::${preference}::${sign_secret_key}"
sign_hash=$(echo -n "$sign_hash_string" | sha256sum | awk '{print $1}')

# Генерируем хеш для параметра hash
hash_string="${eshop_id}::${order_id}::${service_name}::${recipient_amount}::${recipient_currency}::${user_name}::${email}::${success_url}::${fail_url}::${back_url}::${result_url}::${expire_date}::${hold_mode}::${preference}::${eshop_secret_key}"
hash=$(echo -n "$hash_string" | md5sum | awk '{print $1}')

response=$(curl -X POST \
  -H "Authorization: Bearer ${bearer_token}" \
  -H "Sign: ${sign_hash}" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "eshopId=${eshop_id}" \
  --data-urlencode "orderId=${order_id}" \
  --data-urlencode "recipientAmount=${recipient_amount}" \
  --data-urlencode "recipientCurrency=${recipient_currency}" \
  --data-urlencode "email=${email}" \
  --data-urlencode "hash=${hash}" \
  --data-urlencode "serviceName=${service_name}" \
  --data-urlencode "userName=${user_name}" \
  --data-urlencode "successUrl=${success_url}" \
  --data-urlencode "failUrl=${fail_url}" \
  --data-urlencode "backUrl=${back_url}" \
  --data-urlencode "resultUrl=${result_url}" \
  --data-urlencode "preference=${preference}" \
  --data-urlencode "holdMode=${hold_mode}" \
  --data-urlencode "expireDate=${expire_date}" \
  --data-urlencode "holdTime=${hold_time}" \
  https://api.intellectmoney.ru/merchant/createInvoice)

echo "Response: $response"

Ответ

  • OperationState
    • Code - Статус предвалидации запроса, 0 - успех, 2 - ошибка.
    • Desc - Описание статуса предвалидации запроса
  • EshopId - ID магазина, в котором выставляется счёт
  • Result
    • State
      • Code - Результат выполнения запроса, 0 - успех, 1 - успех с предупреждениями, любое другое значение - ошибка
      • Desc - Описание результата выполнения запроса
    • InvoiceId - Номер созданного счёта
    • PaymentWays - Список возможных способов оплаты
      • Id - ID способа оплаты
      • Amount
        • Amount - Сумма оплаты
        • Currency - Валюта оплаты
      • InputType - Тип способа оплаты
      • Preference - Название способа оплаты
      • Commission - Комиссия
      • IsVisible - Будет ли этот способ оплаты отображаться на платежной странице
      • IsActive - Доступен ли этот способ оплаты
      • Position - Положение в списке относительно остальных способов

Пример ответа

Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json

Тело
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "EshopId": 465932,
    "Result": {
        "State": {
            "Code": 0,
            "Desc": "Успешно обработан"
        },
        "InvoiceId": 3227169792,
        "PaymentWays": [
            {
                "Id": 132,
                "Amount": {
                    "Amount": 15.0000,
                    "Currency": "TST"
                },
                "InputType": "TestAcquiring",
                "Preference": "BankCard",
                "Commission": 0.0,
                "IsVisible": true,
                "IsActive": true,
                "Position": 110
            }
        ]
    }
}

GetBankCardPaymentState - СОСТОЯНИЕ ПЛАТЕЖА

POST https://api.intellectmoney.ru/merchant/getbankcardpaymentstate

The page Быстрый старт was not found  -- Please check/update the page name used in the MultiExcerpt-Include macro

Шаблон формирования заголовка Sign
eshopId::invoiceId::signSecretKey
Шаблон формирования параметра hash
eshopId::invoiceId::secretKey


Запрос

Имя параметраОписание
eshopId
Обязательный
ID магазина, в котором был выставлен счёт
invoiceId
Обязательный
Номер счёта
hash
Обязательный

Контрольная подпись запроса

The page Быстрый старт was not found  -- Please check/update the page name used in the MultiExcerpt-Include macro

Пример запроса

Заголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 0ae3bb9779c482057580595c6b47e437ee6a4dda1065002e7d77ab597956bb70
Тело
{
    "eshopId": "465932",
    "invoiceId": "3227169792",
    "hash": "815ec9d288bd6926bc37304cde7db05e"
}

Ответ

  • OperationState
    • Code - Статус предвалидации запроса, 0 - успех, 2 - ошибка.
    • Desc - Описание статуса предвалидации запроса
  • EshopId - ID магазина, в котором выставляется счёт
  • Result
    • State
      • Code - Результат выполнения запроса, 0 - успех, 1 - успех с предупреждениями, любое другое значение - ошибка
      • Desc - Описание результата выполнения запроса
    • PaymentStep - Текущее состояние платежа

      CreatedСоздан
      InProcessВ обработке
      SendTo3DSОжидается прохождение 3DS
      ActivationPaymentОжидается завершение активационного платежа
      ErrorОплата завершилась ошибкой
      OkОплачен

Пример ответа

Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json

Тело
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "EshopId": 465932,
    "Result": {
        "PaymentStep": "InProcess",
        "State": {
            "Code": 0,
            "Desc": "Успешно обработан"
        }
    }
}


BankCardPayment - ОПЛАТА БАНКОВСКОЙ КАРТОЙ

POST https://api.intellectmoney.ru/merchant/bankcardpayment

The page Быстрый старт was not found  -- Please check/update the page name used in the MultiExcerpt-Include macro

Шаблон формирования заголовка Sign
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::signSecretKey
Шаблон формирования параметра hash
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::secretKey

Используется для передачи реквизитов банковской карты и дальнейшей оплаты счета.

Для использования этого метода у вашей организации должна быть сертификация PCI DSS. Если у вас её нет, то оплату можно реализовать перенаправлением покупателя на нашу платежную страницу, либо внедрением нашего платежного виджета на сайт.


Параметры

Имя параметраОписание
eshopId
Обязательный
ID магазина, где был выставлен счёт
invoiceId
Обязательный
Номер счёта к оплате
ipAddress
Обязательный
IP адрес сайта, с которого выставляется платеж.
returnUrl
Обязательный
Адрес, на который перенаправляет плательщика после завершения 3DS.
cardHolderИмя и фамилия с карты
pan
Обязательный
Номер карты плательщика
cvv
Обязательный для карт имеющих CVV2 (CVC2)
Секретный код CVV2 (CVC2), как правило написан на обороте карты (последние три цифры на полосе для подписи). Параметр не нужно передавать, если карта не имеет кода.
expiredYear
Обязательный
Год, до которого действует карта
expiredMonth
Обязательный
Месяц, до которого действует карта
hash
Обязательный

Контрольная подпись запроса

The page Быстрый старт was not found  -- Please check/update the page name used in the MultiExcerpt-Include macro

Пример запроса

Заголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 7b51b65ec7da4b518bc0ef41617adf3a
Sign: a861e54fd1aae4e0686a4dd532ba15daf892058752329a07f57b0cb8d199a05b
Тело
{
    "eshopId": "465932",
    "invoiceId": "3227169792",
    "ipAddress": "1.1.1.1",
    "returnUrl": "https://example.com",
    "cardHolder": "NAME SURNAME",
    "pan": "4111111111111111",
    "cvv": "123",
    "expiredYear": "29",
    "expiredMonth": "02",
    "hash": "46cc4a126da424cd1495eeccd791cb71"
}

Пример ответа

Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json

Тело
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "EshopId": 465932,
    "Result": {
        "State": {
            "Code": 0,
            "Desc": "Успешно обработан"
        }
    }
}



  • No labels