1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
service.php
См. документацию.
1<?php
2
3namespace Bitrix\Sale\PaySystem;
4
5use Bitrix\Main\Entity\EntityError;
6use Bitrix\Main\Error;
7use Bitrix\Main\Event;
8use Bitrix\Main\EventResult;
9use Bitrix\Main\Localization\Loc;
10use Bitrix\Main\NotSupportedException;
11use Bitrix\Main\Request;
12use Bitrix\Main\SystemException;
13use Bitrix\Main\Type\Date;
14use Bitrix\Sale;
15use Bitrix\Sale\Order;
16use Bitrix\Sale\Payment;
17use Bitrix\Sale\Registry;
18use Bitrix\Sale\Result;
19use Bitrix\Sale\ResultError;
20use Bitrix\Sale\Cashbox;
21use Bitrix\Sale\Services\Base\RestrictionInfoCollection;
22use Bitrix\Sale\Services\Base\RestrictableService;
23
24Loc::loadMessages(__FILE__);
25
31{
32 public const EVENT_ON_BEFORE_PAYMENT_PAID = 'OnSalePsServiceProcessRequestBeforePaid';
33 public const EVENT_ON_AFTER_PROCESS_REQUEST = 'OnSaleAfterPsServiceProcessRequest';
34
35 public const EVENT_BEFORE_ON_INITIATE_PAY = 'onSalePsBeforeInitiatePay';
36 public const EVENT_INITIATE_PAY_SUCCESS = 'onSalePsInitiatePaySuccess';
37 public const EVENT_INITIATE_PAY_ERROR = 'onSalePsInitiatePayError';
38
39 public const PAY_SYSTEM_PREFIX = 'PAYSYSTEM_';
40
42 private $handler = null;
43
45 private $fields = array();
46
48 protected $isClone = false;
49
51 protected $context;
52
59 public function __construct($fields)
60 {
61 [$className, $handlerType] = Manager::includeHandler($fields['ACTION_FILE']);
62
63 $this->fields = $fields;
64 $this->handler = new $className($handlerType, $this);
65
66 $this->context = new Context();
67 }
68
76 {
77 $onBeforeInitResult = $this->callEventOnBeforeInitiatePay($payment);
78 if (!$onBeforeInitResult->isSuccess())
79 {
80 $error = implode("\n", $onBeforeInitResult->getErrorMessages());
81 Logger::addError(get_class($this->handler) . '. OnBeforeInitiatePay: ' . $error);
82
83 $this->markPayment($payment, $onBeforeInitResult);
84
85 return $onBeforeInitResult;
86 }
87
88 $this->handler->setInitiateMode($mode);
89 $initResult = $this->handler->initiatePay($payment, $request);
90
91 $psData = $initResult->getPsData();
92 if ($psData)
93 {
94 $setResult = $payment->setFields($psData);
95 if ($setResult->isSuccess())
96 {
97 $order = $payment->getCollection()->getOrder();
98 if ($order)
99 {
100 $saveResult = $order->save();
101 if (!$saveResult->isSuccess())
102 {
103 $initResult->addErrors($saveResult->getErrors());
104 }
105 }
106 }
107 else
108 {
109 $initResult->addErrors($setResult->getErrors());
110 }
111 }
112
113 if ($initResult->isSuccess())
114 {
115 $this->callEventOnInitiatePaySuccess($payment);
116 }
117 else
118 {
119 $error = implode("\n", $initResult->getErrorMessages());
120 Logger::addError(get_class($this->handler) . '. InitiatePay: ' . $error);
121
122 $this->markPayment($payment, $onBeforeInitResult);
123
124 $this->callEventOnInitiatePayError($payment, $initResult);
125 }
126
127 return $initResult;
128 }
129
130 private function callEventOnBeforeInitiatePay(Payment $payment): ServiceResult
131 {
132 $result = new ServiceResult();
133
134 $event = new Event(
135 'sale',
136 self::EVENT_BEFORE_ON_INITIATE_PAY,
137 [
138 'payment' => $payment,
139 'service' => $this
140 ]
141 );
142
143 $event->send();
144
145 foreach($event->getResults() as $eventResult)
146 {
147 if ($eventResult->getType() === EventResult::ERROR)
148 {
149 $parameters = $eventResult->getParameters();
150 $error = $parameters['ERROR'] ?? null;
151
152 $result->addError(
153 $error instanceof Error
154 ? $error
156 Loc::getMessage('SALE_PS_SERVICE_ERROR_ON_BEFORE_INITIATE_PAY')
157 )
158 );
159 }
160 }
161
162 return $result;
163 }
164
165 private function callEventOnInitiatePaySuccess(Payment $payment)
166 {
167 $event = new Event(
168 'sale',
169 self::EVENT_INITIATE_PAY_SUCCESS,
170 [
171 'payment' => $payment
172 ]
173 );
174
175 $event->send();
176 }
177
178 private function callEventOnInitiatePayError(Payment $payment, ServiceResult $result)
179 {
180 $event = new Event(
181 'sale',
182 self::EVENT_INITIATE_PAY_ERROR,
183 [
184 'payment' => $payment,
185 'errors' => $result->getErrorMessages(),
186 ]
187 );
188
189 $event->send();
190 }
194 public function isRefundable()
195 {
196 if ($this->handler instanceof IRefundExtended)
197 {
198 return $this->handler->isRefundableExtended();
199 }
200
201 return $this->handler instanceof IRefund;
202 }
203
211 public function refund(Payment $payment, $refundableSum = 0)
212 {
213 if ($this->isRefundable())
214 {
215 $result = new Result();
216
217 if (!$payment->isPaid())
218 {
219 $result->addError(new ResultError(Loc::getMessage('SALE_PS_SERVICE_PAYMENT_NOT_PAID')));
220 return $result;
221 }
222
223 if ($refundableSum == 0)
224 $refundableSum = $payment->getSum();
225
227 $result = $this->handler->refund($payment, $refundableSum);
228 if (!$result->isSuccess())
229 {
230 Logger::addError(get_class($this->handler).': refund: '.implode("\n", $result->getErrorMessages()));
231 }
232
233 return $result;
234 }
235
236 throw new SystemException();
237 }
238
250 public function processRequest(Request $request)
251 {
252 $processResult = new Result();
253
254 if (!($this->handler instanceof ServiceHandler))
255 {
256 return $processResult;
257 }
258
259 $debugInfo = http_build_query($request->toArray(), "", "\n");
260 if (empty($debugInfo))
261 {
262 $debugInfo = file_get_contents("php://input");
263 }
264 Logger::addDebugInfo(
265 get_class($this->handler)." ProcessRequest. paySystemId=".$this->getField("ID").", request=".($debugInfo ? $debugInfo : "empty")
266 );
267
268 $paymentId = $this->handler->getPaymentIdFromRequest($request);
269
270 if (empty($paymentId))
271 {
272 $processResult->addError(new Error(Loc::getMessage('SALE_PS_SERVICE_PAYMENT_ERROR_EMPTY')));
273
274 Logger::addError(
275 get_class($this->handler).'. ProcessRequest: '.Loc::getMessage('SALE_PS_SERVICE_PAYMENT_ERROR_EMPTY')
276 );
277
278 return $processResult;
279 }
280
281 [$orderId, $paymentId] = Manager::getIdsByPayment($paymentId, $this->getField('ENTITY_REGISTRY_TYPE'));
282
283 if (!$orderId)
284 {
285 $errorMessage = str_replace('#ORDER_ID#', $orderId, Loc::getMessage('SALE_PS_SERVICE_ORDER_ERROR'));
286 $processResult->addError(new Error($errorMessage));
287
288 Logger::addError(get_class($this->handler).'. ProcessRequest: '.$errorMessage);
289
290 return $processResult;
291 }
292
293 $registry = Registry::getInstance($this->getField('ENTITY_REGISTRY_TYPE'));
295 $orderClassName = $registry->getOrderClassName();
296
297 $order = $orderClassName::load($orderId);
298 if (!$order)
299 {
300 $errorMessage = str_replace('#ORDER_ID#', $orderId, Loc::getMessage('SALE_PS_SERVICE_ORDER_ERROR'));
301 $processResult->addError(new Error($errorMessage));
302
303 Logger::addError(get_class($this->handler).'. ProcessRequest: '.$errorMessage);
304
305 return $processResult;
306 }
307
308 if ($order->isCanceled())
309 {
310 $errorMessage = str_replace('#ORDER_ID#', $orderId, Loc::getMessage('SALE_PS_SERVICE_ORDER_CANCELED'));
311 $processResult->addError(new Error($errorMessage));
312
313 Logger::addError(get_class($this->handler).'. ProcessRequest: '.$errorMessage);
314
315 return $processResult;
316 }
317
319 $collection = $order->getPaymentCollection();
320
322 $payment = $collection->getItemById($paymentId);
323
324 if (!$payment)
325 {
326 $errorMessage = str_replace('#PAYMENT_ID#', $paymentId, Loc::getMessage('SALE_PS_SERVICE_PAYMENT_ERROR'));
327 $processResult->addError(new Error($errorMessage));
328
329 Logger::addError(get_class($this->handler).'. ProcessRequest: '.$errorMessage);
330
331 return $processResult;
332 }
333
335 $serviceResult = $this->handler->processRequest($payment, $request);
336 if ($serviceResult->isSuccess())
337 {
338 $status = null;
339 $operationType = $serviceResult->getOperationType();
340
341 if ($operationType === ServiceResult::MONEY_COMING)
342 {
343 $status = 'Y';
344 }
345 else if ($operationType === ServiceResult::MONEY_LEAVING)
346 {
347 $status = 'N';
348 }
349
350 if ($status !== null)
351 {
352 $event = new Event('sale', self::EVENT_ON_BEFORE_PAYMENT_PAID,
353 array(
354 'payment' => $payment,
355 'status' => $status,
356 'pay_system_id' => $this->getField('ID')
357 )
358 );
359 $event->send();
360
361 if ($status === 'N')
362 {
363 $payment->setFieldsNoDemand([
364 'IS_RETURN' => Payment::RETURN_PS,
365 'PAY_RETURN_DATE' => new Date(),
366 ]);
367 }
368
369 $paidResult = $payment->setPaid($status);
370 if (!$paidResult->isSuccess())
371 {
372 $error = 'PAYMENT SET PAID: '.join(' ', $paidResult->getErrorMessages());
373 Logger::addError(get_class($this->handler).'. ProcessRequest: '.$error);
374
375 $serviceResult->setResultApplied(false);
376 }
377 }
378
379 $psData = $serviceResult->getPsData();
380 if ($psData)
381 {
382 $res = $payment->setFields($psData);
383 if (!$res->isSuccess())
384 {
385 $error = 'PAYMENT SET PAID: '.join(' ', $res->getErrorMessages());
386 Logger::addError(get_class($this->handler).'. ProcessRequest: '.$error);
387
388 $serviceResult->setResultApplied(false);
389 }
390 }
391
392 $saveResult = $order->save();
393
394 if (!$saveResult->isSuccess())
395 {
396 $error = 'ORDER SAVE: '.join(' ', $saveResult->getErrorMessages());
397 Logger::addError(get_class($this->handler).'. ProcessRequest: '.$error);
398
399 $serviceResult->setResultApplied(false);
400 }
401
402 PullManager::onSuccessfulPayment($payment);
403 }
404 else
405 {
406 $serviceResult->setResultApplied(false);
407 $processResult->addErrors($serviceResult->getErrors());
408
409 $error = implode("\n", $serviceResult->getErrorMessages());
410 Logger::addError(get_class($this->handler).'. ProcessRequest Error: '.$error);
411
412 $this->markPayment($payment, $serviceResult);
413
414 PullManager::onFailurePayment($payment);
415 }
416
417 $event = new Event(
418 'sale',
419 self::EVENT_ON_AFTER_PROCESS_REQUEST,
420 [
421 'payment' => $payment,
422 'serviceResult' => $serviceResult,
423 'request' => $request,
424 ]
425 );
426 $event->send();
427
428 $this->handler->sendResponse($serviceResult, $request);
429
430 return $processResult;
431 }
432
436 public function getConsumerName()
437 {
438 $id = $this->fields['ID'] ?? 0;
439
440 return static::PAY_SYSTEM_PREFIX.$id;
441 }
442
446 public function getHandlerDescription()
447 {
448 return $this->handler->getDescription();
449 }
450
454 public function isBlockable()
455 {
456 return $this->handler instanceof IHold || $this->handler instanceof IPartialHold;
457 }
458
464 public function cancel(Payment $payment)
465 {
466 if ($this->isBlockable())
467 {
468 return $this->handler->cancel($payment);
469 }
470
471 throw new SystemException(Loc::getMessage('SALE_PS_SERVICE_ERROR_HOLD_IS_NOT_SUPPORTED'));
472 }
473
480 public function confirm(Payment $payment, $sum = 0)
481 {
482 if ($this->isBlockable())
483 {
484 if ($this->handler instanceof IPartialHold)
485 {
486 return $this->handler->confirm($payment, $sum);
487 }
488 else if ($sum > 0)
489 {
490 throw new SystemException(Loc::getMessage('SALE_PS_SERVICE_ERROR_PARTIAL_CONFIRM_IS_NOT_SUPPORTED'));
491 }
492
493 return $this->handler->confirm($payment);
494 }
495
496 throw new SystemException(Loc::getMessage('SALE_PS_SERVICE_ERROR_HOLD_IS_NOT_SUPPORTED'));
497 }
498
503 public function getField($name)
504 {
505 return $this->fields[$name] ?? null;
506 }
507
511 public function getCurrency()
512 {
513 return $this->handler->getCurrencyList();
514 }
515
521 public function getClientTypeFromHandler()
522 {
523 return $this->handler->getClientType(
524 $this->fields['PS_MODE'] ?? null
525 );
526 }
527
533 public function getClientType()
534 {
535 return (string)($this->fields['PS_CLIENT_TYPE'] ?? $this->getClientTypeFromHandler());
536 }
537
541 public function isCash()
542 {
543 return $this->fields['IS_CASH'] === 'Y';
544 }
545
549 public function canPrintCheck(): bool
550 {
551 return $this->fields['CAN_PRINT_CHECK'] === 'Y';
552 }
553
558 public function canPrintCheckSelf(Payment $payment): bool
559 {
560 $service = $payment->getPaySystem();
561 if (!$service || !$this->isSupportPrintCheck() || !$this->canPrintCheck())
562 {
563 return false;
564 }
565
567 $cashboxClass = $this->getCashboxClass();
568 $kkm = $cashboxClass::getKkmValue($service);
569
570 $filter = [
571 '=ACTIVE' => 'Y',
572 '=HANDLER' => $cashboxClass,
573 ];
574
575 if (!empty($kkm))
576 {
577 $filter['=KKM_ID'] = $kkm;
578 }
579
580 return (bool)Cashbox\Manager::getList([
581 'select' => ['ID'],
582 'filter' => $filter,
583 ])->fetch();
584 }
585
591 {
592 return $this->handler->creditNoDemand($payment);
593 }
594
600 {
601 return $this->handler->debitNoDemand($payment);
602 }
603
607 public function isPayable()
608 {
609 if ($this->handler instanceof IPayable)
610 return true;
611
612 if (method_exists($this->handler, 'isPayableCompatibility'))
613 return $this->handler->isPayableCompatibility();
614
615 return false;
616 }
617
621 public function isAffordPdf()
622 {
623 return $this->handler instanceof IPdf;
624 }
625
630 {
631 return $this->handler instanceof IDocumentGeneratePdf;
632 }
633
640 {
641 if ($this->isAffordPdf())
642 {
643 return $this->handler->getContent($payment);
644 }
645
646 throw new NotSupportedException('Handler is not implemented interface '.IPdf::class);
647 }
648
654 public function getPdf(Payment $payment)
655 {
656 if ($this->isAffordPdf())
657 {
658 return $this->handler->getFile($payment);
659 }
660
661 throw new NotSupportedException('Handler is not implemented interface '.IPdf::class);
662 }
663
671 {
672 if ($this->isAffordDocumentGeneratePdf())
673 {
674 return $this->handler->registerCallbackOnGenerate($payment, $params);
675 }
676
677 throw new NotSupportedException('Handler is not implemented interface '.IDocumentGeneratePdf::class);
678 }
679
686 {
687 if ($this->isAffordPdf())
688 {
689 return $this->handler->isGenerated($payment);
690 }
691
692 throw new NotSupportedException('Handler is not implemented interface '.IPdf::class);
693 }
694
700 {
701 if ($this->isPayable())
702 return $this->handler->getPrice($payment);
703
704 return 0;
705 }
706
711 {
712 $this->handler->setExtraParams($params);
713 }
714
720 public function showTemplate(Payment $payment = null, $templateName)
721 {
722 return $this->handler->showTemplate($payment, $templateName);
723 }
724
728 public function isPrePayable()
729 {
730 return $this->handler instanceof IPrePayable;
731 }
732
739 {
740 if ($this->isPrePayable())
741 return $this->handler->initPrePayment($payment, $request);
742
743 throw new NotSupportedException;
744 }
745
750 public function getPrePaymentProps()
751 {
752 if ($this->isPrePayable())
753 return $this->handler->getProps();
754
755 throw new NotSupportedException;
756 }
757
763 public function basketButtonAction(array $orderData = array())
764 {
765 if ($this->isPrePayable())
766 return $this->handler->basketButtonAction($orderData);
767
768 throw new NotSupportedException;
769 }
770
776 public function setOrderDataForPrePayment($orderData = array())
777 {
778 if ($this->isPrePayable())
779 return $this->handler->setOrderConfig($orderData);
780
781 throw new NotSupportedException;
782 }
783
789 public function payOrderByPrePayment($orderData)
790 {
791 if ($this->isPrePayable())
792 return $this->handler->payOrder($orderData);
793
794 throw new NotSupportedException;
795 }
796
800 public function getFieldsValues()
801 {
802 return $this->fields;
803 }
804
808 public function isAllowEditPayment()
809 {
810 return $this->fields['ALLOW_EDIT_PAYMENT'] == 'Y';
811 }
812
816 public function isCheckable()
817 {
818 if ($this->handler instanceof ICheckable)
819 return true;
820
821 if (method_exists($this->handler, 'isCheckableCompatibility'))
822 return $this->handler->isCheckableCompatibility();
823
824 return false;
825 }
826
831 public function check(Payment $payment)
832 {
833 $result = new ServiceResult();
834
835 if ($this->isCheckable())
836 {
838 $paymentCollection = $payment->getCollection();
839
841 $order = $paymentCollection->getOrder();
842
843 if (!$order->isCanceled())
844 {
846 $checkResult = $this->handler->check($payment);
847 if ($checkResult instanceof ServiceResult && $checkResult->isSuccess())
848 {
849 $psData = $checkResult->getPsData();
850 if ($psData)
851 {
852 $res = $payment->setFields($psData);
853 if (!$res->isSuccess())
854 $result->addErrors($res->getErrors());
855 }
856
857 if ($checkResult->getOperationType() == ServiceResult::MONEY_COMING)
858 {
859 $res = $payment->setPaid('Y');
860 if (!$res->isSuccess())
861 $result->addErrors($res->getErrors());
862 }
863
864 $res = $order->save();
865 if (!$res->isSuccess())
866 $result->addErrors($res->getErrors());
867 }
868 elseif (!$checkResult)
869 {
870 $result->addError(new Error(Loc::getMessage('SALE_PS_SERVICE_ERROR_CONNECT_PS')));
871 }
872 }
873 else
874 {
875 $result->addError(new EntityError(Loc::getMessage('SALE_PS_SERVICE_ORDER_CANCELED', array('#ORDER_ID#' => $order->getId()))));
876 }
877 }
878
879 return $result;
880 }
881
887 public function createClone(\SplObjectStorage $cloneEntity)
888 {
889 if ($this->isClone() && $cloneEntity->contains($this))
890 {
891 return $cloneEntity[$this];
892 }
893
894 $paySystemServiceClone = clone $this;
895 $paySystemServiceClone->isClone = true;
896
897 if (!$cloneEntity->contains($this))
898 {
899 $cloneEntity[$this] = $paySystemServiceClone;
900 }
901
902 if ($handler = $this->handler)
903 {
904 if (!$cloneEntity->contains($handler))
905 {
906 $cloneEntity[$handler] = $handler->createClone($cloneEntity);
907 }
908
909 if ($cloneEntity->contains($handler))
910 {
911 $paySystemServiceClone->handler = $cloneEntity[$handler];
912 }
913 }
914
915 return $paySystemServiceClone;
916 }
917
921 public function isClone()
922 {
923 return $this->isClone;
924 }
925
929 public function isCustom()
930 {
931 return in_array($this->handler->getHandlerType(), array('CUSTOM', 'USER'));
932 }
933
939 {
940 return $this->handler->getParamsBusValue($payment);
941 }
942
946 public function isTuned()
947 {
948 return $this->handler->isTuned();
949 }
950
954 public function getDemoParams()
955 {
956 return $this->handler->getDemoParams();
957 }
958
962 public function setTemplateMode($mode)
963 {
964 $this->handler->setInitiateMode($mode);
965 }
966
970 public function getContext(): Context
971 {
972 return $this->context;
973 }
974
979 public function isRecurring(Payment $payment): bool
980 {
981 return $this->handler instanceof IRecurring
982 && $this->handler->isRecurring($payment);
983 }
984
991 {
992 $result = new ServiceResult();
993
994 if ($this->isRecurring($payment))
995 {
996 return $this->handler->repeatRecurrent($payment, $request);
997 }
998
999 return $result;
1000 }
1001
1008 {
1009 $result = new ServiceResult();
1010
1011 if ($this->isRecurring($payment))
1012 {
1013 return $this->handler->cancelRecurrent($payment, $request);
1014 }
1015
1016 return $result;
1017 }
1018
1024 public function isSupportPrintCheck(): bool
1025 {
1026 return $this->handler instanceof Sale\PaySystem\Cashbox\ISupportPrintCheck;
1027 }
1028
1035 public function getCashboxClass(): string
1036 {
1037 if ($this->isSupportPrintCheck())
1038 {
1039 $cashboxClassName = $this->handler::getCashboxClass();
1040 if (!Cashbox\Manager::isPaySystemCashbox($cashboxClassName))
1041 {
1042 throw new NotSupportedException(
1043 'Cashbox is not extended class '.Cashbox\CashboxPaySystem::class
1044 );
1045 }
1046
1047 return $cashboxClassName;
1048 }
1049
1050 throw new NotSupportedException(
1051 'Handler is not implemented interface '.Sale\PaySystem\Cashbox\ISupportPrintCheck::class
1052 );
1053 }
1054
1060 public function isFiscalizationAware(): bool
1061 {
1062 return $this->handler instanceof Sale\PaySystem\Cashbox\IFiscalizationAware;
1063 }
1064
1073 {
1074 if ($this->isFiscalizationAware())
1075 {
1076 return $this->handler->isFiscalizationEnabled($payment);
1077 }
1078
1079 throw new NotSupportedException(
1080 'Handler does not implement interface '.Sale\PaySystem\Cashbox\IFiscalizationAware::class
1081 );
1082 }
1083
1085 {
1086 if ($this->handler instanceof Sale\Services\PaySystem\Restrictions\RestrictableServiceHandler)
1087 {
1088 return $this->handler->getRestrictionList();
1089 }
1090
1091 return (new RestrictionInfoCollection());
1092 }
1093
1094 public function getServiceId(): int
1095 {
1096 return (int)($this->getField('ID') ?? 0);
1097 }
1098
1099 private function markPayment(Payment $payment, ServiceResult $serviceResult): void
1100 {
1101 (new PaymentMarker($this, $payment))
1102 ->mark($serviceResult)
1103 ->save()
1104 ;
1105 }
1106}
$sum
Определения checkout.php:6
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
Определения catalog_reindex.php:36
Определения error.php:15
Определения request.php:10
static create($message, $code=0, $customData=null)
Определения error.php:36
static addError($error)
Определения logger.php:26
static includeHandler($actionFile)
Определения manager.php:1045
debitNoDemand(Payment $payment)
Определения service.php:599
payOrderByPrePayment($orderData)
Определения service.php:789
const EVENT_INITIATE_PAY_SUCCESS
Определения service.php:36
confirm(Payment $payment, $sum=0)
Определения service.php:480
const EVENT_BEFORE_ON_INITIATE_PAY
Определения service.php:35
createClone(\SplObjectStorage $cloneEntity)
Определения service.php:887
const PAY_SYSTEM_PREFIX
Определения service.php:39
isAllowEditPayment()
Определения service.php:808
isFiscalizationEnabled(Payment $payment)
Определения service.php:1072
getPdf(Payment $payment)
Определения service.php:654
getPrePaymentProps()
Определения service.php:750
registerCallbackOnGenerate(Payment $payment, $params)
Определения service.php:670
isPdfGenerated(Payment $payment)
Определения service.php:685
cancel(Payment $payment)
Определения service.php:464
initiatePay(Payment $payment, Request $request=null, $mode=BaseServiceHandler::STREAM)
Определения service.php:75
getStartupRestrictions()
Определения service.php:1084
getParamsBusValue(Payment $payment)
Определения service.php:938
repeatRecurrent(Payment $payment, Request $request=null)
Определения service.php:990
basketButtonAction(array $orderData=array())
Определения service.php:763
const EVENT_INITIATE_PAY_ERROR
Определения service.php:37
__construct($fields)
Определения service.php:59
const EVENT_ON_BEFORE_PAYMENT_PAID
Определения service.php:32
getFieldsValues()
Определения service.php:800
setOrderDataForPrePayment($orderData=array())
Определения service.php:776
const EVENT_ON_AFTER_PROCESS_REQUEST
Определения service.php:33
getHandlerDescription()
Определения service.php:446
cancelRecurrent(Payment $payment, Request $request=null)
Определения service.php:1007
setTemplateParams(array $params)
Определения service.php:710
setTemplateMode($mode)
Определения service.php:962
getClientTypeFromHandler()
Определения service.php:521
isRecurring(Payment $payment)
Определения service.php:979
getConsumerName()
Определения service.php:436
initPrePayment(Payment $payment=null, Request $request)
Определения service.php:738
getPaymentPrice(Payment $payment)
Определения service.php:699
isFiscalizationAware()
Определения service.php:1060
isAffordDocumentGeneratePdf()
Определения service.php:629
getField($name)
Определения service.php:503
showTemplate(Payment $payment=null, $templateName)
Определения service.php:720
creditNoDemand(Payment $payment)
Определения service.php:590
isSupportPrintCheck()
Определения service.php:1024
getPdfContent(Payment $payment)
Определения service.php:639
Определения payment.php:19
$orderId
Определения payment.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
$result
Определения get_property_values.php:14
$filter
Определения iblock_catalog_list.php:54
while($arParentIBlockProperty=$dbParentIBlockProperty->Fetch()) $errorMessage
$context
Определения csv_new_setup.php:223
$status
Определения session.php:10
$name
Определения menu_edit.php:35
processRequest(HttpRequest $request)
Определения changeactivehandler.php:18
Определения culture.php:9
Определения buffer.php:3
trait Error
Определения error.php:11
$payment
Определения payment.php:14
$order
Определения payment.php:8
$paymentCollection
Определения payment.php:11
$service
Определения payment.php:18
$event
Определения prolog_after.php:141
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$error
Определения subscription_card_product.php:20
$fields
Определения yandex_run.php:501