I have a problem,when the Order total amount > $1000, the checkout(paypal) system can't generat the order info in admin.But we did received the funds.
Help please!
I have a problem,when the Order total amount > $1000, the checkout(paypal) system can't generat the order info in admin.But we did received the funds.
Help please!
Firstly, which version of Zen are you using? Which method of PayPal interation are you using?
It sounds like a simple problem of currency formating. You should check your code to see if a comma or similar is being sent to PayPal for values over $999.99. For example, does the value return from PayPal to your site as $1,000.00. It could be as simple as a little str_replace() to remove the commas.
Just as a slight note, it is always handy in your posts to try and give as much info as possible about your store and versions if you can. There are so many combinations out there it is sometimes hard to give exact fixes. Anyway, welcome to the forum!
Absolute
.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole
Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.
DrByte - I trust you! I have PayPal working on a few stores where all the orders are over $1,000, and I've never had this problem.
Hopefully, Ivan can shed a little light on the problem with a few more details regarding the verisons etc......
Absolute
Hello,
I'm a newbie to Zencart. Pleasantly amazed with the versatility!
I am also having a problem with IPN payments over $1,000.00 which sounds identical to the above issues.
I'm running 1.3.7 which was a fresh installation a few weeks ago on Dreamhost before I manually moved it all over to HostMonster to speed it up. My PHP is V2.5.2. I have added a shipping insurance module in order checkout. I have several small mods such as commenting out the "back" buttons and changing text, but no functional code changes that I know of.
I've had about 8 IPN orders under $1000 go through fine, and all four over $1000 have failed to produce a order number in Zencart, though Paypal pays up fine.
Typical failed log is this:
Jan 23 2008 13:29 -- IPN WARNING::Currency/Amount Mismatch. Details:
PayPal email address = [email protected]
| mc_currency = USD
| submitted_currency = USD
| order_currency = USD
| mc_gross = 1007.00
| converted_amount = 1,007.00
| order_amount = 1007
I only use USD in my store.
I've tried changing the number format in Localization/Currencies/US Dollar to leave out the thousands separator. This removes the separator from the cart but it still shows up in the "converted amount" field of the error log.
I realize that 1.3.8 is now out, and that much has been done to Paypal in it. I regret that my initial "one click" install at Dreamhost did not use the new version. Does anyone know if this specific issue was addressed in the 1.3.8 update? Maybe it would be worth going through the update. I'm no whiz at this so it involves many hours for me to pull such a thing off.
I am trying to avoid the immediate need to upgrade my (finally live) site and am wondering if this is a known issue with a possible patch in 1.3.7?
I see DrByte mentions current code handles it correctly, but I don't know what was considered "current" when he wrote that on 12/20.
Thanks in advance for any insight you may have,
-Otmar
http://cafeelectric.com/
I believe he was probably referring to v1.3.8a, since it was released a couple weeks before he posted that:
http://www.zen-cart.com/forum/forumdisplay.php?f=2
Thanks for that info!
It seems I need to buckle down and do the update.
(whining mode on)
It's just very scary now that my site is supposed to be up and I don't want to upgrade the DB and then have it broken for hours while I figure out what I messed up. A simple diff of original to my current site brings up over 50 files. I'd like to do the upgrade on a subdomain but until I figure out how to either change a DB name or make a copy under a new name that path is blocked. (seems to be a problem with my host not allowing me to do that).
(whining mode off)
So, just the usual issues. :)
Thanks everyone for all the help that got me this far. These support resources are the best!
-Otmar
http://www.cafeelectric.com/
You were right Chuck, thanks for that advice!
I managed to struggle through the upgrade as per all the instructions and have now run my $1007 Paypal charge. All is well it worked perfectly in 1.3.8a with the new Paypal module and PDT token.
Thanks again to everyone, I will be making a donation to the cause now that it seems to be working well.
Actually, it appears that a recent change at PayPal has broken this again for PayPal Express Checkout. It seems that on the DoExpressCheckoutPayment call, you MAY NOT put a thousands separator. I've tested 1.3.8a in the PayPal Sandbox, and the error returned is: "Invalid Argument: The totals of the cart item amounts do not match order amounts."
After patching my local version to remove the thousands separator, the order goes through just fine.
Here are the changes I made, which work for me:
/includes/modules/payment/paypaldp.php
change line 1375 from:
to:Code:$optionsST[$key] = number_format(abs($value), 2);
change line 1378 from:Code:$optionsST[$key] = number_format(abs($value), 2, '.', '');
to:Code:if (strstr($key, 'AMT')) $optionsLI[$key] = number_format(abs($value), 2);
/includes/modules/payment/paypalwpp.phpCode:if (strstr($key, 'AMT')) $optionsLI[$key] = number_format(abs($value), 2, '.', '');
change line 1580 from:
to:Code:$optionsST[$key] = number_format(abs($value), 2);
change line 1583 from:Code:$optionsST[$key] = number_format(abs($value), 2, '.', '');
to:Code:if (strstr($key, 'AMT')) $optionsLI[$key] = number_format(abs($value), 2);
Code:if (strstr($key, 'AMT')) $optionsLI[$key] = number_format(abs($value), 2, '.', '');
thanks, the '.', '' trick just worked me on a completely different module
1. just for curiosity's sake, how does it work?
does it just remove the decimal point so $1000.00 = 100000 cents?
2. and what does the ', 2' do?
thanks
Bookmarks