<?php
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\InvoiceRequest();
//номер счёта плательщика (счёт для списания средств).
$request->payer = '';
//номер счёта получателя (счёт для зачисления средств)
$request->payee = '';
//сумма инвойса
$request->amount = '11.00';
//описание инвойса
$request->description = 'Краткое описание';
//номер инвойса в учётной системе магазина/маркетплейса.
$request->clientTransaction = 'my-order-id-11';
//создание нового инвойса
$result = $monetaSdk->monetaService->Invoice($request);
if (!$result['transaction']) {
throw new Exception(print_r($result, true));
}
//номер операции: необходим для предоставления формы оплаты покупателю
echo "Номер операции: " . $result['transaction'];
} catch (Exception $e) {
echo "Ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
2. Маркетплейс переводит покупателя на платежную форму MONETA.Assistant с параметром operationId, равным значению operationId базовой операции и с обязательным параметром MNT_SUBSCRIBER_ID: https://www.moneta.ru/assistant.htm?operationId=номер базовой операции&MNT_SUBSCRIBER_ID=12345
3. Маркетплейс создает операцию платежа методом InvoiceRequest с помощью интерфейса MONETA.MerchantAPI с параметром PAYMENTTOKEN, равным значению operationId базовой операции с ведущим нулем.
<?php
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\InvoiceRequest();
//номер счёта плательщика (счёт для списания средств) в системе МОНЕТА.РУ.
$request->payer = '';
//номер счёта получателя (счёт для зачисления средств) в системе МОНЕТА.РУ.
$request->payee = '';
//сумма инвойса
$request->amount = '12.00';
//описание инвойса
$request->description = 'Инвойс только с вводом контрольных цифр';
//номер инвойса в учётной системе магазина/маркетплейса.
$request->clientTransaction = 'my-order-id-12';
$operation = new \Moneta\Types\OperationInfo();
//параметр должен содержать значение transaction базовой операции с добавлением ноля в начало строки
$attribute = new \Moneta\Types\KeyValueAttribute();
$attribute->key = 'PAYMENTTOKEN';
$attribute->value = '';
$operation->addAttribute($attribute);
$request->operationInfo = $operation;
//создание нового инвойса
$result = $monetaSdk->monetaService->Invoice($request);
if (!$result['transaction']) {
throw new Exception(print_r($result, true));
}
//номер операции: необходим для предоставления формы оплаты покупателю
echo "Номер операции: " . $result['transaction'];
} catch (Exception $e) {
echo "Ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
4. Маркептлейс переводит покупателя на платежную форму MONETA.Assistant с параметром operationId, который был получен на третьем шаге и с обязательным параметром MNT_SUBSCRIBER_ID: https://www.moneta.ru/assistant.widget?operationId=98765432&MNT_SUBSCRIBER_ID=12345.
Параметр MNT_SUBSCRIBER_ID должен совпадать с аналогичным параметром в базовой операции, иначе оплата будет запрещена.
После перехода на платежную форму покупателю необходимо ввести CVV-код.
Запросы маркетплейс отправляет в рамках интерфейса MONETA.MerchantAPI.
Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.