News:

You may pay someone to create your store, or you visit our seminar and become a professional yourself with the silver certification

Main Menu

PayPal IPN fails in v2.6.16

Started by optmax, February 28, 2015, 14:20:00 PM

Previous topic - Next topic

DomenFras

Hello,

is there already a solution know for paypal trouble (why order status doesn't change to compled). Please help ASAP.

GJC Web Design

have you tried the 2.6.17 update?

It is stated in just about EVERY 2nd POST - GIVE YOUR VERSIONS if you want help
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

ProRaceSupply

#47
It would be helpful to list the steps to update.  I finally found it in the link several pages ago. Applying it fixed this problem but it took a lot of re-reading in this thread.

What I'd like to know is why Virtuemart thinks that 2.6.16 is hte latest update when it clearly breaks paypal payment for everyone.  SHouldn't this fix be pushed out.?

tarichecco

Hi all,

I had the same problem and I resolved it:

After I upgraded to VM 2.6.17 Paypal still didn't  notify payments. The problem was in the table [DBPREFIX]_virtuemart_payment_plg_paypal. Upgrading process didn't update the table structure.

Maybe you have to remove Paypal method from Payment Method List and recreate it and the table is updated.

I recreated the table directly to DB with the query below (my previous table was empty) and all works fine.

Joomla 2.5.28
VM 2.6.17

Regards,
Fra

CREATE TABLE IF NOT EXISTS `x94uf_virtuemart_payment_plg_paypal` (
  `paypal_method` varchar(200) DEFAULT NULL,
  `paypal_fullresponse` text,
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `virtuemart_order_id` int(1) unsigned DEFAULT NULL,
  `order_number` char(64) DEFAULT NULL,
  `virtuemart_paymentmethod_id` mediumint(1) unsigned DEFAULT NULL,
  `payment_name` varchar(5000) DEFAULT NULL,
  `payment_order_total` decimal(15,5) NOT NULL,
  `payment_currency` smallint(1) DEFAULT NULL,
  `email_currency` smallint(1) DEFAULT NULL,
  `cost_per_transaction` decimal(10,2) DEFAULT NULL,
  `cost_percent_total` decimal(10,2) DEFAULT NULL,
  `tax_id` smallint(1) DEFAULT NULL,
  `paypal_custom` varchar(255) DEFAULT NULL,
  `paypal_response_mc_gross` decimal(10,2) DEFAULT NULL,
  `paypal_response_mc_currency` char(10) DEFAULT NULL,
  `paypal_response_invoice` char(32) DEFAULT NULL,
  `paypal_response_protection_eligibility` char(128) DEFAULT NULL,
  `paypal_response_payer_id` char(13) DEFAULT NULL,
  `paypal_response_tax` decimal(10,2) DEFAULT NULL,
  `paypal_response_payment_date` char(28) DEFAULT NULL,
  `paypal_response_payment_status` char(50) DEFAULT NULL,
  `paypal_response_pending_reason` char(50) DEFAULT NULL,
  `paypal_response_mc_fee` decimal(10,2) DEFAULT NULL,
  `paypal_response_payer_email` char(128) DEFAULT NULL,
  `paypal_response_last_name` char(64) DEFAULT NULL,
  `paypal_response_first_name` char(64) DEFAULT NULL,
  `paypal_response_business` char(128) DEFAULT NULL,
  `paypal_response_receiver_email` char(128) DEFAULT NULL,
  `paypal_response_transaction_subject` char(128) DEFAULT NULL,
  `paypal_response_residence_country` char(2) DEFAULT NULL,
  `paypal_response_txn_id` char(32) DEFAULT NULL,
  `paypal_response_txn_type` char(32) DEFAULT NULL,
  `paypal_response_parent_txn_id` char(32) DEFAULT NULL,
  `paypal_response_case_creation_date` char(32) DEFAULT NULL,
  `paypal_response_case_id` char(32) DEFAULT NULL,
  `paypal_response_case_type` char(32) DEFAULT NULL,
  `paypal_response_reason_code` char(32) DEFAULT NULL,
  `paypalresponse_raw` varchar(512) DEFAULT NULL,
  `created_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `created_by` int(11) NOT NULL DEFAULT '0',
  `modified_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified_by` int(11) NOT NULL DEFAULT '0',
  `locked_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `locked_by` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='Payment Paypal Table' AUTO_INCREMENT=1 ;

volksman3

I have been following this thread with anticipation trying every fix various users have put out there but i am still in a bad place with no em,ail notifications  being sent and no update to conformed on a successful payment. I bought a full membership to Virtuemart in hope of some help as i am at a loss.

I am running:

Joomla 2.5.26
Virtuemart 2.6.17

I have confirmed and tried the following:

I am not blocking the paypal IP addresses in my csf firewall
Checked the database structure of the paypal plugin table and all is ok
Checked the server setup complies as per previous posts reference Proxies and we are all ok
Tried re-installing 2.6.16 and 2.6.17
Tried with Paypal IPN notifications on and off
Tried deleting the payment method and re-creating it

All of the above have not fixed the issue. I am at the point of wanting to pay a developer for a fix - can anyone other help me?????

Regards
Tony




Parachutes are like minds, they only work when they are open!
http://www.akirastudio.co.uk

evoltuion

I rolled back to Vm 2.6.14. It was the only solution I could get to work for my clients.

volksman3

Thanks for the reply, could you tell me the procedure for rolling back without loosing order and product data etc?
Parachutes are like minds, they only work when they are open!
http://www.akirastudio.co.uk

evoltuion

HI volksman - does that mean you own a volkswagen? please make it a kombi, please make it a kombi... :)

Just download the 2.6.14 files and install in the regular way. I don't think I uninstalled anything - although you might wantto akeeba backup your site and do a test where you uninstall the paypal plug that was put forward as the first fix. I've got three clients happily using 2.6.14 and processing payments through payapal.

volksman3

lol use to have both a Beetle and Bus ;o) Thanks for this, i will try today and fingers crossed, i will report back my findings.
Parachutes are like minds, they only work when they are open!
http://www.akirastudio.co.uk

volksman3

I rolled back to 2.6.14 and no luck so after many hours of digging deeper i found the issue!!!!

This his NOT virtue mart related but instead a false positive triggered in Mod_Security on the server, after some research it seams this is a common issue with Mod_Security blocking Paypal IPN notifications.

The rule that was blocking it is 960015: Request Missing an Accept Header

For now i have disabled the rule and the notifications work just fine now and email are sent with order updated. I am not trying to work out how to add an exception for the paypal IPN's so i can add this and switch the rule back on.

Hope this help some other having issues as it is not obvious or easy to find. I am still running 2.6.14 so the next step is to upgrade and see if it still works.
Parachutes are like minds, they only work when they are open!
http://www.akirastudio.co.uk

evoltuion

That's odd then that I haven't touched mod_security and any upgrade from 2.6.14 stops paypal but a roll back to 2.6.14 fixes it. I'm on a Rochen dedicated server, who is your host?

volksman3

I'm running a VPS with Canadian web hosting and for sure odd but with so many versions of centos, php, MySQL it's no wonder some things cause a false positive. I found the block reports in mod security tools which showed one of the PayPal notify IP addresses blocked. Not all servers have mod security servers by default activated and even though you have the IP white listed in cf firewall etc it still blocks as they all work off there own rules. To add more confusion mod security has several plugins wilhich may or may not be activated with there own rule sets that can sometimes fight each other
Parachutes are like minds, they only work when they are open!
http://www.akirastudio.co.uk

Tonimito

Hello,

I have the same problem, everything works perfectly except the Paypal IPN notification (work in Sandbox Mode).

Until last October 2015 I worked, we just updated versions of Joomla related (Joomla 3.4.8 and VM 3.0.12).

PayPal tells me HTTP 200 (As is correct) on a IPN Notification.

However, in the log paypal now:

2016-02-19 15:13:48 DEBUG PaymentNotification, order_number:: P2016021916
2016-02-19 15:13:48 DEBUG PaymentNotification, virtuemart_paymentmethod_id:: 2
2016-02-19 15:13:48 DEBUG checkPaypalIps SANDBOX: Array
(
    [0] => 173.0.82.126
)

2016-02-19 15:13:48 DEBUG checkPaypalIps REMOTE ADDRESS: 173.0.82.126
2016-02-19 15:13:48 ERROR validateIpnContent: Error while posting IPN:  ,  0
2016-02-19 15:13:48 DEBUG validateIpnContent: valid_ipn:
2016-02-19 15:30:26 DEBUG PaymentNotification, paypal_data:: Array
(
    [mc_gross] => 1.00
    [invoice] => P2016021911
    [auth_exp] => 07:10:28 Mar 20, 2016 PDT
    [protection_eligibility] => Eligible
    [address_status] => unconfirmed
    [payer_id] => SQD8KN7JTK4SQ
    [tax] => 0.00
    [address_street] => XXX
    [payment_date] => 07:30:19 Feb 19, 2016 PST
    [payment_status] => Completed
    [charset] => windows-1252
    [address_zip] => 08320
    [first_name] => test
    [transaction_entity] => payment
    [mc_fee] => 0.38
    [address_country_code] => ES
    [address_name] => name name
    [notify_version] => 3.8
    [custom] => iemmmvrfcik3mjud0nij49soo7
    [payer_status] => verified
    [business] => info-facilitator@sandbox.net
    [address_country] => Spain
    [address_city] => Barcelona
    [quantity] => 1
    [verify_sign] => AUifZwERiLeqHiGOvp8-DyOIYSJVAd801SiPX9p75xXdpeTBJG4wFWzK
    [payer_email] => info-buyer@sandbox.net
    [parent_txn_id] => 65B90485VF274201D
    [txn_id] => 3UX22966HT0182410
    [payment_type] => instant
    [remaining_settle] => 0
    [auth_id] => 65B90485VF274201D
    [last_name] => buyer
    [address_state] => 08
    [receiver_email] => info-facilitator@sandbox.net
    [auth_amount] => 29.07
    [payment_fee] =>
    [receiver_id] => TPCP44P35CQVG
    [txn_type] => web_accept
    [item_name] => P2016021911
    [mc_currency] => EUR
    [item_number] =>
    [residence_country] => ES
    [test_ipn] => 1
    [handling_amount] => 0.00
    [transaction_subject] =>
    [payment_gross] =>
    [auth_status] => Completed
    [shipping] => 0.00
    [ipn_track_id] => 18563d9beec80
)

2016-02-19 15:30:26 DEBUG PaymentNotification, order_number:: P2016021911
2016-02-19 15:30:26 DEBUG PaymentNotification, virtuemart_paymentmethod_id:: 2
2016-02-19 15:30:26 DEBUG checkPaypalIps SANDBOX: Array
(
    [0] => 173.0.82.126
)

2016-02-19 15:30:26 DEBUG checkPaypalIps REMOTE ADDRESS: 173.0.82.126
2016-02-19 15:30:26 ERROR validateIpnContent: Error while posting IPN:  ,  0
2016-02-19 15:30:26 DEBUG validateIpnContent: valid_ipn:


The hosting no used reversed Proxy (as indicated in: http://forum.virtuemart.net/index.php?topic=128518.msg442586#msg442586).

What can happen?
Thank you.

reggaebkk

Hi,
I can see that the ticket has been idle for 3 years but I had that exact same problem starting a couple of months back on my website.
I am not sure why, maybe it's because I have moved to https at about the same period, not sure if it's related.
Also I'm not a coder so I'm at a loss, I've tested about every configuration I could think of and still get it.
I have also checked on my modsec rules, the rules mentioned here were already ignored, my firewall has Paypal IPs whitelisted...
My website is https://pailingemstones.com, does anyone have an idea?

AH

Move to the latest versions and in the paypal - turn of paypa IP checking

Under configuration
Check IPN provider IP - set to No
Regards
A

Joomla 4.4.5
php 8.1