/** * @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()); }
/** * @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; }
/** * @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>';
/** * 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; }
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); }
/** * 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); }
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)); } }