Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Warning

If unable to deliver an IPN on the first attempt, PayU will retry a further 2 times (3 attempts in total). If however on the 3rd attempt it could still not be successfully delivered, the IPN data will automatically be sent to the store's configured merchant email address.

Warning:

The receiving system might take longer to process the IPN than PayU can wait for the response.  Once PayU reaches its timeout it will mark the message as unsuccessful and it will be sent again.  This can lead to a situation where the receiver processes the same IPN multiple times.  To stop this from happening the receiver MUST pay close attention to the ResponseHash.  Each discrete IPN has a unique ResponseHash.  When an IPN is resent, it will be exactly the same message.  This includes the ResponseHash.  Thus if the receiving system is cognisant of the fact that it is receiving the same IPN again based on ResponseHash, it can effectively stop duplicate transactions.

Example:

  • Merchant sends payment instruction to PayU.
  • PayU processes and sends IPN response informing merchant that transaction was successful.
  • Merchant decides to credit customer and instructs PayU to credit the previous transaction.
  • PayU does the credit and sends an IPN notifying the merchant that it was successful.
  • Merchant receives the IPN and starts to credit the customer, but does not respond in time.
  • PayU marks the IPN as not successful and resends.
  • Merchant receives same IPN again.
  • At this point the merchant checks the ResponseHash and figures out that it has already processed this IPN and ignores it, but returns a success to PayU in order to stop further resending.

 

 

Info

 PayU has an IPN simulation tool which can be used to simulate IPNs back to a merchant. More information on this can be found here.

IPN transaction result validation

Interpretation of IPN responses to validate the result of a transaction should ideally be done on (but not limited to) a combination of the following fields:

...