moneta-sdk-php/docs/merchantAPI.md

11 KiB
Raw Permalink Blame History

Методы MerchantAPI

Документация Монеты


Эти методы доступны только для юридических лиц и ИП. Чтобы узнать, поддерживает ли ваш бизнес-счёт рекуррентные платежи и операции с холдированием, обратитесь в коммерческий отдел: 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);

Документация SDK