/**
  * 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;
 }
Example #3
0
/**
 * 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));
}