Example #1
0
 /**
  * @param $data
  * @param $incomingSignature
  * @throws OpenPayU_Exception_Authorization
  */
 public static function verifyDocumentSignature($data, $incomingSignature)
 {
     $sign = OpenPayU_Util::parseSignature($incomingSignature);
     if (false === OpenPayU_Util::verifySignature($data, $sign->signature, OpenPayU_Configuration::getSignatureKey(), $sign->algorithm)) {
         throw new OpenPayU_Exception_Authorization('Invalid signature - ' . $sign->signature);
     }
 }
 /**
  * @test
  */
 public function shouldSetSenderProperty()
 {
     $array = array();
     $result = OpenPayU_Util::setSenderProperty($array);
     $this->assertEquals($result['properties'][0]['name'], 'sender');
     $this->assertEquals($result['properties'][0]['value'], OpenPayU_Configuration::getFullSenderName());
 }
 public function testShouldSetSenderProperty()
 {
     $array = array();
     $result = json_decode(OpenPayU_Util::buildJsonFromArray($array));
     $this->assertEquals($result->properties[0]->name, 'sender');
     $this->assertEquals($result->properties[0]->value, OpenPayU_Configuration::getFullSenderName());
 }
Example #4
0
 /**
  * @param string $response
  * @param string $messageName
  * @return null|OpenPayU_Result
  */
 public static function verifyResponse($response, $messageName = '')
 {
     $data = array();
     $httpStatus = $response['code'];
     $message = OpenPayU_Util::convertJsonToArray($response['response'], true);
     if (isset($message[$messageName])) {
         $data['status'] = isset($message['status']['statusCode']) ? $message['status']['statusCode'] : null;
         unset($message[$messageName]['Status']);
         $data['response'] = $message[$messageName];
     } elseif (isset($message)) {
         $data['response'] = $message;
         $data['status'] = isset($message['status']['statusCode']) ? $message['status']['statusCode'] : null;
         unset($message['status']);
     }
     $result = self::build($data);
     if ($httpStatus == 200 || $httpStatus == 201 || $httpStatus == 422 || $httpStatus == 302 || $httpStatus == 400 || $httpStatus == 404) {
         return $result;
     } else {
         OpenPayU_Http::throwHttpStatusException($httpStatus, $result);
     }
     return null;
 }
Example #5
0
 /**
  * @param string $response
  * @param string $messageName
  * @return null|OpenPayU_Result
  */
 public static function verifyResponse($response, $messageName)
 {
     $data = array();
     $httpStatus = $response['code'];
     $message = OpenPayU_Util::parseXmlDocument($response['response']);
     if (isset($message['OpenPayU'][$messageName])) {
         $status = $message['OpenPayU'][$messageName]['Status'];
         $data['Status'] = $status;
         unset($message['OpenPayU'][$messageName]['Status']);
         $data['Response'] = $message['OpenPayU'][$messageName];
     } elseif (isset($message['OpenPayU'])) {
         $status = $message['OpenPayU']['Status'];
         $data['Status'] = $status;
         unset($message['OpenPayU']['Status']);
     }
     $result = self::build($data);
     if ($httpStatus == 200 || $httpStatus == 201 || $httpStatus == 422 || $httpStatus == 302) {
         return $result;
     } else {
         OpenPayU_Http::throwHttpStatusException($httpStatus, $result);
     }
     return null;
 }
    <link rel="stylesheet" href="../../layout/css/style.css">
</head>
</head>
<body>
<div class="container">
    <div class="page-header">
        <h1>Order status update - OpenPayU v2</h1>
    </div>
    <div id="message"></div>
    <div id="unregisteredCardData">
        <?php 
if (isset($_POST['orderId'])) {
    try {
        $status_update = array("orderId" => stripslashes($_POST['orderId']), "orderStatus" => stripslashes($_POST['orderStatus']));
        $response = OpenPayU_Order::statusUpdate($status_update);
        $status_desc = OpenPayU_Util::statusDesc($response->getStatus());
        if ($response->getStatus() == 'SUCCESS') {
            echo '<div class="alert alert-success">SUCCESS: ' . $status_desc;
            echo '</div>';
        } else {
            echo '<div class="alert alert-warning">' . $response->getStatus() . ': ' . $status_desc;
            echo '</div>';
        }
        echo '<pre>';
        echo '<br>';
        print_r($response->getResponse());
        echo '</pre>';
    } catch (OpenPayU_Exception $e) {
        echo '<pre>';
        echo 'Error code: ' . $e->getCode();
        echo '<br>';
        })
    })

</script>
<div class="container">
    <div class="page-header">
        <h1>Refund</h1>
    </div>
    <div id="message"></div>
    <div id="unregisteredCardData">
        <?php 
if (isset($_POST['orderId'])) {
    $orderId = trim($_POST['orderId']);
    try {
        $refund = OpenPayU_Refund::create($orderId, $_POST['description'], isset($_POST['amount']) ? (int) $_POST['amount'] : null);
        $status_desc = OpenPayU_Util::statusDesc($refund->getStatus());
        if ($refund->getStatus() == 'SUCCESS') {
            echo '<div class="alert alert-success">SUCCESS: ' . $status_desc;
            echo '</div>';
        } else {
            echo '<div class="alert alert-warning">' . $refund->getStatus() . ': ' . $status_desc;
            echo '</div>';
        }
        echo '<pre>';
        echo '<br>';
        print_r($refund->getResponse());
        echo '</pre>';
    } catch (OpenPayU_Exception $e) {
        echo '<pre>';
        echo 'Error code: ' . $e->getCode();
        echo '<br>';
Example #8
0
 /**
  * Generate a form body for hosted order
  *
  * @access public
  * @param $order An array containing full Order
  * @param $params An optional array with form elements' params
  * @return string Response html form
  */
 public static function hostedOrderForm($order, $params = array())
 {
     $orderFormUrl = OpenPayU_Configuration::getServiceUrl() . 'orders';
     $usortedFormFieldValuesAsArray = array();
     $htmlFormFields = OpenPayU_Util::convertArrayToHtmlForm($order, "", $usortedFormFieldValuesAsArray);
     ksort($usortedFormFieldValuesAsArray);
     $sortedFormFieldValuesAsString = implode('', array_values($usortedFormFieldValuesAsArray));
     $signature = OpenPayU_Util::generateSignData($sortedFormFieldValuesAsString, OpenPayU_Configuration::getHashAlgorithm(), OpenPayU_Configuration::getMerchantPosId(), OpenPayU_Configuration::getSignatureKey());
     $formParams = array_merge(self::$defaultFormParams, $params);
     $htmlOutput = sprintf("<form method=\"POST\" action=\"%s\" id=\"%s\" class=\"%s\">\n", $orderFormUrl, $formParams['formId'], $formParams['formClass']);
     $htmlOutput .= $htmlFormFields;
     $htmlOutput .= sprintf("<input type=\"hidden\" name=\"OpenPayu-Signature\" value=\"%s\" />", $signature);
     $htmlOutput .= sprintf("<button type=\"submit\" formtarget=\"%s\" id=\"%s\" class=\"%s\">%s</button>", $formParams['submitTarget'], $formParams['submitId'], $formParams['submitClass'], $formParams['submitContent']);
     $htmlOutput .= "</form>\n";
     return $htmlOutput;
 }
Example #9
0
 public function init($attributes)
 {
     $attributes = OpenPayU_Util::parseArrayToObject($attributes);
     if (!empty($attributes)) {
         foreach ($attributes as $name => $value) {
             $this->set($name, $value);
         }
     }
 }
 /**
  * Refund payment
  *
  * @param Varien_Object $payment
  * @param float $amount
  * @return $this
  */
 public function refund(Varien_Object $payment, $amount)
 {
     $order = $payment->getOrder();
     $this->_order = $order;
     $amount = $amount * 100;
     $result = OpenPayU_Refund::create($this->_order->getPayment()->getLastTransId(), 'Magento payu refund', $amount);
     Mage::log($result, null, 'orderRefund.log');
     if ($result->getStatus() == 'SUCCESS') {
         return $this;
     }
     $serverMsg = OpenPayU_Util::statusDesc($result->getStatus());
     $errorMsg = $this->_getHelper()->__($serverMsg);
     Mage::throwException($errorMsg);
 }
Example #11
0
 /**
  * Function builds OpenPayU Xml Document
  * @access public
  * @param string  $data
  * @param string  $startElement
  * @param integer $request
  * @param string  $xml_version
  * @param string  $xml_encoding
  * @return string $xml
  */
 public static function buildOpenPayUDocument($data, $startElement, $request = 1, $xml_version = '1.0', $xml_encoding = 'UTF-8')
 {
     if (!is_array($data)) {
         return false;
     }
     $xml = new XmlWriter();
     $xml->openMemory();
     $xml->startDocument($xml_version, $xml_encoding);
     if (OpenPayU_Configuration::getApiVersion() < 2) {
         $xml->startElementNS(null, 'OpenPayU', 'http://www.openpayu.com/openpayu.xsd');
         $header = $request == 1 ? 'HeaderRequest' : 'HeaderResponse';
         $xml->startElement($header);
         $xml->writeElement('Algorithm', OpenPayU_Configuration::getHashAlgorithm());
         $xml->writeElement('SenderName', 'exampleSenderName');
         $xml->writeElement('Version', $xml_version);
         $xml->endElement();
     } else {
         $xml->startElementNS(null, 'OpenPayU', 'http://www.openpayu.com/20/openpayu.xsd');
     }
     // domain level - open
     if (OpenPayU_Configuration::getApiVersion() < 2) {
         $xml->startElement(OpenPayUDomain::getDomain4Message($startElement));
     }
     // message level - open
     $xml->startElement($startElement);
     OpenPayU_Util::convertArrayToXml($xml, $data);
     // message level - close
     $xml->endElement();
     // domain level - close
     $xml->endElement();
     // document level - close
     if (OpenPayU_Configuration::getApiVersion() < 2) {
         $xml->endElement();
     }
     return $xml->outputMemory(true);
 }
Example #12
0
 function process($order_id)
 {
     if (!$this->isLoggedIn) {
         redirect('/login', 'refresh');
     }
     $this->load->model('Ordermodel');
     $_order = $this->Ordermodel->get_order($this->session->userdata['user']->id, $order_id, 'W');
     if ($_order == null) {
         $this->http404();
     }
     $_order = $_order[0];
     $this->config->load('payu', true);
     OpenPayU_Configuration::setEnvironment('secure');
     OpenPayU_Configuration::setMerchantPosId($this->config->item('PosId', 'payu'));
     OpenPayU_Configuration::setSignatureKey($this->config->item('SignatureKey', 'payu'));
     $order = array();
     $order['notifyUrl'] = base_url() . 'index.php/order/notify';
     //$order['notifyUrl'] = "http://t01.pl/payu/index.php";
     $order['continueUrl'] = base_url() . 'index.php/user_panel/history';
     $order['customerIp'] = $this->input->ip_address();
     $order['merchantPosId'] = OpenPayU_Configuration::getMerchantPosId();
     $order['description'] = $this->config->item('title', 'payu');
     $order['currencyCode'] = 'PLN';
     //$order['extOrderId'] = "think01-".time().'-'.$order_id;
     $order['products'] = array();
     $cost = 0;
     if (count($_order->cart) == 0) {
         return false;
     }
     foreach ($_order->cart as $v) {
         array_push($order['products'], array('name' => $v->diet, 'unitPrice' => $v->price, 'quantity' => $v->quantity));
         $cost += $v->price * $v->quantity;
     }
     $order['totalAmount'] = $cost;
     $order['buyer']['email'] = $v->email;
     $order['buyer']['phone'] = preg_replace('/[^0-9\\+]/', '', $v->phone);
     $order['buyer']['firstName'] = $v->name;
     $order['buyer']['lastName'] = $v->surname;
     try {
         //echo '<pre>'; print_r($order); die('');
         $response = OpenPayU_Order::create($order);
         $status_desc = OpenPayU_Util::statusDesc($response->getStatus());
         if ($response->getStatus() == 'SUCCESS') {
             $this->Ordermodel->set_payment_id($order_id, $response->getResponse()->orderId);
             redirect($response->getResponse()->redirectUri, 'refresh');
         } else {
             $this->show("alert", array('msg' => '<pre>' . print_r($order, true) . '</pre><br>' . $response->getStatus() . ': ' . $status_desc));
         }
         return;
     } catch (OpenPayU_Exception $e) {
         $this->show("alert", array('msg' => '<pre>' . print_r($order, true) . '</pre><br>' . (string) $e));
     }
 }