/** * Prepare information specific to current payment method * * @param null|\Magento\Framework\DataObject|array $transport * @return \Magento\Framework\DataObject */ protected function _prepareSpecificInformation($transport = null) { if (null !== $this->_paymentSpecificInformation) { return $this->_paymentSpecificInformation; } $transport = parent::_prepareSpecificInformation($transport); $module_name = $this->getRequest()->getModuleName(); $action_name = $this->getRequest()->getActionName(); if ($details_arr = $this->getInfo()->getAdditionalInformation() and !empty($details_arr['sp_method']) and $method_obj = $this->_s2pMethod->create()->load($details_arr['sp_method'])) { if (!empty($details_arr['sp_transaction']) and $transaction_obj = $this->_s2pTransaction->create()->load($details_arr['sp_transaction'])) { if (!($payment_id = $transaction_obj->getPaymentId())) { $payment_id = __('N/A')->render(); } $this->_paymentSpecificInformation->setData(__('Method')->render(), $method_obj->getDisplayName()); $this->_paymentSpecificInformation->setData(__('Environment')->render(), $transaction_obj->getEnvironment()); $this->_paymentSpecificInformation->setData(__('Payment ID')->render(), $payment_id); if ($transaction_extra_arr = $transaction_obj->getExtraDataArray() and $details_titles_arr = $this->_helper->transaction_logger_params_to_title()) { foreach ($transaction_extra_arr as $title_key => $val) { if (empty($details_titles_arr[$title_key])) { continue; } $this->_paymentSpecificInformation->setData($details_titles_arr[$title_key], $val); } } } } $this->_paymentSpecificInformation->setData('Test', 'Test value'); return $this->_paymentSpecificInformation; }
/** * Prepares block data * * @return void */ protected function prepareBlockData() { $s2p_transaction = $this->_s2pTransaction->create(); $order = $this->_orderFactory->create(); $module_settings = $this->_s2pModel->getFullConfigArray(); $transaction_obj = false; $error_message = ''; $merchant_transaction_id = 0; if (($status_code = $this->_helper->getParam('data', null)) === null) { $error_message = __('Transaction status not provided.'); } elseif (!($merchant_transaction_id = $this->_helper->getParam('MerchantTransactionID', '')) or !($merchant_transaction_id = $this->_helper->convert_from_demo_merchant_transaction_id($merchant_transaction_id))) { $error_message = __('Couldn\'t extract transaction information.'); } elseif (!$s2p_transaction->loadByMerchantTransactionId($merchant_transaction_id) or !$s2p_transaction->getID()) { $error_message = __('Transaction not found in database.'); } elseif (!$order->loadByIncrementId($merchant_transaction_id) or !$order->getEntityId()) { $error_message = __('Order not found in database.'); } $status_code = intval($status_code); if (empty($status_code)) { $status_code = Smart2Pay::S2P_STATUS_FAILED; } $transaction_extra_data = []; $transaction_details_titles = []; if (in_array($s2p_transaction->getMethodId(), [\Smart2Pay\GlobalPay\Model\Smart2Pay::PAYMENT_METHOD_BT, \Smart2Pay\GlobalPay\Model\Smart2Pay::PAYMENT_METHOD_SIBS])) { if ($transaction_details_titles = \Smart2Pay\GlobalPay\Helper\Smart2Pay::transaction_logger_params_to_title() and is_array($transaction_details_titles)) { if (!($all_params = $this->_helper->getParams())) { $all_params = []; } foreach ($transaction_details_titles as $key => $title) { if (!array_key_exists($key, $all_params)) { continue; } $transaction_extra_data[$key] = $all_params[$key]; } } } $result_message = __('Transaction status is unknown.'); if (empty($error_message)) { //map all statuses to known Magento statuses (message_data_2, message_data_4, message_data_3 and message_data_7) $status_id_to_string = array(Smart2Pay::S2P_STATUS_OPEN => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_SUCCESS => Smart2Pay::S2P_STATUS_SUCCESS, Smart2Pay::S2P_STATUS_CANCELLED => Smart2Pay::S2P_STATUS_CANCELLED, Smart2Pay::S2P_STATUS_FAILED => Smart2Pay::S2P_STATUS_FAILED, Smart2Pay::S2P_STATUS_EXPIRED => Smart2Pay::S2P_STATUS_FAILED, Smart2Pay::S2P_STATUS_PENDING_CUSTOMER => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_PENDING_PROVIDER => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_SUBMITTED => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_PROCESSING => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_AUTHORIZED => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_APPROVED => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_CAPTURED => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_REJECTED => Smart2Pay::S2P_STATUS_FAILED, Smart2Pay::S2P_STATUS_PENDING_CAPTURE => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_EXCEPTION => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_PENDING_CANCEL => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_REVERSED => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_COMPLETED => Smart2Pay::S2P_STATUS_SUCCESS, Smart2Pay::S2P_STATUS_PROCESSING => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_DISPUTED => Smart2Pay::S2P_STATUS_PENDING_PROVIDER, Smart2Pay::S2P_STATUS_CHARGEBACK => Smart2Pay::S2P_STATUS_PENDING_PROVIDER); if (isset($module_settings['message_data_' . $status_code])) { $result_message = $module_settings['message_data_' . $status_code]; } elseif (!empty($status_id_to_string[$status_code]) and isset($module_settings['message_data_' . $status_id_to_string[$status_code]])) { $result_message = $module_settings['message_data_' . $status_id_to_string[$status_code]]; } } $this->addData(['error_message' => $error_message, 'result_message' => $result_message, 'transaction_data' => $s2p_transaction->getData(), 'transaction_extra_data' => $transaction_extra_data, 'transaction_details_title' => $transaction_details_titles, 'is_order_visible' => $this->isVisible($order), 'view_order_url' => $this->getUrl('sales/order/view/', ['order_id' => $order->getEntityId()]), 'can_view_order' => $this->canViewOrder($order), 'order_id' => $order->getIncrementId()]); }