I'm trying to troubleshoot a problem with a Joomla component I brought as the developers aren't helping at all.
When I set for an order through the website and pay for it through PayPal, it returns to the website but the IPN handler - ipntest() - hasn't been triggered. ipntest() should send me an email when triggered. I have used the IPN Simulator to try and trigger ipntest() and it says that its been sent successfully but the ipntest() doesn't trigger.
If I view the function directly in my browser (e.g. http://example.com/index.php?option=com_mycomponent&task=orderprocessor.ipntest), it works fine and sends the email.
Any help would be most appreciated.
Related
I am integrating PayPal payment gateway in my code ignitor website. and I am using this ref
https://www.codexworld.com/paypal-payment-gateway-integration-in-codeigniter/
All things are successfully done but payments transaction data is not saved into the database.
I have set the IPN URL in the sandbox business account. And in the IPN history page, It showing IPN was sent successfully. but IPN data not received on my website.
I also test IPN using the IPN simulator. When I put my base URL like https://www.earlyyearz.com/ then IPN was sent successfully. but when I give the path of my IPN function
https://www.earlyyearz.com/payments/ipn then it was saying IPN not sent.
does anyone can help me to fix this.
thanks in advance.
Add logging to your IPN function so you can see what is happening when it receives the data. If your IPN function does not respond with an HTTP 200-level status, PayPal will mark the IPN as not having been received.
IPN is an extremely old service that was not designed for modern web integrations. If this is a new integration, first ask yourself why you are using IPN to begin with (you shouldn't need it for a normal PayPal checkout with server API captures)
But if you really do need asynchronous notifications (again, you shouldn't need them), use webhooks instead of IPN.
I have configured Paypal Pay-flow Pro, and live mode is set, but when I use test card details for any card type then it accepts it and successfully checks out.
When I have set Payment Action -Authorization in admin payment settings then it works fine, but not when Payment action will be Sale.
CC.php from model file of payment has been overwritten and changes are below :
$info->setCcCidEnc($info->encrypt($info->getCcCid()));
This line is uncommented in prepareSave() function.
What is the exact issue here, I am unable to trace it!
I have got response from paypal support team and they had an issue whereby some of the processed transaction is not appearing in their PayPal account.
their developers fixed it and it's working properly now.
I am posting answer so it may help someone in future.
What is wrong with my Paypal sandbox account process
to receive webhook notifications? We are unable to receive webhook event on
my URL.
URL working with "Webhooks simulator". Please let me know what
should I do for receive webhook event on above URL.
Webhooks simulator sends sample payloads for the events you configured. It does not send a notification on triggering of an actual event.
If you are getting notification via Webhooks Simulator, it means the URL configured by you is able to intercept POST requests.
Now for the "Paypal sandbox account unable to process to receive Webhook notifications" part, please check if the transaction is actually created at https://developer.paypal.com/developer/dashboard/sandbox/ . If the transaction you are looking for is not present there, there won't be any notification generated. In case transaction is present there and still you are not getting any notifications, please share debug id.
Here is a silly thing that I overlooked in the documentation and only found out after contacting support.
After you've followed the approval url and gave your approval, dit you execute the payment with the REST API?
https://developer.paypal.com/docs/api/payments/#payment_execute
Webhooks are only called after you've executed the payment.
The confusing part is; there is no webhook being called, when a user approves or cancels a payment. There is only a redirect back to a return url or cancel url. So you either need to monitor the redirect back to your site and trigger the execute call then, or find another way (like polling the payment) to see the status change before calling the execute call.
I'm developing small website which sells digital goods using Joomla. On my website, after confirming the customer's payment, we have to calculate some private information for him.
Hence, we have to prevent someone who didn't pay from visiting our PayPal IPN handler.
Now I have a nice IPN handler code for Joomla, which was written by Mr. Oleksandr Balyuk.
I think, using this code, I can describe my calculation process in Joomla.
But I've one question.
How can I prevent someone who didn't pay from browsing my IPN handler?
PayPal gives you the ability to confirm that an IPN came from them (As opposed to a spoofed IPN from a malicious user).
You simply need to post the entire contents of the received IPN back to PayPal, and you will receive a response that says VERIFIED if the IPN is authentic, or INVALID if even one character is different.
Check out page 16-17 of the IPN guide for more info:
https://cms.paypal.com/cms_content/US/en_US/files/developer/IPNGuide.pdf
My module needs to know when a success checkout has occurred. So, in accordance with what I have read in various places, I listen out for the events checkout_onepage_controller_success_action and checkout_multipage_controller_success_action. That's fine, when I pay with a dummy credit card on my dev site, one of the above events is fired. But I wondered what happens if I pay with PayPal, so I said up a PayPal dev sandbox to test it out. Examining the http traffic, I saw that a notify_url was sent to PayPal when the order was placed. That was promising - when the paypal/ipn action is called from PayPal, the PayPal module will, if a 'completed' status is received, fire the checkout _xxx_controller_success_action - right? Wrong.
My module relies on knowing when an order is successfully placed, so I am looking for advice on the best way to tackle this issue please.
I'll just add a little bit about my environment here in case it is relevant.
I am running Magento 1.4.2.0 on my laptop. When using PayPal Standard, a notify_url is sent to PayPal which overrides any set up in the PayPal account. I am testing from my laptop, so the notify URL passed to PayPal is not accessible from the PayPal sandbox. So I changed the notify_url to point to an accessible JSP that just printed out the notification it received. I then give that parameter string to a little Java program I run on my machine which posts it to the original notify_url (.../index.php/paypal/ipn).
Thank you.
This is an old post but still a relevant question. We successfully used event checkout_onepage_controller_success_action (which is used by Magento core GoogleAnalytics extension) to observe successful PayPal Express orders (and also checkout onepage orders). Event sales_order_payment_pay did NOT fire for new orders.
I was having the same trouble - try using the sales_order_payment_pay event instead - it worked nicely for me