Skip to content

Commit db83c34

Browse files
authored
Merge pull request #11 from yourpayments/YP-317_v4
YP-317_v4 example SBP
2 parents e291ada + fa2354d commit db83c34

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

src/Examples/payoutSbpCreate.php

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Ypmn\Amount;
6+
use Ypmn\ApiRequest;
7+
use Ypmn\Billing;
8+
use Ypmn\Merchant;
9+
use Ypmn\Payout;
10+
use Ypmn\PayoutMobileDestination;
11+
use Ypmn\PayoutSource;
12+
13+
// Подключим файл, в котором заданы параметры мерчанта
14+
include_once 'start.php';
15+
16+
/**
17+
* Это файл с примером для создания выплат по номеру телефона через СБП физ. лицам
18+
**/
19+
20+
// Созданим выплату
21+
$payout = new Payout();
22+
23+
// Назначим ей уникальный номер выплаты
24+
// (повторно этот номер использовать нельзя,
25+
// даже если выплата неудачная
26+
$payout->setMerchantPayoutReference(
27+
'payout__'
28+
. str_replace('.', '', uniqid('' . time(), true))
29+
);
30+
31+
// Назначим сумму (здесь пример передачи данных из формы + стандартное значение)
32+
$payout->setAmount(
33+
new Amount((float) @$_POST['summ'] ?: 150.00, 'RUB')
34+
);
35+
36+
// Назначим Описание
37+
$payout->setDescription(@$_POST['description'] ?: 'Тестовое Описание Платежа');
38+
39+
// Опишем и назначим Направление и Получателя платежа
40+
$destination = (new PayoutMobileDestination())
41+
->setPhoneNumber(@$_POST['ph-number'] ?: "79001112233") // Назначим номер телефона (здесь пример передачи данных из формы + стандартное значение)
42+
->setBankInformation((int)$_POST['bank'], $_POST['bankName']); // Установим id/имя банка из списка НСПК
43+
// Имя получателя из GET-запроса
44+
$postRecipientName = explode(' ', @$_POST['reciever-name'] ?: '');
45+
46+
// Опишем получателя
47+
$recipient = (new Billing())
48+
->setEmail('[email protected]') // E-mail получателя
49+
->setCity('Москва') // Город получателя
50+
->setAddressLine1('Арбат, 10') // Адрес получателя
51+
->setZipCode('121000') // Почтовый индекс получателя
52+
->setCountryCode('RU') // Код страны получателя (2 буквы, на английском)
53+
->setFirstName(@$postRecipientName[0] ?: 'Иван') // Установим Имя получателя для платежа (здесь пример передачи данных из формы + стандартное значение)
54+
->setLastName(@$postRecipientName[1] ?: @$postRecipientName[0] ?: 'Иванович'); // Фамилия получателя (здесь пример передачи данных из формы + стандартное значение)
55+
56+
$destination->setRecipient($recipient);
57+
$payout->setDestination($destination);
58+
59+
// Опишем и назначим Источник платежа
60+
$source = new PayoutSource();
61+
// Опишем отправителя
62+
$sender = (new Billing())
63+
->setFirstName('Василий') // Имя отправителя
64+
->setLastName('Петрович') // Фамилия отправителя
65+
->setPhone('0764111111') // Телефон отправителя
66+
->setEmail('[email protected]'); // Email отправителя
67+
$source->setSender($sender);
68+
$payout->setSource($source);
69+
70+
// Создадим HTTP-запрос к API
71+
$apiRequest = (new ApiRequest(new Merchant($_POST['merchantCode'], $_POST['merchantSecret'])))
72+
->setDebugMode() // (Опционально) Включить режим отладки (закомментируйте или удалите в рабочей программе!)
73+
->setSandboxMode(); // (Опционально) Переключиться на тестовый сервер (закомментируйте или удалите в рабочей программе!)
74+
75+
// Отправим запрос
76+
$responseData = $apiRequest->sendPayoutCreateRequest($payout);

0 commit comments

Comments
 (0)