The sticky addressing the problem has been fixed in 1.5.5:
https://www.zen-cart.com/showthread....-selected-quot
The problem is intermittent as some paypal payments go through but others have not.
The sticky addressing the problem has been fixed in 1.5.5:
https://www.zen-cart.com/showthread....-selected-quot
The problem is intermittent as some paypal payments go through but others have not.
I'm having this issue now on a client site that is running on 1.5.5a, php5.6, mysql 5.6. As you said some payments go through and others don't. I confirmed that the code update you referenced is installed. We currently have a ticket open with the paypal developers. I'll keep you posted on what we find. FYI the debug logs have the following:
followed by:Code:ec-step2-finish - 1b Cannot use address due to country lookup/match failure.
Code:termEC-10 Redirecting to shopping_cart - Stack: shopping_cart Message: We are sorry for the inconvenience; however, at the present time we are unable to use PayPal to process orders from the geographic region you selected as your PayPal address. Please continue using normal checkout and select from the available payment methods to complete your order.
I posted in another thread but thought this was a more appropriate location. I'll put a reference in the other thread to this one. I have a clients site and he's experiencing this problem intermittently. The site was just upgraded to 1.5.5a, php 5.6.27, mysql 5.6.33. I have confirmed that the paypal module has the fix described earlier. Some paypal express checkout transactions complete successfully and others fail consistently. We opened a ticket with paypal and their tech support sent this back related to one transaction.
I've turned debugging on and we had the customer recreate the error. We'll get details on how he went through the payment process. I have debug logs to look at if you'd like to see them.The error message being displayed is actually on ZenCart's side. However, I was able to track down the cause.
In these ones detailing an error, ZenCart is passing the variable 'noshipping' = 1. This indicates to PayPal that you do not need back the shipping address. When the data is returned from PayPal, we do not include the customer's address, only their country. ZenCart is running a geographic check and requires at least a state (and maybe a zip code and/or street address) in order to allow the payment.
To resolve, you would either need to have ZenCart request the address by passing noshipping = 0 or 2, or disable the geographic check in ZenCart.
I'm not sure if this might have an impact. The products are virtual and the customer is trying to place the order from an iphone.
I saw the release of 1.5.5b and since there were updates to the paypal express checkout module I decided to try and use the new module. I uninstalled the module and reinstalled/configured. I'm getting the same error with some customers unable to checkout. I have debug logs.
I found the error. The problem only occurred with virtual products where paypal did not pass back a shipping address. What I discovered going through the code was a problem with the customers countries table. The paypal module expects the country code for the US to be 223 and for some reason the customers was 241. When the countries table was searched for a match on 223 it was not found and correctly issued the error to the customer.
I posted this in another thread but I'll share it here also for Rossi to check.
I found the error on my clients site. The problem only occurred with virtual products where paypal did not pass back a shipping address. What I discovered going through the code was a problem with the customers countries table. The paypal module expects the country code for the US to be 223 and for some reason the customers was 241. When the countries table was searched for a match on 223 it was not found and correctly issued the error to the customer.
Ya, deleting a country and adding it back again will change its ID in the database, and will break a number of components. (Should never delete country records. Only change status.)
To fix the data in the store you're working with, you'll need to change the country id in all affected places (several tables ... zones, address_book, orders, and more) to match the fixes you make in the countries table.
.
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.
My store - closed 12/05/2023
1.5.7d (upgraded from 1.5.7b), clone a template (cloned Responsive Classic Template), Sitemap XML v4.0, Square WebPay, PayPal Express Checkout, PHP Version: 7.4.29 (Zend: 3.4.0)
The countries with their id assignments are provided in the install files: zc_install/sql/install and then depending on if your site/db are in latin1 or utf8 would be in mysql_latin1.sql or mysql_utf8.sql respectively.
From there, well, could export your countries table in a format that lines up with the same as the applicable import file or after export could manipulate copies to make the data line up say in a spreadsheet or something and evaluate from there.
Just a thought anyways of an approach. May be others.
ZC Installation/Maintenance Support <- Site
Contribution for contributions welcome...
Bookmarks