Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
index.html000064400000000054151162241150006536 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>postfinance.php000064400000024051151162241150007566
0ustar00<?php
/**
* @package HikaShop for Joomla!
* @version 4.4.1
* @author hikashop.com
* @copyright (C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class plgHikashoppaymentPostfinance extends hikashopPaymentPlugin {
var $accepted_currencies = array(
'CHF', 'EUR', 'GBP', 'USD',
'DZD', 'AUD', 'CAD', 'HRK',
'CZK', 'DKK', 'EGP', 'HKD',
'HUF', 'INR', 'IDR', 'ILS',
'JPY', 'KES', 'LVL',
'LTL', 'MYR', 'MUR', 'MAD',
'NAD', 'NZD', 'NOK', 'PHP',
'PLN', 'RON', 'SGD', 'ZAR',
'LKR', 'SEK', 'TWD', 'THB',
'TND', 'TRY', 'VND'
);
var $multiple = true;
var $name = 'postfinance';
var $pluginConfig = array(
'returnurl' => array('For Post Finance Payment Platform
URL', 'html', ''),
'shop_ID' => array('ATOS_MERCHANT_ID',
'input'),
'sha_in_phrase' => array('SHA-IN_Pass_phrase',
'input'),
'sha_out_phrase' => array('SHA-OUT_Pass_phrase',
'input'),
'debug' => array('DEBUG',
'boolean','0'),
'address_type' => array('PAYPAL_ADDRESS_TYPE',
'address'),
'url' => array('URL', 'input'),
'return_url' => array('RETURN_URL',
'input'),
'invalid_status' => array('INVALID_STATUS',
'orderstatus'),
'pending_status' => array('PENDING_STATUS',
'orderstatus'),
'verified_status' => array('VERIFIED_STATUS',
'orderstatus')
);
function onAfterOrderConfirm(&$order,&$methods,$method_id) {
parent::onAfterOrderConfirm($order, $methods, $method_id);
$home_url = HIKASHOP_LIVE.'index.php';
$notify_url =
$home_url.'?option=com_hikashop&ctrl=checkout&task=notify¬if_payment=postfinance&tmpl=component&lang='.$this->locale.$this->url_itemid;
$return_url =
$home_url.'?option=com_hikashop&ctrl=checkout&task=after_end&order_id='.$order->order_id.$this->url_itemid;
$languages = array(
'en' => 'en_US',
'fr' => 'fr_FR',
'it' => 'it_IT',
'de' => 'de_DE',
'nl' => 'nl_NL',
);
if(isset($languages[$this->locale])) {
$lng = $languages[$this->locale];
} else {
$lng = $languages['en'];
}
$vars = array(
"PSPID" => $this->payment_params->shop_ID,
"LANGUAGE" => $lng,
"ORDERID" => $order->order_id.'-'.uniqid(),
"AMOUNT" => round($order->order_full_price, 2)*100,
"CURRENCY" => $this->currency->currency_code,
"ACCEPTURL" => $notify_url,
"CANCELURL" => $notify_url,
"DECLINEURL" => $notify_url,
"EXCEPTIONURL" => $notify_url,
"HOMEURL" => $home_url,
"CATALOGURL" => $home_url,
);
$order_address = null;
if(!empty($order->cart->billing_address) &&
$this->payment_params->address_type == 'billing') {
$order_address = $order->cart->billing_address;
}
if(!empty($order->cart->shipping_address) &&
$this->payment_params->address_type == 'shipping') {
$order_address = $order->cart->shipping_address;
}
if(!empty($order_address)) {
$order_address_1 = '';
$order_address_2 = '';
if(!empty($order_address->address_street2)) {
$billing_address2 = substr($order_address->address_street2, 0, 99);
}
if(!empty($order_address->address_street)) {
if(strlen($order_address->address_street) > 100) {
$billing_address1 = substr($order_address->address_street, 0, 99);
if(empty($billing_address2))
$billing_address2 = substr($order_address->address_street, 99,
199);
} else {
$billing_address1 = $order_address->address_street;
}
}
if(!empty($billing_address1))
$vars["OWNERADDRESS"] = $billing_address1;
if(!empty($billing_address2))
$vars["OWNERADDRESS"] .= $billing_address2;
if(!empty($order_address->address_post_code))
$vars["OWNERZIP"] = $order_address->address_post_code;
if(!empty($order_address->address_city))
$vars["OWNERCTY"] = $order_address->address_city;
if(!empty($this->user->user_email))
$vars["EMAIL"] = $this->user->user_email;
if(!empty($order_address->address_telephone))
$vars["OWNERTELNO"] = $order_address->address_telephone;
}
ksort($vars);
$txtSha_tosecure = '';
foreach($vars as $key => $var) {
$txtSha_tosecure .= strtoupper($key) . '=' . $var .
$this->payment_params->sha_in_phrase;
}
$vars["SHASIGN"] = strtoupper(sha1($txtSha_tosecure));
$this->vars = $vars;
return $this->showPage('end');
}
function onPaymentNotification(&$statuses) {
$vars = array();
$filter = JFilterInput::getInstance();
foreach($_REQUEST as $key => $value) {
$key = $filter->clean($key);
if(preg_match("#^[0-9a-z_-]{1,30}$#i", $key) &&
!preg_match("#^cmd$#i", $key)) {
$vars[$key] = hikaInput::get()->getString($key);
}
}
$order_id = (int)@$vars['orderID'];
$dbOrder = $this->getOrder($order_id);
$this->loadPaymentParams($dbOrder);
if(empty($this->payment_params))
return false;
$this->loadOrderData($dbOrder);
if($this->payment_params->debug) {
$this->writeToLog(
print_r($dbOrder, true)."\r\n\r\n".
print_r($vars, true)
);
}
$result = array();
$acceptedKeys = array(
'AAVADDRESS', 'AAVCHECK', 'AAVMAIL',
'AAVNAME', 'AAVPHONE', 'AAVZIP',
'ACCEPTANCE', 'AMOUNT', 'BIC',
'BIN', 'BRAND', 'CARDNO', 'CCCTY',
'CN', 'COLLECTOR_BIC', 'COLLECTOR_IBAN',
'COMPLUS',
'CREDITDEBIT', 'CURRENCY', 'CVCCHECK',
'ECI', 'ED', 'EMAIL', 'FXAMOUNT',
'FXCURRENCY', 'IP', 'IPCTY',
'MANDATEID', 'MOBILEMODE', 'NCERROR',
'ORDERID', 'PAYID', 'PAYIDSUB',
'PAYLIBIDREQUEST',
'PAYLIBTRANSID', 'PAYMENT_REFERENCE',
'PM', 'SEQUENCETYPE', 'SIGNDATE',
'STATUS', 'SUBBRAND', 'TRXDATE',
'VC', 'WALLET'
);
foreach($_REQUEST as $key => $value) {
if($value != '' && in_array(strtoupper($key),
$acceptedKeys)) {
$result[strtoupper($key)] = $value;
} else if($key == 'SHASIGN') {
$shasign = $value;
}
}
if($this->payment_params->debug) {
$this->writeToLog('PostFinance $_REQUEST
:'."\r\n".print_r($_REQUEST, true));
}
ksort($result);
$txtSha_tosecure ='';
foreach($result as $key => $var) {
$txtSha_tosecure .= $key . '=' . $var .
$this->payment_params->sha_out_phrase;
}
$txtSha = strtoupper(sha1($txtSha_tosecure));
$url =
HIKASHOP_LIVE.'administrator/index.php?option=com_hikashop&ctrl=order&task=edit&order_id='
. $order_id;
$order_text = "\r\n" .
JText::sprintf('NOTIFICATION_OF_ORDER_ON_WEBSITE',
$dbOrder->order_number, HIKASHOP_LIVE);
$order_text .= "\r\n" . str_replace('<br/>',
"\r\n", JText::sprintf('ACCESS_ORDER_WITH_LINK',
$url));
if($this->payment_params->debug) {
$this->writeToLog(
'result : ' . "\r\n" . print_r($result, true) .
"\r\n" .
'MYSHA : ' . $txtSha . "\r\n" .
'THEIRCHA : '.$shasign . "\r\n" .
'sha_out : '.$this->payment_params->sha_out_phrase .
"\r\n"
);
}
$return_url =
HIKASHOP_LIVE.'index.php?option=com_hikashop&ctrl=checkout&task=after_end&order_id='
. $order_id . '&lang=' . $this->locale .
$this->url_itemid;
$cancel_url =
HIKASHOP_LIVE.'index.php?option=com_hikashop&ctrl=order&task=cancel_order&order_id='
. $order_id . '&lang=' . $this->locale .
$this->url_itemid;
if(($txtSha == $shasign) &&
in_array((int)$result['STATUS'], array(9, 91))) {
$history = new stdClass();
$email = new stdClass();
$history->notified = 1;
$history->amount = $result['AMOUNT'];
$history->data = ob_get_clean();
$email->subject =
JText::sprintf('PAYMENT_NOTIFICATION_FOR_ORDER','Postfinance',$result['STATUS'],$dbOrder->order_number);
$body =
str_replace('<br/>',"\r\n",JText::sprintf('PAYMENT_NOTIFICATION_STATUS','Postfinance',$result['STATUS'])).'
'.JText::sprintf('ORDER_STATUS_CHANGED',$this->payment_params->verified_status)."\r\n\r\n".$order_text;
$email->body = $body;
if($dbOrder->order_status !=
$this->payment_params->verified_status)
$this->modifyOrder($order_id,
$this->payment_params->verified_status, $history, $email);
$this->app->redirect($return_url);
return true;
}
if($txtSha == $shasign && (int)$result['STATUS'] == 5)
{
$this->app->enqueueMessage(JText::_('POSTFINANCE_AUTHORIZED_PAYMENT'));
$this->app->redirect($return_url);
return true;
}
$email = new stdClass();
$email->subject =
JText::sprintf('NOTIFICATION_REFUSED_FOR_THE_ORDER',
$this->name) . ' invalid response';
if($txtSha !== $shasign) {
$email->body = JText::_("Hello,\r\nA Postfinance notification
was refused because the signature was
invalid")."\r\n\r\n".$order_text;
if($element->payment_params->debug) {
$this->writeToLog('invalid signature (status: ' .
(int)$result['STATUS'] . ')');
}
} else {
$email->body = JText::_("Hello,\r\n A Postfinance notification
was refused because the response from the Post finance server was
invalid")."\r\n\r\n".$order_text;
if($element->payment_params->debug) {
$this->writeToLog('invalid response: ' .
(int)$result['STATUS']);
}
}
if($dbOrder->order_status !=
$this->payment_params->invalid_status)
$this->modifyOrder($order_id,
$this->payment_params->invalid_status, false, $email);
else
$this->modifyOrder($order_id, null, false, $email);
$this->app->enqueueMessage('Transaction Failed with the status
number : '.$result['STATUS']);
$this->app->redirect($cancel_url);
return false;
}
function onPaymentConfiguration(&$element) {
$this->pluginConfig['returnurl'][2] =
HIKASHOP_LIVE.'index.php?option=com_hikashop&ctrl=checkout&task=notify&notif_payment=postfinance&tmpl=component';
parent::onPaymentConfiguration($element);
}
function getPaymentDefaultValues(&$element) {
$element->payment_name = 'Postfinance';
$element->payment_description = 'You can pay by credit card or
Postfinance using this payment method';
$element->payment_images =
'MasterCard,VISA,Credit_card,Postfinance';
$element->payment_params->url =
'https://e-payment.postfinance.ch/ncol/test/orderstandard.asp';
$element->payment_params->notification = 1;
$element->payment_params->shop_ID = '';
$element->payment_params->language = 'en_US';
$element->payment_params->invalid_status = 'cancelled';
$element->payment_params->pending_status = 'created';
$element->payment_params->verified_status = 'confirmed';
}
}
postfinance.xml000064400000002276151162241150007604 0ustar00<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="hikashoppayment">
<name>Hikashop Postfinance Payment Plugin</name>
<creationDate>12 février 2021</creationDate>
<version>4.4.1</version>
<author>Hikashop</author>
<authorEmail>dev@hikashop.com</authorEmail>
<authorUrl>http://www.hikashop.com</authorUrl>
<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
<description>This plugin enables you to setup your postfinance
payment system</description>
<files>
<filename
plugin="postfinance">postfinance.php</filename>
<filename>postfinance_end.php</filename>
</files>
<params addpath="/components/com_hikashop/params">
<param name="pluginoptions" type="pluginoptions"
default="plugin" label="hikashop"
description="HikaShop options" />
</params>
<config>
<fields name="params"
addfieldpath="/components/com_hikashop/fields">
<fieldset name="basic">
<field id="pluginoptions" name="pluginoptions"
type="pluginoptions" label="hikashop"
description="HikaShop options" />
</fieldset>
</fields>
</config>
</extension>
postfinance_end.php000064400000002653151162241150010420 0ustar00<?php
/**
* @package HikaShop for Joomla!
* @version 4.4.1
* @author hikashop.com
* @copyright (C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div class="hikashop_postfinance_end"
id="hikashop_postfinance_end">
<span id="hikashop_postfinance_end_message"
class="hikashop_postfinance_end_message">
<?php echo
JText::sprintf('PLEASE_WAIT_BEFORE_REDIRECTION_TO_X',
$this->payment_name).'<br/>'.
JText::_('CLICK_ON_BUTTON_IF_NOT_REDIRECTED');?>
</span>
<span id="hikashop_postfinance_end_spinner"
class="hikashop_postfinance_end_spinner
hikashop_checkout_end_spinner">
</span>
<br/>
<form id="hikashop_postfinance_form"
name="hikashop_postfinance_form" action="<?php echo
$this->payment_params->url; ?>" method="post">
<div id="hikashop_postfinance_end_image"
class="hikashop_postfinance_end_image">
<input id="hikashop_postfinance_button"
type="submit" value="<?php echo
JText::_('PAY_NOW');?>" name=""
alt="<?php echo JText::_('PAY_NOW');?>" />
</div>
<?php
foreach( $this->vars as $name => $value ) {
echo '<input type="hidden"
name="'.$name.'"
value="'.htmlspecialchars((string)$value).'"
/>';
}
hikaInput::get()->set('noform', 1);
?>
</form>
<script type="text/javascript">
<!--
document.getElementById('hikashop_postfinance_form').submit();
//-->
</script>
</div>