7. Управление размером комиссии маркетплейса

Маркетплейс может управлять размером комиссии, взимаемым с продавца в зависимости от категории товара или оборотов продавца.

Максимальный размер вознаграждения маркетплейса будет зафиксирован в договоре об информационно-техническом взаимодействии.

Значение комиссии маркетплейс передает в поле SOURCETARIFFMULTIPLIER в процентах в запросе на перевод с транзитного счета маркетплейса на расширенный счет продавца в системе МОНЕТА.РУ.

Запрос:
{
  "Envelope": {
    "Header": {
      "Security": {
        "UsernameToken": {
          "Username": "логин",
          "Password": "пароль"
        }
      }
    },
    "Body": {
      "PaymentRequest": {
        "payer": "НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ",
        "payee": "НОМЕРА РАСШИРЕННОГО СЧЕТА ПРОДАВЦА",
        "amount": "сумма",
        "clientTransaction": "внешний идентификатор транзакции",
        "operationInfo": {
          "attribute": [
            {
              "key": "PARENTID",
              "value": "12345678"
            },
            {
              "key": "SOURCETARIFFMULTIPLIER",
              "value": "0.015"
            }
          ]
        }
      }
    }
  }
}
где "value": "0.015" значение в процентах.
Ответ:

"Envelope":{
  "Body":{
    "PaymentResponse":{
      "id": "номер операции в системе МОНЕТУ.РУ",
      "attribute": [
...
         {
            "value": "SUCCEED",
            "key": "statusid"
         }
...
      ]
    }
  }
}
<?php

$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);

try {
    $monetaSdk = new \Moneta\MonetaSdk();
    $monetaSdk->checkMonetaServiceConnection();

    $request = new \Moneta\Types\PaymentRequest();

    //номер счёта (в системе МОНЕТА.РУ) для списания средств
    $request->payer = '';

    //номер счёта (в системе МОНЕТА.РУ) для зачисления средств
    $request->payee = '';

    //сумма перевода
    $request->amount = '20.00';

    //номер транзакции в учётной системе магазина/маркетплейса.
    $request->clientTransaction = 'my-order-id-20';

    //платёжный пароль магазина/маркетплейса.
    $request->paymentPassword = '*******************';

    $operation = new \Moneta\Types\OperationInfo();

    //в параметре указывается номер базовой операции - это операция платежа на транзитный счёт магазина/маркетплейса.
    $attribute = new \Moneta\Types\KeyValueAttribute();
    $attribute->key = 'PARENTID';
    $attribute->value = '';
    $operation->addAttribute($attribute);

    //в параметре указывается значение комиссии, которую взимает магазин/маркетплейс с организации/продавца.
    $attribute = new \Moneta\Types\KeyValueAttribute();
    $attribute->key = 'SOURCETARIFFMULTIPLIER';
    $attribute->value = '0.015';    //1,5%
    $operation->addAttribute($attribute);

    $request->operationInfo = $operation;

    //запрос на перевод средств внутри системы МОНЕТА.РУ
    //с транзитного счёта магазина/маркетплейса на расширенный счёт организации(продавца)
    $result = $monetaSdk->monetaService->Payment($request);

    if (!$result['id']) {
        throw new Exception(print_r($result, true));
    }

    echo "Запрос обработан.";

    foreach ($result['attribute'] as $key => $attribute) {
        if ('statusid' === $attribute['key']) {
            if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $attribute['value']) {
                echo " Операция НЕ проведена полностью.";
            }
            break;
        }
    }

} catch (Exception $e) {
    echo "Ошибка:<br />";
    echo "<pre>" . $e->getMessage() . "</pre>";
}

Запросы маркетплейс отправляет в рамках интерфейса MONETA.MerchantAPI.

Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.

Last updated