View Single Post
  #5  
Old 07-03-2010, 09:34 AM
  DogByteMan's Avatar 
DogByteMan DogByteMan is offline
 

X-Adept
  
Join Date: Mar 2003
Posts: 833
 

Default Installation of X-Payments Connector on X-Cart 4.1.12 (Part 5)

Edit or Download and edit the following existing files on your X-Cart 4.1.12 install:

In cart_directory/top.inc.php

1) ADD
Code:
define('XC_TIME', time()); define('X_PAYMENT_TRANS_ALREADY_CAPTURED', 1); define('X_PAYMENT_TRANS_ALREADY_VOIDED', 2); define('X_PAYMENT_TRANS_ALREADY_REFUNDED', 4); define('X_PAYMENT_TRANS_ALREADY_ACCEPTED', 8); define('X_PAYMENT_TRANS_ALREADY_DECLINED', 16); define('PAYMENT_NEW_STATUS', 1); define('PAYMENT_AUTH_STATUS', 2); define('PAYMENT_DECLINED_STATUS', 3); define('PAYMENT_CHARGED_STATUS', 4); define('X_USE_PAYPAL_FLOW', true);

After
Code:
$xcart_fs_default_permissions = array( "dir" => array( "nonprivileged" => 0777, "privileged" => 0711 ), "file" => array( "nonprivileged" => 0644, "privileged" => 0644 ), "phpfile" => array( "nonprivileged" => 0644, "privileged" => 0600 ) );
(NOTE: Yes this is before })


In cart_directory/admin/cc_processing.php

1) ADD
Code:
if (!empty($active_modules['XPayments_Connector'])) { func_xpay_func_load(); }

After
Code:
x_load('backoffice','crypt','tests');

2) REPLACE
Code:
$tmp = func_query_first("SELECT * FROM $sql_tbl[ccprocessors] WHERE processor='".$processor."'");

With
Code:
$where_query = ''; if (preg_match("/cc_xpc\.php_([0-9]+)/", $processor, $match)) { $pm_id = intval($match[1]); $processor = "cc_xpc.php"; $where_query = ' AND param01=\'' . $pm_id . '\''; } $tmp = func_query_first("SELECT * FROM $sql_tbl[ccprocessors] WHERE processor='".$processor."'" . $where_query);

3 ) ADD
Code:
if ($processor == 'cc_xpc.php') { $insert_params['protocol'] = 'https'; }

After
Code:
$insert_params = array ( 'payment_method' => $cc_processor, 'payment_script' => 'payment_cc.php', 'payment_template' => $template, 'active' => 'N', 'orderby' => '999', 'processor_file' => $processor );

4) REPLACE
Code:
db_query("UPDATE $sql_tbl[ccprocessors] SET paymentid='".$paymentid."' WHERE processor='".$processor."'");

With
Code:
db_query("UPDATE $sql_tbl[ccprocessors] SET paymentid='".$paymentid."' WHERE processor='".$processor."'" . $where_query);

5) ADD
Code:
} elseif ($cc_processor == 'cc_xpc.php') { $cc_processors = func_query("SELECT * FROM $sql_tbl[ccprocessors] WHERE paymentid>0 AND processor='cc_xpc.php'"); $smarty->assign('cc_processors', $cc_processors); $cc_processing_module['module_name'] = 'X-Payments payment methods';

After
Code:
$conf_data[$pkey] = $cc_processing_module; $conf_data[$akey] = func_query_first("SELECT $sql_tbl[ccprocessors].* FROM $sql_tbl[ccprocessors] WHERE $sql_tbl[ccprocessors].processor = '$asearch'"); $smarty->assign('conf_data', $conf_data);
(NOTE: Yes this is before })[/code]


In cart_directory/admin/configuration.php

1) REPLACE
Code:
$trusted_post_variables = array("gpg_key", "pgp_key");

With
Code:
$trusted_post_variables = array("gpg_key", "pgp_key", "xpc_private_key_password", "xpc_private_key", "xpc_public_key");

2) ADD
Code:
if ($option == 'XPayments_Connector') { include $xcart_dir . '/modules/XPayments_Connector/xpc_admin.php'; }

After
Code:
if ($REQUEST_METHOD=="POST") { require $xcart_dir."/include/safe_mode.php"; }

3) ADD
Code:
} elseif ($option == "XML_Site_Map") { include "./xml_sitemap.php";

After
Code:
if ($option == "User_Profiles") { include "./user_profiles.php";
(NOTE: Yes this is before })[/code]

In cart_directory/admin/payment_methods.php

1) ADD
Code:
if (!empty($active_modules['XPayments_Connector'])) { func_xpay_func_load(); }

After
Code:
define("IS_MULTILANGUAGE", 1); require "./auth.php"; require $xcart_dir."/include/security.php"; x_load('backoffice','tests');

2) REPLACE
Code:
$payment_methods = func_query("SELECT pm.*,cc.module_name,cc.processor,cc.type FROM $sql_tbl[payment_methods] AS pm LEFT JOIN $sql_tbl[ccprocessors] AS cc ON (pm.paymentid=cc.paymentid OR pm.paymentid<>cc.paymentid AND pm.processor_file=cc.processor) ORDER BY pm.orderby, pm.paymentid");

With
Code:
$payment_methods = func_query("SELECT pm.*, cc.module_name, cc.processor, cc.type, cc.param01 FROM $sql_tbl[payment_methods] AS pm LEFT JOIN $sql_tbl[ccprocessors] AS cc ON (pm.paymentid=cc.paymentid OR pm.paymentid<>cc.paymentid AND pm.processor_file=cc.processor AND cc.processor != 'cc_xpc.php') ORDER BY pm.active DESC, pm.orderby, pm.paymentid");

3) ADD
Code:
if (!empty($active_modules['XPayments_Connector'])) { foreach ($cc_module_files as $key => $value) { if ($value['processor'] == 'cc_xpc.php') { $cc_module_files[$key]['processor'] .= '_' . $value['param01']; } } }

After
Code:
$cc_module_files = func_query("select * from $sql_tbl[ccprocessors] where paymentid='0' and processor<>'ps_paypal_pro.php' order by type,module_name"); $sb_module_files = func_query("select * from $sql_tbl[ccprocessors] where type='C' and background='Y' order by module_name");


One .tpl file to edit.
In cart_directory/skin1/admin/configuration.tpl

1) ADD
Code:
{elseif $option eq "XML_Site_Map"} {include file="admin/main/xml_sitemap.tpl"}

After
Code:
{elseif $option eq "Search_products"} {include file="admin/main/search_products_form.tpl"}
(NOTE: Yes this is before {else})


2) ADD
Code:
{if $option eq "XPayments_Connector"} {include file="modules/XPayments_Connector/config_recommends.tpl"} {/if}

After
Code:
{if $option eq "Google_Analytics"} {$lng.google_analytics_info} <br /> <br /> {/if}

3) ADD
Code:
{elseif $option eq "XPayments_Connector"} {include file="modules/XPayments_Connector/config_bottom.tpl"}

After
Code:
<h3>{$lng.lbl_test_data_encryption}</h3> <a href="test_pgp.php">{$lng.lbl_test_data_encryption_link}</a>
(NOTE: Yes this is before {/if})


YOU ARE DONE!!!!

In your X-Cart under modules click configure for X-Payments Connector

Store ID: < This is the store ID that was assigned when you set up the store in X-Payments >

X-Payments URL: https://domain where X-Payments is/X-Payments Directory (NO Trailing /)(must be https)

Public key: < This is the public key that was assigned when you set up the store in X-Payments >

Private key: < This is the private key that was assigned when you set up the store in X-Payments >

Private key password: < This is the private key password that was assigned when you set up the store in X-Payments >

IP addresses for X-Payments callbacks: IP of server hosting X-Payments
__________________
Dedicated Server provided by EWD Hosting
X-Cart version 4.1.12
PHP 5.3.2
MySQL server 5.0.87-community
Operation system Linux
Perl 5.008008
dogbytecomputer.com
Reply With Quote