This commit is contained in:
rGaillard
2011-07-06 10:10:43 +00:00
parent 31d94236ac
commit d1a13007b9
4695 changed files with 0 additions and 339293 deletions
-82
View File
@@ -1,82 +0,0 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
class Disposition
{
const TABLE_NAME = 'disposition';
public static function create($id_cart, $mtid, $amount, $currency)
{
return Db::getInstance()->Execute(
'INSERT INTO `'._DB_PREFIX_.self::TABLE_NAME.'` (`id_cart`, `mtid`, `amount`, `currency`)
VALUES ('.(int)($id_cart).',\''.pSQL($mtid).'\','.(float)($amount).',\''.pSQL($currency).'\')');
}
public static function delete($id)
{
return Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.self::TABLE_NAME.'` WHERE `id_disposition` = '.(int)($id));
}
public static function deleteByCartId($id_cart)
{
return Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.self::TABLE_NAME.'` WHERE `id_cart` = '.(int)($id_cart));
}
public static function getByCartId($id_cart)
{
return Db::getInstance()->getRow('SELECT * FROM `'._DB_PREFIX_.self::TABLE_NAME.'` WHERE `id_cart` = '.(int)($id_cart));
}
public static function createTable()
{
return Db::getInstance()->Execute(
'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.self::TABLE_NAME.'` (
`id_disposition` int(11) NOT NULL AUTO_INCREMENT,
`id_cart` int(11) NOT NULL,
`mtid` varchar(20) NOT NULL,
`amount` float NOT NULL,
`currency` varchar(3) NOT NULL,
PRIMARY KEY (`id_disposition`),
UNIQUE KEY `id_cart` (`id_cart`)
) ENGINE = '._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8');
}
public static function dropTable()
{
return Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.self::TABLE_NAME.'`');
}
public static function updateAmount($id_disposition, $amount)
{
return Db::getInstance()->Execute(
'UPDATE `'._DB_PREFIX_.self::TABLE_NAME.'` SET `amount` = `amount` - '.(float)($amount).' WHERE `id_disposition` = '.(int)($id_disposition));
}
}
-663
View File
@@ -1,663 +0,0 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
$module_name = 'paysafecard';
include(_PS_MODULE_DIR_.'/'.$module_name.'/Disposition.php');
include(_PS_MODULE_DIR_.'/'.$module_name.'/PrepaidServicesAPI.php');
abstract class PrepaidServices extends PaymentModule
{
protected $max_amount = 1000;
protected $max_amount_currency = 'EUR';
protected $default_language = 'en';
protected $prefix = '';
protected $environments = array('P' => 'Production',
'T' => 'Test');
protected $business_types = array('I' => 'Intangible',
'T' => 'Tangible');
// abstract
protected $supported_languages;
protected $allowed_currencies;
protected $supported_currencies;
protected $payment_url;
protected $prepaid_api_configuration;
protected $register_url;
public function __construct()
{
parent::__construct();
if ($this->active AND !extension_loaded('curl'))
$this->warning = $this->getL('curl_required');
}
public function install()
{
$ps_ct_immediat_payment = Configuration::get($this->prefix.'IMMEDIAT_PAYMENT') ? Configuration::get($this->prefix.'IMMEDIAT_PAYMENT') : '1';
$ps_ct_salt = Configuration::get($this->prefix.'SALT') ? Configuration::get($this->prefix.'SALT') : strtoupper(Tools::passwdGen(8));
$ps_ct_business_type = Configuration::get($this->prefix.'BUSINESS_TYPE') ? Configuration::get($this->prefix.'BUSINESS_TYPE') : 'I';
$ps_ct_environment = Configuration::get($this->prefix.'ENVIRONMENT') ? Configuration::get($this->prefix.'ENVIRONMENT') : 'T';
return parent::install() AND Disposition::createTable() AND $this->_createOrderState() AND
$this->registerHook('payment') AND $this->registerHook('paymentReturn') AND $this->registerHook('adminOrder')
AND Configuration::updateValue($this->prefix.'IMMEDIAT_PAYMENT', $ps_ct_immediat_payment)
AND Configuration::updateValue($this->prefix.'SALT', $ps_ct_salt)
AND Configuration::updateValue($this->prefix.'BUSINESS_TYPE', $ps_ct_business_type)
AND Configuration::updateValue($this->prefix.'ENVIRONMENT', $ps_ct_environment);
}
private function _createOrderState()
{
if (Configuration::get($this->prefix.'ORDER_STATE_ID') && Configuration::get($this->prefix.'ORDER_STATE_PART_ID')) return true;
// Awaiting payment
$os = new OrderState();
$os->name = array('1' => 'Awaiting '.$this->displayName.' payment',
'2' => 'En attente du paiement par '.$this->displayName,
'3' => 'En espera de pago por '.$this->displayName);
$os->invoice = false;
$os->color = 'lightblue';
$os->logable = true;
if ($os->save())
{
Configuration::updateValue($this->prefix.'ORDER_STATE_ID', $os->id);
copy(_PS_MODULE_DIR_.$this->name.'/logo.gif',_PS_IMG_DIR_.'os/'.$os->id.'.gif');
} else
return false;
// Partially paid
$os1 = new OrderState();
$os1->name = array('1' => 'Partially paid by '.$this->displayName,
'2' => 'Payé partiellement via '.$this->displayName,
'3' => 'Pagado parcialmente con '.$this->displayName);
$os1->invoice = false;
$os1->color = 'lightblue';
$os1->logable = true;
if ($os1->save())
{
Configuration::updateValue($this->prefix.'ORDER_STATE_PART_ID', $os1->id);
copy(_PS_MODULE_DIR_.$this->name.'/logo.gif',_PS_IMG_DIR_.'os/'.$os1->id.'.gif');
return true;
}
return false;
}
private function _deleteOrderState()
{
DB::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'order_state` WHERE `id_order_state` = '.(int)(Configuration::get($this->prefix.'ORDER_STATE_ID')));
DB::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'order_state_lang` WHERE `id_order_state` = '.(int)(Configuration::get($this->prefix.'ORDER_STATE_ID')));
DB::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'order_state` WHERE `id_order_state` = '.(int)(Configuration::get($this->prefix.'ORDER_STATE_PART_ID')));
DB::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'order_state_lang` WHERE `id_order_state` = '.(int)(Configuration::get($this->prefix.'ORDER_STATE_PART_ID')));
return true;
}
public function getPaymentUrlBase()
{
return $this->payment_url[Configuration::get($this->prefix.'ENVIRONMENT')];
}
private function _getSupportedLanguageIsoById($id_lang)
{
$lang = Language::getIsoById((int)($id_lang));
return in_array($lang, $this->supported_languages) ? $lang : $this->default_language;
}
private function _getRegisterLink($id_lang)
{
$lang = Language::getIsoById((int)($id_lang));
return array_key_exists($lang, $this->register_url) ? $this->register_url[$lang] : $this->register_url[$this->default_language];
}
private function _getAllowedCurrencies()
{
if (empty($this->allowed_currencies))
$this->allowed_currencies = DB::getInstance()->ExecuteS(
'SELECT c.id_currency, c.iso_code, c.name, c.sign
FROM '._DB_PREFIX_.'currency c
WHERE c.deleted = 0
AND iso_code IN (\''.implode('\',\'', $this->supported_currencies).'\')');
return $this->allowed_currencies;
}
public function isCurrencyActive($currency_iso_code)
{
$mid = Configuration::get($this->prefix.'MERCHANT_ID_'.$currency_iso_code);
return ($mid && file_exists($this->certificat_dir.$mid.'.pem') && Configuration::get($this->prefix.'KEYRING_PW_'.$currency_iso_code));
}
public function createDisposition($cart)
{
global $cookie;
$currency = new Currency((int)($cart->id_currency));
$language = $this->_getSupportedLanguageIsoById((int)($cookie->id_lang));
$mid = Configuration::get($this->prefix.'MERCHANT_ID_'.$currency->iso_code);
$mtid = $cart->id.'-'.time();
$amount = number_format((float)($cart->getOrderTotal(true, Cart::BOTH)), 2, '.','');
$currency_iso = $currency->iso_code;
$business_type = Configuration::get($this->prefix.'BUSINESS_TYPE');
$reporting_criteria = '';
$hash = md5(Configuration::get($this->prefix.'SALT') + $amount + $currency_iso);
$ok_url = Tools::getShopDomainSsl(true, true)._MODULE_DIR_.$this->name.'/payment.php?hash='.$hash;
$nok_url = Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'/order.php?step=3';
list($return_code, $error_code, $message) = PrepaidServicesAPI::createDisposition($this->getAPIConfiguration($currency_iso), $mid, $mtid, $amount, $currency_iso, $ok_url, $nok_url, $business_type, $reporting_criteria);
if ($return_code == 0)
{
Disposition::deleteByCartId((int)($cart->id)); // Avoid duplicate disposition (canceled orders in CT for example)
Disposition::create((int)($cart->id), $mtid, $amount, $currency_iso);
$message = $this->getPaymentUrlBase().'?currency='.$currency->iso_code.'&mid='.$mid.'&mtid='.$mtid.'&amount='.$amount.'&language='.$language;
}
return array('return_code' => $return_code, 'message' => $message);
}
public function getDispositionState($id_cart)
{
$disposition = Disposition::getByCartId((int)($id_cart));
if (!array_key_exists('id_disposition', $disposition))
die(Tools::displayError());
return PrepaidServicesAPI::getSerialNumbers($this->getAPIConfiguration($disposition['currency']), Configuration::get($this->prefix.'MERCHANT_ID_'.$disposition['currency']), $disposition['mtid'], $disposition['currency']);
}
public function executeDebit($id_cart, $amount = NULL, $close_flag = 1)
{
$disposition = Disposition::getByCartId((int)($id_cart));
if (!array_key_exists('id_disposition', $disposition))
die(Tools::displayError());
if (!isset($amount) || $amount === '')
$amount = $disposition['amount'];
$result = PrepaidServicesAPI::executeDebit($this->getAPIConfiguration($disposition['currency']), Configuration::get($this->prefix.'MERCHANT_ID_'.$disposition['currency']), $disposition['mtid'], number_format($amount, 2, '.', ''), $disposition['currency'], $close_flag);
if ($result[0] == 0)
{
if ($amount == $disposition['amount'] || $close_flag)
Disposition::delete((int)($disposition['id_disposition']));
else
Disposition::updateAmount((int)($disposition['id_disposition']), (float)($amount));
}
return $result;
}
public function getContent()
{
$out = '<h2>'.$this->displayName.'</h2>';
$err_req = false;
// check requirements
if (!extension_loaded('curl'))
{
$out .= $this->displayError($this->getL('curl_required'));
$err_req = true;
}
if (!is_writable($this->certificat_dir))
{
$out .= $this->displayError($this->certificat_dir.' '.$this->getL('not_writable'));
$err_req = true;
}
$id_currency = Currency::getIdByIsoCode($this->max_amount_currency);
if (empty($id_currency))
{
$out .= $this->displayError($this->getL('currency_required').'['.$this->max_amount_currency.']');
$err_req = true;
}
if (!$err_req && Tools::isSubmit('submitCtConfiguration'))
{
$errors = $this->_validateForm();
if (empty($errors))
$out .= $this->_postProcess();
else
$out .= $errors;
}
$out .= $this->_displayStyleAndJS();
$out .= $this->_displayInfos();
$out .= $this->_displayForm();
return $out;
}
private function _displayStyleAndJS()
{
return '<script type="text/javascript" src="'._MODULE_DIR_.$this->name.'/prepaidservices.js" ></script>
<style>
.currencies_configuration { border: 2px solid #DFD5C3; border-collapse: collapse; }
.currencies_configuration td { width: 200px; padding: 20px; border: 2px solid #DFD5C3 }
.currency_label { font-weight: bold; }
.currencies_label { font-weight: bold; padding: 0px; }
#infos_cashticket { width: 420px; float: left}
</style>';
}
private function _displayForm()
{
$business_type_options = '';
foreach ($this->business_types AS $key => $value)
$business_type_options .= '<option value="'.$key.'" '.(Configuration::get($this->prefix.'BUSINESS_TYPE') == $key ? 'selected' : '').'>'.$value.'</option>';
$currencies_configuration = '<p class="currencies_label">'.$this->getL('configure_currency').'</p>
<p>'.$this->getL('payment_not_displayed').'</p>
<table class="currencies_configuration">';
$environment_radio = '';
foreach ($this->environments AS $key => $value)
$environment_radio .= '<input type="radio" id="ct_environment" name="ct_environment" value="'.Tools::htmlentitiesUTF8($key).'" '.(Configuration::get($this->prefix.'ENVIRONMENT') == $key ? 'checked' : '').'>'. $value. '<br />';
foreach ($this->_getAllowedCurrencies() AS $currency)
{
$currencies_configuration .= '
<tr>
<td class="currency_label">'.$this->getL('configuration_in').' '.$currency['name'].' '.$currency['sign'].'</td>
<td>
<label>'.$this->getL('merchant_id').'</label>
<div class="margin-form">
<input type="text" name="ct_merchant_id_'.$currency['iso_code'].'" value="'.Tools::htmlentitiesUTF8(Configuration::get($this->prefix.'MERCHANT_ID_'.$currency['iso_code'])).'"/>
</div>
<br />
<label>'.$this->getL('keyring_certificate').'</label>
<div class="margin-form">
<input type="file" name="ct_keyring_certificate_'.$currency['iso_code'].'" />
</div>
<label>'.$this->getL('keyring_pw').'</label>
<div class="margin-form">
<input type="text" name="ct_keyring_pw_'.$currency['iso_code'].'" value="'.Tools::htmlentitiesUTF8(Configuration::get($this->prefix.'KEYRING_PW_'.$currency['iso_code'])).'"/>
</div>
</td>
</tr>';
}
$currencies_configuration .= '</table>';
return '<form enctype="multipart/form-data" action="'.$_SERVER['REQUEST_URI'].'" method="post">
<fieldset>
<legend><img src="../img/admin/cog.gif" alt="" />'.$this->getL('configuration').'</legend>
<label>'.$this->getL('environment').'</label>
<div class="margin-form">
'.$environment_radio.'
</div>
<hr class="clear" />
<label>'.$this->getL('business_type').'</label>
<div class="margin-form">
<select id="ct_business_type" name="ct_business_type" onchange="toggleImediatPayment()">
'.$business_type_options.'
</select>
</div>
<div id="imediat_payment">
<label>'.$this->getL('immediat_payment').'</label>
<div class="margin-form">
<input type="checkbox" name="ct_immediat_payment" value="1" '.(Configuration::get($this->prefix.'IMMEDIAT_PAYMENT') ? 'checked' : '').' />
</div>
</div>
<hr class="clear" />
'.$currencies_configuration.'
<br />
<div>
<input type="submit" value="'.$this->getL('update_configuration').'" name="submitCtConfiguration" class="button" />
</div>
</label>
</fieldset>
</form>';
}
private function _displayInfos()
{
global $cookie;
return '<fieldset id="infos_cashticket">
<legend><img src="'._MODULE_DIR_.$this->name.'/img/payment-small.png" alt="" />'.$this->displayName.'</legend>
<center><img src="'._MODULE_DIR_.$this->name.'/img/payment.png" alt="" class="logo" /></center>
'.$this->getL('introduction').'
<br /><br />
<a style="color: blue; text-decoration: underline" href="'.$this->_getRegisterLink((int)$cookie->id_lang).'">'.$this->getL('register').'</a>
</fieldset>
<div class="clear" /><br />';
}
private function _validateForm()
{
$errors = '';
foreach ($this->_getAllowedCurrencies() AS $currency)
{
$mid = trim(Tools::getValue('ct_merchant_id_'.$currency['iso_code']));
if (preg_match('/^[0-9]{10}$/', $mid))
{
$mid_certificat = $_FILES['ct_keyring_certificate_'.$currency['iso_code']];
if (!$mid_certificat || $mid_certificat['error'] == 4 || $mid_certificat['error'] == 3)
{
if (!file_exists($this->certificat_dir.$mid.'.pem'))
$errors .= $this->displayError($this->getL('certificate_required').' ['.$currency['iso_code'].']');
}
else
{
if ($mid_certificat['error'])
{
switch ($mid_certificat['error'])
{
case 3: // UPLOAD_ERR_PARTIAL
$errors .= $this->displayError($this->getL('file_partialy_uploaded'));
break;
case 4: // UPLOAD_ERR_NO_FILE
$errors .= $this->displayError($this->getL('file_empty'));
break;
}
}
if (substr($mid_certificat['name'], -4) != '.pem')
$errors .= $this->displayError($this->getL('invalid_file').' ['.$currency['iso_code'].']');
}
}
elseif (!empty($mid))
{
$errors .= $this->displayError($this->getL('invalid_merchant_id').' ['.$currency['iso_code'].']');
}
}
if (!array_key_exists(Tools::getValue('ct_business_type'), $this->business_types))
$errors .= $this->getL('invalid_business_type');
if (!array_key_exists(Tools::getValue('ct_environment'), $this->environments))
$errors .= $this->getL('invalid_environment');
return $errors;
}
private function _acceptPayment($order, $disposition, $currency_sign, $amount = NULL)
{
$isCorrect = true;
if (!$disposition)
die(Tools::displayError());
if (!isset($amount) || $amount === '')
$amount = $disposition['amount'];
$amount = number_format($amount, 2, '.', '');
$close_flag = (int)($amount == $disposition['amount']);
list($resultcode, $errorcode, $errormessage) = $this->executeDebit($disposition['id_cart'], $amount, $close_flag);
$param = '';
if ($resultcode != 0)
{
$message = $this->getL('payment_error').' '.$errormessage;
$isCorrect = false;
}
else
$message = $this->getL('payment_accepted') .'('.$amount.' '.$currency_sign.') '.($close_flag ? $this->getL('disposition_consumed') : '') ;
$msg = new Message();
$msg->message = $message;
$msg->id_order = (int)($order->id);
$msg->private = 1;
$msg->add();
if ($isCorrect)
{
if ($order->total_paid == $order->total_paid_real)
$order->total_paid_real = $amount;
else
$order->total_paid_real += $amount;
$os = _PS_OS_PAYMENT_;
if ($order->total_paid != $order->total_paid_real)
$os = Configuration::get($this->prefix.'ORDER_STATE_PART_ID');
$history = new OrderHistory();
$history->id_order = (int)($order->id);
$history->changeIdOrderState($os, (int)($order->id));
$history->save();
$order->save();
}
return $isCorrect;
}
public function _releasePayment($order, $disposition)
{
if (!$disposition)
die(Tools::displayError());
list($resultcode, $errorcode, $errormessage) = $this->executeDebit($disposition['id_cart'], 0, 1);
$param = '';
if ($resultcode != 0)
{
$message = $this->getL('release_error').' '.$errormessage;
$isCorrect = false;
}
else
$message = $this->getL('payment_released');
$msg = new Message();
$msg->message = $message;
$msg->id_order = (int)($order->id);
$msg->private = 1;
$msg->add();
return $errorcode;
}
private function _postProcess()
{
Configuration::updateValue($this->prefix.'BUSINESS_TYPE', Tools::getValue('ct_business_type'));
Configuration::updateValue($this->prefix.'ENVIRONMENT', Tools::getValue('ct_environment'));
$immediat_payment = Tools::getValue('ct_immediat_payment');
if (Configuration::get($this->prefix.'BUSINESS_TYPE') == 'I')
$immediat_payment = 1;
Configuration::updateValue($this->prefix.'IMMEDIAT_PAYMENT', $immediat_payment);
$params = '';
$dataSync = '';
$delim = '?';
$key = 1;
foreach ($this->_getAllowedCurrencies() AS $currency)
{
$mid = trim(Tools::getValue('ct_merchant_id_'.$currency['iso_code']));
Configuration::updateValue($this->prefix.'MERCHANT_ID_'.$currency['iso_code'], $mid);
Configuration::updateValue($this->prefix.'KEYRING_PW_'.$currency['iso_code'], Tools::getValue('ct_keyring_pw_'.$currency['iso_code']));
if (isset($_FILES['ct_keyring_certificate_'.$currency['iso_code']]))
move_uploaded_file($_FILES['ct_keyring_certificate_'.$currency['iso_code']]['tmp_name'], $this->certificat_dir.$mid.'.pem');
if ($mid)
{
$params .= $delim.'mid'.$key.'='.urlencode($mid).'&currency'.$key.'='.urlencode($currency['iso_code']);
$delim = '&';
$key++;
}
}
if (!empty($params))
$dataSync = '<img src="http://www.prestashop.com/modules/'.$this->name.'.png'.$params.'" style="float:right" />';
return $this->displayConfirmation($this->getL('settings_updated').$dataSync);
}
public function hookPayment($params)
{
global $smarty;
// check currency
$currency = new Currency((int)($params['cart']->id_currency));
if (!$this->isCurrencyActive($currency->iso_code))
return false;
// check max amount
$amount = (float)($params['cart']->getOrderTotal(true, Cart::BOTH));
$id_currency_max = Currency::getIdByIsoCode($this->max_amount_currency);
if ($currency->id != $id_currency_max)
{
$amount = $amount / $currency->conversion_rate;
$amount = Tools::convertPrice($amount, new Currency((int)($id_currency_max)));
}
if ($amount > $this->max_amount)
return false;
$smarty->assign(array('pic_url' => _MODULE_DIR_.'/'.$this->name.'/img/payment-logo.png',
'payment_name' => $this->displayName,
'module_name' => $this->name));
return $this->display(__FILE__, 'payment.tpl');
}
public function hookPaymentReturn($params)
{
global $smarty, $cookie;
if ($params['objOrder']->module != $this->name)
return;
$smarty->assign('payment_name', $this->displayName);
return $this->display(__FILE__, $this->name.'-confirmation.tpl');
}
public function hookAdminOrder($params)
{
global $smarty, $cookie;
$error = 0;
$order = new Order((int)($params['id_order']));
if (!Validate::isLoadedObject($order))
die(Tools::displayError());
if ($order->module != $this->name)
return false;
$disposition = Disposition::getByCartId((int)($order->id_cart));
if (!$disposition) // No disposition = Order paid
return false;
// check disposition state
$res = PrepaidServicesAPI::getSerialNumbers($this->getAPIConfiguration($disposition['currency']), Configuration::get($this->prefix.'MERCHANT_ID_'.$disposition['currency']), $disposition['mtid'], $disposition['currency']);
$currency = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
// if the disposition is not "active"
if ($res[5] != PrepaidServicesAPI::DISPOSITION_DISPOSED && $res[5] != PrepaidServicesAPI::DISPOSITION_DEBITED)
{
$smarty->assign(array('disposition_state' => $res[5], 'payment_name' => $order->payment));
return $this->display($this->module_dir.'/'.$this->name, 'disposition-error.tpl');
}
if (Tools::isSubmit('acceptPayment'))
{
$amount = Tools::getValue('ps_amount');
if (isset($amount) && !empty($amount) && $amount <= $res[3] && $amount > 0)
{
if (!$this->_acceptPayment($order, $disposition, $currency->getSign('right'), $amount))
$error = 1;
}
else
$error = 2;
$query_string = $error ? self::changeQueryStringParameter($_SERVER['QUERY_STRING'], 'pp_error', (int)($error)) : self::removeQueryStringParameter($_SERVER['QUERY_STRING'], 'pp_error');
Tools::redirectAdmin(Tools::safeOutput($_SERVER['PHP_SELF']).'?'.$query_string);
} else if (Tools::isSubmit('releasePayment')) {
if (!$this->_releasePayment($order, $disposition))
$error = 1;
$query_string = $error ? self::changeQueryStringParameter($_SERVER['QUERY_STRING'], 'pp_error', (int)($error)) : $_SERVER['QUERY_STRING'];
Tools::redirectAdmin(Tools::safeOutput($_SERVER['PHP_SELF']).'?'.$query_string);
}
$error_msg = '';
if (Tools::getIsset('pp_error'))
$error_msg = $this->_getErrorMsgFromErrorCode(Tools::getValue('pp_error'));
$smarty->assign(array('action' => Tools::safeOutput($_SERVER['PHP_SELF']).'?'.$_SERVER['QUERY_STRING'],
'payment_name' => $order->payment,
'error' => $error_msg,
'currency' => $currency->getSign('right'),
'amount' => $res[3]
));
return $this->display($this->module_dir.'/'.$this->name, $this->name.'-accept-payment.tpl');
}
public function getAPIConfiguration($iso_currency)
{
return array('keyring_file' => $this->certificat_dir.Configuration::get($this->prefix.'MERCHANT_ID_'.strtoupper($iso_currency)).'.pem',
'keyring_pw' => Configuration::get($this->prefix.'KEYRING_PW_'.strtoupper($iso_currency)),
'keyring_prepaid' => $this->certificat_dir.'paysafecard-CA.pem',
'env' => Configuration::get($this->prefix.'ENVIRONMENT'));
}
public static function changeQueryStringParameter($query_string, $param, $value)
{
parse_str($query_string, $output);
$output[$param] = $value;
return http_build_query($output);
}
public static function removeQueryStringParameter($query_string, $param)
{
parse_str($query_string, $output);
unset($output[$param]);
return http_build_query($output);
}
}
-190
View File
@@ -1,190 +0,0 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
class PrepaidServicesAPI
{
const DISPOSITION_CREATED = 'R';
const DISPOSITION_DISPOSED = 'S';
const DISPOSITION_DEBITED = 'E';
const DISPOSITION_CONSUMED = 'O';
const DISPOSITION_CANCELLED = 'L';
const DISPOSITION_INVALID = 'I';
const DISPOSITION_EXPIRED = 'X';
// Test & Production environment (shared between CT & PSC)
private static $base_url = array('T' => array('create_disposition_url' => 'https://shops.test.at.paysafecard.com/pscmerchant/CreateDispositionServlet',
'get_disposition_state_url' => 'https://shops.test.at.paysafecard.com/pscmerchant/GetDispositionStateServlet',
'execute_debit_url' => 'https://shops.test.at.paysafecard.com/pscmerchant/DebitServlet',
'get_serial_number_url' => 'https://shops.test.at.paysafecard.com/pscmerchant/GetSerialNumbersServlet'
),
'P' => array('create_disposition_url' => 'https://shops.cc.at.paysafecard.com/pscmerchant/CreateDispositionServlet',
'get_disposition_state_url' => 'https://shops.cc.at.paysafecard.com/pscmerchant/GetDispositionStateServlet',
'execute_debit_url' => 'https://shops.cc.at.paysafecard.com/pscmerchant/DebitServlet',
'get_serial_number_url' => 'https://shops.cc.at.paysafecard.com/pscmerchant/GetSerialNumbersServlet'
));
public static function getBaseUrl($key, $env)
{
$base_url = self::$base_url[$env];
if (array_key_exists($key, $base_url))
return $base_url[$key];
return '';
}
public static function createDisposition($configuration, $mid, $mtid, $amount, $currency, $okurl, $nokurl, $businesstype, $reportingcriteria)
{
$language = 'en';
$params = 'currency='.$currency.'&mid='.$mid.'&mtid='.$mtid.'&amount='.$amount.'&businesstype='.$businesstype.
'&reportingcriteria='.$reportingcriteria.'&okurl='.$okurl.'&nokurl='.$nokurl.'&language='.$language;
list ($rc, $msg, $data) = self::_doHttpRequest(self::getBaseUrl('create_disposition_url', $configuration['env']), $params, $configuration['keyring_file'], $configuration['keyring_pw'], $configuration['keyring_prepaid']);
if ($rc == 0) {
$data_array = explode("\n", $data,7);
$resultcode = trim($data_array[0]);
$errorcode = trim($data_array[1]);
$errormessage = trim($data_array[2]);
return array($resultcode, $errorcode, $errormessage);
} else {
$resultcode = '9001';
$errorcode = $rc;
$errormessage = 'libcurl error: '.$msg;
return array($resultcode,$errorcode,$errormessage);
}
}
public static function getDispositionState($configuration, $mid, $mtid, $currency_iso_code)
{
$language = 'en';
$params = 'mid='.$mid.'&mtid='.$mtid.'&language='.$language;
list ($rc, $msg, $data) = self::_doHttpRequest(self::getBaseUrl('get_disposition_state_url', $configuration['env']), $params, $configuration['keyring_file'], $configuration['keyring_pw'], $configuration['keyring_prepaid']);
if ($rc == 0) {
$dataarray = explode("\n", $data,7);
$resultcode = trim($dataarray[0]);
$errorcode = trim($dataarray[1]);
$errormessage = trim($dataarray[2]);
$amount = trim($dataarray[3]);
$currency = trim($dataarray[4]);
$state = trim($dataarray[5]);
return array($resultcode, $errorcode, $errormessage, $amount, $currency, $state);
} else {
$resultcode = '9001';
$errorcode = $rc;
$errormessage = 'libcurl error: '.$msg;
return array($resultcode, $errorcode, $errormessage);
}
}
public static function getSerialNumbers($configuration, $mid, $mtid, $currency_iso_code)
{
$language = 'en';
$params = 'mid='.$mid.'&mtid='.$mtid.'&language='.$language;
list ($rc, $msg, $data) = self::_doHttpRequest(self::getBaseUrl('get_serial_number_url', $configuration['env']), $params, $configuration['keyring_file'], $configuration['keyring_pw'], $configuration['keyring_prepaid']);
if ($rc == 0) {
/* read and return data from paysafecard server */
$dataarray = explode("\n", $data,7);
$resultcode = trim($dataarray[0]);
$errorcode = trim($dataarray[1]);
$errormessage = trim($dataarray[2]);
$amount = trim($dataarray[3]);
$currency = trim($dataarray[4]);
$state = trim($dataarray[5]);
$snamount = trim($dataarray[6]);
return array ($resultcode, $errorcode, $errormessage, $amount, $currency, $state, $snamount);
} else {
$resultcode = '9001';
$errorcode = $rc;
$errormessage = 'libcurl error: '.$msg;
return array ($resultcode, $errorcode, $errormessage);
}
}
public static function executeDebit($configuration, $mid, $mtid, $amount, $currency, $close_flag = 1)
{
$language = 'en';
$params = 'currency='.$currency.'&mid='.$mid.'&mtid='.$mtid.'&amount='.$amount.'&close='.$close_flag.'&language='.$language;
list ($rc, $msg, $data) = self::_doHttpRequest(self::getBaseUrl('execute_debit_url', $configuration['env']), $params, $configuration['keyring_file'], $configuration['keyring_pw'], $configuration['keyring_prepaid']);
if ($rc == 0) {
$dataarray=explode("\n", $data,7);
$resultcode=trim($dataarray[0]);
$errorcode=trim($dataarray[1]);
$errormessage=trim($dataarray[2]);
return array ($resultcode, $errorcode, $errormessage);
} else {
$resultcode = '9001';
$errorcode = $rc;
$errormessage = 'libcurl error: '.$msg;
return array ($resultcode, $errorcode, $errormessage);
}
}
private static function _doHttpRequest($url, $urlparam, $keyringfile, $keyringpw, $cakeyringfile)
{
/* some prerquisites for the connection */
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // a non-zero parameter tells the library to do a regular HTTP post.
curl_setopt($ch, CURLOPT_POSTFIELDS, $urlparam); // add POST fields
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); // don't allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 240); // maximum time, in seconds, that you'll allow the CURL functions to take
curl_setopt($ch, CURLOPT_SSLCERT, $keyringfile); // filename of PEM formatted certificate
curl_setopt($ch, CURLOPT_SSLCERTTYPE, "PEM"); // format of certificate, "PEM" or "DER"
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $keyringpw); // password required to use the CURLOPT_SSLCERT certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); // verify the peer's certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // verify the Common name from the peer certificate
curl_setopt($ch, CURLOPT_CAINFO, $cakeyringfile); // file holding one or more certificates to verify the peer with
$data = curl_exec($ch);
$errno = curl_errno($ch);
$errmsg = curl_error($ch);
/* bug fix for PHP 4.1.0/4.1.2 (curl_errno() returns high negative
* value in case of successful termination) */
if ($errno < 0) $errno = 0;
curl_close($ch);
return array ($errno,$errmsg,$data);
}
}
-11
View File
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>paysafecard</name>
<displayName>PaysafeCard</displayName>
<version>1.2</version>
<description>Accepts payments by PaysafeCard.</description>
<author></author>
<tab>payments_gateways</tab>
<is_configurable>1</is_configurable>
<need_instance>1</need_instance>
</module>
-51
View File
@@ -1,51 +0,0 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{paysafecard}prestashop>disposition-error_393988def796f78c4b673b90548f3afa'] = 'Der Dispositionsstatus ist ungültig';
$_MODULE['<{paysafecard}prestashop>disposition-error_5db89f2bf67f2c7dbd86cac101c3c1b8'] = 'Sie sind nicht berechtigt, die Zahlung durchzuführen.';
$_MODULE['<{paysafecard}prestashop>payment_da9c72b9e543135f3f59e3c8ac68ef35'] = 'Bezahlen Sie mit';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_330bf06fb43e715e5d03c9fd016df4cd'] = 'Die Zahlung wurde noch nicht akzeptiert:';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_486cb12e1ec3c8b28b80a8eb9f2db2c0'] = 'Zahlung akzeptieren ';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_e9b3579d8e877bcd29ab436f2ef87cc8'] = 'Betrag freigeben';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_2e2117b7c81aa9ea6931641ea2c6499f'] = 'Ihre Bestellung vom';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_75fbf512d744977d62599cc3f0ae2bb4'] = 'ist abgeschlossen.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_91675397c13245179e4bc959514fc2ca'] = 'Sie haben die ';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_2c987f462c2ab7fc63e061e871e6a97d'] = '-Methode gewählt.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_e6dc7945b557a1cd949bea92dd58963e'] = 'Ihre Bestellung wird sehr bald geschickt werden.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_0db71da7150c27142eef9d22b843b4a9'] = 'Bei Fragen oder für weitere Informationen, kontaktieren Sie bitte unseren';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_64430ad2835be8ad60c59e7d44e4b0b1'] = 'Kunden-Support';
$_MODULE['<{paysafecard}prestashop>paysafecard_be9240e3ec97017ab6af036384ff7199'] = 'PaysafeCard';
$_MODULE['<{paysafecard}prestashop>paysafecard_b3e93e632edfb4fa64c3c0949c5eb56d'] = 'Akzeptiert Zahlungen per Paysafecard';
$_MODULE['<{paysafecard}prestashop>paysafecard_bed51f5187d4bf98e08f44d93f3098d9'] = 'Disposition erstellt. Warten auf Belastung.';
$_MODULE['<{paysafecard}prestashop>paysafecard_894f0316a71ef67255369c82bf8a0e5b'] = 'Ungültiger Dispositionsstatus:';
$_MODULE['<{paysafecard}prestashop>paysafecard_c1c25198721552ea8ddd963c7278d4ab'] = 'Ein Fehler ist bei der Zahlung aufgetreten:';
$_MODULE['<{paysafecard}prestashop>paysafecard_36ec50c0e914dd2fb48a1b27540512ce'] = 'Zahlung akzeptiert.';
$_MODULE['<{paysafecard}prestashop>paysafecard_d6ca44369efe062cec0c09f392465f55'] = 'Dieses Modul erfordert das ordnungsgemäße Funktionieren der CURL PHP-Erweiterung.';
$_MODULE['<{paysafecard}prestashop>paysafecard_8e9647b486000683917484190b68ac8a'] = 'ist nicht beschreibbar!';
$_MODULE['<{paysafecard}prestashop>paysafecard_139cfa047b503ac5b9a6b4b1b03090ad'] = 'Dieses Modul erfordert die Währung:';
$_MODULE['<{paysafecard}prestashop>paysafecard_ef5d34b04ab3b2eaaf7cb9d0f51267ed'] = 'Konfigurieren Sie jede Währung einzeln:';
$_MODULE['<{paysafecard}prestashop>paysafecard_be9c8794db26bbef6bd2aaa68c15211d'] = '(Das Zahlungsmodul wird nicht für Kunden angezeigt, die nicht konfigurierte Währung benutzen.)';
$_MODULE['<{paysafecard}prestashop>paysafecard_7d3d009ac1b9d1e826a1a72c046ea635'] = 'Konfiguration in';
$_MODULE['<{paysafecard}prestashop>paysafecard_229a7ec501323b94db7ff3157a7623c9'] = 'Händler-ID';
$_MODULE['<{paysafecard}prestashop>paysafecard_845314022daaa8b665e718c4b51738aa'] = 'Keyring Zertifikat';
$_MODULE['<{paysafecard}prestashop>paysafecard_a01813de717585e9ac9458bbfc54485a'] = 'Keyring PW';
$_MODULE['<{paysafecard}prestashop>paysafecard_254f642527b45bc260048e30704edb39'] = 'Konfiguration';
$_MODULE['<{paysafecard}prestashop>paysafecard_0ba29c6a1afacf586b03a26162c72274'] = 'Umgebung';
$_MODULE['<{paysafecard}prestashop>paysafecard_1d5ad3d37f236c9eebda547690373bba'] = 'Geschäftsart';
$_MODULE['<{paysafecard}prestashop>paysafecard_b024248d9fecf8c34f629e89a9fb93b4'] = 'Sofortige Zahlung';
$_MODULE['<{paysafecard}prestashop>paysafecard_c80a51a60c5ee43553c3881459b8f431'] = 'Konfiguration aktualisieren';
$_MODULE['<{paysafecard}prestashop>paysafecard_86f28c996ee9075e9fc9a97dc8d5f254'] = 'Sie müssen ein Zertifikat für die Händler-ID vorweisen';
$_MODULE['<{paysafecard}prestashop>paysafecard_bbced877c13c763f0141ff906c8ed0e5'] = 'Ungültige Datei';
$_MODULE['<{paysafecard}prestashop>paysafecard_97e5793f511c7930ab295997cb28553a'] = 'Ungültige Händler-ID';
$_MODULE['<{paysafecard}prestashop>paysafecard_c888438d14855d7d96a2724ee9c306bd'] = 'Einstellungen aktualisiert';
$_MODULE['<{paysafecard}prestashop>paysafecard_c7c32346a2f800fc49f79d52f3f37f90'] = 'Die Datei wurde teilweise hochgeladen';
$_MODULE['<{paysafecard}prestashop>paysafecard_f09bc49e98e94cb04dc058087fbb3878'] = 'Die Datei ist leer';
$_MODULE['<{paysafecard}prestashop>paysafecard_e9185d874b4244d6f13619cf77dca0aa'] = 'Die Transaktion konnte wegen Problemen mit der Verbindung nicht initiiert werden. Wenn das Problem weiterhin besteht, wenden Sie sich bitte an unseren Support.';
$_MODULE['<{paysafecard}prestashop>paysafecard_99f6765a05b697eb78e8c2e5e228f2fc'] = 'Disposition verbraucht';
$_MODULE['<{paysafecard}prestashop>paysafecard_c3e260f43a99b6fd907538953fe700d0'] = 'Disposition freigegeben';
$_MODULE['<{paysafecard}prestashop>paysafecard_f6a62a622cbba2c1b8cd0be062deff96'] = 'Ein Fehler ist während der Freigabe aufgetreten ';
$_MODULE['<{paysafecard}prestashop>paysafecard_315e941f57cf90350aea15d968e190f8'] = 'paysafecard ist Europas erste Prepaid-Lösung für Zahlungen im Internet in Übereinstimmung mit Bankgesetzen. In den letzten Jahren hat sich paysafecard zu einer der führenden alternativen europäischen Online-Payment-Lösungen entwickelt.';
$_MODULE['<{paysafecard}prestashop>paysafecard_d59048f21fd887ad520398ce677be586'] = 'Erfahren Sie mehr';
$_MODULE['<{paysafecard}prestashop>paysafecard_ee363d108ef0c9c5a599d3afe04b9e32'] = 'Ein Fehler ist aufgetreten, überprüfen Sie die Mitteilungen, um mehr zu erfahren';
$_MODULE['<{paysafecard}prestashop>paysafecard_a9ced76f2dd6907220fa95b3a136b04a'] = 'Ungültiger Betrag';
-37
View File
@@ -1,37 +0,0 @@
{*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<br />
<fieldset style="width: 400px">
<legend><img src="../img/admin/tab-customers.gif" />{$payment_name}</legend>
<p style="color: red; font-weight: bold;">
{l s='The disposition state is invalid' mod='paysafecard'} ({$disposition_state})
{l s='. You are not allowed to perform the payment.' mod='paysafecard'}
</p>
</fieldset>
-51
View File
@@ -1,51 +0,0 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{paysafecard}prestashop>disposition-error_393988def796f78c4b673b90548f3afa'] = 'La disposición se encuentra en un estado no válido';
$_MODULE['<{paysafecard}prestashop>disposition-error_5db89f2bf67f2c7dbd86cac101c3c1b8'] = 'No está autorizado a recuperar el pago.';
$_MODULE['<{paysafecard}prestashop>payment_da9c72b9e543135f3f59e3c8ac68ef35'] = 'Pagar con';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_330bf06fb43e715e5d03c9fd016df4cd'] = 'El pago aún no ha sido aceptado';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_486cb12e1ec3c8b28b80a8eb9f2db2c0'] = 'Aceptar el pago';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_e9b3579d8e877bcd29ab436f2ef87cc8'] = 'Rechazar el pago';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_2e2117b7c81aa9ea6931641ea2c6499f'] = 'Su pedido en';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_75fbf512d744977d62599cc3f0ae2bb4'] = 'ha sido registrado.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_91675397c13245179e4bc959514fc2ca'] = 'Ha elegido pagar con';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_2c987f462c2ab7fc63e061e871e6a97d'] = 'método.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_e6dc7945b557a1cd949bea92dd58963e'] = 'Su pedido será enviado rápidamente';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_0db71da7150c27142eef9d22b843b4a9'] = 'Para cualquier pregunta o información suplementaria, póngase en contacto con nuestro';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_64430ad2835be8ad60c59e7d44e4b0b1'] = 'servicio clientela';
$_MODULE['<{paysafecard}prestashop>paysafecard_be9240e3ec97017ab6af036384ff7199'] = 'PaysafeCard';
$_MODULE['<{paysafecard}prestashop>paysafecard_b3e93e632edfb4fa64c3c0949c5eb56d'] = 'Aceptar los pagos a través de PaysafeCard';
$_MODULE['<{paysafecard}prestashop>paysafecard_bed51f5187d4bf98e08f44d93f3098d9'] = 'Disposición creada. En espera del débito.';
$_MODULE['<{paysafecard}prestashop>paysafecard_894f0316a71ef67255369c82bf8a0e5b'] = 'El estado de la disposición no es válido:';
$_MODULE['<{paysafecard}prestashop>paysafecard_c1c25198721552ea8ddd963c7278d4ab'] = 'Se ha producido un error durante el pago:';
$_MODULE['<{paysafecard}prestashop>paysafecard_36ec50c0e914dd2fb48a1b27540512ce'] = 'Pago aceptado';
$_MODULE['<{paysafecard}prestashop>paysafecard_d6ca44369efe062cec0c09f392465f55'] = 'Este módulo necesita la librería PHP cURL para funcionar correctamente.';
$_MODULE['<{paysafecard}prestashop>paysafecard_8e9647b486000683917484190b68ac8a'] = 'no tiene los derechos en escritura.';
$_MODULE['<{paysafecard}prestashop>paysafecard_139cfa047b503ac5b9a6b4b1b03090ad'] = 'Para funcionar correctamente, este módulo necesita la divisa:';
$_MODULE['<{paysafecard}prestashop>paysafecard_ef5d34b04ab3b2eaaf7cb9d0f51267ed'] = 'Configurar cada divisa independientemente:';
$_MODULE['<{paysafecard}prestashop>paysafecard_be9c8794db26bbef6bd2aaa68c15211d'] = '(El módulo de pago no se mostrará a los clientes que utilicen una divisa no configurada)';
$_MODULE['<{paysafecard}prestashop>paysafecard_7d3d009ac1b9d1e826a1a72c046ea635'] = 'Configuración en';
$_MODULE['<{paysafecard}prestashop>paysafecard_229a7ec501323b94db7ff3157a7623c9'] = 'ID vendedor';
$_MODULE['<{paysafecard}prestashop>paysafecard_845314022daaa8b665e718c4b51738aa'] = 'Keyring Certificado';
$_MODULE['<{paysafecard}prestashop>paysafecard_a01813de717585e9ac9458bbfc54485a'] = 'Keyring PW';
$_MODULE['<{paysafecard}prestashop>paysafecard_254f642527b45bc260048e30704edb39'] = 'Configuración';
$_MODULE['<{paysafecard}prestashop>paysafecard_0ba29c6a1afacf586b03a26162c72274'] = 'Entorno';
$_MODULE['<{paysafecard}prestashop>paysafecard_1d5ad3d37f236c9eebda547690373bba'] = 'Tipo negocio';
$_MODULE['<{paysafecard}prestashop>paysafecard_b024248d9fecf8c34f629e89a9fb93b4'] = 'Pago inmediato';
$_MODULE['<{paysafecard}prestashop>paysafecard_c80a51a60c5ee43553c3881459b8f431'] = 'Actualizar la configuración';
$_MODULE['<{paysafecard}prestashop>paysafecard_86f28c996ee9075e9fc9a97dc8d5f254'] = 'Debe indicar un certificado para el ID vendedor';
$_MODULE['<{paysafecard}prestashop>paysafecard_bbced877c13c763f0141ff906c8ed0e5'] = 'Archivo no válido';
$_MODULE['<{paysafecard}prestashop>paysafecard_97e5793f511c7930ab295997cb28553a'] = 'ID del vendedor no válido';
$_MODULE['<{paysafecard}prestashop>paysafecard_c888438d14855d7d96a2724ee9c306bd'] = 'Configuración actualizada';
$_MODULE['<{paysafecard}prestashop>paysafecard_c7c32346a2f800fc49f79d52f3f37f90'] = 'El archivo no se ha cargado correctamente';
$_MODULE['<{paysafecard}prestashop>paysafecard_f09bc49e98e94cb04dc058087fbb3878'] = 'El archivo está vacío';
$_MODULE['<{paysafecard}prestashop>paysafecard_e9185d874b4244d6f13619cf77dca0aa'] = 'La transacción no ha podido inicializarse por problemas de conexión. Si el problema persiste, contacte con nosotros.';
$_MODULE['<{paysafecard}prestashop>paysafecard_99f6765a05b697eb78e8c2e5e228f2fc'] = 'Disposición consumida';
$_MODULE['<{paysafecard}prestashop>paysafecard_c3e260f43a99b6fd907538953fe700d0'] = 'Disposición abandonada';
$_MODULE['<{paysafecard}prestashop>paysafecard_f6a62a622cbba2c1b8cd0be062deff96'] = 'Se ha producido un error en el momento de abandonar.';
$_MODULE['<{paysafecard}prestashop>paysafecard_315e941f57cf90350aea15d968e190f8'] = 'Todo el mundo puede utilizar Paysafecard ya que no necesita ni tarjeta de crédito ni cuenta bancaria. En los últimos años, Paysafecard se ha convertido en uno de los líderes de los modos de pago en línea alternativos.';
$_MODULE['<{paysafecard}prestashop>paysafecard_d59048f21fd887ad520398ce677be586'] = 'Más información';
$_MODULE['<{paysafecard}prestashop>paysafecard_ee363d108ef0c9c5a599d3afe04b9e32'] = 'Se ha producido un error. Consulte el apartado \"Mensajes\" para más información.';
$_MODULE['<{paysafecard}prestashop>paysafecard_a9ced76f2dd6907220fa95b3a136b04a'] = 'Importe incorrecto';
-51
View File
@@ -1,51 +0,0 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{paysafecard}prestashop>disposition-error_393988def796f78c4b673b90548f3afa'] = 'La disposition est dans un état invalide';
$_MODULE['<{paysafecard}prestashop>disposition-error_5db89f2bf67f2c7dbd86cac101c3c1b8'] = '. Vous n\'êtes pas authorisé à récupérer le paiement.';
$_MODULE['<{paysafecard}prestashop>payment_da9c72b9e543135f3f59e3c8ac68ef35'] = 'Payer avec';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_330bf06fb43e715e5d03c9fd016df4cd'] = 'Le paiement n\'a pas encore été accepté : ';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_486cb12e1ec3c8b28b80a8eb9f2db2c0'] = 'Accepter le paiement';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_e9b3579d8e877bcd29ab436f2ef87cc8'] = 'Relacher le paiement';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_2e2117b7c81aa9ea6931641ea2c6499f'] = 'Votre commande sur';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_75fbf512d744977d62599cc3f0ae2bb4'] = 'a bien été enregistrée.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_91675397c13245179e4bc959514fc2ca'] = 'Vous avez choisi de payer avec ';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_2c987f462c2ab7fc63e061e871e6a97d'] = ' ';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_e6dc7945b557a1cd949bea92dd58963e'] = 'Votre commande va être expediée rapidement.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_0db71da7150c27142eef9d22b843b4a9'] = 'Pour toutes questions ou informations complémentaires, contactez notre';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_64430ad2835be8ad60c59e7d44e4b0b1'] = 'service client';
$_MODULE['<{paysafecard}prestashop>paysafecard_be9240e3ec97017ab6af036384ff7199'] = 'PaysafeCard';
$_MODULE['<{paysafecard}prestashop>paysafecard_b3e93e632edfb4fa64c3c0949c5eb56d'] = 'Accepter les paiements via PaysafeCard';
$_MODULE['<{paysafecard}prestashop>paysafecard_bed51f5187d4bf98e08f44d93f3098d9'] = 'Disposition crée. En attente du débit.';
$_MODULE['<{paysafecard}prestashop>paysafecard_894f0316a71ef67255369c82bf8a0e5b'] = 'L\'état de la disposition est invalide :';
$_MODULE['<{paysafecard}prestashop>paysafecard_c1c25198721552ea8ddd963c7278d4ab'] = 'Une erreur est survenue pendant le paiement :';
$_MODULE['<{paysafecard}prestashop>paysafecard_36ec50c0e914dd2fb48a1b27540512ce'] = 'Paiement accepté.';
$_MODULE['<{paysafecard}prestashop>paysafecard_d6ca44369efe062cec0c09f392465f55'] = 'Ce module requiert la librairie PHP cURL pour fonctionner correctement.';
$_MODULE['<{paysafecard}prestashop>paysafecard_8e9647b486000683917484190b68ac8a'] = 'n\'a pas les droits en écriture.';
$_MODULE['<{paysafecard}prestashop>paysafecard_139cfa047b503ac5b9a6b4b1b03090ad'] = 'Ce module pour fonctionner correctement requiert la devise :';
$_MODULE['<{paysafecard}prestashop>paysafecard_ef5d34b04ab3b2eaaf7cb9d0f51267ed'] = 'Configurer chaque devise indépendament :';
$_MODULE['<{paysafecard}prestashop>paysafecard_be9c8794db26bbef6bd2aaa68c15211d'] = '(Le module de paiement ne sera pas affiché pour les clients qui utilisent une devise non configurée)';
$_MODULE['<{paysafecard}prestashop>paysafecard_7d3d009ac1b9d1e826a1a72c046ea635'] = 'Configuration en';
$_MODULE['<{paysafecard}prestashop>paysafecard_229a7ec501323b94db7ff3157a7623c9'] = 'ID Marchand';
$_MODULE['<{paysafecard}prestashop>paysafecard_845314022daaa8b665e718c4b51738aa'] = 'Keyring Certificat';
$_MODULE['<{paysafecard}prestashop>paysafecard_a01813de717585e9ac9458bbfc54485a'] = 'Keyring PW';
$_MODULE['<{paysafecard}prestashop>paysafecard_254f642527b45bc260048e30704edb39'] = 'Configuration';
$_MODULE['<{paysafecard}prestashop>paysafecard_0ba29c6a1afacf586b03a26162c72274'] = 'Environement';
$_MODULE['<{paysafecard}prestashop>paysafecard_1d5ad3d37f236c9eebda547690373bba'] = 'Business Type';
$_MODULE['<{paysafecard}prestashop>paysafecard_b024248d9fecf8c34f629e89a9fb93b4'] = 'Paiement immédiat';
$_MODULE['<{paysafecard}prestashop>paysafecard_c80a51a60c5ee43553c3881459b8f431'] = 'Mettre à jour la configuration';
$_MODULE['<{paysafecard}prestashop>paysafecard_86f28c996ee9075e9fc9a97dc8d5f254'] = 'Vous devez fournir un certificat pour l\'ID marchand';
$_MODULE['<{paysafecard}prestashop>paysafecard_bbced877c13c763f0141ff906c8ed0e5'] = 'Fichier invalide';
$_MODULE['<{paysafecard}prestashop>paysafecard_97e5793f511c7930ab295997cb28553a'] = 'ID marchand invalide';
$_MODULE['<{paysafecard}prestashop>paysafecard_c888438d14855d7d96a2724ee9c306bd'] = 'Configuration mise à jour';
$_MODULE['<{paysafecard}prestashop>paysafecard_c7c32346a2f800fc49f79d52f3f37f90'] = 'Le fichier n\'a pas été téléchargé correctement';
$_MODULE['<{paysafecard}prestashop>paysafecard_f09bc49e98e94cb04dc058087fbb3878'] = 'Le fichier est vide';
$_MODULE['<{paysafecard}prestashop>paysafecard_e9185d874b4244d6f13619cf77dca0aa'] = 'La transaction n\'a pu être initialisée du à des problèmes de connexions. Si le problème persiste, merci de nous contacter.';
$_MODULE['<{paysafecard}prestashop>paysafecard_99f6765a05b697eb78e8c2e5e228f2fc'] = 'Disposition consommée';
$_MODULE['<{paysafecard}prestashop>paysafecard_c3e260f43a99b6fd907538953fe700d0'] = 'Disposition relachée';
$_MODULE['<{paysafecard}prestashop>paysafecard_f6a62a622cbba2c1b8cd0be062deff96'] = 'Une erreur est survenue au moment de la relache.';
$_MODULE['<{paysafecard}prestashop>paysafecard_315e941f57cf90350aea15d968e190f8'] = 'Tout le monde peut utiliser paysafecard puisqu’elle ne nécessite ni carte de crédit ni compte bancaire. Aux cours des dernières années, Paysafecard est devenu l\'un des leaders des moyens de paiement en ligne alternatifs. ';
$_MODULE['<{paysafecard}prestashop>paysafecard_d59048f21fd887ad520398ce677be586'] = 'En savoir plus';
$_MODULE['<{paysafecard}prestashop>paysafecard_ee363d108ef0c9c5a599d3afe04b9e32'] = 'Une erreur est survenue. Consulter la partie \"Messages\" ci-dessous pour plus d\'informations';
$_MODULE['<{paysafecard}prestashop>paysafecard_a9ced76f2dd6907220fa95b3a136b04a'] = 'Montant incorrect';
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

-51
View File
@@ -1,51 +0,0 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{paysafecard}prestashop>disposition-error_393988def796f78c4b673b90548f3afa'] = 'Lo stato di disposizione non è valido';
$_MODULE['<{paysafecard}prestashop>disposition-error_5db89f2bf67f2c7dbd86cac101c3c1b8'] = '. Non hai i permessi per effettuare il pagamento.';
$_MODULE['<{paysafecard}prestashop>payment_da9c72b9e543135f3f59e3c8ac68ef35'] = 'Paga con';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_330bf06fb43e715e5d03c9fd016df4cd'] = 'Il pagamento non è stato ancora accettato:';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_486cb12e1ec3c8b28b80a8eb9f2db2c0'] = 'Accetta il pagamento';
$_MODULE['<{paysafecard}prestashop>paysafecard-accept-payment_e9b3579d8e877bcd29ab436f2ef87cc8'] = 'Rilascia l\'importo';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_2e2117b7c81aa9ea6931641ea2c6499f'] = 'Il tuo ordine';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_75fbf512d744977d62599cc3f0ae2bb4'] = 'è completo.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_91675397c13245179e4bc959514fc2ca'] = 'Hai scelto il';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_2c987f462c2ab7fc63e061e871e6a97d'] = 'metodo.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_e6dc7945b557a1cd949bea92dd58963e'] = 'Il tuo ordine verrà inviato al più presto.';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_0db71da7150c27142eef9d22b843b4a9'] = 'Per eventuali domande o per ulteriori informazioni, contatta la nostra';
$_MODULE['<{paysafecard}prestashop>paysafecard-confirmation_64430ad2835be8ad60c59e7d44e4b0b1'] = 'assistenza clienti';
$_MODULE['<{paysafecard}prestashop>paysafecard_be9240e3ec97017ab6af036384ff7199'] = 'PaysafeCard';
$_MODULE['<{paysafecard}prestashop>paysafecard_b3e93e632edfb4fa64c3c0949c5eb56d'] = 'Si accettano pagamenti con PaysafeCard';
$_MODULE['<{paysafecard}prestashop>paysafecard_bed51f5187d4bf98e08f44d93f3098d9'] = 'Disposizione creata. In attesa di addebito.';
$_MODULE['<{paysafecard}prestashop>paysafecard_894f0316a71ef67255369c82bf8a0e5b'] = 'Stato della disposizione non valido:';
$_MODULE['<{paysafecard}prestashop>paysafecard_c1c25198721552ea8ddd963c7278d4ab'] = 'Si è verificato un errore durante il pagamento:';
$_MODULE['<{paysafecard}prestashop>paysafecard_36ec50c0e914dd2fb48a1b27540512ce'] = 'Pagamento accettato.';
$_MODULE['<{paysafecard}prestashop>paysafecard_d6ca44369efe062cec0c09f392465f55'] = 'Questo modulo richiede che l\'estensione curl di PHP funzioni correttamente.';
$_MODULE['<{paysafecard}prestashop>paysafecard_8e9647b486000683917484190b68ac8a'] = 'non è scrivibile!';
$_MODULE['<{paysafecard}prestashop>paysafecard_139cfa047b503ac5b9a6b4b1b03090ad'] = 'Questo modulo richiede la valuta:';
$_MODULE['<{paysafecard}prestashop>paysafecard_ef5d34b04ab3b2eaaf7cb9d0f51267ed'] = 'Configurare ogni valuta singolarmente:';
$_MODULE['<{paysafecard}prestashop>paysafecard_be9c8794db26bbef6bd2aaa68c15211d'] = '(Il modulo di pagamento non sarà visualizzato per i clienti che utilizzano una valuta non configurata.)';
$_MODULE['<{paysafecard}prestashop>paysafecard_7d3d009ac1b9d1e826a1a72c046ea635'] = 'Configurazione in';
$_MODULE['<{paysafecard}prestashop>paysafecard_229a7ec501323b94db7ff3157a7623c9'] = 'ID commerciante';
$_MODULE['<{paysafecard}prestashop>paysafecard_845314022daaa8b665e718c4b51738aa'] = 'Certificato Keyring';
$_MODULE['<{paysafecard}prestashop>paysafecard_a01813de717585e9ac9458bbfc54485a'] = 'PW Keyring';
$_MODULE['<{paysafecard}prestashop>paysafecard_254f642527b45bc260048e30704edb39'] = 'Configurazione';
$_MODULE['<{paysafecard}prestashop>paysafecard_0ba29c6a1afacf586b03a26162c72274'] = 'Ambiente';
$_MODULE['<{paysafecard}prestashop>paysafecard_1d5ad3d37f236c9eebda547690373bba'] = 'Tipo di Business';
$_MODULE['<{paysafecard}prestashop>paysafecard_b024248d9fecf8c34f629e89a9fb93b4'] = 'Pagamento immediato';
$_MODULE['<{paysafecard}prestashop>paysafecard_c80a51a60c5ee43553c3881459b8f431'] = 'Aggiornare la configurazione';
$_MODULE['<{paysafecard}prestashop>paysafecard_86f28c996ee9075e9fc9a97dc8d5f254'] = 'È necessario fornire un certificato per ID commerciante';
$_MODULE['<{paysafecard}prestashop>paysafecard_bbced877c13c763f0141ff906c8ed0e5'] = 'File non valido';
$_MODULE['<{paysafecard}prestashop>paysafecard_97e5793f511c7930ab295997cb28553a'] = 'ID commerciante non valido';
$_MODULE['<{paysafecard}prestashop>paysafecard_c888438d14855d7d96a2724ee9c306bd'] = 'Impostazioni aggiornate';
$_MODULE['<{paysafecard}prestashop>paysafecard_c7c32346a2f800fc49f79d52f3f37f90'] = 'Il file è stato parzialmente caricato';
$_MODULE['<{paysafecard}prestashop>paysafecard_f09bc49e98e94cb04dc058087fbb3878'] = 'Il file è vuoto';
$_MODULE['<{paysafecard}prestashop>paysafecard_e9185d874b4244d6f13619cf77dca0aa'] = 'Operazione non avviata a causa di problemi di connessione. Se il problema persiste, contatta il nostro supporto.';
$_MODULE['<{paysafecard}prestashop>paysafecard_99f6765a05b697eb78e8c2e5e228f2fc'] = 'Disposizione consumata';
$_MODULE['<{paysafecard}prestashop>paysafecard_c3e260f43a99b6fd907538953fe700d0'] = 'Disposizione rilasciata';
$_MODULE['<{paysafecard}prestashop>paysafecard_f6a62a622cbba2c1b8cd0be062deff96'] = 'È verificato un errore durante il rilascio';
$_MODULE['<{paysafecard}prestashop>paysafecard_315e941f57cf90350aea15d968e190f8'] = 'paysafecard è la prima soluzione prepagata d\'Europa per i pagamenti su Internet che rispetta le leggi bancarie. Negli ultimi anni, paysafecard è diventato una delle soluzioni alternative di pagamento online leader in Europa.';
$_MODULE['<{paysafecard}prestashop>paysafecard_d59048f21fd887ad520398ce677be586'] = 'Per saperne di più';
$_MODULE['<{paysafecard}prestashop>paysafecard_ee363d108ef0c9c5a599d3afe04b9e32'] = 'Si è verificato un errore, controlla Messaggi per maggiori informazioni';
$_MODULE['<{paysafecard}prestashop>paysafecard_a9ced76f2dd6907220fa95b3a136b04a'] = 'Importo non valido';
-1
View File
@@ -1 +0,0 @@
Deny from all
@@ -1,227 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFszCCBJugAwIBAgIBADANBgkqhkiG9w0BAQQFADCB7zEhMB8GCSqGSIb3DQEJ
ARYSY2FAcGF5c2FmZWNhcmQuY29tMQswCQYDVQQGEwJBVDEPMA0GA1UECBMGVmll
bm5hMQ8wDQYDVQQHEwZWaWVubmExHDAaBgNVBAsTE3BheXNhZmVjYXJkIFJvb3Qg
Q0ExLDAqBgNVBAsTI3BheXNhZmVjYXJkIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
MSYwJAYDVQQKEx1wYXlzYWZlY2FyZC5jb20gV2VydGthcnRlbiBBRzEnMCUGA1UE
AxMecGF5c2FmZWNhcmQgUm9vdCBDQSAtIFN5c3RlbSBQMB4XDTAyMDExMDE2NDU0
M1oXDTM4MDExMDE2NDU0M1owge8xITAfBgkqhkiG9w0BCQEWEmNhQHBheXNhZmVj
YXJkLmNvbTELMAkGA1UEBhMCQVQxDzANBgNVBAgTBlZpZW5uYTEPMA0GA1UEBxMG
Vmllbm5hMRwwGgYDVQQLExNwYXlzYWZlY2FyZCBSb290IENBMSwwKgYDVQQLEyNw
YXlzYWZlY2FyZCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEmMCQGA1UEChMdcGF5
c2FmZWNhcmQuY29tIFdlcnRrYXJ0ZW4gQUcxJzAlBgNVBAMTHnBheXNhZmVjYXJk
IFJvb3QgQ0EgLSBTeXN0ZW0gUDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBALRAMIFNZR16P4ggPR6hlyXGSONVOklx7U3Xg9zihKA4vmzVMwXUJPP+lHCU
OKiYUSU+cQ+BMfTJCJPvJlqOHH36+ugyGQLI2M9Lq7ILxkGJ3+iQJx4ON1Yf3lJh
uyPLMjvRVCOoN29fUOROfdBxlAGNG33kKYNEh+VJ+ibxX5DmZApsMu6lJJ7LUZvs
2Rho6r9wKQVZaPNeWzJb+7dgLlW7XLIQIv6Fp/bMhZDPhCrX4rN0iiR7I9o5DZiJ
OXwRmWhroRUEo9pPf44XMfdEyaWDK6tbnIsEa7gTOPY3Zt5SMFeSYw1E0OjkUyFo
WL0NoAT7beVqJar+zzwvOjVaeMUCAwEAAaOCAVYwggFSMA8GA1UdEwEB/wQFMAMB
Af8wHQYDVR0OBBYEFCgXaDOdI1dXvmnxpQ1ZM3M/BK07MIIBHgYDVR0jBIIBFTCC
ARGAFCgXaDOdI1dXvmnxpQ1ZM3M/BK07oYH1pIHyMIHvMSEwHwYJKoZIhvcNAQkB
FhJjYUBwYXlzYWZlY2FyZC5jb20xCzAJBgNVBAYTAkFUMQ8wDQYDVQQIEwZWaWVu
bmExDzANBgNVBAcTBlZpZW5uYTEcMBoGA1UECxMTcGF5c2FmZWNhcmQgUm9vdCBD
QTEsMCoGA1UECxMjcGF5c2FmZWNhcmQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx
JjAkBgNVBAoTHXBheXNhZmVjYXJkLmNvbSBXZXJ0a2FydGVuIEFHMScwJQYDVQQD
Ex5wYXlzYWZlY2FyZCBSb290IENBIC0gU3lzdGVtIFCCAQAwDQYJKoZIhvcNAQEE
BQADggEBAEkGu19kW0cROxNmEIhlF2LMFA8Jj9Y5aPPDwM1tMIoZtFWCH1g1g0Zl
PDrp9+ihDFimiXfhIosGvnrclbQ5yIJnxoNmDptkCKTAB+4rPoHSIz8rjCHHTOU2
rJMVdFvS8hcVkallN1g9o8g7ryA2vRltum5NZUBwAFq986Cur4l2koRzz1UyOkrT
0G0i8cQIR9trGuCaUbhIFTBe/QvSNkIEqDWRDPLfBQnYnBFSwObH5uXiToUXlTnM
/aOuY+p2D8Oh6MneD6nh8turvFTMkLqLS7DzjQAYmF7HWGkRFPsHi2EtLFVIwM9q
FioR7mWBcKh2lZr18AtzGIkKQSQWQkI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFujCCBKKgAwIBAgIEIAAABjANBgkqhkiG9w0BAQQFADCB7zEhMB8GCSqGSIb3
DQEJARYSY2FAcGF5c2FmZWNhcmQuY29tMQswCQYDVQQGEwJBVDEPMA0GA1UECBMG
Vmllbm5hMQ8wDQYDVQQHEwZWaWVubmExHDAaBgNVBAsTE3BheXNhZmVjYXJkIFJv
b3QgQ0ExLDAqBgNVBAsTI3BheXNhZmVjYXJkIENlcnRpZmljYXRpb24gQXV0aG9y
aXR5MSYwJAYDVQQKEx1wYXlzYWZlY2FyZC5jb20gV2VydGthcnRlbiBBRzEnMCUG
A1UEAxMecGF5c2FmZWNhcmQgUm9vdCBDQSAtIFN5c3RlbSBQMB4XDTAyMDExNjEy
MTUxN1oXDTM0MDExNjEyMTUxN1owgfMxCzAJBgNVBAYTAkFUMQ8wDQYDVQQIEwZW
aWVubmExDzANBgNVBAcTBlZpZW5uYTEmMCQGA1UEChMdcGF5c2FmZWNhcmQuY29t
IFdlcnRrYXJ0ZW4gQUcxHjAcBgNVBAsTFXBheXNhZmVjYXJkIFNlcnZlciBDQTEs
MCoGA1UECxMjcGF5c2FmZWNhcmQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxKTAn
BgNVBAMTIHBheXNhZmVjYXJkIFNlcnZlciBDQSAtIFN5c3RlbSBQMSEwHwYJKoZI
hvcNAQkBFhJjYUBwYXlzYWZlY2FyZC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDGbD6yVmszQYpuUX0zVyam8DdqPXfY5c8OSQK7u8I7mPoEw0SG
lxSbHy7Aywlx5rhSr6j1k0HgmnOsO6j6bup5CXGvGBWkiahN1TrUN8qAZvIdorUz
+YrZyg/EkddrOqkgZpaqyEEJ2wGdM3Lhbg8oBWufVh/TX0sA9K0NCSrl3UzKLw0n
mEVbUnBxRUGbctnOkmLiIWqX7o8jmupvE7lIvRPLHUyFKGp0Wn2oKosr3fhCQxEU
4dQdH9Uwf53kPt0Ct0MML1p1u8OAN4e6bYL1T86YA/bnaaPFI5D4cVP66X1gcamM
+ro//XJOee2d1FM7lWoyA03ypt54SRB1N6aVAgMBAAGjggFWMIIBUjAPBgNVHRMB
Af8EBTADAQH/MB0GA1UdDgQWBBSB6bcBOjQU0y5+rr8pbTyHYFxKbjCCAR4GA1Ud
IwSCARUwggERgBQoF2gznSNXV75p8aUNWTNzPwStO6GB9aSB8jCB7zEhMB8GCSqG
SIb3DQEJARYSY2FAcGF5c2FmZWNhcmQuY29tMQswCQYDVQQGEwJBVDEPMA0GA1UE
CBMGVmllbm5hMQ8wDQYDVQQHEwZWaWVubmExHDAaBgNVBAsTE3BheXNhZmVjYXJk
IFJvb3QgQ0ExLDAqBgNVBAsTI3BheXNhZmVjYXJkIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5MSYwJAYDVQQKEx1wYXlzYWZlY2FyZC5jb20gV2VydGthcnRlbiBBRzEn
MCUGA1UEAxMecGF5c2FmZWNhcmQgUm9vdCBDQSAtIFN5c3RlbSBQggEAMA0GCSqG
SIb3DQEBBAUAA4IBAQAwuR+OYbQh8+2A8Ya48pGbEbggbYfJYZAcfZlTxVeilkXb
jhinDfG4mBuvsW8RG7CW1fnHYlytyN9AVJFHchB57SkfDDxhPYI6WBsJTnDaxROa
QzW0r6Pi3e5XAtqC221vKYYC5OoMBq+S+LWUc9kSYX7PAm3ObCEPNBirJMDDwSLm
iovY3UHByFeJ8dYM5u7wKM+WRBzIEi4dMk5VWWx7KO7fieGTxqVCPa1Bd1GQV3yq
Z5P0lzduqD2M1oUr1BCwiivxpHO4aMYo9lVz7ZMFhbyDLiiQqcR3unVKpSpN4oAq
TW3iZ32LXHkLFSCEFinOO43/uWk8+RzNR0N+XZ1F
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFszCCBJugAwIBAgIBADANBgkqhkiG9w0BAQQFADCB7zEhMB8GCSqGSIb3DQEJ
ARYSY2FAcGF5c2FmZWNhcmQuY29tMQswCQYDVQQGEwJBVDEPMA0GA1UECBMGVmll
bm5hMQ8wDQYDVQQHEwZWaWVubmExHDAaBgNVBAsTE3BheXNhZmVjYXJkIFJvb3Qg
Q0ExLDAqBgNVBAsTI3BheXNhZmVjYXJkIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
MSYwJAYDVQQKEx1wYXlzYWZlY2FyZC5jb20gV2VydGthcnRlbiBBRzEnMCUGA1UE
AxMecGF5c2FmZWNhcmQgUm9vdCBDQSAtIFN5c3RlbSBNMB4XDTAyMDExMDE1MDUx
M1oXDTM4MDExMDE1MDUxM1owge8xITAfBgkqhkiG9w0BCQEWEmNhQHBheXNhZmVj
YXJkLmNvbTELMAkGA1UEBhMCQVQxDzANBgNVBAgTBlZpZW5uYTEPMA0GA1UEBxMG
Vmllbm5hMRwwGgYDVQQLExNwYXlzYWZlY2FyZCBSb290IENBMSwwKgYDVQQLEyNw
YXlzYWZlY2FyZCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEmMCQGA1UEChMdcGF5
c2FmZWNhcmQuY29tIFdlcnRrYXJ0ZW4gQUcxJzAlBgNVBAMTHnBheXNhZmVjYXJk
IFJvb3QgQ0EgLSBTeXN0ZW0gTTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBALtYbwxejm8ZTdZmvLG1TtVHMGyIVnTFeyIbt7SUP4GjycrFs0GiWCJzYHAX
gEtwzIX3ibt3bIR62/itJ4ra/pkIUBDd1ARNM1F9R/MyE3Ci1SGmp1IyaFK2tQRX
dxHqIBZtH6hUSK750mxE9Ln+YjHjbkEnvXB49qIyJsvgQSPrvzldj+bBDpNyCppf
H16U55azIpq7gWvyqsFe/NeAp8iW8quhgZQWqXhPFMA/dypcwBwSTJSW/jVqfqhd
iRhEfZEeV6pBPtaZeeUUvWBgBccr39sQd3FUADH7d7AepxsiIxTDm971wn9bNiOM
YwCdfQlEYLlAhEc3XMRv5Mifnp8CAwEAAaOCAVYwggFSMA8GA1UdEwEB/wQFMAMB
Af8wHQYDVR0OBBYEFEdDEuV3HVe81QNu5wgYE/h2K14EMIIBHgYDVR0jBIIBFTCC
ARGAFEdDEuV3HVe81QNu5wgYE/h2K14EoYH1pIHyMIHvMSEwHwYJKoZIhvcNAQkB
FhJjYUBwYXlzYWZlY2FyZC5jb20xCzAJBgNVBAYTAkFUMQ8wDQYDVQQIEwZWaWVu
bmExDzANBgNVBAcTBlZpZW5uYTEcMBoGA1UECxMTcGF5c2FmZWNhcmQgUm9vdCBD
QTEsMCoGA1UECxMjcGF5c2FmZWNhcmQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx
JjAkBgNVBAoTHXBheXNhZmVjYXJkLmNvbSBXZXJ0a2FydGVuIEFHMScwJQYDVQQD
Ex5wYXlzYWZlY2FyZCBSb290IENBIC0gU3lzdGVtIE2CAQAwDQYJKoZIhvcNAQEE
BQADggEBACJ9nG6+DmSxJKoqyCDaBUTCeVWk1jpBAvxR1Nwq68L25VYqWp8M0x74
/Wd/rcut532BaStABiba+P5V4/VpV4cYlExPb2CCr1E3BWd9nMaJEqjFOdNfy2Aq
OZhTeKqKZ0oALhk61AdX7OmimW2DGe7jwEbZxtjcUBUMo+olSAqDD/oVmOLooQOE
oCHQ7U/+PFHtzO9Im7Jlq0fJESJSRheSbjItZSJxl18neu3xN58Ku9Pnu4pInyM+
ObX4TJxmBbyRXlBkWfDWljih9MANqE/XkwOE3BlAt2haymRs/GSYiIWqNwTd2Rbx
NwdV0sBoOmFmSMNt7/NhXIT6GO3hFK4=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFujCCBKKgAwIBAgIEEAAAAzANBgkqhkiG9w0BAQQFADCB7zEhMB8GCSqGSIb3
DQEJARYSY2FAcGF5c2FmZWNhcmQuY29tMQswCQYDVQQGEwJBVDEPMA0GA1UECBMG
Vmllbm5hMQ8wDQYDVQQHEwZWaWVubmExHDAaBgNVBAsTE3BheXNhZmVjYXJkIFJv
b3QgQ0ExLDAqBgNVBAsTI3BheXNhZmVjYXJkIENlcnRpZmljYXRpb24gQXV0aG9y
aXR5MSYwJAYDVQQKEx1wYXlzYWZlY2FyZC5jb20gV2VydGthcnRlbiBBRzEnMCUG
A1UEAxMecGF5c2FmZWNhcmQgUm9vdCBDQSAtIFN5c3RlbSBNMB4XDTAyMDExMDE1
MjE1OVoXDTM0MDExMDE1MjE1OVowgfMxITAfBgkqhkiG9w0BCQEWEmNhQHBheXNh
ZmVjYXJkLmNvbTELMAkGA1UEBhMCQVQxDzANBgNVBAgTBlZpZW5uYTEPMA0GA1UE
BxMGVmllbm5hMR4wHAYDVQQLExVwYXlzYWZlY2FyZCBTZXJ2ZXIgQ0ExLDAqBgNV
BAsTI3BheXNhZmVjYXJkIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSYwJAYDVQQK
Ex1wYXlzYWZlY2FyZC5jb20gV2VydGthcnRlbiBBRzEpMCcGA1UEAxMgcGF5c2Fm
ZWNhcmQgU2VydmVyIENBIC0gU3lzdGVtIE0wggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCySPf9dV1J73WgihZzq6PuFZw8G+5YgCG7KVvmm/unkabEHzQ7
PKfHT0awGRfZgfsRzbLxnohaXDHE8e2whWjV5ZROXKpeYb7MhFcmPdPAuxx6lPD9
jocbEA530vTonL3WrAPY9P4v48Upd8xTKy+HmdruBn80tOwnvJeSH+2Itm2Qo6cU
JslOxJYqmIu76aNbh/Is37rZV37zegkNr7RVpE82tUZR8CRnY46f+FrYEJYpZRVc
hg9NOM6fmswG7BAP4oLXOjOERR79Rom/ACZZNcz1PSBJRIarm2eXLUptlTfTR1lb
92wX+KGtYvcLFnr/2RkHDT2Wdcb8s3pI7bhxAgMBAAGjggFWMIIBUjAPBgNVHRMB
Af8EBTADAQH/MB0GA1UdDgQWBBTNjfh4N1yNw7Bo/E0sMOrdcZbJ8TCCAR4GA1Ud
IwSCARUwggERgBRHQxLldx1XvNUDbucIGBP4diteBKGB9aSB8jCB7zEhMB8GCSqG
SIb3DQEJARYSY2FAcGF5c2FmZWNhcmQuY29tMQswCQYDVQQGEwJBVDEPMA0GA1UE
CBMGVmllbm5hMQ8wDQYDVQQHEwZWaWVubmExHDAaBgNVBAsTE3BheXNhZmVjYXJk
IFJvb3QgQ0ExLDAqBgNVBAsTI3BheXNhZmVjYXJkIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5MSYwJAYDVQQKEx1wYXlzYWZlY2FyZC5jb20gV2VydGthcnRlbiBBRzEn
MCUGA1UEAxMecGF5c2FmZWNhcmQgUm9vdCBDQSAtIFN5c3RlbSBNggEAMA0GCSqG
SIb3DQEBBAUAA4IBAQAZ7naLoETGD8TW6lAbuZ7ntd9zNqutizAtPzC5bJRq2sL3
AyIsSDO6jQnJgvHsW3XiBfYP0R8MGbMg5cLvgcyKHjnpkzcGEXFuvOeeh50oWSTl
aJ9VNTvvGK6nY4rQ710I6qCollj+pqlSq4sak/zYJ87lKc8TXEzvzyncYAfrRp3G
XIA5zG3TniBIYC/cuiXjBupmWelFCKRK8/Uhm0vbg71wAWrouJKcBkSMYgZCdEC6
3g0EBmD94j9FBEiW7q4sUgqYxGTjeOv1Wb4EsHJhq2eBzOKLp+NHYbPzI++50nQU
AjKavlzdAr9PVC8BBS74M567rtIooeIgEDqqi/7J
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDfjCCAuegAwIBAgIQAdAC7XDZlmGZ84pH2aljUjANBgkqhkiG9w0BAQUFADCB
zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
cnZlckB0aGF3dGUuY29tMB4XDTA2MTAyNTAwMDAwMFoXDTA4MTAyNDIzNTk1OVow
gYIxCzAJBgNVBAYTAkFUMQ8wDQYDVQQIEwZWaWVubmExDzANBgNVBAcTBlZpZW5u
YTEmMCQGA1UEChMdcGF5c2FmZWNhcmQuY29tIFdlcnRrYXJ0ZW4gQUcxKTAnBgNV
BAMTIGN1c3RvbWVyLnRlc3QuYXQucGF5c2FmZWNhcmQuY29tMIGfMA0GCSqGSIb3
DQEBAQUAA4GNADCBiQKBgQDgay0tcil7faWjhcRYg4HvOt9DA6llt87cxZtkGalY
Fvxr+tKLg2U031cbmQjRpCEXIWeZjIqOreZLK3PNYfQJi7C3m7bU2D8owt6xijt4
reOsNH5nTy4NNt9J+tUVaRO0YCWG7O2v1T1L4QMwdHjHcsvpoO9NnFM/Sqmo8tSz
EwIDAQABo4GmMIGjMAwGA1UdEwEB/wQCMAAwQAYDVR0fBDkwNzA1oDOgMYYvaHR0
cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNlcnZlclByZW1pdW1DQS5jcmwwHQYD
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMDIGCCsGAQUFBwEBBCYwJDAiBggr
BgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTANBgkqhkiG9w0BAQUFAAOB
gQBzovJPMRON4GSrPeAZ93nDYHHfZMV2yUY0+8Kfi+5smLfV3VaurPjL8WSYA2mY
F1vI2tkNhAbELQwm/6RqrU7AG1wKnoyljzZ9V0Uk7Mfcw3Wg/uCTEtes9NNz6KbW
RM9X8CWd8gJGwTODZy4JU0qMWiETqPvbvzXTX0oihp2nEQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDfDCCAuWgAwIBAgIQWAYuIHYD1tplIr6DdfOxoDANBgkqhkiG9w0BAQUFADCB
zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
cnZlckB0aGF3dGUuY29tMB4XDTA2MTAyNTAwMDAwMFoXDTA4MTAyNDIzNTk1OVow
gYAxCzAJBgNVBAYTAkFUMQ8wDQYDVQQIEwZWaWVubmExDzANBgNVBAcTBlZpZW5u
YTEmMCQGA1UEChMdcGF5c2FmZWNhcmQuY29tIFdlcnRrYXJ0ZW4gQUcxJzAlBgNV
BAMTHmN1c3RvbWVyLmNjLmF0LnBheXNhZmVjYXJkLmNvbTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAs1G3ieyBRUxgDLUAlqipvBtnlsb7W0TqcXYY9MF/XOyp
1KoS6xKcH6dV1PYGUi8roITcEPB2VBnR2lCpqjUwhmeJcXf2sJLIInf0J0ld05qE
G8I6tHh8DOylkN+G9NdbdWsHyQLxiqQ1TkLIAX28ioJziLVSJ0AU/Vw5MSj3x+UC
AwEAAaOBpjCBozAMBgNVHRMBAf8EAjAAMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6
Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVTZXJ2ZXJQcmVtaXVtQ0EuY3JsMB0GA1Ud
JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAyBggrBgEFBQcBAQQmMCQwIgYIKwYB
BQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0ZS5jb20wDQYJKoZIhvcNAQEFBQADgYEA
dLrNu1On6Vp5JWdeFmA0wZjrvbVSXmH3fGuuY5pw+RDDq5AVZ0ug5AoNO90DkAn5
7s1zOelLs1imjS1MpPKOs7jgC+kbzW/PRFfY1oYSHZdSQGfmTjdz3PtT3XVWMmne
z4cv4RYpEiZrkrxL/fdd36E/Lo0GctmhlXBT7SiNM0g=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDhjCCAu+gAwIBAgIQeO5I3hhbIHHJycO1HXvdwTANBgkqhkiG9w0BAQUFADBfMQswCQYD
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDMgUHVi
bGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNOTcwNDE3MDAwMDAwWhcN
MTExMDI0MjM1OTU5WjCBujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUG
A1UECxMOVmVyaVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwg
U2VydmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMgSW5j
b3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEA2IKA6NYZAn0fhRg5JaJlK+G/1AXTvOY2O6rwTGxbtueqPHNFVbLx
veqXQu2aNAoV1Klc9UAl3dkHwTKydWzEyruj/lYncUOqY/UwPpMo5frxCTvzt01OOfdcSVq4
wR3Tsor+cDCVQsv+K1GLWjw6+SJPkLICp1OcTzTnqwSye28CAwEAAaOB5jCB4zAPBgNVHRME
CDAGAQH/AgEAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHAQEwKjAoBggrBgEFBQcCARYcaHR0
cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQUzA0BgNVHR8ELTArMCmgJ6AlhiNodHRwOi8vY3Js
LnZlcmlzaWduLmNvbS9wY2EzLWcyLmNybDA0BgNVHSUELTArBggrBgEFBQcDAQYIKwYBBQUH
AwIGCWCGSAGG+EIEAQYKYIZIAYb4RQEIATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQD
AgEGMA0GCSqGSIb3DQEBBQUAA4GBACNd7qYkBf1202oa1rpGBqpqDwOQZrKwpsKeyR6jVVOv
PkX93Iwn3VM4Cbt8Syu6lUr+cE4badY8908HxfIXWkyij6wLigbbudRrxR1Y2hdS4yHx0tda
1eWrWXsheoZq1P4XETpTDZxgoErZXuQdDCmqEwdlhh+/tMmCU5wsAo8j
-----END CERTIFICATE-----
Binary file not shown.

Before

Width:  |  Height:  |  Size: 940 B

-102
View File
@@ -1,102 +0,0 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../init.php');
include(dirname(__FILE__).'/paysafecard.php');
$module = new PaysafeCard();
if (!$cart->id OR $cart->id_customer == 0 OR $cart->id_address_delivery == 0 OR $cart->id_address_invoice == 0 OR !$module->active)
Tools::redirect('index.php/order?step=3');
$currency = new Currency($cart->id_currency);
if (!$module->isCurrencyActive($currency->iso_code))
Tools::redirect('index.php/order?step=3');
$amount = number_format((float)($cart->getOrderTotal(true, Cart::BOTH)), 2, '.','');
if (Tools::getValue('hash') != md5(Configuration::get($module->prefix.'SALT') + $amount + $currency->iso_code))
die(Tools::displayError());
$result = $module->getDispositionState((int)($cart->id));
$state = _PS_OS_ERROR_;
$disposition = Disposition::getByCartId((int)($cart->id));
$message = 'Transaction ID #'.$disposition['mtid'].': '.$disposition['amount'].$disposition['currency'].'<br />'. date('Y-m-d').' ';
if ($result[0] == 0)
{
list ($rc, $errorcode, $error_message, $amount, $used_currency, $state) = $result;
if ($state == PrepaidServicesAPI::DISPOSITION_DISPOSED || $state == PrepaidServicesAPI::DISPOSITION_DEBITED)
{
$state = _PS_OS_PAYMENT_;
$message .= $module->getL('disposition_created');
} else {
$message .= $module->getL('disposition_invalid').' '.$state;
}
} else {
$message .= 'payment_error'.' '.$result[2];
}
if ($state != _PS_OS_ERROR_)
{
$state = (int)(Configuration::get($module->prefix.'ORDER_STATE_ID'));
if (Configuration::get($module->prefix.'IMMEDIAT_PAYMENT'))
{
$message .= '<br />'.date('Y-m-d').' ';
$result = $module->executeDebit((int)($cart->id));
if ($result[0] != 0)
{
$message .= $module->getL('payment_error').' '.$result[2];
$state = _PS_OS_ERROR_;
}
else
{
$message .= $module->getL('payment_accepted');
$state = _PS_OS_PAYMENT_;
}
}
}
$module->validateOrder((int)($cart->id), $state, (float)($cart->getOrderTotal(true, Cart::BOTH)), $module->displayName, $message, NULL, (int)($currency->id), false, $cart->secure_key);
if ($state == _PS_OS_ERROR_)
{
include(dirname(__FILE__).'/../../header.php');
echo $message;
include(dirname(__FILE__).'/../../footer.php');
}
else
{
$order = new Order($module->currentOrder);
Tools::redirect('index.php/order-confirmation?id_cart='.(int)($cart->id).'&id_module='.(int)($module->id).'&id_order='.(int)($module->currentOrder).'&key='.$order->secure_key);
}
-32
View File
@@ -1,32 +0,0 @@
{*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<p class="payment_module">
<a href="modules/{$module_name}/redirect.php" title="">
<img src="{$pic_url}" alt="" height="49"/>
{l s='Pay with' mod='paysafecard'} {$payment_name}
</a>
</p>
@@ -1,43 +0,0 @@
{*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<br />
<fieldset style="width: 400px">
<legend><img src="../img/admin/tab-customers.gif" />{$payment_name}</legend>
{if $error}
<span style="color: red; font-weight: bold;">{$error}</span>
{/if}
<p style="font-weight: bold;">{l s='Payment has not been accepted yet:' mod='paysafecard'}</p>
<p>
<form action="{$action}" method="POST">
<input type="text" name="ps_amount" size="8" value="{$amount}" />{$currency}
<input type="submit" class="button" name="acceptPayment" value="{l s='Accept Payment' mod='paysafecard'}" />
<input type="submit" class="button" name="releasePayment" value="{l s='Release amount' mod='paysafecard'}" />
</form>
</p>
</fieldset>
@@ -1,32 +0,0 @@
{*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<p>{l s='Your order on' mod='paysafecard'} <span class="bold">{$shop_name}</span> {l s='is complete.' mod='paysafecard'}
<br /><br />
{l s='You have chosen the' mod='paysafecard'} {$payment_name} {l s='method.' mod='paysafecard'}
<br /><br /><span class="bold">{l s='Your order will be sent very soon.' mod='paysafecard'}</span>
<br /><br />{l s='For any questions or for further information, please contact our' mod='paysafecard'} <a href="{$base_dir_ssl}contact-form.php">{l s='customer support' mod='paysafecard'}</a>.
</p>
-116
View File
@@ -1,116 +0,0 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!in_array('PrepaidServices', get_declared_classes())) include_once(_PS_MODULE_DIR_.'/paysafecard/PrepaidServices.php');
class PaysafeCard extends PrepaidServices
{
public $prefix = 'PS_PSC_';
protected $supported_languages = array('de', 'en', 'gr', 'el', 'es', 'it', 'fr', 'nl', 'pl', 'pt', 'si', 'sk', 'tr');
protected $allowed_currencies = array();
protected $environments = array('P' => 'Production',
'T' => 'Test');
protected $business_types = array('I' => 'Intangible',
'T' => 'Tangible');
protected $payment_url = array('T' =>'https://customer.test.at.paysafecard.com/psccustomer/GetCustomerPanelServlet',
'P' => 'https://customer.cc.at.paysafecard.com/psccustomer/GetCustomerPanelServlet');
protected $supported_currencies = array('EUR', 'GBP', 'CHF', 'USD', 'PLN', 'CZK', 'SEK', 'DKK', 'RON', 'NOK', 'ARS');
protected $register_url = array('en' => 'http://www.prestashop.com/partner/url.php?to=http://www.paysafecard.com/index.php?id=947&L=8',
'fr' => 'http://www.prestashop.com/partner/url.php?to=http://www.paysafecard.com/index.php?id=947&L=3',
'es' => 'http://www.prestashop.com/partner/url.php?to=http://www.paysafecard.com/index.php?id=947&L=9');
protected $certificat_dir;
public function __construct()
{
$this->name = 'paysafecard';
$this->tab = 'payments_gateways';
$this->version = 1.2;
$this->module_dir = dirname(__FILE__);
$this->certificat_dir = dirname(__FILE__).'/keyring/';
parent::__construct();
$this->displayName = $this->l('PaysafeCard');
$this->description = $this->l('Accepts payments by PaysafeCard.');
}
public function getL($key)
{
$translations = array(
'disposition_created' => $this->l('Disposition created. Waiting for debit.'),
'disposition_invalid' => $this->l('Invalid disposition state:'),
'payment_error' => $this->l('An error has occurred during payment:'),
'payment_accepted' => $this->l('Payment accepted.'),
'curl_required' => $this->l('This module requires the curl PHP extension to function properly.'),
'not_writable' => $this->l('Not writable!'),
'currency_required' => $this->l('This module requires the currency: '),
'configure_currency' => $this->l('Configure each currency individually:'),
'payment_not_displayed' => $this->l('(The payment module will not be displayed for customers using non configured currency.)'),
'configuration_in' => $this->l('Configuration in '),
'merchant_id' => $this->l('Merchant ID'),
'keyring_certificate' => $this->l('Keyring Certificate'),
'keyring_pw' => $this->l('Keyring PW'),
'configuration' => $this->l('Configuration'),
'environment' => $this->l('Environment'),
'business_type' => $this->l('Business Type'),
'immediat_payment' => $this->l('Immediate Payment'),
'update_configuration' => $this->l('Update configuration'),
'certificate_required' => $this->l('You must provide a certificate for MERCHANT ID'),
'invalid_file' => $this->l('Invalid file'),
'invalid_merchant_id' => $this->l('Invalid Merchant ID'),
'invalid_business_type' => $this->displayError('Invalid business type'),
'invalid_environment' => $this->displayError('Invalid environment'),
'settings_updated' => $this->l('Settings updated'),
'file_partialy_uploaded' => $this->l('The file was partially uploaded.'),
'file_empty' => $this->l('The file is empty.'),
'cant_create_dispo' => $this->l('Transaction could not be initiated due to connection problems. If the problem persists, please contact support.'),
'disposition_consumed' => $this->l('Disposition consumed'),
'payment_released' => $this->l('Disposition released'),
'release_error' => $this->l('An error has occurred during the release'),
'introduction' => $this->l('Paysafecard is Europe’s first prepaid solution for payments over the Internet to comply with banking laws. Over the past years, paysafecard has become one of Europe’s leading alternative online payment solutions.'),
'register' => $this->l('Learn more')
);
return $translations[$key];
}
protected function _getErrorMsgFromErrorCode($error_code)
{
$error_msg = array(1 => $this->l('An error has occurred, check Messages for more info'),
2 => $this->l('Invalid amount'));
return $error_msg[$error_code];
}
}
-38
View File
@@ -1,38 +0,0 @@
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
function toggleImediatPayment()
{
if ($('#ct_business_type').val() == 'I')
$('#imediat_payment').hide();
else
$('#imediat_payment').show();
}
$(document).ready(function() {
toggleImediatPayment();
});
-50
View File
@@ -1,50 +0,0 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 1.4 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../init.php');
include(dirname(__FILE__).'/paysafecard.php');
$module = new PaysafeCard();
if (!$cart->id OR $cart->id_customer == 0 OR $cart->id_address_delivery == 0 OR $cart->id_address_invoice == 0 OR !$module->active)
Tools::redirect('index.php/order?step=3');
$currency = new Currency($cart->id_currency);
if (!$module->isCurrencyActive($currency->iso_code))
Tools::redirect('index.php/order?step=3');
$result = $module->createDisposition($cart);
if ($result['return_code'] != 0)
{
include(dirname(__FILE__).'/../../header.php');
echo $module->getL('cant_create_dispo');
include(dirname(__FILE__).'/../../footer.php');
}
else
Tools::redirectLink($result['message']);