Управление денежными средствами на расчетных счетах клиентов
Перевод денежных средств клиентов в Федеральное Казначейство
Powered By GitBook
5. Запоминание банковской карты и прием платежей с сохраненной картой.
Для удобства покупателей маркетплейс может использовать токен, который позволит покупателю не указывать номер карты при следующих платежах.
Покупатель на платежной форме будет указывать только CVV-код.
Последовательность действий, при приеме платежей с запоминанием карты:
1. Маркетплейс создает базовую операцию методом InvoiceRequest с помощью интерфейса MONETA.MerchantAPI без дополнительных параметров.
1
Запрос:
2
{
3
"Envelope":{
4
"Header":{
5
"Security":{
6
"UsernameToken":{
7
"Username":"Username",
8
"Password":"Password"
9
}
10
}
11
},
12
"Body":{
13
"InvoiceRequest":{
14
"payer":НОМЕР СЧЕТА ПЛАТЕЛЬЩИКА,
15
"payee":НОМЕР СЧЕТА ПОЛУЧАТЕЛЯ,
16
"amount":1000,
17
"clientTransaction":"TEST",
18
"description":"TEST"
19
}
20
}
21
}
22
}
23
24
Ответ:
25
26
{
27
"Envelope":{
28
"Body":{
29
"InvoiceResponse":{
30
"dateTime":" YYYY-MM-DDT08:55:03.000+03:00",
31
"clientTransaction":"TEST",
32
"transaction":номер базовой операции,
33
"status":"CREATED"
34
}
35
}
36
}
37
}
Copied!
1
<?php
2
3
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
4
include_once($sdkAppFileName);
5
6
try {
7
$monetaSdk = new \Moneta\MonetaSdk();
8
$monetaSdk->checkMonetaServiceConnection();
9
10
$request = new \Moneta\Types\InvoiceRequest();
11
12
//номер счёта плательщика (счёт для списания средств).
13
$request->payer = '';
14
15
//номер счёта получателя (счёт для зачисления средств)
16
$request->payee = '';
17
18
//сумма инвойса
19
$request->amount = '11.00';
20
21
//описание инвойса
22
$request->description = 'Краткое описание';
23
24
//номер инвойса в учётной системе магазина/маркетплейса.
25
$request->clientTransaction = 'my-order-id-11';
26
27
//создание нового инвойса
28
$result = $monetaSdk->monetaService->Invoice($request);
29
30
if (!$result['transaction']) {
31
throw new Exception(print_r($result, true));
32
}
33
34
//номер операции: необходим для предоставления формы оплаты покупателю
35
echo "Номер операции: " . $result['transaction'];
36
37
} catch (Exception $e) {
38
echo "Ошибка:<br />";
39
echo "<pre>" . $e->getMessage() . "</pre>";
40
}
Copied!
2. Маркетплейс переводит покупателя на платежную форму MONETA.Assistant с параметром operationId, равным значению operationId базовой операции и с обязательным параметром MNT_SUBSCRIBER_ID: https://www.moneta.ru/assistant.htm?operationId=номер базовой операции&MNT_SUBSCRIBER_ID=12345
1
https://www.moneta.ru/assistant.widget?operationId=номер базовой операции&MNT_SUBSCRIBER_ID=12345
Copied!
3. Маркетплейс создает операцию платежа методом InvoiceRequest с помощью интерфейса MONETA.MerchantAPI с параметром PAYMENTTOKEN, равным значению operationId базовой операции с ведущим нулем.
1
{
2
"Envelope":{
3
"Header":{
4
"Security":{
5
"UsernameToken":{
6
"Username":"Username",
7
"Password":"Password"
8
}
9
}
10
},
11
"Body":{
12
"InvoiceRequest":{
13
"payer":НОМЕР СЧЕТА ПЛАТЕЛЬЩИКА,
14
"payee":НОМЕР СЧЕТА ПОЛУЧАТЕЛЯ,
15
"amount":10,
16
"clientTransaction":"test",
17
"description":"test",
18
"operationInfo":{
19
"attribute":[
20
{
21
"key":"PAYMENTTOKEN",
22
"value":"0НОМЕР БАЗОВОЙ ОПЕРАЦИИ"
23
}
24
]
25
}
26
}
27
}
28
}
29
}
30
31
Ответ:
32
33
{
34
"Envelope":{
35
"Body":{
36
"InvoiceResponse":{
37
"dateTime":"YYYY-MM-DDT08:55:03.000+03:00",
38
"clientTransaction":"test",
39
"transaction":98765432,
40
"status":"CREATED"
41
}
42
}
43
}
44
}
Copied!
1
<?php
2
3
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
4
include_once($sdkAppFileName);
5
6
try {
7
$monetaSdk = new \Moneta\MonetaSdk();
8
$monetaSdk->checkMonetaServiceConnection();
9
10
$request = new \Moneta\Types\InvoiceRequest();
11
12
//номер счёта плательщика (счёт для списания средств) в системе МОНЕТА.РУ.
13
$request->payer = '';
14
15
//номер счёта получателя (счёт для зачисления средств) в системе МОНЕТА.РУ.
16
$request->payee = '';
17
18
//сумма инвойса
19
$request->amount = '12.00';
20
21
//описание инвойса
22
$request->description = 'Инвойс только с вводом контрольных цифр';
23
24
//номер инвойса в учётной системе магазина/маркетплейса.
25
$request->clientTransaction = 'my-order-id-12';
26
27
$operation = new \Moneta\Types\OperationInfo();
28
29
//параметр должен содержать значение transaction базовой операции с добавлением ноля в начало строки
30
$attribute = new \Moneta\Types\KeyValueAttribute();
31
$attribute->key = 'PAYMENTTOKEN';
32
$attribute->value = '';
33
$operation->addAttribute($attribute);
34
35
$request->operationInfo = $operation;
36
37
//создание нового инвойса
38
$result = $monetaSdk->monetaService->Invoice($request);
39
40
if (!$result['transaction']) {
41
throw new Exception(print_r($result, true));
42
}
43
44
//номер операции: необходим для предоставления формы оплаты покупателю
45
echo "Номер операции: " . $result['transaction'];
46
47
} catch (Exception $e) {
48
echo "Ошибка:<br />";
49
echo "<pre>" . $e->getMessage() . "</pre>";
50
}
Copied!
4. Маркептлейс переводит покупателя на платежную форму MONETA.Assistant с параметром operationId, который был получен на третьем шаге и с обязательным параметром MNT_SUBSCRIBER_ID: https://www.moneta.ru/assistant.widget?operationId=98765432&MNT_SUBSCRIBER_ID=12345. Параметр MNT_SUBSCRIBER_ID должен совпадать с аналогичным параметром в базовой операции, иначе оплата будет запрещена.
1
https://www.moneta.ru/assistant.widget?operationId=98765432&MNT_SUBSCRIBER_ID=12345.
Copied!
После перехода на платежную форму покупателю необходимо ввести CVV-код.
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Last modified 29d ago
Copy link