protected static function getPaymentsInfo(Order $order) { $payments = $order->getPaymentCollection(); if (!$payments) { return array(); } $result = array(); /** @var $payment \Bitrix\Sale\Payment */ foreach ($payments as $payment) { $id = $payment->getField("PAY_SYSTEM_ID"); $ptId = $order->getPersonTypeId(); if (!$id || !$ptId) { continue; } $params = OrderPayment::getPaySystemParams($id, $ptId); if (!$params) { continue; } $result[] = array("ID" => $payment->getId(), "NAME" => $params["NAME"], "LOGOTIP_PATH" => $params["LOGOTIP_PATH"], "IS_PAYED" => $payment->isPaid()); } return $result; }
protected function updatePaySystemInfoAction() { if ($this->request["orderId"]) { $orderId = $this->request["orderId"]; } else { throw new UserMessageException("Incorrect order ID!"); } if ($this->request["paymentId"]) { $paymentId = $this->request["paymentId"]; } else { throw new UserMessageException("Incorrect payment ID!"); } /** @var \Bitrix\Sale\Order $order */ $order = Sale\Order::load($orderId); if ($order) { /** @var \Bitrix\Sale\PaymentCollection $paymentCollection */ $paymentCollection = $order->getPaymentCollection(); /** @var \Bitrix\Sale\Payment $payment */ $payment = $paymentCollection->getItemById($paymentId); if ($payment) { $psResultFile = ''; $psParams = Admin\Blocks\OrderPayment::getPaySystemParams($payment->getPaymentSystemId(), $order->getPersonTypeId()); $psActionPath = $_SERVER["DOCUMENT_ROOT"] . $psParams["ACTION_FILE"]; $psActionPath = str_replace("\\", "/", $psActionPath); while (substr($psActionPath, strlen($psActionPath) - 1, 1) == "/") { $psActionPath = substr($psActionPath, 0, strlen($psActionPath) - 1); } if (file_exists($psActionPath) && is_dir($psActionPath)) { if (file_exists($psActionPath . "/result.php") && is_file($psActionPath . "/result.php")) { $psResultFile = $psActionPath . "/result.php"; } } elseif (strlen($psParams["RESULT_FILE"]) > 0) { if (file_exists($_SERVER["DOCUMENT_ROOT"] . $psParams["RESULT_FILE"]) && is_file($_SERVER["DOCUMENT_ROOT"] . $psParams["RESULT_FILE"])) { $psResultFile = $_SERVER["DOCUMENT_ROOT"] . $psParams["RESULT_FILE"]; } } if (strlen($psResultFile) > 0) { \CSalePaySystemAction::InitParamArrays($order->getFieldValues(), $orderId, $psParams["PARAMS"], array(), $payment->getFieldValues()); try { if (!(include $psResultFile)) { $this->addResultError(GetMessage("SALE_OA_ERROR_PAY_SYSTEM_INFO")); } } catch (SystemException $e) { $this->addResultError($e->getMessage()); } } } } }