IPN call coming through but Paypal server keeps resending them - paypal-ipn

My IPN scripts have been working for many years now and I have made no changes. Starting last week the PayPal server seems to think that I am not getting the messages. I have checked my server logs and all calls from paypal return 200 ok. The calls also do the database entries and mods as if everything is working, but PP server thinks I did not receive them, so they keep re sending. Any advice on how to diagnose would be greatly appreciated as you know how PP deals with these things.
IPN php scripts that have been working for years
they add entries into my database and return 200 ok from my server logs but paypal thinks I did not recieve them so they keep re-sending

Review your account's IPN history at: https://www.paypal.com/merchantnotification/ipn/history
This will show the HTTP status you are actually returning to PayPal. If PayPal is retrying the sending of IPNs, it is either receiving no response or an HTTP status other than 200.
Cross check with your web server's logs to confirm, and assuming you are sending something other than 200 proceed with debugging that issue.

yes off course I checked IPN history. Most of them show no response code, My server logs show it responded 200 ok

Related

Payflow Link silent post url

I have a silent post url set up. I know that my code for the silent post url works in that if i send a form with information to this url, it carries out the instructions I have set for it -- waiting to receive silent post from Paypal when someone makes a payment.
The customer for whom i am working has a separate processor - not Paypal. They use the Payflow link as a gateway only.
In spite of having the silent post url set up, we're not getting anything back from Paypal when someone makes a payment. Is it because Paypal is not the processor, or is there some other reason maybe?
Found out why it wasn't working. The host had shut of TLS 1.0 months ago. Paypal (and maybe other services) still uses TLS 1.0. Once the host was made aware of this, they set up a workaround for me. There wasn't any error message on my server because the messages sent from paypal never got through. The initial handshake that they tried to send via TLS 1.0 failed, so the rest of the information was never attempted.

IBM Sterling order management - Email Server

I'm trying to send the mail to the store (Node), on the onsucess event of createOrder api.
So for this, I've created 2 new services.
The first service receives the information from the onsucess event of the createOrder api and passes it on to the queue.
The second service receives the information from that queue and passes it on to the email server.
This sends the email. The problem is that for some of the orders the email is not sending, but we are not getting any exceptions for these.
In the logs for those orders it shows the "Successful Acknowledgement from the email server".
I don't know where the exact problem is. I have checked the email server, but cannot find anything related to the missing order information.
What steps can I take to further debug this problem?
You are saying, only some orders have this problem . Then it will be something related with the order details like the email id associated with it. And also if the successful message in logs shows message has been sent. But if it is a customized log please check it once again. If its Ok then please check the Email Server logs directly.

IPN Simulator does not work on non .com first level domains

I'm trying to test using the IPN Simulator and can't get it to work with anything other than first level .com domain
Anything like
domain.co.uk or
subdomain.domain.com
is giving me errors. (We could not send an IPN due to an HTTP error.)
This makes it more difficult, as I'm obviously not going to be testing on my live domain.
Am I missing something?
Thanks,
Stevo
My website did not respond 200 on the POST request.
Only responded 200 on a GET request, which is all I tested. After fixing my web server, all seems fine

PayPal Silent Post for Data Transfer not working

Since last Saturday, May 29, 2015, the Silent Post for Data Transfer has not been working for my test and live accounts on paypal.
Has anyone else experienced a problem?
I received a notification from PayPal that depending on the SSL certificates installed on the server that the POST is being sent to, it may fail.
They recommend changing the endpoint for the silent post to be http vs. https.
I hope this helps someone else.

PayPal IPN sends multiple notifications hours after payment completed

In the IPN docs there is this line:
To handle the possibility of transmission and receipt delays or failures, the IPN
message service implements a retry mechanism that resends messages at various intervals
until you acknowledge that the message has successfully been received.
IPN is sending the same notification 9 times... What do I need to send back? There are no errors in my script. If I use the IPN simulator I get the following message:
IPN sent successfully
It would seem then that the simulator can tell the message is being sent correctly but the real notifier can't?
I am using sandbox if that makes any difference?
Do I need to print anything upon receipt of the notification?
No need to worry about the multiple notification. First send back the IPN message then process it. While processing check the check that txn_id has not been previously processed. If it is already processed, it is a duplicate IPN message from the Paypal and you can ignore the processing.
For more info refer the pdf file:
IPNGuide.pdf
EDIT:
Do I need to print anything upon receipt of the notification?
No need to print anything but if you want to log the details you can log them.
From the pdf file I mentioned above(Page number 10)
Your listener must respond to each message, whether or not you intend
to do anything with it. If you do not respond, PayPal assumes that
the message was not received and resends the message. PayPal
continues to resend the message periodically until your listener sends
the correct message back, although the interval between resent
messages increases each time. The message can be resent for up to
four days. This resend algorithm can lead to situations in which
PayPal resends the IPN message while you are sending back the
original message. In this case, you should send your response again,
to cover the possibility that PayPal did not actually receive your
response the first time. You should also ensure that you do not
process the transaction associated with the message twice. IMPORTANT:
PayPal expects to receive a response to an IPN message within 30
seconds. Your listener should not perform time-consuming operations,
such as creating a process, before responding to the IPN message
See page number 19-20
Your listener software must
Wait for an HTTP post from PayPal.
Create a request that contains exactly the same IPN variables and values in the same order,
preceded with cmd=_notify-validate.
Post the request to paypal.com or sandbox.paypal.com, depending on whether you
are going live or testing your listener in the Sandbox.
Wait for a response from PayPal, which is either VERIFIED or INVALID.
If the response is VERIFIED, perform the following checks:
Confirm that the payment status is Completed. PayPal sends IPN messages for pending and denied payments as well; do not ship until the payment has cleared.
Use the transaction ID to verify that the transaction has not already been processed, which prevents duplicate transactions from being processed.
Typically, you store transaction IDs in a database so that you know you are only processing unique transactions.
Validate that the receiver’s email address is registered to you. This check provides additional protection against fraud.
Verify that the price, item description, and so on, match the transaction on your website. This check provides additional protection against fraud.
If the verified response passes the checks, take action based on the value of the txn_type
variable if it exists; otherwise, take action based on the value of the reason_code
variable.
If the response is INVALID, save the message for further investigation
You've got something going on with your IPN script that's causing it to fail a lot. This could be happening at the very bottom of the script so everything you expect to see happen does happen, but then a 500 error gets sent back to PayPal.
Have you checked your PayPal IPN History to see what it's showing there? You'll probably see lots of errors. Also, you'll want to check your web server logs to see the error that's happening when that script is hit.
It could be something that only happens with certain orders. For example, I often see people doing database updates or something similar and a name like O'Reilly breaks their script because they didn't handle the apostrophe correctly.
Looking at your web server logs should show you where the error occurred and then you can run some tests to help figure out the problem. I like to create a basic HTML form, set the action to my IPN listener, and then add hidden fields that match what I expect to get in an IPN. That way you can load it up in a browser and post various values to it directly which allows you to see the result on screen. Just keep in mind that if you're testing this way the IPN won't be verified since it didn't come from PayPal, so you'll need to make sure your code is setup to handle that accordingly.
You have to reply with an empty 200 response to indicate to PayPal the IPN was received correctly after processing the response data as
public function yourIpnHandler(){
//response verification and processing goes here
header("HTTP/1.1 200 OK");
}
After getting an empty 200 response, PayPal will not send more responses as it understand that response is delivered successfully to ipn-handler.