PayPal Instant Payment Notification IPN with empty POST - paypal

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

Related

PayPal IPN empty when buying by card

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/

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.

PayPal IPN Delivery Status set to Disabled

We are a 3rd party online marketplace. We connect buyers and sellers. Our IPN notify_url has been running for years with no problems. One of our sellers has been receiving PayPal payments from a buyer for their goods but we have not been receiving the IPN callbacks.
We asked the seller to check their IPN history and it is showing that the callbacks to our notify_url are Delivery Status= Disabled.
The sellers PayPal account is OK
Our notify_url is OK
I realise there is the IPN Settings page at https://www.paypal.com/cgi-bin/webscr?cmd=_profile-ipn-notify-edit where a hardcoded URL can be set and IPN messages can be switched to ON.... but our notify_url is fed via the form data at checkout. This option is set set OFF by default and we have tens of thousands of users still receiving IPN callbacks ok to our notify_url with the default setting && POSTed notify_url so the problem won't be there.
Any idea why they are disabled and how to get them re-enabled for this seller.
IPN function can be disabled due to below reasons:
1. PayPal failed to send IPN message to this merchant's IPN URL, after 100 times failure, IPN function is disabled by PayPal.
2. Merchant disable IPN function manually.
Merchant can enable IPN function in https://www.paypal.com/cgi-bin/webscr?cmd=_profile-ipn-notify-edit .
For those like me who found very useful this reply I just want to add: do not waste hours trying to figure out how to locate that page in the new paypal's interface.
I've asked to PP support how to locate it and they just told me to type the following link in the nav bar.
https://www.paypal.com/it/cgi-bin/webscr?cmd=_profile-display-handler&tab_id=SELLER_PREFERENCES
You actually have to save the url to your library in order to get back.

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

Shouldnt testing IPN take money from my Paypal sandbox account?

Im trying to set up a PayPal IPN system on my site, but I try to test it in the PayPal sandbox, I think it's not working fine.
I've got a developer account in the sandbox. I've created 2 accounts: buyer and seller. I use the IPN simulator to send a POST request to my page. The request seems just fine, but when I login into the sandbox seller account, the amount of money didnt change. If I login with the buyer account, the amount didnt change either. Shouldnt they change according with the IPN purchase I just simulate?
Also, if I go to IPN record in the paypal account, it's empty.
If I send back the request to PayPal to verify it, I get: VERIFIED from PayPal, so it seems correct.
I post here the POST request Im getting from PayPal:
cmd=_notify-validate
test_ipn=1
payment_type=instant
payment_date=10%3A21%3A42+Apr+03%2C+2011+PDT
payment_status=Completed
address_status=confirmed
payer_status=verified
first_name=John
last_name=Smith
payer_email=buyer_1301850921_per%40my_email.net
payer_id=TESTBUYERID01
address_name=John+Smith
address_country=United+States
address_country_code=US
address_zip=95131
address_state=CA
address_city=San+Jose
address_street=123%2C+any+street
business=seller_1301846568_biz%40my_email.net
receiver_email=seller_1301846568_biz%40my_email.net
receiver_id=M3PZFZDNE3HKU
residence_country=US
item_name=something
item_number=AK-1234
quantity=1
shipping=3.04
tax=2.02
mc_currency=EUR
mc_fee=0
mc_gross=15
mc_gross_1=10
txn_type=web_accept
txn_id=42431721
notify_version=2.1
custom=Los+23+pinos
charset=windows-1252
verify_sign=AGJ1AjjJzH2s7fC2Gg3c.JDtZCK1A.hF6JlaXSYSYzM-krKKk.SLx50l
IPN is not a transactional functionality. It merely allows PayPal to send you a POST with transaction data whenever a transaction has been made.
If you're looking to transfer funds, you'd be looking at either Website Payments Standard, Express Checkout, Website Payments Pro, Paflow Link, Payflow Pro or Adaptive Payments.
I found out that IPN does NOT simulate the transfer of funds, so if you want to test it you need to point your checkout form to the sandbox URL