PayPal IPN empty when buying by card - paypal

I have tested a PayPal IPN on sandbox. It works without issue. I tested it using the demo PayPal account. Now I have moved live I cannot test with a PayPal account, as I only have one. So I tried using a card. The payment is successfully made. However, the IPN is empty.
I don't have any PHP errors for the IPN call. The IPN URL defined in Notifications -> Payment Notifications on my live account is correct.
The payment is made using PayPal Smart Checkout: https://developer.paypal.com/docs/checkout/#how-the-buttons-work
Does PayPal not use IPNs when buying by card?

What do you need IPN for? That is a very old service.
Use a server-side integration for the PayPal Checkout. Here's the UI: https://developer.paypal.com/demo/checkout/#/pattern/server
You'll need two corresponding routes on your server, one for 'Set Up Transaction' and one for 'Capture Transaction', documented here: https://developer.paypal.com/docs/checkout/reference/server-integration/

Related

After modifying the PayPal IPN URL, still using old IPN listener URL for some notifications

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.

Paypal checkout for marketplace where buyer pays seller directly

I am running a marketplace for video games. When a buyer buys an item they can directly pay the seller through Paypal by setting the 'business' variable to the Paypal account of the seller in the link that will send the buyer over to Paypal to complete the purchase.
While this works most of the times, there are downsides to this approach as the website fully depends on receiving the IPN of the transaction. In very rare cases, Paypal fails to send the IPN (server logs show that there was no such request to the listener script – even hours later).
Is there a way to integrate a direct payment from buyer to seller where the website immediately gets feedback that the purchase has been completed (via JS-API or similar), so the website does not only depend on the IPNs?
I have seen a few similar questions on StackOverflow, but the solutions mentioned in answers have been deprecated as far as I can see (Adaptive Payments are no longer supported for new projects).
Integrate PayPal checkout with a server-side pattern. Here is the front-end UI: https://developer.paypal.com/demo/checkout/#/pattern/server , which will call two routes on your server.
Those routes will in turn call the PayPal API to 'Set Up Transaction and 'Capture Transaction', respectively: https://developer.paypal.com/docs/checkout/reference/server-integration/
The above has no dependency on asynchronous IPN or webhooks.
Since the buyer will be paying the seller and not your account, you can use the custom 'payee' object to specify this: https://developer.paypal.com/docs/checkout/integration-features/custom-payee/

issues with notify_url in paypal

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.

Not Receiving PayPal IPN With Invoicing API

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

Can I test PayPal IPN without actually making a purchase?

Can I test the PayPal IPN without actually making a purchase?
Is there a developer sandbox for testing the Request/Response functionality prior to actual implementation?
Basically, I have my server and would like to use the IPN feature to track my customer purchases and respond to a customer's purchase immediately. I would first like to test this out with dummy payments to ensure that the PayPal IPN and my server are communicating correctly.
Check paypal's site... the link is: https://www.paypal.com/cgi-bin/webscr?cmd=p/sell/ipn-test-outside.
Sign up for a dev account, and inside there you can create test users and specify their paypal balances, etc.
Paypal has a developer sandbox here https://developer.paypal.com/
Here you can get complete instructions:
https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNTesting/