AAAAindex.html000066600000000040151373013300006533 0ustar00 heidelpay.php000066600000053702151373013300007230 0ustar00 * @version 12.05 * @package VirtueMart * @subpackage payment * @copyright Copyright (C) Heidelberger Payment GmbH * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php */ if (!class_exists ('vmPSPlugin')) { require(JPATH_VM_PLUGINS . DS . 'vmpsplugin.php'); } class plgVmPaymentHeidelpay extends vmPSPlugin { public static $_this = FALSE; protected $version = '13.11'; function __construct (& $subject, $config) { //if (self::$_this) // return self::$_this; parent::__construct ($subject, $config); $this->_loggable = TRUE; $this->tableFields = array_keys ($this->getTableSQLFields ()); $this->_tablepkey = 'id'; $this->_tableId = 'id'; $this->secret = strtoupper (sha1 (mt_rand (10000, mt_getrandmax ()))); $varsToPush = $this->getVarsToPush (); $this->setConfigParameterable ($this->_configTableFieldName, $varsToPush); //self::$_this = $this; } public function getVmPluginCreateTableSQL () { return $this->createTableSQL ('Payment Heidelpay'); } function getTableSQLFields () { $SQLfields = array( 'id' => 'int(11) UNSIGNED NOT NULL AUTO_INCREMENT', 'virtuemart_order_id' => 'int(1) UNSIGNED', 'order_number' => 'char(64)', 'virtuemart_paymentmethod_id' => 'mediumint(1) UNSIGNED', 'unique_id' => 'varchar(48)', 'short_id' => 'varchar(14)', 'payment_code' => 'varchar(32)', 'comment' => 'text NOT NULL', 'date' => 'timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP', 'payment_methode' => 'char(2)', 'payment_type' => 'char(2)', 'transaction_mode' => 'char(18)', 'payment_name' => 'char(50)', 'processing_result' => 'char(3)', 'secret_hash' => 'char(50)', 'response_ip' => 'char(20)' ); return $SQLfields; } function plgVmOnShowOrderBEPayment ($virtuemart_order_id, $payment_id) { if (!$this->selectedThisByMethodId ($payment_id)) { return NULL; // Another method was selected, do nothing } $db = JFactory::getDBO (); $_q = 'SELECT * FROM `' . $this->_tablename . '` ' . 'WHERE `virtuemart_order_id` = ' . $virtuemart_order_id; $db->setQuery ($_q); if (!($paymentData = $db->loadObject ())) { // JError::raiseWarning(500, $db->getErrorMsg()); } $_html = '' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; if ($paymentData->processing_result == "ACK" AND $paymentData->payment_code == 80) { $_html .= ''; } elseif ($paymentData->processing_result == "ACK") { $_html .= ''; } if ($paymentData->processing_result == "NOK") { $_html .= ''; } $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= ' ' . "\n"; $_html .= '
' . JText::_ ('COM_VIRTUEMART_ORDER_PRINT_PAYMENT_LBL') . '
' . JText::_ ('VMPAYMENT_HEIDELPAY_PAYMENT_RESULT') . 'WAITINGACKNOK
' . JText::_ ('VMPAYMENT_HEIDELPAY_PAYMENT_METHOD') . '' . $paymentData->payment_methode . '.' . $paymentData->payment_type . ' (' . $paymentData->payment_name . ')
UniqeID' . $paymentData->unique_id . '
Short-ID' . $paymentData->short_id . '
' . JText::_ ('VMPAYMENT_HEIDELPAY_COMMENT') . '' . $paymentData->comment . '
' . "\n"; return $_html; } function plgVmOnConfirmedOrderStorePaymentData ($virtuemart_order_id, $orderData, $priceData) { if (!$this->selectedThisPayment ($this->_pelement, $orderData->virtuemart_paymentmethod_id)) { return NULL; // Another method was selected, do nothing } return FALSE; } function plgVmConfirmedOrder ($cart, $order) { if (!($method = $this->getVmPluginMethod ($order['details']['BT']->virtuemart_paymentmethod_id))) { return NULL; // Another method was selected, do nothing } if (!$this->selectedThisElement ($method->payment_element)) { return FALSE; } $session = JFactory::getSession (); $return_context = $session->getId (); $this->_debug = $method->HEIDELPAY_DEBUG; if (!class_exists ('VirtueMartModelOrders')) { require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php'); } if (!class_exists ('VirtueMartModelCurrency')) { require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'currency.php'); } $address = ((isset($order['details']['ST'])) ? $order['details']['ST'] : $order['details']['BT']); if (!class_exists ('TableVendors')) { require(JPATH_VM_ADMINISTRATOR . DS . 'table' . DS . 'vendors.php'); } $vendorModel = VmModel::getModel ('Vendor'); $vendorModel->setId (1); $vendor = $vendorModel->getVendor (); $vendorModel->addImages ($vendor, 1); $this->getPaymentCurrency ($method); $currency_code_3 = shopFunctions::getCurrencyByID ($method->payment_currency, 'currency_code_3'); $paymentCurrency = CurrencyDisplay::getInstance ($method->payment_currency); $totalInPaymentCurrency = round ($paymentCurrency->convertCurrencyTo ($method->payment_currency, $order['details']['BT']->order_total, FALSE), 2); $cd = CurrencyDisplay::getInstance ($cart->pricesCurrency); // prepare the post var values: $languageTag = $this->getLang (); $params = array(); $params['PRESENTATION.AMOUNT'] = $totalInPaymentCurrency; $params['PRESENTATION.CURRENCY'] = $currency_code_3; $params['FRONTEND.LANGUAGE'] = $languageTag; $params['CRITERION.LANG'] = $params['FRONTEND.LANGUAGE']; $params['IDENTIFICATION.TRANSACTIONID'] = $order['details']['BT']->order_number; /* * Set payment methode to PA for online transfer, invoice and prepayment */ $PaymentTypePA = array('OT', 'PP', 'IV'); if (in_array (substr ($method->HEIDELPAY_PAYMENT_TYPE, 0, 2), $PaymentTypePA)) { $method->HEIDELPAY_PAYMENT_METHOD = "PA"; } else { $method->HEIDELPAY_PAYMENT_METHOD = $method->HEIDELPAY_PAYMENT_METHOD; } $params['PAYMENT.CODE'] = substr ($method->HEIDELPAY_PAYMENT_TYPE, 0, 2) . "." . $method->HEIDELPAY_PAYMENT_METHOD; $params['TRANSACTION.CHANNEL'] = $method->HEIDELPAY_CHANNEL_ID; /* * Special case for paypal without hco iframe */ if ($method->HEIDELPAY_PAYMENT_TYPE == "VAPAYPAL") { $params['PAYMENT.CODE'] = "VA.DB"; $params['ACCOUNT.BRAND'] = "PAYPAL"; $params['FRONTEND.PM.DEFAULT_DISABLE_ALL'] = "true"; $params['FRONTEND.PM.0.ENABLED'] = "true"; $params['FRONTEND.PM.0.METHOD'] = "VA"; $params['FRONTEND.PM.0.SUBTYPES'] = "PAYPAL"; } /* * Special case for MangirKart without hco iframe */ if ($method->HEIDELPAY_PAYMENT_TYPE == "PCMANGIR") { $params['PAYMENT.CODE'] = "PC.PA"; $params['ACCOUNT.BRAND'] = "MANGIRKART"; } /* * Special case for BarPay without hco iframe */ if ($method->HEIDELPAY_PAYMENT_TYPE == "PPBARPAY") { $params['PAYMENT.CODE'] = "PP.PA"; $params['ACCOUNT.BRAND'] = "BARPAY"; } /* * User account information */ $params['ACCOUNT.HOLDER'] = $address->first_name . " " . $address->last_name; $params['NAME.GIVEN'] = $address->first_name; $params['NAME.FAMILY'] = $address->last_name; if(!empty($address->company)) $params['NAME.COMPANY'] = $address->company ; $params['ADDRESS.STREET'] = $address->address_1; isset($address->address_2) ? $params['ADDRESS.STREET'] .= " " . $address->address_2 : ''; $params['ADDRESS.ZIP'] = $address->zip; $params['ADDRESS.CITY'] = $address->city; $params['ADDRESS.COUNTRY'] = ShopFunctions::getCountryByID ($address->virtuemart_country_id, 'country_2_code'); $params['CONTACT.EMAIL'] = $order['details']['BT']->email; $params['CONTACT.IP'] = $_SERVER['REMOTE_ADDR']; /* * Add debug informations for merchiant support */ $params['SHOP.TYPE'] = 'VirtueMart2.0.26d'; $params['SHOPMODUL.VERSION'] = $this->version; $params['CRITERION.PAYMENT_NAME'] = JText::_ ('VMPAYMENT_HEIDELPAY_' . $method->HEIDELPAY_PAYMENT_TYPE); $params['CRITERION.PAYMENT_NAME'] = strip_tags($params['CRITERION.PAYMENT_NAME']); /* * Create hash to secure the response */ $params['CRITERION.SECRET'] = $this->createSecretHash ($order['details']['BT']->order_number, $method->HEIDELPAY_SECRET); /* * Set transaction mode */ if ($method->HEIDELPAY_TRANSACTION_MODE == 2) { $params['TRANSACTION.MODE'] = "LIVE"; } elseif ($method->HEIDELPAY_TRANSACTION_MODE == 0) { $params['TRANSACTION.MODE'] = "INTEGRATOR_TEST"; } else { $params['TRANSACTION.MODE'] = "CONNECTOR_TEST"; } /* * Default configuration for hco */ $params['FRONTEND.MODE'] = "DEFAULT"; $params['FRONTEND.ENABLED'] = "true"; $params['FRONTEND.POPUP'] = "false"; $params['FRONTEND.REDIRECT_TIME'] = "0"; $params['REQUEST.VERSION'] = "1.0"; $params['FRONTEND.NEXTTARGET'] = "top.location.href"; /* * Add response and css path */ $params['FRONTEND.RESPONSE_URL'] = JROUTE::_ (JURI::root(), $xhtml=true, $ssl=0) . 'plugins/vmpayment/heidelpay/heidelpay/heidelpay_response.php?option=com_virtuemart&view=pluginresponse&task=pluginresponsereceived&on=' . urlencode($order['details']['BT']->order_number) . '&pm=' . $order['details']['BT']->virtuemart_paymentmethod_id; $cssFile = "heidelpay_default.css"; if (!empty($method->HEIDELPAY_STYLE)) { $cssFile = $method->HEIDELPAY_STYLE ; } $params['FRONTEND.CSS_PATH'] = JROUTE::_ (JURI::root(), $xhtml=true, $ssl=0) . 'plugins/vmpayment/heidelpay/heidelpay/' . $cssFile; $requestUrl = $method->HEIDELPAY_PAYMENT_URL; $params['SECURITY.SENDER'] = $method->HEIDELPAY_SECURITY_SENDER; $params['USER.LOGIN'] = $method->HEIDELPAY_USER_LOGIN; $params['USER.PWD'] = $method->HEIDELPAY_USER_PW; if(substr ($method->HEIDELPAY_PAYMENT_TYPE, 0, 2) == 'DD') { $sepaform = array(); $sepaform = $this->switchDirectDebitFrom($method->HEIDELPAY_SEPA_FORM); $params = array_merge($sepaform , $params); } /* * send request to payment server */ $response = $this->doRequest ($requestUrl, $params, $method->HEIDELPAY_DEBUG); if ($params['TRANSACTION.MODE'] != "LIVE") { vmInfo('VMPAYMENT_HEIDELPAY_PAYMENT_TESTMODE'); } /* * On success show iframe or show error information for your customer */ $returnValue = 0; if ($response['PROCESSING_RESULT'] == "ACK" || $response['POST_VALIDATION'] == "ACK") { $returnValue = 2; $html = $this->renderByLayout ('displaypayment', array( 'response' => $response['FRONTEND_REDIRECT_URL'] )); } else { $html = JText::_ ('VMPAYMENT_HEIDELPAY_TECHNICAL_ERROR') . "
- " . addslashes ($response[PROCESSING_RETURN]) . "
" . JText::_ ('VMPAYMENT_HEIDELPAY_CONTACT_SHOPOWNER'); } /* * Show debug information */ if ($method->HEIDELPAY_DEBUG == 1) { vmDebug('HEIDELPAY plgVmConfirmedOrder', $params); } return $this->processConfirmedOrderPaymentResponse ($returnValue, $cart, $order, $html, '', ''); } function plgVmgetPaymentCurrency ($virtuemart_paymentmethod_id, &$paymentCurrencyId) { if (!($method = $this->getVmPluginMethod ($virtuemart_paymentmethod_id))) { return NULL; // Another method was selected, do nothing } if (!$this->selectedThisElement ($method->payment_element)) { return FALSE; } $this->getPaymentCurrency ($method); $paymentCurrencyId = $method->payment_currency; } function plgVmOnPaymentResponseReceived (&$html) { if (!class_exists ('VirtueMartCart')) { require(JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php'); } if (!class_exists ('shopFunctionsF')) { require(JPATH_VM_SITE . DS . 'helpers' . DS . 'shopfunctionsf.php'); } if (!class_exists ('VirtueMartModelOrders')) { require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php'); } $virtuemart_paymentmethod_id = JRequest::getInt ('pm', 0); $order_number = JRequest::getString ('on', 0); if (!($method = $this->getVmPluginMethod ($virtuemart_paymentmethod_id))) { return NULL; // Another method was selected, do nothing } if (!$this->selectedThisElement ($method->payment_element)) { return NULL; } if (!($virtuemart_order_id = VirtueMartModelOrders::getOrderIdByOrderNumber ($order_number))) { return NULL; } $db = JFactory::getDBO (); $_q = 'SELECT * FROM `' . $this->_tablename . '` ' . 'WHERE `virtuemart_order_id` = ' . $virtuemart_order_id; $db->setQuery ($_q); if (!($paymentData = $db->loadObject ())) { // JError::raiseWarning(500, $db->getErrorMsg()); } vmdebug ('HEIDELPAY paymentdata', $paymentData); $cart = VirtueMartCart::getCart (); $cart->emptyCart (); if ($paymentData->processing_result == "NOK") { vmError ('VMPAYMENT_HEIDELPAY_PAYMENT_FAILED','VMPAYMENT_HEIDELPAY_PAYMENT_FAILED'); vmError (" - " . $paymentData->comment," - " . $paymentData->comment); } else { vmInfo ('VMPAYMENT_HEIDELPAY_PAYMENT_SUCESS'); $html = "

".JText::sprintf ('VMPAYMENT_HEIDELPAY_ORDER_NR') . ': ' . $order_number . "

" ; $tmpkom = preg_replace("/\(-/", 'Barcode runterladen', $tmpkom ); $html .= $tmpkom; } // if payment is in test mode if ($paymentData->transaction_mode != "LIVE") { vmInfo('VMPAYMENT_HEIDELPAY_PAYMENT_TESTMODE'); } $orgSecret = $this->createSecretHash ($order_number, $method->HEIDELPAY_SECRET); $order['comments']=""; if ($virtuemart_order_id) { $order['customer_notified'] = 0; $order['order_status'] = $this->getStatus ($method, $paymentData->processing_result); $modelOrder = VmModel::getModel ('orders'); $orderitems = $modelOrder->getOrder ($virtuemart_order_id); $nb_history = count ($orderitems['history']); if ($orderitems['history'][$nb_history - 1]->order_status_code != $order['order_status']) { if ($method->HEIDELPAY_CONFIRM_EMAIL == 1 or ($method->HEIDELPAY_CONFIRM_EMAIL == 2 and $paymentData->processing_result == "ACK")) { $order['customer_notified'] = 1; $order['comments'] = JText::sprintf ('VMPAYMENT_HEIDELPAY_EMAIL_SENT') . "
"; } $order['comments'] .= $paymentData->comment; /* * Verify Payment response */ if ($orgSecret != $paymentData->secret_hash) { $order['customer_notified'] = 0; $order['comments'] = "Hash verification error, suspecting manipulation. IP: " . $paymentData->response_ip; $order['order_status'] = ''; } $modelOrder->updateStatusForOneOrder ($virtuemart_order_id, $order, TRUE); } } return TRUE; } function plgVmOnUserPaymentCancel () { if (!class_exists ('VirtueMartModelOrders')) { require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php'); } $order_number = JRequest::getVar ('on'); if (!$order_number) { return FALSE; } $db = JFactory::getDBO (); $query = 'SELECT ' . $this->_tablename . '.`virtuemart_order_id` FROM ' . $this->_tablename . " WHERE `order_number`= '" . $order_number . "'"; $db->setQuery ($query); $virtuemart_order_id = $db->loadResult (); if (!$virtuemart_order_id) { return NULL; } return TRUE; } function getStatus ($method, $status) { if ($status == 'ACK') { $new_status = $method->HEIDELPAY_STATUS_SUCCESS; } else { $new_status = $method->HEIDELPAY_STATUS_FAILED; } return $new_status; } function plgVmOnStoreInstallPaymentPluginTable ($jplugin_id) { return $this->onStoreInstallPluginTable ($jplugin_id); } public function plgVmOnSelectCheckPayment (VirtueMartCart $cart, &$msg) { return $this->OnSelectCheck ($cart); } public function plgVmDisplayListFEPayment (VirtueMartCart $cart, $selected = 0, &$htmlIn) { return $this->displayListFE ($cart, $selected, $htmlIn); } public function plgVmonSelectedCalculatePricePayment (VirtueMartCart $cart, array &$cart_prices, &$cart_prices_name) { return $this->onSelectedCalculatePrice ($cart, $cart_prices, $cart_prices_name); } function plgVmOnCheckAutomaticSelectedPayment (VirtueMartCart $cart, array $cart_prices = array()) { return $this->onCheckAutomaticSelected ($cart, $cart_prices); } public function plgVmOnShowOrderFEPayment ($virtuemart_order_id, $virtuemart_paymentmethod_id, &$payment_name) { $this->onShowOrderFE ($virtuemart_order_id, $virtuemart_paymentmethod_id, $payment_name); } function plgVmonShowOrderPrintPayment ($order_number, $method_id) { return $this->onShowOrderPrint ($order_number, $method_id); } function plgVmDeclarePluginParamsPayment ($name, $id, &$data) { return $this->declarePluginParams ('payment', $name, $id, $data); } function plgVmSetOnTablePluginParamsPayment ($name, $id, &$table) { return $this->setOnTablePluginParams ($name, $id, $table); } public function plgVmOnUpdateOrderPayment ($_formData) { return NULL; } public function plgVmOnUpdateOrderLine ($_formData) { return NULL; } public function plgVmOnEditOrderLineBE ($_orderId, $_lineId) { return NULL; } public function plgVmOnShowOrderLineFE ($_orderId, $_lineId) { return NULL; } protected function getLang () { $language =& JFactory::getLanguage (); $tag = strtolower (substr ($language->get ('tag'), 0, 2)); return $tag; } private function doRequest ($url, $params, $debug) { $data = $params; $result = ""; // Erstellen des Strings für die Datenübermittlung foreach ($data AS $key => $value) { if ($this->isUTF8 ($value)) { $value = utf8_decode ($value); } $key = strtoupper ($key); $value = urlencode($value); $result .= $key. "=" . $value . "&"; } $strPOST = stripslashes ($result); // prüfen ob CURL existiert if (function_exists ('curl_init')) { $ch = curl_init (); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt ($ch, CURLOPT_FAILONERROR, 1); curl_setopt ($ch, CURLOPT_TIMEOUT, 60); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, $strPOST); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_USERAGENT, "php ctpepost"); $this->response = curl_exec ($ch); $this->error = curl_error ($ch); curl_close ($ch); $res = $this->response; if (!$this->response && $this->error) { $msg = urlencode ('Curl Fehler'); $res = 'status=FAIL&msg=' . $this->error; } } else { $msg = urlencode ('Curl Fehler'); $res = 'status=FAIL&&msg=' . $msg; } $result = NULL; parse_str ($res, $result); /* * Show debug information */ if ($debug == 1) { vmdebug ('Heildepay Response', $result); } return $result; } private function isUTF8 ($string) /*{{{*/ { if (is_array ($string)) { $enc = implode ('', $string); return @!((ord ($enc[0]) != 239) && (ord ($enc[1]) != 187) && (ord ($enc[2]) != 191)); } else { return (utf8_encode (utf8_decode ($string)) == $string); } } protected function checkConditions ($cart, $method, $cart_prices) { $address = (($cart->ST == 0) ? $cart->BT : $cart->ST); $amount = $cart_prices['salesPrice']; $amount_cond = ($amount >= $method->min_amount AND $amount <= $method->max_amount OR ($method->min_amount <= $amount AND ($method->max_amount == 0))); $countries = array(); if (!empty($method->countries)) { if (!is_array ($method->countries)) { $countries[0] = $method->countries; } else { $countries = $method->countries; } } // probably did not gave his BT:ST address if (!is_array ($address)) { $address = array(); $address['virtuemart_country_id'] = 0; } if (!isset($address['virtuemart_country_id'])) { $address['virtuemart_country_id'] = 0; } if (in_array ($address['virtuemart_country_id'], $countries) || count ($countries) == 0) { if ($amount_cond) { return TRUE; } } return FALSE; } function createSecretHash ($orderID, $secret) { $hash = sha1 ($orderID . $secret); return $hash; } /** * methode to change the form fields of the hco(iframe) * nessuccary for support of SEPA (single euro payments area) * @param int $mode_id id to set version * @return array parameter for hco call */ public function switchDirectDebitFrom($mode_id) { $params = array(); switch ($mode_id){ // account and bank no: case 1: $params['FRONTEND.SEPA'] = 'NO'; $params['FRONTEND.SEPASWITCH'] = 'NO'; break; // both methodes separeted with an or case 3: $params['FRONTEND.SEPA'] = 'YES'; $params['FRONTEND.SEPASWITCH'] = 'YES'; break; // both methodes with a selector case 4: $params['FRONTEND.SEPA'] = 'NO'; $params['FRONTEND.SEPASWITCH'] = 'YES'; break; // IBAN and BIC default: $params['FRONTEND.SEPA'] = 'YES'; $params['FRONTEND.SEPASWITCH'] = 'NO'; } return $params; } } heidelpay.xml000066600000021550151373013300007235 0ustar00 VMPAYMENT_HEIDELPAY 12-Sep-2012 Heidelberger Payment GmbH info@heidelpay.de http://www.heidelpay.de Copyright Heidelberger Payment GmbH http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL 13.11 Virtuemart Plugin von:

]]>
de-DE.plg_vmpayment_heidelpay.ini en-GB.plg_vmpayment_heidelpay.ini en-GB.plg_vmpayment_heidelpay.sys.ini heidelpay.php index.html heidelpay http://testshops.heidelpay.de/downloads/plg_vm_heidelpay.xml
heidelpay/heidelpay_default.css000066600000003543151373013300012677 0ustar00html,body { background-color: #ffffff; color: #00000; } tr#notMandatoryRow, tr#addressBlock, tr#userInfoBlock, tr#contactBlock, tr#spacer1, tr#spacer2, tr#spacer3, tr#spacer4 { display: none; } .frm_box { border-style: solid; border-color: #DDD; border-width:1px; background-color: #EEEEEE; } input,select { color: #000000; background-color: #ffffff; } a:link { color:#000000; } a:visited { color:#000000; } a:hover { color:#000000; } a:active { color:#000000; } a:focus { color:#000000; } .bar{ display: none; } select#paymentMethod{ display: none; } #paymentSelection{ display: none; } td.buttonRight { width : 100%; } input#send, input#continue{font-size:12px;font-weight:700;display:inline-block;text-decoration:none;color:#777;} input#send, input#continue{background:#e8e8e8 url(http://testshops.heidelpay.de/Virtuemart/backgrounds.png) top repeat-x;background-position:0 -160px;color:#fff;border:solid #00a000 1px;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;font-size:12px;cursor:pointer;text-align:center;letter-spacing:1px;display:inline-block;text-decoration:none;padding:6px 12px 3px;} input#send:hover, input#continue:hover{background-position:0 -200px;color:#f2f2f2;text-decoration:none;} input#cancel, input.btn{background:#e8e8e8 url(http://testshops.heidelpay.de/Virtuemart/backgrounds.png) top repeat-x;border:solid #CAC9C9 1px;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;color:#777;text-decoration:none;padding:5px 5px 4px;} input#cancel:hover, input.btn:hover{background:#e8e8e8 url(../images/vmgeneral/backgrounds.png) repeat-x;background-position:0 -40px;color:#000;text-decoration:none;} input#cancel, input.btn{display:inline-block;cursor:pointer;padding:5px 8px 4px;} input#cancel:hover, input.btn:hover{color:#777;} heidelpay/elements/.htaccess000066600000000177151373013300012127 0ustar00 Order allow,deny Deny from all heidelpay/elements/index.html000066600000000037151373013300012321 0ustar00 heidelpay/elements/getheidelpay.php000066600000006272151373013300013510 0ustar00 '; $doc = JFactory::getDocument (); $doc->addScriptDeclaration ($js); $cid = jrequest::getvar ('cid', NULL, 'array'); if (is_Array ($cid)) { $virtuemart_paymentmethod_id = $cid[0]; } else { $virtuemart_paymentmethod_id = $cid; } $query = "SELECT payment_params FROM `#__virtuemart_paymentmethods` WHERE virtuemart_paymentmethod_id = '" . $virtuemart_paymentmethod_id . "'"; $db = JFactory::getDBO (); $db->setQuery ($query); $params = $db->loadResult (); $payment_params = explode ("|", $params); foreach ($payment_params as $payment_param) { if (empty($payment_param)) { continue; } $param = explode ('=', $payment_param); $payment_params[$param[0]] = substr ($param[1], 1, -1); } $id=""; if ($payment_params['HEIDELPAY_SECURITY_SENDER'] == '31HA07BC8124AD82A9E96D9A35FAFD2A' or $payment_params['HEIDELPAY_SECURITY_SENDER'] == '') { $id = "heidelpay_getheidelpay_link"; $display=''; $html = '' . JText::_ ('VMPAYMENT_HEIDELPAY_ALREADY_ACCOUNT') . ''; } else { $id = "heidelpay_getheidelpay_link"; $display=' style="display: none;"'; $html = '' . JText::_ ('VMPAYMENT_HEIDELPAY_CREATE_ACCOUNT') . ''; } $lang = $this->getLang (); $html .= '
'; $url = "http://demoshops.heidelpay.de/contactform/?campaign=vituemart&shop=vituemart&lang=" . $lang; $html .= ''; $html .= "
"; return $html; } protected function getLang () { $language =& JFactory::getLanguage (); $tag = strtolower (substr ($language->get ('tag'), 0, 2)); return $tag; } }heidelpay/tmpl/index.html000066600000000057151373013300011463 0ustar00 heidelpay/tmpl/.htaccess000066600000000177151373013300011267 0ustar00 Order allow,deny Deny from all heidelpay/tmpl/displaypayment.php000066600000001454151373013300013244 0ustar00 * @package VirtueMart * @copyright Copyright (c) 2004 - 2012 VirtueMart Team. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. */ ?> heidelpay/index.html000066600000000040151373013300010477 0ustar00 heidelpay/heidelpay_response.php000066600000013447151373013300013114 0ustar00 * @version 13.07 * @package VirtueMart * @subpackage payment * @copyright Copyright (C) Heidelberger Payment GmbH * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php */ include('../../../../configuration.php'); $config = new JConfig(); //echo $config->password ; foreach ($_POST as $key => $value) { $key = preg_replace('/_x$/', '', trim($key)); $_POST[$key] = $value; } foreach ($_GET as $key => $value) { $key = preg_replace('/_x$/', '', trim($key)); $_GET[$key] = $value; } if ( $_SERVER['SERVER_PORT'] == "443" ) { $Protocol = "https://"; } else { $Protocol = "http://"; } $PATH = preg_replace('@plugins\/vmpayment\/heidelpay\/heidelpay\/heidelpay_response\.php@','', $_SERVER['SCRIPT_NAME']); $URL = $_SERVER['HTTP_HOST'] . $PATH ; $redirectURL = $Protocol.$URL.'index.php?option=com_virtuemart&view=pluginresponse&task=pluginresponsereceived&on='.$_GET['on'].'&pm='.$_GET['pm'].'&Itemid='.$_GET['Itemid']; $cancelURL = $Protocol.$URL.'index.php?option=com_virtuemart&view=pluginresponse&task=pluginUserPaymentCancel&on='.$_GET['on'].'&pm='.$_GET['pm'].'&Itemid='.$_GET['Itemid']; function updateHeidelpay($orderID, $connect) { $comment=""; if ( preg_match('/^[A-Za-z0-9 -]+$/', $orderID , $str)) { $link = mysql_connect($connect->host, $connect->user , $connect->password); mysql_select_db($connect->db); $result = mysql_query("SELECT virtuemart_order_id FROM ".$connect->dbprefix."virtuemart_orders"." WHERE order_number = '".mysql_real_escape_string($orderID)."';"); $row = mysql_fetch_object($result); $paymentCode = explode('.' , $_POST['PAYMENT_CODE']); if ($_POST['PROCESSING_RESULT'] == "NOK") { $comment = $_POST['PROCESSING_RETURN']; } elseif ($paymentCode[0] == "PP" or $paymentCode[0] == "IV") { if (strtoupper ($_POST['CRITERION_LANG']) == 'DE') { $comment = 'Bitte überweisen Sie uns den Betrag von '.$_POST['CLEARING_CURRENCY'].' '.$_POST['PRESENTATION_AMOUNT'].' auf folgendes Konto:

Land : '.$_POST['CONNECTOR_ACCOUNT_COUNTRY'].'
Kontoinhaber : '.$_POST['CONNECTOR_ACCOUNT_HOLDER'].'
Konto-Nr. : '.$_POST['CONNECTOR_ACCOUNT_NUMBER'].'
Bankleitzahl: '.$_POST['CONNECTOR_ACCOUNT_BANK'].'
IBAN: '.$_POST['CONNECTOR_ACCOUNT_IBAN'].'
BIC: '.$_POST['CONNECTOR_ACCOUNT_BIC'].'

Geben sie bitte im Verwendungszweck UNBEDINGT die Identifikationsnummer
'.$_POST['IDENTIFICATION_SHORTID'].'
und NICHTS ANDERES an.

'; } else { $comment = 'Please transfer the amount of '.$_POST['CLEARING_CURRENCY'].' '.$_POST['PRESENTATION_AMOUNT'].' to the following account:

Country: '.$_POST['CONNECTOR_ACCOUNT_COUNTRY'].'
Account holder: '.$_POST['CONNECTOR_ACCOUNT_HOLDER'].'
Account No.: '.$_POST['CONNECTOR_ACCOUNT_NUMBER'].'
Bank Code: '.$_POST['CONNECTOR_ACCOUNT_BANK'].'
IBAN: '.$_POST['CONNECTOR_ACCOUNT_IBAN'].'
BIC: '.$_POST['CONNECTOR_ACCOUNT_BIC'].'

When you transfer the money you HAVE TO use the identification number
'.$_POST['IDENTIFICATION_SHORTID'].'
as the descriptor and nothing else. Otherwise we cannot match your transaction!

'; } if($_POST['ACCOUNT_BRAND'] == 'BARPAY') { $comment = '(-'.$_POST['CRITERION_BARPAY_PAYCODE_URL'].'-)

Drucken Sie den Barcode aus oder speichern Sie diesen auf Ihrem mobilen Endger�t. Gehen Sie nun zu einer Kasse der 18.000 Akzeptanzstellen in Deutschland und bezahlen Sie ganz einfach in bar. In dem Augenblick, wenn der Rechnungsbetrag beglichen wird, erh�lt der Online-H�ndler die Information �ber den Zahlungseingang.Die bestellte Ware oder Dienstleistung geht umgehend in den Versand '; } } if (!empty($row->virtuemart_order_id)) { $sql = "INSERT ".$connect->dbprefix."virtuemart_payment_plg_heidelpay SET " . "virtuemart_order_id = \"".mysql_real_escape_string($row->virtuemart_order_id). "\"," . "order_number = \"".mysql_real_escape_string($_GET['on']). "\"," . "virtuemart_paymentmethod_id = \"".mysql_real_escape_string($_GET['pm']). "\"," . "unique_id = \"".mysql_real_escape_string($_POST['IDENTIFICATION_UNIQUEID']). "\"," . "short_id = \"".mysql_real_escape_string($_POST['IDENTIFICATION_SHORTID']). "\"," . "payment_code = \"".mysql_real_escape_string($_POST['PROCESSING_REASON_CODE']). "\"," . "comment = \"".mysql_real_escape_string($comment). "\"," . "payment_methode = \"".mysql_real_escape_string($paymentCode[0]). "\"," . "payment_type = \"".mysql_real_escape_string($paymentCode[1]). "\"," . "transaction_mode = \"".mysql_real_escape_string($_POST['TRANSACTION_MODE']). "\"," . "payment_name = \"".mysql_real_escape_string($_POST['CRITERION_PAYMENT_NAME']). "\"," . "processing_result = \"".mysql_real_escape_string($_POST['PROCESSING_RESULT']). "\"," . "secret_hash = \"".mysql_real_escape_string($_POST['CRITERION_SECRET']). "\"," . "response_ip = \"".mysql_real_escape_string($_SERVER['REMOTE_ADDR']). "\";" ; $dbEerror = mysql_query($sql); } } } $returnvalue=$_POST['PROCESSING_RESULT']; if (!empty($returnvalue)){ if (strstr($returnvalue,"ACK")) { print $redirectURL; updateHeidelpay($_POST['IDENTIFICATION_TRANSACTIONID'], $config); } else if ($_POST['FRONTEND_REQUEST_CANCELLED'] == 'true'){ print $cancelURL ; } else { updateHeidelpay($_POST['IDENTIFICATION_TRANSACTIONID'], $config); print $redirectURL; } } else { echo 'FAIL'; } ?> heidelpay/.htaccess000066600000000177151373013300010313 0ustar00 Order allow,deny Deny from all .htaccess000066600000000177151373013300006347 0ustar00 Order allow,deny Deny from all