forked from payuru/php-payu4
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathqstCreateOrg.php
120 lines (97 loc) · 6.11 KB
/
qstCreateOrg.php
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
declare(strict_types=1);
use Ypmn\ApiRequest;
use Ypmn\Qst;
use Ypmn\QstSchema;
use Ypmn\QstSchemaActualAddress;
use Ypmn\QstSchemaBankAccount;
use Ypmn\QstSchemaCeo;
use Ypmn\QstSchemaIdentityDoc;
use Ypmn\QstSchemaLegalAddress;
use Ypmn\QstSchemaOwner;
// Подключим файл, в котором заданы параметры мерчанта
include_once 'start.php';
/* Создание и отправка анкеты для подключения сабмерчанта (продавца) организации */
/* Создадим объект анкеты */
$qst = new Qst();
/* Укажем ИНН добавляемого сабмерчанта */
$qst->setInn('7704217370');
/* Создадим объект данных анкеты добавляемого сабмерчанта */
$qstSchema = new QstSchema();
/* Добавим в данные анкеты номер телефона сабмерчанта */
$qstSchema->addPhone('+7 495 1234567, доб. 123');
/* Добавим в данные анкеты еще один номер телефона сабмерчанта */
$qstSchema->addPhone('+7 499 7654321, доб. 321');
/* Добавим в данные анкеты email сабмерчанта */
$qstSchema->addEmail('example@ypmn.com');
/* Создадим и заполним объект юридического адреса сабмерчанта */
$qstLegalAddress = (new QstSchemaLegalAddress())
->setZip('123112') // индекс
->setRegion('Москва') // регион
->setCity('Москва') // город
->setStreet('Пресненская наб.') // улица
->setHouse('д. 10') // дом
->setFlat('эт. 41, Пом. I, комн. 6'); // офис
/* Установим объект юридического адреса сабмерчанта в данных анкеты */
$qstSchema->setLegalAddress($qstLegalAddress);
/*
* Создадим объект фактического адреса сабмерчанта и отметим, что
* фактический адрес сабмерчанта соответствует юридическому
*/
$qstActualAddress = (new QstSchemaActualAddress())->setChecked(true);
/* Установим объект фактического адреса сабмерчанта в данных анкеты */
$qstSchema->setActualAddress($qstActualAddress);
/* Создадим объект удостоверяющего документа и заполним его паспортными данными руководителя организации */
$qstCeoIdentityDoc = (new QstSchemaIdentityDoc())
->setSeries('1234') // номер паспорта
->setNumber('123456') // серия
->setIssueDate('2000-01-30') // дата выдачи
->setIssuedBy('МВД') // кем выдан
->setIssuedByKP('123-456'); // к/п
/*
* Создадим объект руководителя организации.
* Установим в него объект с паспортными данными руководителя.
* Заполним место и дату рождения, адрес регистрации руководителя
*/
$qstCeo = (new QstSchemaCeo())
->setIdentityDoc($qstCeoIdentityDoc) // объект с паспортными данными руководителя
->setBirthDate('1980-01-30') // дата рождения руководителя
->setBirthPlace('Москва') // место рождения руководителя
->setRegistrationAddress('г. Москва, ул. Ленина, д. 1, кв. 1'); // адрес регистрации руководителя
/* Установим объект с данными руководителя организации в данных анкеты */
$qstSchema->setCeo($qstCeo);
/* Создадим объект собственника организации, заполним ФИО и долю собственника */
$qstOwner = (new QstSchemaOwner())->setOwner('Иванов Иван Иванович')->setShare('100');
/* Добавим объект с данными собственника организации в объект данных анкеты */
$qstSchema->addOwner($qstOwner);
/* Создадим и заполним объект с банковскими данными организации */
$qstBankAccount = (new QstSchemaBankAccount())
->setBankBIK('044525700') // БИК
->setBankCorAccount('30101810200000000700') // кор. счет
->setBankAccount('40702810100002400756'); // расч. счет
/* Добавим объект с банковскими данными сабмерчанта в данные анкеты */
$qstSchema->addBankAccount($qstBankAccount);
/* Заполним дополнительное поле #1 (при наличии) */
$qstSchema->setAdditionalFieldByKey(1, 'Доп. поле');
/* Установим объект с данными анкеты в объект анкеты */
$qst->setSchema($qstSchema);
/* Создадим HTTP-запрос к API */
$apiRequest = new ApiRequest($merchant);
// Включить режим отладки (закомментируйте или удалите в рабочей программе!) //
$apiRequest->setDebugMode();
// Переключиться на тестовый сервер (закомментируйте или удалите в рабочей программе!) //
$apiRequest->setSandboxMode();
/* Запрос на отправку анкеты */
$responseData = $apiRequest->sendQstCreateRequest($qst);
/* Преобразуем ответ из JSON в массив */
try {
$responseData = json_decode((string) $responseData["response"], true);
if (isset($responseData['id'])) {
echo "Анкета #{$responseData['id']} создана и отправлена на проверку";
} else {
echo "Анкета не создана, см. причину в ответа от сервера YPMN";
}
} catch (Exception $exception) {
echo "Ошибка запроса: {$exception->getMessage()}";
throw new Exception($exception->getMessage());
}