11 KiB
Методы MerchantAPI
- Однофазный платеж
- Двухфазный платеж (операция с холдированием)
- Подтверждение операции
- Отмена операции
- Привязка карты (получение токена для рекуррентных платежей)
- Оплата по рекуррентному токену
- Возврат по операции
- Получить детали операции по ID
- Документация SDK
Эти методы доступны только для юридических лиц и ИП. Чтобы узнать, поддерживает ли ваш бизнес-счёт рекуррентные платежи и операции с холдированием, обратитесь в коммерческий отдел: com@payanyway.ru.
Однофазный платеж
Однофазный платеж в документации
Создайте объект MonetaSdk
, передав номер заказа и сумму, а также по желанию описание. Затем вызовите метод createInvoice
, будет возвращен номер операции в системе Монета. Данный номер операции требуется передать в метод getPaymentLink
, тем самым можно получить ссылку на оплату, по которой надо будет перевести плательщика.
include_once('vendor/autoload.php');
$mSdk = new Moneta\MonetaSdk(uniqid('', true), 123.45);
$operationId = $mSdk->createInvoice();
$paymentLink = $mSdk->getPaymentLink($operationId);
if (!empty($paymentLink)) {
header('Location: ' . $paymentLink);
}
Двухфазный платеж (операция с холдированием)
Двухфазный платеж в документации
Создайте объект MonetaSdk
, передав номер заказа и сумму, а также по желанию описание. Затем вызовите метод createInvoice
и передайте в качестве аргумента true, будет возвращен номер операции с холдированием в системе Монета. Данный номер операции требуется передать в метод getPaymentLink
, тем самым можно получить ссылку на оплату, по которой надо будет перевести плательщика.
include_once('vendor/autoload.php');
$mSdk = new Moneta\MonetaSdk(uniqid('', true), 123.45);
$operationId = $mSdk->createInvoice(true);
$paymentLink = $mSdk->getPaymentLink($operationId);
if (!empty($paymentLink)) {
header('Location: ' . $paymentLink);
}
При проведении двухфазного платежа(холдирование), нужно подтвердить или отменить операцию.
Подтверждение операции
Подтверждение операции в документации
Чтобы подтвердить операцию нужно создать объект MonetaSdk
, передать номер заказа и вызвать метод confirmInvoice
, передав номер операции. В ответе будет возвращен массив с информацией об операции.
include_once('vendor/autoload.php');
$orderId = $_POST['MNT_TRANSACTION_ID'];
$operationId = $_POST['MNT_OPERATION_ID'];
$mSdk = new Moneta\MonetaSdk($transactionId);
$mSdk->confirmInvoice($operationId);
Отмена операции
Отмена операции в документации
Чтобы отменить операцию нужно создать объект MonetaSdk
, передать номер заказа и вызвать метод confirmInvoice
, передав номер операции. В ответе будет возвращен массив с информацией об операции.
include_once('vendor/autoload.php');
$orderId = $_POST['MNT_TRANSACTION_ID'];
$operationId = $_POST['MNT_OPERATION_ID'];
$mSdk = new Moneta\MonetaSdk($transactionId);
$mSdk->cancelInvoice($operationId);
Привязка карты (получение токена для рекуррентных платежей)
Для привязки карты создайте объект MonetaSdk
, передав номер, сумму заказа, и, при необходимости, описание. Затем вызовите метод createRecurrentInvoice
— он вернёт номер операции в системе Монета.в. Этот номер нужно передать в метод getPaymentLink
, чтобы получить ссылку для оплаты, по которой надо будет перевести плательщика.
include_once('vendor/autoload.php');
$mSdk = new Moneta\MonetaSdk(uniqid('', true), 456.78);
$operationId = $mSdk->createRecurrentInvoice();
$paymentLink = $mSdk->getPaymentLink($operationId);
if (!empty($paymentLink)) {
header('Location: ' . $paymentLink);
}
На платежной форме плательщику потребуется ввести свои карточный данные, а также поставить галочку в чекбоксе "Запомнить карту". После успешной оплаты, на указанный PayURL, указанный в настройках бизнес-счета будет отправлено http-уведомление, в котором будет передан токен для рекуррентных платежей (название параметра в уведомлении: paymenttoken
). Чтобы проводить рекуррентный платеж без дальнейшего участия плательщика: требуется записать токен в базу данны.___
Оплата по рекуррентному токену
Оплата по рекуррентному токену в документации
Чтобы привязать карту, создайте объект MonetaSdk
, передав номер заказа, сумму и, при необходимости, описание. Затем вызовите метод recurringPayment, передав токен плательщика, который получили и сохранили в сценарии "Привязка карты (получение токена для рекуррентных платежей)". В ответе вы получите массив с информацией об операции.
include_once("moneta-sdk-lib/autoload.php");
$paymentToken = '123456';
$mSdk = new Moneta\MonetaSdk(uniqid('', true), 123.45, 'Оплата за подписку, январь 2025');
$mSdk->recurringPayment($paymentToken);
Обратите внимание: при вызове
recurringPayment
в системе Монеты к переданному номеру заказа добавится "_MONETA" с временной меткой. Например, "6787bc9f456b29.67450389_MONETA1736948895". Это нужно для уникальности номера заказа, иначе операция не создастся. Чтобы получить исходный номер заказа из уведомления, разделите MNT_TRANSACTION_ID с помощью функцииexplode
:explode('_MONETA', $transactionId)[0]
.
Возврат по операции
Возврат по операции в документации (стр. 218)
Чтобы выполнить возврат, создайте объект MonetaSdk
, передав номер, сумму возврата и, при необходимости, описание. Затем вызовите метод refund, передав номер операции из системы Монета. В ответе вы получите массив с информацией о возврате.
include_once("moneta-sdk-lib/autoload.php");
$mSdk = new Moneta\MonetaSdk(uniqid('', true), 123.45, 'Возврат по заказу ' . uniqid('', true));
$operationId = 1234567890;
$mSdk->refund($operationId);
Получить детали операции по ID
Возврат по операции в документации (стр. 240)
Создайте объект MonetaSdk
, передав пустой номер заказа. Затем вызовите метод getOperationDetailsById
, передав номер операции, по которой нужно получить информацию. В ответе вам вернется массив с информацией об операции в системе Монета.
include_once("moneta-sdk-lib/autoload.php");
$mSdk = new Moneta\MonetaSdk('');
$operationId = 1234567890;
$mSdk->getOperationDetailsById($operationId);