I'm building a website where users can purchase digital goods that other users have posted for sale. I want to use PayPal Adaptive Payments so that the money directly goes to the seller (not to me).
I have the payments working, but I'm not getting IPN messages unless I use my own PayPal account as the seller (receiver). When any other PayPal account is the receiver my IPN URL doesn't get hit at all.
Can you tell me whether I should expect to get Instant Payment Notifications in this scenario, why it might not be working, or any other way I can find out when the payment is completed?
Update
When I login to PayPal and look at IPN History I can see that it tried to send IPNs to me for the payments to other receivers, but they all got HTTP status code 403. I can also see when it tried to send me an IPN for the payment to myself - this one got HTTP status code 200.
I don't know why it would get a 403 response, because I don't have any kind of access control on that URL. And I don't know why it would only get a 403 when the IPN is for a payment to someone else.
When I look in my web server logs I see PayPal trying to hit my IPN receiver and it mostly gets 404, except the one case where the payment was to myself - this got a 200.
173.0.82.126 - - [23/Jun/2012:15:25:00 +1000] "POST /ajax/paypal/AdaptivePayments/ipn.php HTTP/1.0" 404 - "-" "-"
173.0.82.126 - - [23/Jun/2012:15:24:59 +1000] "POST /ajax/paypal/AdaptivePayments/ipn.php HTTP/1.0" 200 - "-" "-"
I'll check whether there is something in my Apache web server that might be rejecting the POSTs to the IPN receiver based on the body of POST.
I found it is definitely related to having "/../" in the returnUrl and cancelUrl. I have solved the problem by removing the "/../" from the returnUrl and cancelUrl. I didn't think these would be a problem because "/../" is used in the sample in PayPal's Adaptive Payments PHP NVP SDK. I assume it must be some security setting in Apache that is blocking POSTs with bodies containing "/../", but I haven't looked deeply into it.
Related
My issue is that PayPal is performing security checks on their end, but marking the order as pending. This means that I am getting an OK status from the notification response on SagePay, but am unable to hold the order from being sent to the warehouse which the client has requested.
The documentation I have taken a look at is https://www.sagepay.co.uk/file/25046/download-document/SERVER_Integration_and_Protocol_Guidelines_270815.pdf and I have attempted to speak with SagePay directly.
Please, could someone let me know whether they have ever integrated the PayPal IPN with the SagePay server integration before?
Thank you
Sage Pay doesn't support Paypal IPN. Sage Pay's Payment integration is a one shot thing - once the transaction is done, it's done - it exists in either an authorised or declined state, and is immune to any further changes.
Your best bet might be to implement IPN outside of Sage Pay. You could hold all Paypal orders by default, and then wait for notifications from PayPal to indicate they are cleared to ship.
For a while I have been running a site which logs paypal transactions by sending a notify_url to the paypal site, and listens in on that notify_url. My listening page parses the IPN info sent from paypal, and returns an http 200 response, but it doesn't then "send the complete message back to PayPal using HTTPS POST" to https://ipnpb.paypal.com/cgi-bin/webscr (point 3 at https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNImplementation/). The payments seems to have been going through OK. I want to know what problems I have been storing up for myself by not doing this response part of the IPN request-response flow?
You have laid yourself open to accepting IPN messages that may not be from PayPal. The purpose of the message you're omitting is to ensure that the IPN you are processing came from PayPal.
I got an email from paypal saying:
>Hello <>,
>Please check your server that handles PayPal Instant Payment
>Notifications (IPN). IPNs sent to the following URL(s) are failing:
>
>url--
>
>If you do not recognize this URL, you may be using a service provider
>that is using IPN on your behalf. Please contact your service provider
>with the above information. If this problem continues, IPNs may be
>disabled for your account.
>
>Thank you for your prompt attention to this issue.
>
>
>Thanks,
>
>PayPal
Is anyone familiar with this? We got 1 payment that made through today, it updated the database and all but still I am concern if this email will be a threat to our website.
I tested the IPN url using the IPN stimulator and it worked fine. Should I need to change my IPN setting? Some forums are saying to turn off the IPN notifications. Should I assume that this is coming from the server refusing to accept the Paypal IPN? I'm so confused on what to do with this problem, let alone my client also knows.
I checked my site error logs but I couldn't find any new errors related to the my paypal IPN listener.
thanks,
If the warning message you are receiving is showing "url--", you may want to double check:
- the value set up in your PayPal Profile > Instant Payment Notification
- or the value you have inserted in your integration in the variable "notify_url" (if you are using Website Payment Standard or "PAYMENTREQUEST_n_NOTIFYURL" (if you are using API).
When you receive an IPN warning message, I'd recommend to check your IPN history (in your PayPal account) to check what is the HTTP response that your server is returning to PayPal.
You can test your IPN listener here
Find IPN overview here
I use paypal subscriptions (hosted buttons)
auto-return for Website Payments is on
Payment Data Transfer is on
success, fail and notify url are different
extra params for button are:
rm=2
notify_url=<url>
sra=1
rest in PayPal is default.
all works in pro and sandbox
but POST request from IPN come with empty data every time.
sandbox IPN works.
request handling is ok - tested with curl.
history of IPN messages on paypal is ok.
did I forgot something ?
please confirm or reject PayPal problems on your IPN.
I set encoding for IPN to UTF-8
and it works now
my accont => my profile => my selling tools => language encoding
So this is probably more of a discussion item so I apologise if this should go elsewhere.
But I need to handle Responses (IPN) from using Paypal MassPay API.
At the moment I'm handling the Notifications correctly and tracking past payments made (Royalty Payments System).
Problem 1: Unclaimed Payments
But I've encountered an issue which I can't seem to handle on the sandbox site and that is Unclaimed payments. Now according to MassPay guide:
If the recipients do not have PayPal accounts, PayPal notifies them that a payment is available and they must create a PayPal account to receive the payment.
I assume this means that Paypal sends the user an email, I tried to test this but I received no notification
Problem 2: Claiming unclaimed Payments
Following the previous problem, I've been unable to test users claiming unclaimed values. So I'm wondering does anybody know how Paypal processes these and the format of the response;
Does the response contain all previously claimed payments?
Does the response contain all unclaimed payments?
Does the response contain the status of all transfers in that transaction?
Thank you in advance
When you send out your MassPay request, any unclaimed payments will be pending until they're claimed. Your IPN will show "processed" instead of "completed" for the status. Once they claim the payment you will get another IPN showing the payment has been completed.
When working in the sandbox you won't get any actual emails from their system. All test emails show up in your developer.paypal.com account under the test email section there.