Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

GPG Credit Card Encryption - how do I decrypt the email?


msasek

Recommended Posts

Hi,

 

I have searched on this, and have not found an answer. I am trying to install the GPG Credit Card Encryption contribution. I have it working with the current snapshot, but how do I decrypt the email that is sent by this contribution on my local windows machine?

 

Any help is appreciated.

Link to comment
Share on other sites

Hi mate

 

Which version are you using?

 

Or just drop the link to the contribution here will ya.

I use GPG too, but I need to see the code of your version.

 

Ta.

 

CC.

Link to comment
Share on other sites

I am using this one :

 

http://www.oscommerce.com/community/contri...ions,611/page,2

 

 

I am using 0.92 from 2-8-2002.

 

I managed to make it work with the current cvs, mostly, but I cannot seem to get the CC# to transfer to the encrypted email. It sends the transaction number, but it is blank where the cc# should be.

 

Thanks.

Link to comment
Share on other sites

Here is the code I have up to this point (just the 2 functions that handle the gpg and email creation (Note the commented lines are the original code in the current cc.php). Everything works except the cc# is not being included in the e-mail. I'm sure I am missing something that is obvious. Please point it out to me! Thanks.

 

function before_process() {

     global $HTTP_POST_VARS, $order;



     if ( (defined('MODULE_PAYMENT_CCGPG_ENCRYPT')) && (tep_validate_email(MODULE_PAYMENT_CCGPG_ENCRYPT == 'GPG')) ) {

       $len = strlen($GLOBALS['cc_card_number']);

       $new_cc =substr('XXXXXXXXXXXXXXXX', 0, $len-4) . substr($GLOBALS['cc_number'], -4);

       $GLOBALS['cc_toencrypt'] = $GLOBALS['cc_number'];

       $GLOBALS['cc_number'] = $new_cc;

       //$this->cc_middle = substr($HTTP_POST_VARS['cc_number'], 4, ($len-8));

       //$order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number']) - 8)) . substr($HTTP_POST_VARS['cc_number'], -4);

     }

   }



   function after_process() {

     global $insert_id;



     if ( (defined('MODULE_PAYMENT_CCGPG_ENCRYPT')) && (MODULE_PAYMENT_CCGPG_ENCRYPT == 'GPG') ) {

      	 $message = 'Order #' . $insert_id . "nn" . 'Number: ' . $GLOBALS['cc_toencrypt'] . "nn";

	 $tmpToken = md5(uniqid(rand()));

	 $plainTxt = "/home/mydir/temp/" . "$tmpToken" . "anca";

	 $crypted = "/home/mydir/temp/" . "$tmpToken" . "anca.asc";

	 $gpghome="/home/mydir/";  //where is your pubring? That dir has to have write access.

	 $gpgpath="gpg";   //where is the executable

	 $gpgrecipient="My Name (comment) <[email protected]>"; //the key used for encryption

	 $fp = fopen($plainTxt, "w+");

	 fputs($fp, $message);

	 fclose($fp);

	 system("export HOME=" . $gpghome . ";" . $gpgpath . " --batch --always-trust --quiet --no-secmem-warning --compress-algo 1 -ear '" . $gpgrecipient . "' $plainTxt");

	 $fd = fopen($crypted, "r");

	 $message = fread($fd, filesize($crypted));

	 fclose($fd);

	 unlink($plainTxt);

	 unlink($crypted); 

       tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, 'Extra Order Info', $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');       

       //tep_mail('', MODULE_PAYMENT_CC_EMAIL, 'Extra Order Info: #' . $insert_id, $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

     }

Link to comment
Share on other sites

My trouble can be boiled down to this: I don't know what variable the CC# is stored in. Here is the code that is not working:

 

$message = 'Order #' . $insert_id . "nn" . 'Number: ' . $GLOBALS['cc_toencrypt'] . "nn";

 

If you look in the previous code posted earlier, you will see // commented code, that is the original code from the latest cc.php cvs release. The active code has been inserted from the ccgpg.php file, but it does not work. So, I am looking for help adapting this. What is the variable that holds the cc number?

Link to comment
Share on other sites

You need to change the before_process function. Please find below the functions I use, which isn't very neat, but works for me:

 

function before_process() {

     global $HTTP_POST_VARS, $order;



 $this->cc_complete = $HTTP_POST_VARS['cc_number'];



 $order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number']) - 8)) . substr($HTTP_POST_VARS['cc_number'], -4);



     if ( (defined('MODULE_PAYMENT_CC_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_CC_EMAIL)) ) { // not used here



 $len = strlen($HTTP_POST_VARS['cc_number']);

 

       $this->cc_middle = substr($HTTP_POST_VARS['cc_number'], 4, ($len-8));

       $order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number']) - 8)) . substr($HTTP_POST_VARS['cc_number'], -4);



     }

   }

 

and reference the card number:

 

 

$message = 'Order #' . $insert_id . "nn" . 'Number: ' . $this->cc_complete . "nn";

 

[/code]

Link to comment
Share on other sites

I am slowly starting to figure this out.

 

I added

$HTTP_POST_VARS

to the globals line of the function after process. Then I added the variable

$HTTP_POST_VARS['cc_number']

to the $message like this:

 

$message = 'Order #' . $insert_id . "nn" . 'Number: ' . $HTTP_POST_VARS['cc_number'] . "nn";

 

This successfully gets the credit card info into the encrypted email, but it also allows the CC# to be stored unencrypted in the database. My final question, and the one I need the most help with, How do I store "XXXXXXXXXXXX" in the database, rather than the CC#? Can somebody help out here? I dont even know where to begin.

 

Thank you!

Link to comment
Share on other sites

Can anyone PM me or post their code for this here?

 

I have tried for ages now and cant get it to work with the latest snapshot.

And it is beating me massively!

 

Any help is very very very much appreciated.

 

Thanks guys.

Link to comment
Share on other sites

Below is the current snapshot (20030109) cc.php changed to work with the ccgpg contribution. Just save it as ccgpg.php and put it in your payment modules dir. Follow the instructions in the contribution- the link to it is posted earlier in this thread.

 

<?php

/*

 $Id: ccgpg.php,v 1.48 2002/11/25 18:23:15 dgw_ Exp $



 osCommerce, Open Source E-Commerce Solutions

 http://www.oscommerce.com



 Copyright (c) 2002 osCommerce



 Released under the GNU General Public License

*/



 class ccgpg {

   var $code, $title, $description, $enabled;



// class constructor

   function ccgpg() {

     $this->code = 'ccgpg';

     $this->title = MODULE_PAYMENT_CCGPG_TEXT_TITLE;

     $this->description = MODULE_PAYMENT_CCGPG_TEXT_DESCRIPTION;

     $this->enabled = ((MODULE_PAYMENT_CCGPG_STATUS == 'True') ? true : false);

   }



// class methods

   function javascript_validation() {

     $js = '  if (payment_value == "' . $this->code . '") {' . "n" .

           '    var cc_owner = document.checkout_payment.cc_owner.value;' . "n" .

           '    var cc_number = document.checkout_payment.cc_number.value;' . "n" .

           '    if (cc_owner == "" || cc_owner.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "n" .

           '      error_message = error_message + "' . MODULE_PAYMENT_CCGPG_TEXT_JS_CC_OWNER . '";' . "n" .

           '      error = 1;' . "n" .

           '    }' . "n" .

           '    if (cc_number == "" || cc_number.length < ' . CC_NUMBER_MIN_LENGTH . ') {' . "n" .

           '      error_message = error_message + "' . MODULE_PAYMENT_CCGPG_TEXT_JS_CC_NUMBER . '";' . "n" .

           '      error = 1;' . "n" .

           '    }' . "n" .

           '  }' . "n";



     return $js;

   }



   function selection() {

     global $order;



     for ($i=1; $i<13; $i++) {

       $expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));

     }



     $today = getdate(); 

     for ($i=$today['year']; $i < $today['year']+10; $i++) {

       $expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));

     }



     $selection = array('id' => $this->code,

                        'module' => $this->title,

                        'fields' => array(array('title' => MODULE_PAYMENT_CCGPG_TEXT_CREDIT_CARD_OWNER,

                                                'field' => tep_draw_input_field('cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])),

                                          array('title' => MODULE_PAYMENT_CCGPG_TEXT_CREDIT_CARD_NUMBER,

                                                'field' => tep_draw_input_field('cc_number')),

                                          array('title' => MODULE_PAYMENT_CCGPG_TEXT_CREDIT_CARD_EXPIRES,

                                                'field' => tep_draw_pull_down_menu('cc_expires_month', $expires_month) . ' ' . tep_draw_pull_down_menu('cc_expires_year', $expires_year))));



     return $selection;

   }



   function pre_confirmation_check() {

     global $HTTP_POST_VARS;



     include(DIR_WS_CLASSES . 'cc_validation.php');



     $cc_validation = new cc_validation();

     $result = $cc_validation->validate($HTTP_POST_VARS['cc_number'], $HTTP_POST_VARS['cc_expires_month'], $HTTP_POST_VARS['cc_expires_year']);



     $error = '';

     switch ($result) {

       case -1:

         $error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));

         break;

       case -2:

       case -3:

       case -4:

         $error = TEXT_CCVAL_ERROR_INVALID_DATE;

         break;

       case false:

         $error = TEXT_CCVAL_ERROR_INVALID_NUMBER;

         break;

     }



     if ( ($result == false) || ($result < 1) ) {

       $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&cc_owner=' . urlencode($HTTP_POST_VARS['cc_owner']) . '&cc_expires_month=' . $HTTP_POST_VARS['cc_expires_month'] . '&cc_expires_year=' . $HTTP_POST_VARS['cc_expires_year'];



       tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false));

     }



     $this->cc_card_type = $cc_validation->cc_type;

     $this->cc_card_number = $cc_validation->cc_number;

   }



   function confirmation() {

     global $HTTP_POST_VARS;



     $confirmation = array('title' => $this->title . ': ' . $this->cc_card_type,

                           'fields' => array(array('title' => MODULE_PAYMENT_CCGPG_TEXT_CREDIT_CARD_OWNER,

                                                   'field' => $HTTP_POST_VARS['cc_owner']),

                                             array('title' => MODULE_PAYMENT_CCGPG_TEXT_CREDIT_CARD_NUMBER,

                                                   'field' => substr($this->cc_card_number, 0, 4) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)),

                                             array('title' => MODULE_PAYMENT_CCGPG_TEXT_CREDIT_CARD_EXPIRES,

                                                   'field' => strftime('%B, %Y', mktime(0,0,0,$HTTP_POST_VARS['cc_expires_month'], 1, '20' . $HTTP_POST_VARS['cc_expires_year'])))));



     return $confirmation;

   }



   function process_button() {

     global $HTTP_POST_VARS;



     $process_button_string = tep_draw_hidden_field('cc_owner', $HTTP_POST_VARS['cc_owner']) .

                              tep_draw_hidden_field('cc_expires', $HTTP_POST_VARS['cc_expires_month'] . $HTTP_POST_VARS['cc_expires_year']) .

                              tep_draw_hidden_field('cc_type', $this->cc_card_type) .

                              tep_draw_hidden_field('cc_number', $this->cc_card_number);



     return $process_button_string;

   }



   function before_process() { 

     global $HTTP_POST_VARS, $order; 



     $this->cc_complete = $HTTP_POST_VARS['cc_number']; 



     $order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number']) - 4)) . substr($HTTP_POST_VARS['cc_number'], -2); 



     if ( (defined('MODULE_PAYMENT_CCGPG_ENCRYPT')) && (tep_validate_email(MODULE_PAYMENT_CCGPG_ENCRYPT)) ) { // not used here 



     $len = strlen($HTTP_POST_VARS['cc_number']); 

      

       $this->cc_middle = substr($HTTP_POST_VARS['cc_number'], 4, ($len-8)); 

       $order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number']) - 4)) . substr($HTTP_POST_VARS['cc_number'], -2); 



     } 

   } 

//you must put your correct paths in this section, including the path to your gpg keyrings. Also enter the correct gpg username below.

   function after_process() {

     global $HTTP_POST_VARS, $insert_id;



     if ( (defined('MODULE_PAYMENT_CCGPG_ENCRYPT')) && (MODULE_PAYMENT_CCGPG_ENCRYPT == 'GPG') ) {

      	 $message = 'Order #' . $insert_id . "nn" . 'Number: ' . $this->cc_complete . "nn";

	 $tmpToken = md5(uniqid(rand()));

	 $plainTxt = "/path/to/temp/" . "$tmpToken" . "anca";

	 $crypted = "/path/to/temp/" . "$tmpToken" . "anca.asc";

	 $gpghome="/path/to/pubring/";  //where is your pubring? That dir has to have write access.

	 $gpgpath="/path/to/gpg";   //where is the executable -this must be the correct path to gpg

	 $gpgrecipient="First Last (comment) <[email protected]>"; //the key used for encryption

	 $fp = fopen($plainTxt, "w+");

	 fputs($fp, $message);

	 fclose($fp);

	 system("export HOME=" . $gpghome . ";" . $gpgpath . " --batch --always-trust --quiet --no-secmem-warning --compress-algo 1 -ear '" . $gpgrecipient . "' $plainTxt");

	 $fd = fopen($crypted, "r");

	 $message = fread($fd, filesize($crypted));

	 fclose($fd);

	 unlink($plainTxt);

	 unlink($crypted); 

       tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, 'Extra Order Info', $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');       

       //tep_mail('', MODULE_PAYMENT_CC_EMAIL, 'Extra Order Info: #' . $insert_id, $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

     }

   }



   function get_error() {

     global $HTTP_GET_VARS;



     $error = array('title' => MODULE_PAYMENT_CCGPG_TEXT_ERROR,

                    'error' => stripslashes(urldecode($HTTP_GET_VARS['error'])));



     return $error;

   }



   function check() {

     if (!isset($this->_check)) {

       $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_CCGPG_STATUS'");

       $this->_check = tep_db_num_rows($check_query);

     }

     return $this->_check;

   }



   function install() {

     tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Credit Card Module', 'MODULE_PAYMENT_CCGPG_STATUS', '1', 'Do you want to accept credit card payments?', '6', '0', 'tep_cfg_select_option(array('True', 'False'), ', now())");

     tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Split Credit Card E-Mail Address', 'MODULE_PAYMENT_CCGPG_ENCRYPT', 'GPG', 'What is the preferred encryption type? (currently only the GPG type has been implemented)', '6', '0', now())");

   }



   function remove() {

     tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");

   }



   function keys() {

     return array('MODULE_PAYMENT_CCGPG_STATUS', 'MODULE_PAYMENT_CCGPG_ENCRYPT');

   }

 }

?>

Link to comment
Share on other sites

Thanks msasek

 

That is great!

 

I only have one problem.

And I know this must sound silly but... here goes anyway.

 

I cant get it to show in the catalog, even thos it is enabled in admin.

Green button is on, but it no show.

 

Am I doing something obviously wrong??

 

Thanks again, thats brill!

 

Ron.

Link to comment
Share on other sites

Oh I am sorry, like a plonker, I hadnt actually clicked the radio button in in admin to true, I just clicked the green button.

 

Sorry I thought they did the same thing. :oops:

 

Thanks again msasek.

Link to comment
Share on other sites

Oh sorry one more problem, I am getting some errors now when testing.

 

I am sure it is to do with this lot:

	$plainTxt = "/tmp/" . "$tmpToken" . "anca";

$crypted = "/tmp/" . "$tmpToken" . "anca.asc";

$gpghome="/home/useraccount";  //where is your pubring? That dir has to have write access.

$gpgpath="/usr/bin/gpg";   //where is the executable

$gpgrecipient="[email protected]"; //the key used for encryption

 

I know 100% the path to /gpg, the host has confirmed, but I am not sure about the others.

 

Did you guys create directories for these in your catalog file?

Or should they point somewhere specific.

 

Sorry if I am being dumb, I just dont understand this yet... :oops:

 

Thanks

 

Ron

Link to comment
Share on other sites

You need to run gpg from the command line, and create your public and private keys. Then you need to move the public key to a dir that is writable. Then you need to note the path to the public key and enter that into the script.

 

The /tmp/ dir may also give you trouble. Make a tmp dir on your account. Then the path is /home/youraccount/tmp and make sure it is chmod 777.

 

Go to http://www.gnupg.org/ for instructions on how to use gpg, create key pairs, etc...

 

If it sounds complicated, it is. ;)

Link to comment
Share on other sites

Of course Harald

 

I'm sure msasek would like to do this as it is his hard work that has gone into this.

 

But if he doesnt I will do it, with all credit to Msasek.

 

Although I still aint got it working yet. :lol:

 

I am having to speak to my host about making thses keys...

I hope I am in right in doing that, as I dont have acces to the cli.

 

Ron

Link to comment
Share on other sites

Well my host replied and said he set up a number of things for me.

 

However he says he does not follow me when I say that something needs runnng from the command line, so I have been looking on GnuPG.org for the info and cant find what command line needs to be run in order to create the keys.

 

Does anybody know the exact line I could pass to me host please?

They know very little about GPG, cos they only installed it after I told them about it. :wink:

 

and that was only cos of this forum. haha.

 

As always any help greatly appeciated.

 

Ron

Link to comment
Share on other sites

oooh, I just found this bit:

 

gpg --gen-key

 

I guess this MUST be the key generator...

 

Argh then this:

 

gpg --export [uID]

 

To export.

 

Ok, I'll send all this to him.

 

If I am on the completely wrong track will you let me know please guys, cos I'll only send him on a wild goose chase...

 

thanks

Link to comment
Share on other sites

Contribution added:

http://www.oscommerce.com/community/contributions,611

 

:)

 

o/:

 

linux command line = use ssh or telnet.

 

To generate keys, use the gpg --gen-key command and follow the instructions.

 

That is all you need to do. Then go to the /.gnupg dir that gpg creates and download your secring.gpg and pubring.gpg to your local computer. You will need them to decrypt. Then copy your pubring.gpg to any dir above your public_html dir and give write permissions. Then create a temp dir and give world write permissions (777). Now set the correct paths in the contibution (where your key and temp are located). Set the correct username for the key in the contribution. This should look like: User Name (comment) <[email protected]>

 

Do all that right, and it will work for you. Do it wrong, and get many errors when you checkout! :shock:

Link to comment
Share on other sites

Hi,

 

I've been trying to install this mod for ages - and despite all the help here I'm still struggling :crazy: - if anyone can help I would be eternally grateful - then the shop can launch. I'm not sure if it's a gpg or a php problem.....

 

I'm using a pre-Nov release and v0.92 of the contribution - Linux host.

 

The script is running from httpsdocs/catalog2/catalog/includes/modules/payment/ccgpg.php

 

the pubring is in httpdocs/keyring/ - in this folder is just the pubring.gpg file (no other file, no sub .gnupg folder) - this works to unencrypt an e-mail on my own computer. Keyring folder is chmod 777 although httpdocs isn't.

 

the tmp directory is in httpsdocs/tmp - it is chmod 777 (although obviously httpsdocs isn't)

 

The code is as follows -

 

if ( (defined('MODULE_PAYMENT_CCGPG_ENCRYPT')) && (MODULE_PAYMENT_CCGPG_ENCRYPT == 'GPG') ) {

$message = 'Order #' . $insert_id . "nn" . 'Number: ' . $GLOBALS['cc_toencrypt'] . "nn";

$tmpToken = md5(uniqid(rand()));

$plainTxt = "/usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/tmp/" . "$tmpToken" . "anca";

$crypted = "/usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/tmp/" . "$tmpToken" . "anca.asc";

// $gpghome="/usr/local/psa/home/vhosts/pipersfarm.com/home/pubring.gpg"; //where is your pubring? That dir has to have write access.

$gpghome="/usr/local/psa/home/vhosts/pipersfarm.com/httpdocs/keyring/"; //where is your pubring? That dir has to have write access.

$gpgpath="/usr/local/bin"; //where is the executable -this must be the correct path to gpg

$gpgrecipient="Richy Brigham (pipersfarm.com) <[email protected]>"; //the key used for encryption

$fp = fopen($plainTxt, "w+");

fputs($fp, $message);

fclose($fp);

system("export HOME=" . $gpghome . " ;" . $gpgpath . " --batch --always-trust --quiet --no-secmem-warning --compress-algo 1 -ear '" . $gpgrecipient . "' $plainTxt");

$fd = fopen($crypted, "r");

$message = fread($fd, filesize($crypted));

fclose($fd);

unlink($plainTxt);

unlink($crypted);

tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, 'Extra Order Info', $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');

//tep_mail('', MODULE_PAYMENT_CC_EMAIL, 'Extra Order Info: #' . $insert_id, $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

}

}

 

 

The error messages I get running the script are ;

 

Warning: fopen("/usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/tmp/46db680d4279f2037c56fd6e6403ec23anca.asc", "r") - No such file or directory in /usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/catalog2/catalog/includes/modules/payment/ccgpg.php on line 281

 

Warning: stat failed for /usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/tmp/46db680d4279f2037c56fd6e6403ec23anca.asc (errno=2 - No such file or directory) in /usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/catalog2/catalog/includes/modules/payment/ccgpg.php on line 282

 

Warning: fread(): supplied argument is not a valid File-Handle resource in /usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/catalog2/catalog/includes/modules/payment/ccgpg.php on line 282

 

Warning: fclose(): supplied argument is not a valid File-Handle resource in /usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/catalog2/catalog/includes/modules/payment/ccgpg.php on line 283

 

Warning: unlink() failed (No such file or directory) in /usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/catalog2/catalog/includes/modules/payment/ccgpg.php on line 285

 

Warning: Cannot add header information - headers already sent by (output started at /usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/catalog2/catalog/includes/modules/payment/ccgpg.php:281) in /usr/local/psa/home/vhosts/pipersfarm.com/httpsdocs/catalog2/catalog/includes/functions/general.php on line 23

 

 

 

I've trid lots of differnt path names - all resulting in the same errors. Is it a problem with gpg working or maybe a problem with the php running in safe-mode - I'm at a complete loss and I fear for my sanity :cry:

 

 

Thanks in anticipation of help

Clint

Link to comment
Share on other sites

  • 5 months later...
Contribution added:

http://www.oscommerce.com/community/contributions,611

 

....... Then copy your pubring.gpg to any dir above your public_html dir and give write permissions.

 

when you say ABOVE your public_html directory do you mean the directory BEFORE or AFTER the public_html director? Not sure what this term means.

 

I presume ABOVE means BEFORE so that it cannot be accessed directly via the browser? (i.e mydomain.com/pubring/)?

 

CMR

Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...