-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsend_split_payment.php
More file actions
59 lines (54 loc) · 1.63 KB
/
Copy pathsend_split_payment.php
File metadata and controls
59 lines (54 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
require_once __DIR__ . '/bootstrap.php';
/**
* Пример использования метода payment()->sendSplit().
*
* Сплитование создаётся через Invoice API, но не поддерживает IsTest. Перед
* запуском используйте реквизиты основного магазина и задайте логин участника
* в ROBOKASSA_SPLIT_PARTNER_LOGIN.
*/
try {
$masterLogin = $_ENV['ROBOKASSA_LOGIN'] ?? '';
$partnerLogin = $_ENV['ROBOKASSA_SPLIT_PARTNER_LOGIN'] ?? '';
if ($partnerLogin === '') {
throw new InvalidArgumentException('Укажите ROBOKASSA_SPLIT_PARTNER_LOGIN.');
}
$robokassa = createRobokassa();
$url = $robokassa->payment()->sendSplit([
'InvId' => 500001,
'OutSum' => 700,
'Description' => 'Оплата заказа со сплитованием',
'ExpirationDate' => '2026-12-31T23:59:59+03:00',
'Aliases' => ['BankCard', 'SBP'],
'Split' => [
[
'id' => $masterLogin,
'InvoiceId' => 500001,
'amount' => 500,
'receipt' => [
'sno' => 'osn',
'items' => [
[
'name' => 'Товар мастер-магазина',
'quantity' => 1,
'sum' => 500,
'tax' => 'vat20',
'payment_method' => 'full_payment',
'payment_object' => 'commodity',
],
],
],
],
[
'id' => $partnerLogin,
'amount' => 200,
],
],
'AdditionalParameters' => [
'Email' => 'buyer@example.com',
],
]);
echo "Ссылка на оплату со сплитованием: $url\n";
} catch (Throwable $e) {
echo 'Ошибка: ' . $e->getMessage() . "\n";
}