[Proposal] Update IPNs URL
Thanks for all! This pull request is not a bug fix, but a proposal.
Reason
Now Paypal recommends the use of new endpoints based on 'ipnpb.paypal.com'.
Ref:
- https://developer.paypal.com/docs/api-basics/notifications/ipn/IPNImplementation/
- https://developer.paypal.com/docs/api-basics/notifications/ipn/IPNSimulator/
- https://www.paypal.com/us/smarthelp/article/what-are-the-ip-addresses-for-live-paypal-servers-ts1056
What happens in this situation?
We can still use the URL https://www.sandbox.paypal.com/cgi-bin/webscr and https://www.paypal.com/cgi-bin/webscr without any difference in terms of API features.
But following the document that I wrote above, www.paypal.com returns the response under the dynamic IP address.
If some requirements exist such as restriction for the source/destination IP address, ''ipnpb.paypal.com'' based URL is better.
Of course, we can change the URL by ourselves by overwriting the variable like this:
# production_url is customizable because of "mattr_accessor" statement.
OffsitePayments::Integrations::Paypal.production_url = 'https://ipnpb.paypal.com/cgi-bin/webscr'
Other proposals
If this PR is not acceptable, I think updating README to introduce how to customize the URL like above.
NOTE:
Before submitting this pull request, I posted the one to fix the CI failure. I wish either one would be of help.
Not sure if it's a temporary issue, but starting today calls to OffsitePayments::Integrations::Paypal::Notification#acknowledge in sandbox mode (using https://www.sandbox.paypal.com/cgi-bin/webscr) are failing as that's doing a 301 to https://www.sandbox.paypal.com/us/cgi-bin/wapapp?cmd=_wapapp-homepage.
Updating the URL to https://ipnpb.sandbox.paypal.com/cgi-bin/webscr as this PR does fixes the issue.