Now that PayPal is coming to South Africa, I figured that I’d upgrade my ZenCart site to connect to PayPal’s express checkout.
I enabled ZenCart’s “PayPal Express Checkout” payment module and started configuring the parameters.
Oops, I needed to enter some API credentials – so I followed the instructions on how to get those.
I upgraded my PayPal account to “Premier” level so that I could accept payments and get an ‘API username’ and ‘API Password’ and ‘Signature’, and pointed it to “Sandbox” mode.
Sandbox mode? – yup, mmm… that should have got me thinking – but it didn’t.
I then (naively) tried to process a transaction from my ZenCart using my real PayPal logins and got the following error “10002 Security error - Security header is not valid”. That gave me further clues that I couldn’t use my real PayPal logins and API settings and use the “Sandbox” mode. I needed to create new dummy accounts and logins and APIs on the sandbox.PayPal server.
So, I registered as a developer on the https://developer.paypal.com/ site and downloaded the “PayPal_Sandbox_UserGuide” and a few clicks later I was creating the sandbox parameters and users that I could use to test my shopping cart. I created a few users with different accounts, in different parts of the world, with lots of money so that they could purchase to their hearts’ content.
Then I got to the difficult part. I thought that it would be easy to go from the shopping cart to PayPal and process the payments – BUT, it wasn’t – sometimes the purchases went through fine – others it didn’t. I didn’t realise that the small transactions worked fine – but not the ones over R1,000. I kept on getting the error “10413 Transaction refused because of an invalid argument. See additional error messages for details. - The totals of the cart item amounts do not match order amounts.” I Goggle’d a bit – but nothing really helped, until I found this posting by Levi Senft: “ZenCart and PayPal: 10413 Transaction refused because of an invalid argument. Solved!”. The posting explains how the comma separator is the cause of the problems, as well as a fix.
I modified the paypalwpp.php file as directed and voila – it was solved. No more error 10413 (that was really starting to haunt me!)
I’m looking forward to many transactions facilitated by PayPal in South Africa.
Update 07April2010:
I’m not sure why, but I started getting the 10413 error again. Perhaps I didn’t test the above solution thoroughly enough. I Google’d some more and found this solution by “gmail”: http://www.zen-cart.com/forum/showpost.php?p=675592&postcount=62:
That seemed to work first time – but beware it’s not thoroughly tested. You can download the modified paypalwpp.php file to save you some typing: It INcludes both fixes described above paypalwpp.php
If this still doesn’t help you – then look at the log files: /includes/modules/payment/paypal/logs (ensure that the folder is writable (ie: chmod 777))
I then had problems when shipping charges were included….
The same problem as “Zubey” had here.
Whenever tax was added to on either products or shipping. If tax is removed from both it all works fine.
[ITEMAMT] => 0.20
[AMT] => 0.20
[SHIPPINGAMT] => 0.00 **** when this = 0
[TAXAMT] => 0.00 & this = 0, all works fine ****
[L_NUMBER0] =>
[L_QTY0] => 1
[L_NAME0] => TEST Product No.2 $0.20
[L_AMT0] => 0.20
A bit more searching found me this article:
From http://www.zen-cart.com/forum/showpost.php?p=531979&postcount=7
and I changed these settings and it worked:
Config->My Store-> Basis of Product Tax=Shipping and Basis of Shipping Tax=Shipping
and in Module->Shipping (for each shipping module set): Tax Basis = Store
I hope this is the last time I say that “it’s working” and it isn’t!