Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Official PayPal IPN Support Thread


Mark Evans

Recommended Posts

The [error] is only because we are using error_log to log the data to the error log - it's a convenient way to log data on a live site. Doesn't mean they are errors.

 

Your log confirms that Post variables are received. Can you post your first 100 lines of the ipn.php file on this thread? Terra

 

PS: the email we can deal with later - let's get the big picture sorted first.

 

Terra:

 

You may not remember but I reverted back to v 1.1.2.6

 

Agian, I am indebted to you for your assistance.

 

<?php

/*

$Id: ipn.php,v 1.1.2.6 2004/12/01 02:41:26 hpdl Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2004 osCommerce

 

Released under the GNU General Public License

Added this line:

error_log('PP TEST received POST variable: ' . $key . ' : ' . $value);

4-11-2007

*/

 

chdir('../../../../');

require('includes/application_top.php');

 

$parameters = 'cmd=_notify-validate';

 

foreach ($_POST as $key => $value) {

error_log('PP TEST received POST variable: ' . $key . ' : ' . $value);

$parameters .= '&' . $key . '=' . urlencode(stripslashes($value));

}

 

if (MODULE_PAYMENT_PAYPAL_IPN_GATEWAY_SERVER == 'Live') {

$server = 'www.paypal.com';

} else {

$server = 'www.sandbox.paypal.com';

}

 

$fsocket = false;

$curl = false;

$result = false;

 

if ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://' . $server, 443, $errno, $errstr, 30)) ) {

$fsocket = true;

} elseif (function_exists('curl_exec')) {

$curl = true;

} elseif ($fp = @fsockopen($server, 80, $errno, $errstr, 30)) {

$fsocket = true;

}

 

if ($fsocket == true) {

$header = 'POST /cgi-bin/webscr HTTP/1.0' . "\r\n" .

'Host: ' . $server . "\r\n" .

'Content-Type: application/x-www-form-urlencoded' . "\r\n" .

'Content-Length: ' . strlen($parameters) . "\r\n" .

'Connection: close' . "\r\n\r\n";

 

@fputs($fp, $header . $parameters);

 

$string = '';

while (!@feof($fp)) {

$res = @fgets($fp, 1024);

$string .= $res;

 

if ( ($res == 'VERIFIED') || ($res == 'INVALID') ) {

$result = $res;

 

break;

}

}

 

@fclose($fp);

} elseif ($curl == true) {

$ch = curl_init();

 

curl_setopt($ch, CURLOPT_URL, 'https://' . $server . '/cgi-bin/webscr');

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HEADER, false);

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

 

$result = curl_exec($ch);

 

curl_close($ch);

}

 

if ($result == 'VERIFIED') {

if (isset($_POST['invoice']) && is_numeric($_POST['invoice']) && ($_POST['invoice'] > 0)) {

$check_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . $_POST['invoice'] . "' and customers_id = '" . (int)$_POST['custom'] . "'");

if (tep_db_num_rows($check_query) > 0) {

$comment_status = $_POST['payment_status'];

 

if ($_POST['payment_status'] == 'Pending') {

$comment_status .= '; ' . $_POST['pending_reason'];

} elseif ( ($_POST['payment_status'] == 'Reversed') || ($_POST['payment_status'] == 'Refunded') ) {

$comment_status .= '; ' . $_POST['reason_code'];

}

 

tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . ((MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID > 0) ? MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID : DEFAULT_ORDERS_STATUS_ID) . "', last_modified = now() where orders_id = '" . $_POST['invoice'] . "'");

 

$sql_data_array = array('orders_id' => $_POST['invoice'],

'orders_status_id' => (MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID > 0) ? MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID : DEFAULT_ORDERS_STATUS_ID,

'date_added' => 'now()',

'customer_notified' => '0',

'comments' => 'PayPal IPN Verified [' . $comment_status . ']');

 

tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

}

}

} else {

if (tep_not_null(MODULE_PAYMENT_PAYPAL_IPN_DEBUG_EMAIL)) {

$email_body = '$_POST:' . "\n\n";

foreach ($_POST as $key => $value) {

$email_body .= $key . '=' . $value . "\n";

}

$email_body .= "\n" . '$_GET:' . "\n\n";

foreach ($_GET as $key => $value) {

$email_body .= $key . '=' . $value . "\n";

}

 

tep_mail('', MODULE_PAYMENT_PAYPAL_IPN_DEBUG_EMAIL, 'PayPal IPN Invalid Process', $email_body, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

}

Link to comment
Share on other sites

Hank - the module writes the data to the database, exactly the same as all other payment modules. The code for this is towards the bottom of the paypal_ipn.php file. In your case, all headings are missing which should have been written to the DB ... My advice is that this is a problem with your site, not the payment module.

 

Within paypal_ipn.php it looks like your site got wonky after this entry:

	  tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_PAYPAL_IPN_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '3', now())");

because this entry was not written properly into the DB:

			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 ('Force shipping address?', 'MODULE_PAYMENT_PAYPAL_IPN_SHIPPING', 'False', 'If TRUE the address details for the PayPal Seller Protection Policy are sent but customers without a PayPal account must re-enter their details. If set to FALSE order is not eligible for Seller Protection but customers without acount will have their address fiels pre-populated.', '6', '4', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

this is fairly straight-forward stuff and does work "out of the box" so something is wonky on your site. all the best - Terra

 

Thank you very much for your help. As a newby, it's easy to get discouraged when you believe you followed all the directions and things don't turn out as expected. Anyway, I thought the best way to proceed was to repeat all the steps, so I did. Uninstalled then re-installed in the admin. section where I encountered the following "error" message:

 

1406 - Data too long for column 'configuration_description' at row 1

 

insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Force shipping address?', 'MODULE_PAYMENT_PAYPAL_IPN_SHIPPING', 'False', 'If TRUE the address details for the PayPal Seller Protection Policy are sent but customers without a PayPal account must re-enter their details. If set to FALSE order is not eligible for Seller Protection but customers without acount will have their address fiels pre-populated.', '6', '4', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())

 

Is this significant and might it explain why it did not write to the dB correctly?

 

Any thoughts on how to correct this?

 

Thank you,

 

-Hank

Link to comment
Share on other sites

Is this significant and might it explain why it did not write to the dB correctly?

Yeap - that is significant.

 

Replace

			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 ('Force shipping address?', 'MODULE_PAYMENT_PAYPAL_IPN_SHIPPING', 'False', 'If TRUE the address details for the PayPal Seller Protection Policy are sent but customers without a PayPal account must re-enter their details. If set to FALSE order is not eligible for Seller Protection but customers without acount will have their address fiels pre-populated.', '6', '4', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

with

			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 ('Force PayPal shipping address?', 'MODULE_PAYMENT_PAYPAL_IPN_SHIPPING', 'False', 'If TRUE, the order includes the PayPal address details and may be eligible for Seller Protection (if address is confirmed). If set to FALSE, no PayPal address is required. Recommended default setting is FALSE.', '6', '4', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

 

.. that should be short enough. If the error occurs again, just chop some of the text off (as long as the start ' and end ' are there, you're okay).

 

all the best - Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

No help for my problem :'(

 

The status of the order goes to "preparing (paypal IPN)" than "processing (comments: completed)" then back to "preparing (paypal IPN)"...

 

Why the last one?

 

Thanks

 

Karim.

Edited by KPGroup
Link to comment
Share on other sites

Yeap - that is significant.

 

Replace

			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 ('Force shipping address?', 'MODULE_PAYMENT_PAYPAL_IPN_SHIPPING', 'False', 'If TRUE the address details for the PayPal Seller Protection Policy are sent but customers without a PayPal account must re-enter their details. If set to FALSE order is not eligible for Seller Protection but customers without acount will have their address fiels pre-populated.', '6', '4', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

with

			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 ('Force PayPal shipping address?', 'MODULE_PAYMENT_PAYPAL_IPN_SHIPPING', 'False', 'If TRUE, the order includes the PayPal address details and may be eligible for Seller Protection (if address is confirmed). If set to FALSE, no PayPal address is required. Recommended default setting is FALSE.', '6', '4', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

 

.. that should be short enough. If the error occurs again, just chop some of the text off (as long as the start ' and end ' are there, you're okay).

 

all the best - Terra

 

Hello Terra,

 

Your suggestion worked perfectly. I now get a proper layout with the ability to edit the various items. Thank you very, very much!

 

This is probably a stupid question, but what would be the reason that the code as it appears in the module needed to be "amended"? Just curious.

 

Anyway, I'll carry on and see how much further I get. (I've pretty well got the osCommerce appearance where I want it.) Now I'm trying to get the whole thing functioning using PayPal's "Sandbox" feature.

 

Thanks again.

 

-Hank :)

Link to comment
Share on other sites

This is probably a stupid question, but what would be the reason that the code as it appears in the module needed to be "amended"? Just curious.

Hi Hank - it's about different DB settings ... basically it's a bug in the contribution (also called human error or Terra did not look up the db field max settings before writing a really long entry) but how the db handles it can differ. In your case the db fell over & complained whilst on most other sites the db just grumbles silently but accepts the really long entry. Terra

Edited by Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

Hi Hank - it's about different DB settings ... basically it's a bug in the contribution (also called human error or Terra did not look up the db field max settings before writing a really long entry) but how the db handles it can differ. In your case the db fell over & complained whilst on most other sites the db just grumbles silently but accepts the really long entry. Terra

 

Thanks for the explanation. Having done a bit of coding (very little!), I'm well aware that it's easy to have little gremlins creep in. :) For what it's worth, I'm developing this site on the "Apache\PHP\MySQL" on my own computer. I don't know enough to be able to fiddle with how the database is set up. I just followed the instructions on the osCommerce install.

 

Anyway, it goes without saying that all of us owe you and the rest of the group a huge vote of thanks for all your efforts! :thumbsup:

 

Now back to my struggles. Everything worked extremely well including running a transanction through the "Sandbox". But... on the very last step it generated the following error (which looks somewhat like the other one):

 

1406 - Data too long for column 'last_page_url' at row 1

 

insert into whos_online (customer_id, full_name, session_id, ip_address, time_entry, time_last_click, last_page_url) values ('0', 'Guest', '8d607e877f95695218e34dc421ff07a5', '127.0.0.1', '1176314795', '1176314795', '/kandy/catalog/checkout_process.php?payment_date=11%3A02%3A12+Apr+11%2C+2007+PDT&txn_type=web_accept&last_name=James&receipt_id=2774-8240-1866-6894&residence_country=CA&item_name=Kandy+Land&payment_gross=&mc_currency=CAD&[email protected]&payment_type=instant&verify_sign=ACUe-E7Hjxmeel8FjYAtjnx-yjHAAp5wskzyRxI08BR593SyykxlhjhH&payer_status=unverified&test_ipn=1&tax=0.00&[email protected]&txn_id=8CR94932YL044120J&quantity=1&[email protected]&first_name=Susan&invoice=14&payer_id=SGKFL96YTA3EJ&receiver_id=T56DMH87C4QR2&item_number=&payment_status=Completed&payment_fee=&mc_fee=1.05&shipping=0.00&mc_gross=17.08&custom=5&charset=windows-1252¬ify_version=2.1&merchant_return_link=Complete+your+Order+Confirmation&form_charset=UTF-8')

 

Any ideas on this one?

 

-Hank

Link to comment
Share on other sites

I feel like everybody is ignoring me? Is it my imagination? :unsure:

 

 

No help for my problem :'(

 

The status of the order goes to "preparing (paypal IPN)" than "processing (comments: completed)" then back to "preparing (paypal IPN)"...

 

Why the last one?

 

Thanks

 

Karim.

Link to comment
Share on other sites

I feel like everybody is ignoring me? Is it my imagination? :unsure:

Karim.

 

Karin:

 

I don't think they are Karim. It's just that everyone has busy lives. I am sure someone who can help will contribute when they have a chance. I have read your posting but I can't be of help. Sorry.

 

Just my opinion.

Link to comment
Share on other sites

Thanks for your attention :thumbsup:

 

I hope someone can help me. I'll keep my fingers crossed. ;)

 

 

 

 

Karin:

 

I don't think they are Karim. It's just that everyone has busy lives. I am sure someone who can help will contribute when they have a chance. I have read your posting but I can't be of help. Sorry.

 

Just my opinion.

Link to comment
Share on other sites

I faced the problem about total amount. Actually i don't know what's the shiiping and handling fee of USD3.00 on paypal checkout page. I never set the handling fee and the subtotal included the shipping already, why?

Link to comment
Share on other sites

agggghhhh!! Why won't my orders_status column update?? It is stuck on 1!

 

I have read this ENTIRE thread (my eyes are sore) and I simply can't see a reason why my orders_status column in not updating. Everything else is working fine (emails are sent, OSC is making all the right noises) it just simply will NOT update my orders_status column in the orders column.

 

Can anyone help??

 

Adam

Link to comment
Share on other sites

Now back to my struggles. Everything worked extremely well including running a transanction through the "Sandbox". But... on the very last step it generated the following error (which looks somewhat like the other one)

Hank - okay, don't know about this one. The variables in the code you posted are sent as GET variables which of course make the URL about 10 miles long. However, the variables should not be sent as GET variables at all (everything should be handled via POST variables). GET variables are not secure (as they clearly visible in the URL) so it's not clever to use the for payment transactions. Any chance you made a modification somewhere which would create these GET variables? I don't think it's the module or PayPal as otherwise everybody would have the same problem. Sorry, no easy answers here. All I can say it should not happen and I don't know why it's doing this on your site. Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

I simply can't see a reason why my orders_status column in not updating. Everything else is working fine (emails are sent, OSC is making all the right noises) it just simply will NOT update my orders_status column in the orders column.

Hi Adam - first: which version of the module are you using? And secondly, any chance there's a permission problem? The ipn.php file in the /ext/ directory updates the database ... if everything else works, then the only thing I can think of is that the file can't write to the db for some reason. In this case, other db updates such as stock reduction should also fail. The code is pretty straight-forward:

			 tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . $order_status_id . "', last_modified = now() where orders_id = '" . $_POST['invoice'] . "'");

	$sql_data_array = array('orders_id' => $_POST['invoice'],
							'orders_status_id' => $order_status_id,
							'date_added' => 'now()',
							'customer_notified' => $customer_notified,
							'comments' => 'PayPal IPN Verified [' . $comment_status . ']');

	tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

all the best - Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

I feel like everybody is ignoring me? Is it my imagination? :unsure:

I'm not ignoring you but I don't have an answer and it's my policy only to reply to post where I feel I can be of help. Sorry, Terra

PS: it's good practice when you don't get replies to post back with more information & examples. If nobody replies, it's likely that your problem was not understood - reposting with a different description & more information is therefore useful, rather than bumping the post (which is also against forum policy).

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

Hank - okay, don't know about this one. The variables in the code you posted are sent as GET variables which of course make the URL about 10 miles long. However, the variables should not be sent as GET variables at all (everything should be handled via POST variables). GET variables are not secure (as they clearly visible in the URL) so it's not clever to use the for payment transactions. Any chance you made a modification somewhere which would create these GET variables? I don't think it's the module or PayPal as otherwise everybody would have the same problem. Sorry, no easy answers here. All I can say it should not happen and I don't know why it's doing this on your site. Terra

 

Hi Terra,

 

I'm not sure where to go from here. I'm pretty meticulous and I wouldn't dream of messing with any of the code relating to this, certainly not substituting GET for POST. Anyway, here's what happens. I get as far as this screen at PayPal:

 

trans_complete.jpg

 

On the very next step it goes to the screen I've indicated. The URL reads:

 

 

This is obviously a call from another page (which presumably reads GET instead of POST) but I have no idea what that page would be called or where to find it. My problem, of course, is that I don't have any idea what the exact sequence is or which page (or site) goes to which. I'd be happy to look for issues if only I knew where to look!

 

If I can't get past this little snag (I'm sure there is a simple explanation), I'll have no choice but to abandon the whole project which is a shame since I've spent the past two months getting this far. :(

 

-Hank

 

P.S. I'm not sure what other information would help you to point me in the right direction.

Link to comment
Share on other sites

I'm not ignoring you but I don't have an answer and it's my policy only to reply to post where I feel I can be of help. Sorry, Terra

PS: it's good practice when you don't get replies to post back with more information & examples. If nobody replies, it's likely that your problem was not understood - reposting with a different description & more information is therefore useful, rather than bumping the post (which is also against forum policy).

 

 

 

Thank you for your answer. It is much appreciated. :thumbsup:

 

Just a little word saying that you didn't know what the problem was might have helped. At least I would have known that my post was noticed.

I think it is easy to miss a post in a busy thread.

 

Anyways, I will keep on trying to figure it out.

 

Thank you for the great support work in general and sorry if my behaviour was perceived as rude.

It was not my intention. My apologies.

 

Karim.

Link to comment
Share on other sites

I'm not ignoring you but I don't have an answer and it's my policy only to reply to post where I feel I can be of help. Sorry, Terra

PS: it's good practice when you don't get replies to post back with more information & examples. If nobody replies, it's likely that your problem was not understood - reposting with a different description & more information is therefore useful, rather than bumping the post (which is also against forum policy).

 

Terra:

 

Just wondering, following the logic in the above message, if I need to post more information than what you requested and if that is why no response to this posting: http://www.oscommerce.com/forums/index.php?sho...917&st=2460

 

Or perhaps because of the version No. used? Just let me know.

 

Dennis

Link to comment
Share on other sites

Generic Guide - if ipn.php is not updating the order

 

Symptoms: no order email, stock is not updated, order status is not updated

 

Possible causes

 

1. Register Globals

If your server requires you to have php.ini files in all directories then make sure that it was copied into the new /ext/ directory. Depending on your server set-up you may have to copy this into each folder level

 

This may save someone a lot of time and effort.

 

Paste this into a text document and save it with the name simple.php

<?php

if ($mode=="simple") {

echo "register_globals is on";

} else {

phpinfo();

}

?>

 

Upload simple.php to this directory: /etc/etc/public_html/ext/modules/payment/paypal_ipn

 

Now type this url in your browser: http://www/yoursite.com/etc/ext/modules/pa..._ipn/simple.php

 

Page down to "PHP Core" and look for "register_globals". The local value should be "On" for register_globals.

 

If it isn't your /ext/modules/payment/paypal_ipn/ipn.php will probably not be able to update payment status or communicate with the PayPal server. To turn global_registers on in the ext dieectory place a .htaccess (on Apache anyway) in the ext folder with this:

<IfModule mod_php4.c>

php_value register_globals 1

</IfModule>

If you have php.4 that is.

 

Others may need to use this:

php_flag register_globals on

 

Test with your browser agin: simple.php.

 

Hope this helps someone.

Link to comment
Share on other sites

apologies if this has been covered, but i can't find any info any where.

 

i have installed the PayPal IPN contrib, and i can configure it in the modules section, but the payment option does not show up in the checkout on the site. I have the same problem with the Check/Money Order module as well.

 

am i missing something really basic?

 

any help would be appreciated as this is stopping me from taking my site live.

 

many thanks.

 

tom

Link to comment
Share on other sites

apologies if this has been covered, but i can't find any info any where.

 

i have installed the PayPal IPN contrib, and i can configure it in the modules section, but the payment option does not show up in the checkout on the site. I have the same problem with the Check/Money Order module as well.

 

am i missing something really basic?

 

any help would be appreciated as this is stopping me from taking my site live.

 

many thanks.

 

tom

 

sorry everyone. managed to fix it myself :-"

i had to change the zone back to "--none--" and hey presto, the payment options appeared!

 

onwards and upwards.

Link to comment
Share on other sites

On the very next step it goes to the screen I've indicated. The URL reads:

Is this "localhost for a reason? The PayPal IPN will only work on a live site on a server so I'd expect to see your website URL there, not localhost. Other than that I'm stumped - the page is checkout_process.php however like I said - if this was a generic bug, everybody would be suffering, not just your site. Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

Is this "localhost for a reason? The PayPal IPN will only work on a live site on a server so I'd expect to see your website URL there, not localhost. Other than that I'm stumped - the page is checkout_process.php however like I said - if this was a generic bug, everybody would be suffering, not just your site. Terra

Hi Terra,

I really do appreciate your patience on this one. :)

 

As I mentioned here:

For what it's worth, I'm developing this site on the "Apache\PHP\MySQL" on my own computer.

I'm trying as much as possible to work out all the issues before I go on a live server with this. Just my naturally cautious nature, I guess. It did occur to me that the interaction with the PayPal Sandbox might not work with the cart being offline but I thought I'd give it a shot. To my surprise a lot of it did work and I assumed that if the link-back didn't work it would give me a message like "unable to locate the url... yada yada".

 

In fact, when I click the "Return to Kandy Land" link on the (https://www.sandbox.paypal.com/cgi-bin/webscr) PayPal site, it returns me seamlessly to my offline shopping cart. This is what made me think the error might be in the PayPal IPN module or some related page(s) on the site. It is possible, I suppose that with the cart being offline, the PayPal site, on completion of the transaction, messes up somehow.

 

The only way I can track that down would be to make myself much more familliar with PHP and try to follow the sequence step by step. I'm torn. Do I leave this part of the operation and go on to the rest, assuming this part will work? I was kinda hoping to get thoroughly familliar with all phases of the cart including finalizing the transaction, the various reports, stock lists, errors, etc.

 

Anyway, like you said, you're stumped and your point about no one else having a problem is very valid! So leave it with me to struggle along on this.

 

Thanks again for your efforts on my behalf. I do appreciate it. :thumbsup:

 

-Hank

Link to comment
Share on other sites

Hallo,

I have the -no order email, stock is not updated, order status is not updated - problem,

but the register_globals is on and the communication with paypal works.

 

I debugged the ipn.php and I have the phenomenon, that only the variable "invoice" is empty.

The ipn.php gets "verified"-status from paypal, but can't update the status without the invoice-number.

 

Thank you

Link to comment
Share on other sites

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...