Jump to content
Mark Evans

Official PayPal IPN Support Thread

Recommended Posts

It's shown as Credit/Debit Card (via PayPal) in the list, not as PayPal IPN.

 

It's been developed this way since the very early v1.1 (it was shown as PayPal IPN in v1.0).


Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites
It's shown as Credit/Debit Card (via PayPal) in the list, not as PayPal IPN.

 

It's been developed this way since the very early v1.1 (it was shown as PayPal IPN in v1.0).

 

Oh ok! I got it! I've been looking at the wrong thing all along! Thanks so much!

Share this post


Link to post
Share on other sites

Ok guys, help me here! I added 5 new products the other day and 2 of them are giving me issues. Using paypal IPN 2.3.3...when customer gets transfered over to paypal they get this error in the paypal screen instead of getting their login:

 

 

Data does not match input character set or default encoding. For more information, please contact the merchant.





Return to the homepage

 

 

I narrowed it down to 2 products but for the life of me I cannot figure out why they are doing this. I even tried deleting them and making new ones and same issue. Any ideas?

 

Jayman

Share this post


Link to post
Share on other sites
What do you have in those 2 products' name? In what language code?

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites

Nothing different than anything else.

 

1 that is doing it the title is : 3.5” x 6” Medium Cache Sticker

2nd one is: 3/4” x 3/4” Mini Sticker 2 pack

 

The one thing i thought might do it was the first one with the 3.5" but that didnt make any diference when i changed it to 3 1/2. plus I have other items with decimals in them, so i've ruled that out. English language.

 

Jayman

Share this post


Link to post
Share on other sites

Hi all,

 

IPN callback isn't working for me.

 

PHP version: 4.3.9

osCommerce version: 2.2ms2-060817

osCommerce_PayPal_IPN version 2.3.3

 

1. Check if you can access /oscommerce/ext/modules/payment/paypal_ipn/ipn.php

yep, white page in browser - empty html source

 

2. If your server has register globals off ...

register globals is on

 

3. Check if you have a shared/dedicated SSL, or your server has cURL lib installed.

https://mysite serves ok, but (1) uses a cert from an unknown CA and (2) points to a different web root

libcurl installed: libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6

 

4. Check if your server requires cURL connections to route through a proxy server...

from a command prompt on my server I can curl to a remote https file - does that prove that this is ok?

 

 

Is my https setup in (3) above the problem?

 

Or is there something else I should check?

 

Thanks

Share this post


Link to post
Share on other sites
Nothing different than anything else.

 

1 that is doing it the title is : 3.5” x 6” Medium Cache Sticker

2nd one is: 3/4” x 3/4” Mini Sticker 2 pack

 

The one thing i thought might do it was the first one with the 3.5" but that didnt make any diference when i changed it to 3 1/2. plus I have other items with decimals in them, so i've ruled that out. English language.

 

Jayman

 

I doubt it's the decimal. It's the quotation for inches. Replace that with &quote or just inches. and you should be ok.

Share this post


Link to post
Share on other sites

A familiar mantra, I am using oscommerce v2.2 RC1, I have installed osCommerce_PayPal_IPN_v2.3.3.

 

I have php 4.2.2, open ssl is enabled OpenSSL 0.9.7a Feb 19 2003, curl support is enabled libcurl 7.9.8 (OpenSSL 0.9.7a) (ipv6 enabled), when I access http://mypath/catalog/ext/modules/payment/...al_ipn/ipn.php; I get a blank page.

 

However in the order page for Paypal ipn all I ever get is the initial "Preparing [PayPal IPN] " for Set Preparing Order Status, and nothing for the next steps as well as product inventory remains unchanged.

 

I stepped through the trouble shooting steps in the documentation and all appears okay, so I figure I am missing something.

 

I am running from a LINUX machine running redhat 9 and I can set whatever needs to be set.

 

Thank You

 

Gene poschman

gene@discountshoppingbags.com

Share this post


Link to post
Share on other sites
I doubt it's the decimal. It's the quotation for inches. Replace that with "e or just inches. and you should be ok.

 

Now that is weird....I was able to use " and it works fine! If i used "e i got an "e" in there for some reason. But none the less that worked but I dont understand why it gave me that problem to begin with on those two. I have other ones on there with quotations the same way and no problemos. Wonder why. Thanks so much for the help!

 

Jayman

Share this post


Link to post
Share on other sites

For further IPN troubleshooting, access to server error log is required. Please ask your host if you don't know how to use error log.

 

Please use the debug code in this post for v2.3.3:

Click on the small red arrow and you'll see it. Before posting the results, please make sure to only post those lines started with PP TEST, and to mask all private info.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites

Mister Alex,

May be you know. Is there anyway invoice that sent to customer can use html form from the contribution that I have installed:

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

Now customers getting plain text invoices if they using PAYPAL check out and HTML fancy invoices - if they use any other payment method.

Thank you in advance.

Kind regards...

Share this post


Link to post
Share on other sites
Yes I'm using fancier invoice email with PayPal IPN. You need to modify ipn.php, which is handling the invoice email, if you're using v2.x of this PayPal IPN module. Compare the code in ipn.php with checkout_process.php and you will find the location to insert the modifications for fancier invoice email contribution to work with this one.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites

Alex,

Is there anyway you can post your ipn.php file into contribution area or post it here? I am so confusing about putting code. Every time when I put

// START HTML Invoice

if (EMAIL_INVOICE == 'true') {

require(DIR_WS_MODULES . EMAIL_INVOICE_DIR . FILENAME_EMAIL_INVOICE);

} else {

// END HTML Invoice

 

and

 

// START HTML Invoice

}

// END HTML Invoice

 

I am either getting error in functions\general.php or getting plain text invoice again :(

Appreciate your help.

Kind regards

Share this post


Link to post
Share on other sites
Sorry my ipn.php is heavily modified and hard coded with my custom works, so I can't show it here. However, here is a sample modification for using with Email Invoice 1.1 dated 5 May 2005 by Federico Rodriguez, which is also an HTML based invoice and it supports Fancier Invoice templates.

 

Find in catalog/ext/modules/payment/paypal_ipn/ipn.php (v2.3) around line 293-294:

		  }
	} // END STATUS == COMPLETED LOOP

Replace with:

		  }
// BOF Email Invoice 1.1
	  }
// EOF Email Invoice 1.1
	} // END STATUS == COMPLETED LOOP

Then at around line 245-246 find:

// EOF content type fix by AlexStudio
// $order variables have been changed from checkout_process to work with the variables from the function query () instead of cart () in the order class

Replace with:

// EOF content type fix by AlexStudio
/********************************************************************************
****************************
* Email Invoice 1.1																						 *
********************************************************************************
****************************/
// BOF Email Invoice 1.1
	  if (EMAIL_INVOICE == 'true') {
		// One could assume that if you want to send the HTML invoice then this would be redundant,
		// but if for some reason the store owner changed their mind and ceased all HTML emails but forgot
		// to disable this mod then this would still honor their decision and not add the extra overhead
		// of compiling the HTML version, ond only send the original text version
		if (EMAIL_USE_HTML == 'true') {
		  $ei_admin = DIR_FS_ADMIN;
		  $ei_template_dir = DIR_WS_MODULES . EMAIL_INVOICE_DIR . INVOICE_TEMPLATE_DIR;
		  $ei_image_dir = HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES;
		  $ei_css_path = HTTP_SERVER . DIR_WS_CATALOG . $ei_template_dir;
		  $ei_template_file = $ei_template_dir . EMAIL_TEMPLATE_FILE;
		  $ei_temp_file = DIR_WS_MODULES . EMAIL_INVOICE_DIR . FILENAME_EMAIL_CACHE_FILE;

		  require(DIR_FS_ADMIN . DIR_WS_LANGUAGES . $language . '/' . FILENAME_ORDERS_INVOICE);

		  $oID = $insert_id = $_POST['invoice'];
		  $date = date('M d, Y');

		  ob_start();
		  include($ei_template_file);
		  //this can be done in one funciton call in PHP >= 4.3.0 but to keep it compatible, I use 2
		  $ei_html_email = ob_get_contents();
		  ob_end_clean();

		  // Replace relative paths to absolute paths
		  // and space since the email class adds tons of <br> tags if you don't
		  // strip them out first

		  $ei_search = array("\n" , "\r");

		  $ei_html_email = str_replace($ei_search, "", $ei_html_email);
		  $ei_html_email = str_replace('src="images/', "src=\"$ei_image_dir", $ei_html_email);
		}
		// Build the standard email using OSC code
		$email_order = 	STORE_NAME . "\n" . 
						EMAIL_SEPARATOR . "\n" . 
						EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
						EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
						EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";

		if ($order->info['comments']) $email_order .= tep_db_output($order->info['comments']) . "\n\n";

		$email_order .= EMAIL_TEXT_PRODUCTS . "\n" .
						EMAIL_SEPARATOR . "\n" . 
						$products_ordered . 
						EMAIL_SEPARATOR . "\n";

		for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
		  $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
		}

		if ($order->content_type != 'virtual') {
		  $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" .
						  EMAIL_SEPARATOR . "\n" .
						  tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
		}

		$email_order .= "\n" . 	EMAIL_TEXT_BILLING_ADDRESS . "\n" .
						EMAIL_SEPARATOR . "\n" .
						tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";

		if (is_object($$payment)) {
		  $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . 
						  EMAIL_SEPARATOR . "\n";
		  $payment_class = $$payment;
		  $email_order .= $payment_class->title . "\n\n";

		  if ($payment_class->email_footer) $email_order .= $payment_class->email_footer . "\n\n";
		}

		// Add both versions to the email to accomodate people who see html and those that don't
		$ei_message = new email(array('X-Mailer: osCommerce Mailer'));

		// Build the text version
		$ei_text = strip_tags($email_order);

		if (!empty($ei_html_email)) $ei_message->add_html($ei_html_email, $ei_text);
		else $ei_message->add_text($ei_text);	

		$ei_message->build_message();
		$ei_message->send($order->customer['name'], $order->customer['email_address'], STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, EMAIL_TEXT_SUBJECT);

		if (SEND_EXTRA_ORDER_EMAILS_TO != '') $ei_message->send('', SEND_EXTRA_ORDER_EMAILS_TO, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, EMAIL_TEXT_SUBJECT);

	  } else {
// EOF Email Invoice 1.1
// $order variables have been changed from checkout_process to work with the variables from the function query () instead of cart () in the order class


Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites
Hi, I've FTP'd the EXT and INCLUDES folders to a temp store, both ext and includes are on the same level as the admin folder.

 

eg: public_html/store/admin

public_html/store/ext

public_html/store/includes

 

When I attempt to install the Paypal IPN module via the Admin back end it does not appear in the list of Payment modules. I can browse the relevant folders and clearly see the files exist on the server.

 

I have tried uploading and installing to 2 separate test stores and I have the same problem

 

 

 

I'm having same issue :(

Share this post


Link to post
Share on other sites

Shipping DOES APPEAR, then DISSAPEARS

 

My shipping charges appear on the first page of the payment screen (where you choose to type in CC info, or login) once you go past that point the shipping charges GO AWAY!

 

I've tried 'clearing' shipping options in my account, but i think PP made some changes and now thats not really possible.

 

I've read the manual, searched the forum - anyone have any ideas on my disapearing shipping charges?!

 

thanks so much,

 

 

Drew

 

***** UPDATE: This only happens when I have more than 1 item in the cart *****

Edited by ScubaDrew

Share this post


Link to post
Share on other sites
Most likely your server is blocking all outbound connections from scripts.

 

Hi Alex, I have asked my host and he told me "maybe is the firewall, but for this i need to know the protocol and what port you need to open"

help please? http port 80?

Share this post


Link to post
Share on other sites

hi alex and all the others,

 

i got a probably stupid question:

 

why is an order written in the sql-database in the

function confirmation()

and not in the

function process_button() from paypal_ipn.php?

 

wouldn't it be nicer, that the database entry will be written only in that case, when a cutomer actually makes an order and not then, when he only looks at the confirmation screen?

Share this post


Link to post
Share on other sites
Well, interesting question, but I'm not the one who put those code in that function. If you move those code to function process_button(), what do you want to do with function confirmation()?

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites
Well, interesting question, but I'm not the one who put those code in that function. If you move those code to function process_button(), what do you want to do with function confirmation()?

what? i thought, that YOU made the most of changes in PP IPN :D

in other modules the function_confirmation() has the function to state some additional payment info. one example:

	function confirmation() {
  return array('title' => MODULE_PAYMENT_VORKASSE_TEXT_DESCRIPTION);
}

and nothing else.

 

i came around that, because i wondered how many "preparing" orders i have in my shop. i thought always of problems with paypal, but it seems, that when a customer uses the shopping cart and goes straightly to checkout_confirmation.php, the order is written into the database, although he does NOT click the "confirm payment" button, which means: he does not even go to paypal... but the order was stored in database.

 

so i wondered, if it wouldn't be better to write to database only in that case, when the customer really clicks on "confirm payment", i.e. function process_button()

 

as a summary: when "preparing" is in order status then, the cause is REALLY paypal ;)

Share this post


Link to post
Share on other sites
Hmmm... REALLY interesting. This can be achieved by adding an additional script as the form action url of the confirm button, to create the premature order in database AFTER the button's been hit, but seems redundant. What's the difference between abandoning the order at your store and at PayPal site? You still need to clean up those orders abandoned at PayPal, right? You can only lost traces of those orders abandoned at your store, no chance to work on those sales. Edited by AlexStudio

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites

Nominally Alex the case for abandonment you give is true, however, reality is that the customer is far more likely to abandon before going to PayPal than once in PayPal itself...... unless PayPal reveals some extra costs not shown throughout checkout

 

Gaz


Wearing a seatbelt prevents head injuries when the computer crashes - - - Yeah Right!!! - not in this office.

Share this post


Link to post
Share on other sites
Rather than adding a script to handle orders before sending customers to PayPal, I'd prefer to add a button in admin orders page to clean up all Preparing[PayPal IPN] orders on a single click, which is far more easier to be done.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×