Example #1
0
 public function shipping()
 {
     $this->loadLibConfig();
     if ($this->request->post['DOCUMENT']) {
         $xml = htmlspecialchars_decode($this->request->post['DOCUMENT']);
         $result = OpenPayU_Order::consumeMessage($xml);
         $countrycode = $result->getCountryCode();
         $reqId = $result->getReqId();
         $sessionId = $result->getSessionId();
         $order_id = $this->model_payment_payu->getOrderIdBySessionId(substr($sessionId, 0, 32));
         $this->load->model('localisation/country');
         $country_list = $this->model_localisation_country->getCountries();
         $country_id = 0;
         foreach ($country_list as $country) {
             if ($country['iso_code_2'] == $countrycode) {
                 $country_id = $country['country_id'];
             }
         }
         $this->load->model('checkout/order');
         $order_info = $this->model_checkout_order->getOrder($order_id);
         $shippingCostList = array();
         $this->tax->setShippingAddress($country_id, 0);
         $this->tax->setPaymentAddress($country_id, 0);
         $this->tax->setStoreAddress($this->config->get('config_country_id'), $this->config->get('config_zone_id'));
         foreach ($this->getShippings($order_id, $country_id) as $onemethod) {
             $shipmethod = array('Type' => $onemethod['title'], 'CountryCode' => $countrycode, 'Price' => array('Gross' => str_ireplace('.', '', $this->currency->format($this->tax->calculate($onemethod['cost'], $onemethod['tax_class_id']), $order_info['currency_code'], false, false)), 'Net' => str_ireplace('.', '', $this->currency->format($onemethod['cost'], $order_info['currency_code'], false, false)), 'Tax' => str_ireplace('.', '', $this->currency->format($this->tax->calculate($onemethod['cost'], $onemethod['tax_class_id']) - $onemethod['cost'], $order_info['currency_code'], false, false)), 'CurrencyCode' => $order_info['currency_code']));
             if (false) {
                 $shipmethod[]['State'] = $order_info['shipping_zone'];
                 $shipmethod[]['City'] = $order_info['shipping_city'];
             }
             $shippingCostList[]['ShippingCost'] = $shipmethod;
         }
         $shippingCost = array('CountryCode' => $countrycode, 'ShipToOtherCountry' => 'true', 'ShippingCostList' => $shippingCostList);
         $xml = OpenPayU::buildShippingCostRetrieveResponse($shippingCost, $reqId, $countrycode);
         if (!$result->getSuccess()) {
             $this->logger->write($result->getError() . ' [request: ' . serialize($result->getRequest()) . ', response: ' . serialize(OpenPayU::parseOpenPayUDocument($xml)) . ']');
         }
         header("Content-type: text/xml");
         echo $xml;
     }
 }
 /**
  * Function use to update status
  * @access public
  * @param string $sessionId
  * @param string $status
  * @param boolean $debug
  * @return object $result
  */
 public static function updateStatus($sessionId, $status, $debug = TRUE)
 {
     $rq = array('ReqId' => md5(rand()), 'MerchantPosId' => OpenPayU_Configuration::getMerchantPosId(), 'SessionId' => $sessionId, 'OrderStatus' => $status, 'Timestamp' => date('c'));
     $result = new OpenPayU_Result();
     $result->setRequest($rq);
     $url = OpenPayU_Configuration::getServiceUrl() . 'co/openpayu/OrderStatusUpdateRequest';
     if ($debug) {
         OpenPayU::addOutputConsole('OpenPayU endpoint for OrderStatusUpdateRequest message', $url);
     }
     $oauthResult = OpenPayu_OAuth::accessTokenByClientCredentials();
     OpenPayU::setOpenPayuEndPoint($url . '?oauth_token=' . $oauthResult->getAccessToken());
     $xml = OpenPayU::buildOrderStatusUpdateRequest($rq);
     if ($debug) {
         OpenPayU::addOutputConsole('OrderStatusUpdateRequest message', htmlentities($xml));
     }
     $merchantPosId = OpenPayU_Configuration::getMerchantPosId();
     $signatureKey = OpenPayU_Configuration::getSignatureKey();
     $response = OpenPayU::sendOpenPayuDocumentAuth($xml, $merchantPosId, $signatureKey);
     if ($debug) {
         OpenPayU::addOutputConsole('OrderStatusUpdateResponse message', htmlentities($response));
     }
     // verify response from PayU service
     $status = OpenPayU::verifyOrderStatusUpdateResponseStatus($response);
     if ($debug) {
         OpenPayU::addOutputConsole('OrderStatusUpdateResponse status', serialize($status));
     }
     $result->setStatus($status);
     $result->setError($status['StatusCode']);
     $result->setSuccess($status['StatusCode'] == 'OPENPAYU_SUCCESS' ? TRUE : FALSE);
     $result->setResponse(OpenPayU::parseOpenPayUDocument($response));
     return $result;
 }
Example #3
0
 /**
  * Function returns OrderRetrieveResponse Data
  * @access public
  * @param string $data
  * @return array $order_retrieve
  */
 public static function getOrderRetrieveResponse($data)
 {
     $arr = OpenPayU::parseOpenPayUDocument(Tools::stripslashes($data));
     $order_retrieve = $arr['OpenPayU']['OrderDomainResponse']['OrderRetrieveResponse'];
     return $order_retrieve;
 }