/** * Sets the AdditionalInfo to the Payment transaction * @param \Magento\Payment\Model\InfoInterface $payment * @param \stdClass $responseObject * @return void */ public function setPaymentTransactionAdditionalInfo($payment, $responseObject) { $payment->setTransactionAdditionalInfo(\Magento\Sales\Model\Order\Payment\Transaction::RAW_DETAILS, $this->getArrayFromGatewayResponse($responseObject)); }
public function authorize(\Magento\Payment\Model\InfoInterface $payment, $amount) { if (!$this->canAuthorize()) { throw new \Magento\Framework\Exception\LocalizedException(__('The authorize action is not available.')); } $payment->getAdditionalInformation(); $order = $payment->getOrder(); $billing_address = $order->getBillingAddress(); $shipping_address = $order->getShippingAddress(); $params = array(); $params["sellerId"] = $this->getConfigData("merchant_id"); $params["privateKey"] = $this->getConfigData("private_key"); $params["merchantOrderId"] = $order->getRealOrderId(); $params["currency"] = $order->getOrderCurrencyCode(); $params["token"] = $payment->getAdditionalInformation()['token']; $params["total"] = round($order->getGrandTotal(), 2); // Set billing info $params["billingAddr"] = array(); $params["billingAddr"]["name"] = $billing_address->getName(); $params["billingAddr"]["addrLine1"] = $billing_address->getStreet()[0]; if (count($billing_address->getStreet()) > 1) { $params["billingAddr"]["addrLine2"] = $billing_address->getStreet()[1]; } $params["billingAddr"]["city"] = $billing_address->getCity(); $params["billingAddr"]["state"] = $billing_address->getRegion(); $params["billingAddr"]["zipCode"] = $billing_address->getPostcode(); $params["billingAddr"]["country"] = $billing_address->getCountryId(); $params["billingAddr"]["email"] = $order->getCustomerEmail(); $params["billingAddr"]["phoneNumber"] = $billing_address->getTelephone(); if (isset($shipping_address)) { $params["shippingAddress"] = array(); $params["shippingAddress"]["name"] = $shipping_address->getName(); $params["shippingAddress"]["addrLine1"] = $shipping_address->getStreet()[0]; if (count($shipping_address->getStreet()) > 1) { $params["shippingAddress"]["addrLine2"] = $shipping_address->getStreet()[1]; } $params["shippingAddress"]["city"] = $shipping_address->getCity(); $params["shippingAddress"]["state"] = $shipping_address->getRegion(); $params["shippingAddress"]["zipCode"] = $shipping_address->getPostcode(); $params["shippingAddress"]["country"] = $shipping_address->getCountryId(); } $client = $this->_httpClientFactory->create(); $path = $this->getConfigData('merchant_id') . "/rs/authService"; $url = $this->getPaymentApiUrl(); $client->setUri($url . $path); $client->setConfig(['maxredirects' => 0, 'timeout' => 30]); $client->setHeaders(['Accept: application/json', 'Content-Type: application/json']); $client->setMethod(\Zend_Http_Client::POST); $client->setRawData(json_encode($params), 'application/json'); try { $response = $client->request(); $responseBody = json_decode($response->getBody(), true); if (isset($responseBody['exception'])) { throw new \Magento\Framework\Exception\LocalizedException(__($responseBody['exception']['errorMsg'])); } elseif (!isset($responseBody['response'])) { throw new \Magento\Framework\Exception\LocalizedException(__('Error placing transaction.')); } } catch (\Exception $e) { throw new \Magento\Framework\Exception\LocalizedException(__($e->getMessage())); } $payment->setTransactionId($responseBody['response']['transactionId']); $payment->setIsTransactionClosed(0); $payment->setTransactionAdditionalInfo('tco_order_number', $responseBody['response']['orderNumber']); $payment->setAdditionalInformation('tco_order_number', $responseBody['response']['orderNumber']); $payment->setAdditionalInformation('tco_order_status', 'approved'); return $this; }
/** * 2016-07-10 * @see \Magento\Sales\Block\Adminhtml\Transactions\Detail\Grid::getTransactionAdditionalInfo() * https://github.com/magento/magento2/blob/2.1.0/app/code/Magento/Sales/Block/Adminhtml/Transactions/Detail/Grid.php#L112-L125 * https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Sales/Block/Adminhtml/Transactions/Detail/Grid.php#L112-L125 * @param II|OP|QP|null $payment * @param array(string => mixed) $values * @return void */ function dfp_set_transaction_info(II $payment, array $values) { $payment->setTransactionAdditionalInfo(T::RAW_DETAILS, df_ksort($values)); }