On the introduction of PayPal Invoicing API documentation it states that.
PayPal sends IPN messages for invoice payments and for invoices
cancelled by the buyer.
But I've found this is not the case. IPN for invoice payment, cancel or other operation never get sent from PayPal (I have checked and confirmed it from IPN history page).
Worth Mentioning
Invoices are being created via Invoicing API successfully without any warning.
I am working on Sandbox and Creating for Third Party Merchant.
I do understand that paypal doesn't send IPN for api operation changes.
The IPN listener is working fine and I have successful implementation for subscription api with IPN.
Update
Today I tried the whole process with Live PayPal account other than sandbox account and I still not getting any IPN. So, I guess I am doing something wrong or Invoicing API is broken (which I highly doubt).
Which also makes me wonder about some additional questions:
I (merchant #1) has the permission information form merchant #2 for sending invoice to their behalf.
I have setup IPN to my IPN listener URL.
merchant #2 do not have IPN setup to my listener URL.
So, when Invoice that I created for merchant #2, Do I get IPN?
OR, merchant #2 also needs to setup their IPN url pointing to my listener URL?
IPN is get send from the account that receiving payment as #effone mentioned in comment. So, it seems I was confused from paypal documentation.
Answer: The IPN url from merchant #2 will need to setup in order to get notification about invoice payment. merchant #1 account who sending the invoice behalf of merchant #2 will not send any IPN as the payment isn't involves merchant #1
Way I see it, this is not a proper solution to create an invoice management system. As if I have 1000's of user they all need to set their IPN url to mine in order to get the application work correctly (aka, setting invoices as paid when they gets paid)
Your question reads strangely, because you say the IPN is working fine, then in your update, you say you're trying it in your live PayPal account. It sounds like it's working on the Sandbox, but not in production?
If this is the case:
Did you activate the IPN under your Production (Live) Paypal account?
Do you have the IPN URL for this?
Are you seeing the IPN being logged under the Production (Live) PayPal site?
If No -> it's been a while since I've worked with this, but there used to be an interface where you could send an IPN test- have you tried that?
If Yes -> make a bare bones listener- just a page that logs that it was hit, then add logic to it.
hth
Related
I'm working on a project which has PayPal integration. We have two PayPal accounts for payment and choose the PayPal account based on the type of users. We previously had two IPN listeners for the two different PayPal accounts. Previously our IPN was pointed to "https://www.old-domain1.com/paypal/ipnhandler" and "https://www.old-domain2.com/paypal/ipnhandler". Yesterday we have updated two websites into one and we started to use a common IPN to this address "https://www.new-domain.com/paypalipn/paypal/IpnHandler" to the new project.
We have added the common IPN URL on both PayPal accounts. But we could see PayPal is still sending the IPN to the old IPN handler for the old recurring payment. Our old IPN handler URLs are not currently working and we don't have the option to update the payment if PayPal is still sending the notification to the old URL. For some users, it worked correctly. For some users PayPal still using the old IPN URL. Why does this happen?
Now we have one IPN listener for two different PayPal accounts. Is this related to the problem?
If a URL was specified as part of setting up the transaction (i.e. by the software/site when the user was redirected to PayPal), that transaction-level specification supersedes any setting in the PayPal account. It is now set in stone for anything related to that transaction/recurring profile, and cannot be changed.
I am a developer and we have paypal payment sytem integrated with our shop since long.
We have implemented the notify_url paramter in checkout code and was working fine since 4 months back. But now we could see that when a payment is done, we are not notified via the notify_url we specified. But however if we check the url via the IPN simulator, we can see everythign works as expected, but not not notifying automatically when payment is done .
What could be the issue or what all do we need to cross check for this issue to be solved
Did you received any 'PayPal Instant Payment Notification Warning' email from PayPal? This email could be telling you that there's an issue with your IPN URL when PayPal trying to post back the notification to your server, and that could be the reason you didn't receive the notification message from PayPal.
Otherwise, I would recommend you to contact PayPal technical support via https://www.paypal-techsupport.com/app/ask and providing the detail of your PayPal account for them to troubleshoot on this issue.
I have a parallel payment setup on my dev website, which allows a user to make 2 payments in parallel. Part 1 of the payment goes to the main website, i.e. the site which the user is paying from, i.e. the website which initiates the paypal payment. Part 2 of the payment goes to a completely different paypal account which is unrelated to the main website.
I am using ipn.php on my dev server to detect the status of the payment. When the main sites payment is received (part 1), this is detected by my dev servers ipn.php file. However, the ipn.php file does not seem to detect the other payment (part 2) which goes to the other paypal account which is unrelated to the main website. Is this behavior normal for the ipn system, or is there a way to get my dev servers ipn.php to detect both parts of the parallel payment even though part 2 of the payment is going to someone else?
Each individual payment would trigger an IPN based on the account the payment went to. Sounds like you've got your own IPN configured, but you're only getting an IPN for the payment that comes to you, which would be expected. The other payment would only trigger an IPN for that receiver if they had IPN configured in their own account.
That said, you can set an IPN for the application within your pay request using the NotificationURL parameter. This would send an app specific IPN to the URL specified which is separate from the individual payment IPN's that each receiver may or may not get based on their own settings.
So, it sounds to me like you need to setup the NotificationURL for an app specific IPN, and then you can configure IPN within your PayPal account to get more details about the individual payment that comes to you, and then the 3rd party could configure their own IPN based on their needs for the payment that goes to them.
Make sense?
We are using Paypal recurring billing service (using Express Checkout) at our website for monthly subscription.
Since we have an Australian account so we are not able use the DPRP (Direct Payment Recurring Payment) service offered by Paypal because it seems, DPRP service is limited
to only few countries (US, UK and Canada).
In Express checkout payment details are received at Paypal Website. So we do not have any information, whether the payment failed, user pressed the Back button in browser or He/She intentionally clicked the cancel payment.
After speaking to Paypal support team we get know that there could be multiple possible reason for Payment failure, and seller has to contact Paypal by themself. So we can
not provide any troubleshooting for that at our website.
So we want to know, Is there any possible solution to avoid this or atleast can we diffrentiate between the user for whom payment failed and who intentionally moved to
our website back without doing payment because this way we are not only unable to followup with them but also loosing a part of the customer base, interested in our service.
Any help in this is Appreciated.
Thanks
You should implement the Pay Pal IPN (Instant Payment Notification).
You configure the IPN url address on your PayPal merchant account settings. This page is simple HTML page with server-side programming that is listening for requests coming from PayPal.
There's no need to do something extra in the checkout process for making IPN work. Once you set this up, it will automatically work.
Every time something happens with a transaction in your merchant account, e.g. transaction completed/failed/canceled, PayPal will send an HTTP Post to your IPN listener URL.
Here you can get all the relevant information about the transaction, like the payer ID, the payment status. With this information you can decide what to do with your customer's order.
I have downloaded sample code from paypal to allow me to use parallel payments via their sandbox accounts. When I run parallel.php, I get redirected to paypal's sandbox login page.
How am I supposed to know "server side" that the payment has been made successfully, so I can update my database records?
I believe you have to work with PayPals IPN system. This will basically send a confirmation to your server that tells you it has gone through.
https://www.paypal.com/ipn
Paypal lets you register a notification url which is part of the IPN (instant payment notification IIRC) system. So if someone pays by a delayed payment (such as a bank transfer) the transaction will update days later. You need to have an application (web page) on your server that can be called by Paypal with transaction details to update a payment.
You'll need to create an initial transaction record in your system when paypal redirects back to you so refer to their documentation for that. I'd also recommend looking at either OSCommerce or Zen cart for an idea of how they do it as they support the same kind of thing.