1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
provider.php
См. документацию.
1<?php
2namespace Bitrix\Sale\PaySystem\Internals\Analytics;
3
4use Bitrix\Sale;
5use Bitrix\Main;
6use Bitrix\Sale\BusinessValue;
7
14{
15 private const TYPE = 'paysystem';
16
17 private const PAY_SYSTEM_HANDLERS = [
18 \Sale\Handlers\PaySystem\YandexCheckoutHandler::class,
19 \Sale\Handlers\PaySystem\WooppayHandler::class,
20 \Sale\Handlers\PaySystem\RoboxchangeHandler::class,
21 \Sale\Handlers\PaySystem\PlatonHandler::class,
22 ];
23
25 private $payment;
26
28 private $paySystemService;
29
30 public function __construct(Sale\Payment $payment)
31 {
32 $this->payment = $payment;
33 $this->paySystemService = $this->payment->getPaySystem();
34 }
35
39 public static function getCode(): string
40 {
41 return self::TYPE;
42 }
43
47 protected function needProvideData(): bool
48 {
49 if (!$this->paySystemService)
50 {
51 return false;
52 }
53
54 $actionFile = $this->paySystemService->getField('ACTION_FILE');
55 $paySystemClassName = strtolower(Sale\PaySystem\Manager::getClassNameFromPath($actionFile));
56
57 $isPaySystemExists = (bool)array_filter(
58 self::PAY_SYSTEM_HANDLERS,
59 static function ($paySystemHandler) use ($paySystemClassName) {
60 return strtolower($paySystemHandler) === $paySystemClassName;
61 }
62 );
63
64 return $isPaySystemExists && $this->payment->isPaid();
65 }
66
70 protected function getProviderData(): array
71 {
72 $result = [];
73
74 $paymentData = $this->getPaymentData();
75 if ($paymentData)
76 {
77 $result = [
78 'pay_system' => $this->paySystemService->getField('ACTION_FILE'),
79 'transactions' => $paymentData,
80 'ps_mode' => $this->paySystemService->getField('PS_MODE'),
81 'sum' => $this->payment->getField('SUM'),
82 'shopId' => $this->getShopId(),
83 ];
84 }
85
86 return $result;
87 }
88
89 private function getShopId(): ?string
90 {
91 $actionFile = $this->paySystemService->getField('ACTION_FILE');
92 if ($actionFile === 'yandexcheckout')
93 {
94 $paysytemId = $this->paySystemService->getField('ID');
96 'YANDEX_CHECKOUT_SHOP_ID',
97 'PAYSYSTEM_' . $paysytemId,
98 null,
99 [
101 ]
102 );
103 if (empty($shopId))
104 {
106 'YANDEX_CHECKOUT_SHOP_ID',
107 'PAYSYSTEM_' . $paysytemId,
108 null,
109 [
111 ]
112 );
113 }
114 if (isset($shopId['PROVIDER_VALUE']) && $shopId['PROVIDER_VALUE'])
115 {
116 return (int)$shopId['PROVIDER_VALUE'];
117 }
118
119 if (!\Bitrix\Main\Loader::includeModule('seo'))
120 {
121 return null;
122 }
123
124 $yookassa = new \Bitrix\Seo\Checkout\Services\AccountYookassa();
125 $yookassa->setService(\Bitrix\Seo\Checkout\Service::getInstance());
126
127 return $yookassa->getProfile() ? $yookassa->getProfile()['ID'] : null;
128 }
129
130 if ($actionFile === 'roboxchange')
131 {
132 $robokassaShopSettings = (new \Bitrix\Sale\PaySystem\Robokassa\ShopSettings())->get();
133
134 return $robokassaShopSettings['ROBOXCHANGE_SHOPLOGIN'] ?? null;
135 }
136
137 return null;
138 }
139
143 private function getPaymentData(): array
144 {
145 $result = [];
146
147 $externalId = $this->payment->getField('PS_INVOICE_ID');
148 $date = $this->payment->getField('PS_RESPONSE_DATE') ?: $this->payment->getField('DATE_PAID');
149
150 if (!($date instanceof Main\Type\DateTime))
151 {
152 $date = new Main\Type\DateTime();
153 }
154
155 $date = $date->format('Y-m-d H:i:s');
156
157 $result[] = [
158 'id' => $externalId ?: $this->payment->getField('XML_ID'),
159 'date_time' => $date,
160 ];
161
162 return $result;
163 }
164}
static getMapping($codeKey, $consumerKey=null, $personTypeId=null, array $options=array())
Определения businessvalue.php:131
const MATCH_COMMON
Определения businessvalue.php:121
const MATCH_EXACT
Определения businessvalue.php:120
__construct(Sale\Payment $payment)
Определения provider.php:30
static getClassNameFromPath($path)
Определения manager.php:523
Определения payment.php:19
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$shopId
Определения refund.php:14