Paypal IPN: my domain suffix appears twice - paypal

I am setting up my IPN for PayPal its been tested using a send box account and the site worked.
Now that I have gone live I am testing using real money and the ipn set up is
www.mysite.co.uk/XXXXXXXXX
However when I make the payment I notice in the url reply on my browser and when I check the IPN history on Paypal it says www.mysite.co.uk.co.uk. The.co.uk` appears twice. I assume this is the reason I am not getting the orders finalised on my backend.

There are two places you can specify the IPN listener URL:
your PayPal profile, or
with your transaction
It's very likely to be caused by mis-configuration in either of the two places.
If you specified it with your transaction, depending on the product you use, you may be able to find it in a parameter similar to "notify_url" or "PAYMENTREQUEST_0_NOTIFYURL". You'd need to refer to the documents of the product you are using.

Related

PayPal stripping variables on the return url query

Yesterday I was notified that a site I administer wasn't sending e-mail notifications of successful orders to clients and to the assigned people in charge of processing the order for shipment.
I made a test transaction and noticed that the return url given on the generated html of the payment button which has 2 variables like this:
http://example.com/return?var1=something&var2=something2
Was stripped by paypal to:
http://example.com/return?var1=something
Also the ipn notification wasn't triggered correctly and also the ipn url makes use of more than 1 GET variables which it seems that paypal is also stripping.
I found this other report here on stackoverflow:
QueryString values removed from the IPN endpoint by PayPal
It answers lots of questions, but the big question is:
¿Should I wait for paypal to finish whatever they are doing on their backend or should I make changes to my codebase that adapt to this undocumented changes?
Other references:
PayPal IPN Unexpected Changes
I received a response from PayPal today (3/15) that they have fixed the issue. (I submitted a report on ~3/10.) Hopefully it is fully resolved and you won't have to make any modifications.

IPN doesn't seem to work the way it should based on PayPal's docs

We have created a small app to help users manage certain PayPal orders, but the IPN doesn't seem to work as expected. I found this at the note at the bottom of the following URL:
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSetup/
"Even though you have not enabled receiving IPN messages in your Profile or
you have reset your preference by turning off IPN messages, PayPal still
sends IPN messages to the notification URL you specify for a specific
payment."
Based on this we instructed our beta testers not to worry about enabling IPN in their account, since we specify the notification URL for the user's transaction via the notify_url field in the button code. But then no IPN is sent.
Next we instructed our beta testers to enable IPN, and since doing so requires you to enter a notification URL and users don't want transaction data for EVERY transaction posted to our system, and we don't want that either, we instructed them to enter a "fake" URL and disable sending messages to that URL in their account. Based on the note at the link above we figured this should work too, but it doesn't. No IPN is sent, although you can now see the message in the IPN history.
So I'm a little stumped here. The way I see it, we only have 2 options, and neither seems ideal ...
Instruct our users to enable IPN and hard-code our IPN notification URL into their profile settings. This means if they're already using IPN for something else they can't do this, and even if they can it means that data for EVERY transaction they do will hit our system and neither the user nor we want that.
Instruct our users to enter a "bogus" notification URL in their account, and leave messages to that URL enabled, since we'll override this with our own notify_url setting. This would work, however it will cause PayPal to attempt to send messages to an invalid notification URL for any transactions NOT processed through our system. I assume PayPal doesn't want this, and it could possibly lead to the user losing IPN access in the future due to constant IPN errors, etc.
Anyone have any ideas for me? Thanks!
In experience, as you're finding, you do need IPN enabled in order for the IPNs to be sent, but then if you specify notify_url it will override the URL in the profile.
Instead of setting up a bogus URL, though, you could put any actual script there. Just make it a script that does absolutely nothing. That way IPNs that get sent here will "do nothing" other than send a 200 OK back to PayPal's server showing that the IPN was received successfully.
If they're already using their own IPN solution and the data needs to go through both then you'll have to setup an IPN forwarder. You can daisy-chain IPN URLs to that a bunch of them get hit with the same data if you need to.
Personally, I like to have some sort of a catch-all IPN setup in my profile that saves any IPNs it gets to my database for logging purposes. Then, again, the notify URL can be used to override this if necessary.

PayPal IPN Adding your own data onto IPN message

I have integrated PayPal into my website and have the IPN system working successfully. The problem I have now is that unless the PayPal email is the same as the one they used to register on my site, I have no idea who the person is.
I would like to add on my own data to the IPN message such as AccountID=10 or AccountName="SomeName" so that I can identify who the person is for my own user base since it is selling of virtual goods and privileges and not shipping to some address. Can this be done?
You certainly can send many parameters such as invoice parameter with your Paypal IPN request and get it returned with IPN response.
Full parameters list is available here:
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/
You could also make this a non-issue by setting it up so your customers use their PayPal login credentials to log into your site. Have a look at the following documentation:
https://developer.paypal.com/webapps/developer/docs/integration/direct/identity/log-in-with-paypal/

paypal different pages - visa/debit payment not create account

Hi I have searched for this solution and although others have experienced the same problem I couldn't find a solution that works for my site.
My wordpress site mainly sells registrations/bookings for events and I'm using the s2Memberplugin to process the payments with Paypal. The problem is that when we direct the users/customers to the paypal page to complete the transaction which i want set up with the option of paying via credit/debit card if the user/customer doesn’t have (or doesn’t want to create one) a paypal account. That has been working perfectly except for when users/customers are using a variety of internet browser with various cookie settings so the user/customer get’s directed to a completely different page both in appearance and functionality from the page I want them to see. This incorrect page ‘requires’ users/customers to have or create a paypal account to make the payment, no option to pay via card is available. I tried calling paypal and of course they say it is something wrong with my site.
Over 20 days ago i lodged a support ticket with Paypal MTS (or whatever they are called) and of course no response. I have lodged about 5 more tickets and made about 10 more phone calls and they simply don't care about customers. That is clearly demonstrated when you ask to speak to the complaints section and they say "We don't have a complaints section'
Thanks very much, any assistance is greatly appreciated
I haven't been provided with any error codes, unfortunately - i did ask for them but nobody supplied them.
we just discovered that the payflow and IPN settings within my sites plugin were empty but i'm filling them in now but i have two questions:
The vendor, is that just my username for my paypal account? (why don't they just use the same terminology - confusing)
My s2Member plugin say's i'll need my IPN url (and then supplies a url, but whn i look at the IPN notification url within my paypal settings it's a totally different link. Should i be changing my paypal IPN url to that which is supplied by my s2Member plugin or am i getting two different url's confused?
Thanks for your help again mate.
If you're using Payments Standard this experience is cookie based as you mentioned. If you want to make sure the full credit card form shows up and allows people to pay with a credit card without creating an account you can use the Express Checkout API instead.
In your SetExpressCheckout request you just need to set SOLUTION=Sole and LANDINGPAGE=Billing.

Will `Notify_URL` override previous set IPN data

I am building an IPN extension for a website, but the service provider for the cart used at the moment has the option Notify_URL set (in the paypal submission form) for its own internal handling (which is somewhat flawed). If an IPN URL is set on the PayPal sellers profile, will both be used, or only one?
There appears to be some confusion on this subject. Some are claiming that both will work. They claim it should notify both in this situation. Though it appears that with subscription based payments, PayPal will only use the IPN URL set in your PayPal profile.
However, on the official PayPal documentation:
You can specify an IPN listener for a specific payment; this is the
only way to receive IPNs associated with Adaptive Payments. In this
case, PayPal sends the IPN message to the listener specified in the
notification URL for a specific button or API operation instead of the
listener specified in your Profile.
Which seems to suggest that the notify_url will override the profile settings. I would assume that it would be better to follow the PayPal documentation then something that may be working even though it isn't intended to.
Source: PayPal Documentation
It's also worth noting that if you disable IPNs in your PayPal account, neither will work.
I think the documentation may have changed since this was last answered. I was also curious what was given precedence: notify_url or your profile's IPN url. From the docs:
Optionally, you can override the URL to specify another listener for specific payments.
Here the wording is slightly confusing, but it seems that even if you have IPN turned off in your profile, if you pass a notify_url value in with the payment, it will still be sent. Bold added by me:
The IPN message will always be sent to your notification URL unless receiving IPN messages has been disabled. Even though you have not enabled receiving IPN messages in your Profile or you have reset your preference by turning off IPN messages, PayPal still sends IPN messages to the notification URL you specify for a specific payment.
I have seen this work first hand, which is why I investigated it more to make sure it was working correctly. My IPN History told me "your IPN notifications are turned off," prompting me with a link to turn it on. However, below that was a history. The reason was because I was passing in my desired notify_url with the transaction.
So #johnmadrak's statement, "It's also worth noting that if you disable IPNs in your PayPal account, neither will work," is actually not true. Even if you've turned the setting off in your profile, passing in a notify_url still works.