Hi everyone,
I'm trying to integrate PayPal as a payment method in my site.
if I try to make a payment the site give me an error in Italian, something like:
"Error on our server. Try again later"
The browser console give me a message:
"Failed to load resource: the server responded with a status of 500 (Internal Server Error)"
If I click on tantalizer message give me this:
{"success":false,"error_message":"Il gateway di PayPal ha rifiutato la richiesta. Invalid token (#10410: Invalid token)."}
Some one can help me please?
Thanks
Hello @zerod10
Please follow this guide for the solution:
https://support.magento.com/hc/en-us/articles/360039451972-2-3-4-PayPal-Issue-Hotfix
I hope it helps you.
Hi, thanks for you reply, with patch I have to apply?
thanks again
@zerod10 , glad to be of some help ![]()
Yes, you can apply the patch.
Please make sure to take the file and database backup before applying the patch.
Thank you.
fount it, was:
PayPal_Express_Checkout_issue_fix_2.3.4_github-2020-02-13-12-36-34.patch
But now on termina it give me that error:
can't find file to patch at input line 8
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|Index: app/code/Magento/Paypal/Model/Api/Nvp.php
|IDEA additional info:
|Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|<+>UTF-8
|===================================================================
|--- app/code/Magento/Paypal/Model/Api/Nvp.php (revision 0595b0dbe57711bccb5cdb049bdae9ac8ba8b0cc)
|+++ app/code/Magento/Paypal/Model/Api/Nvp.php (date 1581448283375)
--------------------------
File to patch:
Please try manually to apply the patch.
Thank you.
How?
Lol I love how they reply with this vague answers and then want you to accept as solutions so they can get points.
I been using magento 2 for a long time and still don't know how to apply those patches.
Hey @zerod10
Please follow https://github.com/magento/magento2/issues/26698
Thank you.
Hey @starlyns ,
Might be late but i think the best way to apply (by my experience) is manually, rare the time I can apply it without errors if it isn't by manual so to apply manually download the file .patch then open all you'll see something like this
--- a/vendor/magento/module-paypal/Model/Api/Nvp.php (revision 0595b0dbe57711bccb5cdb049bdae9ac8ba8b0cc)
+++ b/vendor/magento/module-paypal/Model/Api/Nvp.php (date 1581448283375)
@@ -1512,17 +1512,17 @@
}
// attempt to fetch region_id from directory
if ($address->getCountryId() && $address->getRegion()) {
- $regions = $this->_countryFactory->create()->loadByCode(
- $address->getCountryId()
- )->getRegionCollection()->addRegionCodeOrNameFilter(
- $address->getRegion()
- )->setPageSize(
- 1
- );
+ $regions = $this->_countryFactory->create()
+ ->getRegionCollection()
+ ->addCountryFilter($address->getCountryId())
+ ->addRegionCodeOrNameFilter($address->getRegion())
+ ->setPageSize(1);
$regionItems = $regions->getItems();
- $region = array_shift($regionItems);
- $address->setRegionId($region->getId());
- $address->setExportedKeys(array_merge($address->getExportedKeys(), ['region_id']));
+ if (count($regionItems)) {
+ $region = array_shift($regionItems);
+ $address->setRegionId($region->getId());
+ $address->setExportedKeys(array_merge($address->getExportedKeys(), ['region_id']));
+ }
}
}The first lines until @@ tells the file it's changed and if it changes the name, usually it's the same so in this case the next line are applied to
/vendor/magento/module-paypal/Model/Api/Nvp.php
and the second is the same path so the file stays with the same name.
Getting to the code itself after the @@ tells you the lines so in this case line 1512 go to that line all you're suppose to see all the code that is after without the ones with the + at the beginning.
So you know where to do the changes, then, remove all the lines that starts with - and add all the lines that starts with +, in this case you should have at those lines
if ($address->getCountryId() && $address->getRegion()) {
$regions = $this->_countryFactory->create()->loadByCode(
$address->getCountryId()
)->getRegionCollection()->addRegionCodeOrNameFilter(
$address->getRegion()
)->setPageSize(1);
$regionItems = $regions->getItems();
$region = array_shift($regionItems);
$address->setRegionId($region->getId());
$address->setExportedKeys(array_merge($address->getExportedKeys(), ['region_id']));
}
}(the lines starting with - and the ones with nothing at the start) and after the changed you'll be with
if ($address->getCountryId() && $address->getRegion()) {
$regions = $this->_countryFactory->create()
->getRegionCollection()
->addCountryFilter($address->getCountryId())
->addRegionCodeOrNameFilter($address->getRegion())
->setPageSize(1);
$regionItems = $regions->getItems();
if (count($regionItems)) {
$region = array_shift($regionItems);
$address->setRegionId($region->getId());
$address->setExportedKeys(array_merge($address->getExportedKeys(), ['region_id']));
}
}
}Sorry it may not the that clarifying but hope it helps someday, but it's a time consuming task when you have a .patch the has line 5k lines of code to change.