offsite_payments icon indicating copy to clipboard operation
offsite_payments copied to clipboard

[Proposal] Update IPNs URL

Open akiko-pusu opened this issue 5 years ago • 1 comments

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.

akiko-pusu avatar Nov 24 '20 13:11 akiko-pusu

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.

JasonBarnabe avatar Jun 17 '21 18:06 JasonBarnabe