Forums / General Questions / PayPal Instant Payment Notification Warning and CHARSET

PayPal Instant Payment Notification Warning and CHARSET

Views: 1,194

Results 1 to 7 of 7
19 Jul 2016, 8:34 AM
#1
pramitha avatar

pramitha

New Zenner

Join Date:
Jul 2016
Posts:
7
Plugin Contributions:
0

PayPal Instant Payment Notification Warning and CHARSET

Hello,

Our server configurations are,

PHP 5.5.36
Mysql 5.6.30
Zencart v1.5.1

Charset in meta tag is : <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

In CLIENT module configure.php , the DB character set is : utf8
in client moduel language file, charset is,
languages/english.php - utf-8
languages/french.php - iso-8859-1
languages/german.php - utf-8
languages/italian.php - utf-8
languages/spanish.php - utf-8

In ADMIN module configure.php, the DB character set is : iso-8859-1
In admin module language file, charset is,
languages/english.php - ISO-8859-1
languages/french.php - iso-8859-1
languages/german.php - utf-8
languages/italian.php - utf-8
languages/spanish.php - utf-8

But in this case if the customer entered any other language,currency symbols etc.. That value will not be updated in DB. The other language/symbols are stripped from the sentence. So I changed the DB charset from 'utf8' to 'utf-8' in includes/configure.php. In this case the currency and other languages are correctly updated to DB.

But after this one of our customers received a Paypal mail regarding the 'PayPal Instant Payment Notification Warning'.

===================
Dear George,

Please check your server that handles PayPal Instant
Payment Notifications (IPN). Instant Payment Notifications
sent to the following URL(s) are failing:

https://www.gointernational.co.uk/ipn_main_handler.php

If you do not recognize this URL, you may be using a
service provider that is using IPN on your behalf. Please
contact your service provider with the above information. If
this problem

continues, IPNs may be disabled for your account.

Thank you for your prompt attention to this issue.

Yours sincerely,
PayPal

We are using Paypal express checkout feature. The IPN settings are correct in Paypal and Zencart admin section.

This is a high priority issue, it would be great If you people can help me to fix this issue.

Regards,
Pramitha Paul

19 Jul 2016, 12:11 PM
#2
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,119
Plugin Contributions:
56

Re: PayPal Instant Payment Notification Warning and CHARSET

The real question is: "What collation is being used by your database?". Use your webhost's cPanel and search for the phpMyAdmin tool. Open that tool and then select your database to see its settings. All the tables within the database are listed and you'll be interested in the value(s) in the Collation column.

Does that column show values like utf8_xxx or latin1_xxx? That answer will decide which character/database encoding you'll want to set into the configure.php and primary-language files.

In either case, your store's configuration is currently going to generate you a world of hurt due to all those character-encoding inconsistencies.

If the database collation is a utf8 one, then both of your configure.php files need to specify the DB_CHARSET as utf8 (no intervening dash) and each of your language files should use a utf-8-based character encoding.

If the collation is a latin1 one, then I suggest using the most-excellent "Convert Database to UTF8" plugin and then, again, set the configure.php files and language files to use a utf8 encoding.

FWIW, PayPal uses a UTF8 character encoding in its transmissions back to your store, so if your store is using a latin1/iso-8859-1 type encoding any customer name/address information that includes characters outside of A-Za-z0-9 (plus a couple of symbols), those characters (like áéíóúñ¿¡) will show up in your database as áéÃ##óúñ¿¡ ... not pretty!

19 Jul 2016, 12:23 PM
#3
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,119
Plugin Contributions:
56

Re: PayPal Instant Payment Notification Warning and CHARSET

Note also that you'll need to update your French language files to be UTF8 as well; otherwise, any characters like é in your language files will be improperly displayed on your store.

20 Jul 2016, 7:10 AM
#4
pramitha avatar

pramitha

New Zenner

Join Date:
Jul 2016
Posts:
7
Plugin Contributions:
0

Re: PayPal Instant Payment Notification Warning and CHARSET

Thank you so much for your response.

Right now we are using the DB Collation 'utf8_general_ci' for all tables. So we need to change the charset of both configure.php and all the language files to 'utf-8' . Also we need to change the meta tag to 'utf-8'. I hope this will fix our issues.

Regards,
Pramitha

20 Jul 2016, 11:57 AM
#5
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,119
Plugin Contributions:
56

Re: PayPal Instant Payment Notification Warning and CHARSET

pramitha:

Thank you so much for your response.

Right now we are using the DB Collation 'utf8_general_ci' for all tables. So we need to change the charset of both configure.php and all the language files to 'utf-8' . Also we need to change the meta tag to 'utf-8'. I hope this will fix our issues.

Regards,
Pramitha
Just remember that when you specify your DB_CHARSET in the two configure.php files to use ***utf8 ***(no intervening dash) for the definition and to find a utf8-update for the french language files.

The files in your /includes/languages/french folders (both storefront and admin) are going to use ASCII/ISO-8559-1 encoding, so when you change the store to use a CHARSET of utf-8, there will be characters that display incorrectly (like I previously posted).

21 Jul 2016, 4:29 AM
#6
pramitha avatar

pramitha

New Zenner

Join Date:
Jul 2016
Posts:
7
Plugin Contributions:
0

Re: PayPal Instant Payment Notification Warning and CHARSET

lat9:

Just remember that when you specify your DB_CHARSET in the two configure.php files to use ***utf8 ***(no intervening dash) for the definition and to find a utf8-update for the french language files.

The files in your /includes/languages/french folders (both storefront and admin) are going to use ASCII/ISO-8559-1 encoding, so when you change the store to use a CHARSET of utf-8, there will be characters that display incorrectly (like I previously posted).

Hello,

So what you suggest, Do I need to keep the french language Charset as ' iso-8859-1' itself ? I thought we need to change the french language charset to 'utf-8' since we are using utf8 in DB. In you previous post you have mentioned that, we need to change the french charste to 'utf-8' , but in the lats post you have mentioned like if we change to 'utf-8' then characters that display incorrectly.

I got confused about the charset settings in language files.

What my plan is,

  1. Change the configure.php (both storefront and admin) DB_Charset to 'utf8' (no intervening dash)
  2. Change all language files (both storefront and admin) Charset to 'utf-8'
  3. Site meta tag to use 'utf-8'

Please clarify my doubt?

21 Jul 2016, 11:56 AM
#7
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,119
Plugin Contributions:
56

Re: PayPal Instant Payment Notification Warning and CHARSET

What I'm saying is that there's going to be more to correcting the characters displayed for your french translations than simply changing the CHARSET value in /includes/languages/french.php (or its template-override, /includes/languages/YOUR_TEMPLATE/french.php) from 'iso-8559-1' to 'utf-8'. That language-pack was most likely created using an ASCII encoding (based on that current value), so just changing the character set to indicate UTF-8 isn't sufficient, since the language pack's files haven't been encoded that way.

The current version of the French language pack does use UTF-8 for its character encoding, so you'll need to download that file-set for use on your store.

As I see your tasks to solve this issue:

  1. Change both configure.php files' DB_CHARSET value to be utf8.
  2. Install the updated French language pack so that those messages are stored in files that are encoded using a UTF-8 encoding.
  3. Ensure that the CHARSET values in all the primary language files (e.g. english.php, spanish.php, french.php, etc.) are all set to UTF-8.

You've mentioned it a couple of times now, and I realized that I don't understand what "Site meta tag to utf-8" means. If that means that the value in a page's <meta content=xxx> tag is set to UTF-8, then simply changing all the CHARSET values in the language files accomplishes that goal.