Author Topic: Duplicate Status Updates for orders using PayPal with multiple matching Emails  (Read 2316 times)

GJC Web Design

  • 3rd party VirtueMart Developer
  • Super Hero
  • *
  • Posts: 10803
  • Virtuemart, Joomla & php developer
    • GJC Web Design
  • VirtueMart Version: 3.8.8
It could be something like the IPN call from Paypal to your server doesn't return a 200 so Paypal keeps sending IPNs

is it php version related?  which version? maybe 8+ ?

try and see if there is a 500 error or 403 error etc in the logs for a call of   index.php option=com_virtuemart&view=vmplg&task=notify&tmpl=component
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM3 AusPost Shipping Plugin - e-go Shipping Plugin - VM3 Postcode Shipping Plugin - Radius Shipping Plugin - VM3 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

alex2311

  • Beginner
  • *
  • Posts: 22
I ended up taking Kelvyn's advice:
"I don't use PayPal anymore, only Stripe, but when I did use PP it was with a plugin from plugins.online-store.co.uk with no problems."

Installing the basic version of the PayPal version resolved my issue. 

I tried the debugging tool suggested by GJC Web Design but it did not like Joomla 4 (crashed the site) and sent me 450 emails. :-(

Thanks all.

Darko F.

  • Jr. Member
  • **
  • Posts: 125
  • Skype Name: DarkoF
  • VirtueMart Version: VirtueMart 4.0.4 10688
I changed plugin to sandbox and these seems stooping emails fro sending.
I call customer apologise for flooded his email box, and for now I will not touch papal plugin a while.
There in no problem if you fall. Problem is if you don't get up

Milbo

  • Virtuemart Projectleader
  • Administrator
  • Super Hero
  • *
  • Posts: 10554
  • VM4.0.7 Eagle Owl
    • VM3 Extensions
  • VirtueMart Version: VirtueMart 3 on joomla 3
I really wonder about this. You are both on j4? and the problem appears with the plugin of vm and the one of onlinestore? or just with the one of the core?
Should I fix your bug, please support the VirtueMart project and become a member
______________________________________
Extensions approved by the core team: http://extensions.virtuemart.net/

alex2311

  • Beginner
  • *
  • Posts: 22
Hi Milbo,

I can setup a duplicate test site if you wish to look at it in more detail.  At the moment we a re running with a different PayPal plugin which has solve the problem.

Cheers
Alex

Darko F.

  • Jr. Member
  • **
  • Posts: 125
  • Skype Name: DarkoF
  • VirtueMart Version: VirtueMart 4.0.4 10688
Hi
It hapen joomla 3 and core Paypal plugin,
on virtuemart i think : com_virtuemart.4.0.7.10722_package_or_extract.zip

But I don't touch PayPal anymore with none of my shops, even because their 2500€ fine for someone who doesn't agree with their ideological stance. I don't care  what stance they have, and I don't care about politic, I'm just strongly ageist private company fine you for their imaginary reason when they want, In my opinion this is dangerous precedents and there are a loot of others payment processors to choose with better terms and conditions.
There in no problem if you fall. Problem is if you don't get up

p.barg

  • 3rd party VirtueMart Developer
  • Jr. Member
  • *
  • Posts: 193
    • Barg IT
Hello,

we've ran into the same problem now. Migrated a site from J3/VM3 PHP7.4 to J4/VM4 PHP8.0.
For an order paid with PayPal we get tons of order confirmation (with status "changes" from confirmed to confirmed) and corresponding e-mails (to vendor and customer).
Has anybody found any fix/solution to this by now? Maybe i'ts just a matter of configuration?

Thanks and regards,

Petra

alex2311

  • Beginner
  • *
  • Posts: 22
Hi Petra,

I didn't find a solution...  As I said above...
Quote
I ended up taking Kelvyn's advice:
"I don't use PayPal anymore, only Stripe, but when I did use PP it was with a plugin from plugins.online-store.co.uk with no problems."

Installing the basic version of the PayPal version resolved my issue.

I tried the debugging tool suggested by GJC Web Design but it did not like Joomla 4 (crashed the site) and sent me 450 emails. :-(

Thanks all.

Out of curosity...  Is it hosted on IIS server?   

Cheers
Alex

p.barg

  • 3rd party VirtueMart Developer
  • Jr. Member
  • *
  • Posts: 193
    • Barg IT
Hi Alex,

thanks for your reply. The site is hosted on an Apache Server.
In the past I've been using one of the paypal plugins by online-store.co.uk and was quite happy. So I'll probably give that a try.
Do you use the paypal express checkout plugin by them? Or did you give up PayPal completely?

Best regards,

Petra

alex2311

  • Beginner
  • *
  • Posts: 22
I use:

 PayPal Checkout SSC (1.4.17) Free Version

 Virtuemart Payment Plugins
PayPal Checkout (New Version) : Use's PayPal's latest SDK to present a range of payment options to your buyers based on their geographical location.

It works well for us!

Alex

PS... I was curious if the fault we were experiencing related to the hosting environment...  It seems to be only occurring to a few of us....

p.barg

  • 3rd party VirtueMart Developer
  • Jr. Member
  • *
  • Posts: 193
    • Barg IT
I now followed an advise in the German forum (bei Stefan): in the backend of the PayPal plugin set "Successful status restriction via IPN" to "Pending". This way status is only changed once to "confirmed" and only
1 mail gets sent.
What is still missing though is the PayPal transaction details that are normally listed in the payment section of the order.

-- Petra

The link to the German forum thread: https://forum.virtuemart.de/thread/3614-10-gleiche-best%C3%A4tigungsmail-nach-paypal-bezahlung/?postID=18185&highlight=paypal#post18185

alex2311

  • Beginner
  • *
  • Posts: 22
I guess that is progress... ? It is still strange behaviour.

Alexb65

  • Beginner
  • *
  • Posts: 33
  • A beginner
Hi all

We were plagued with this bug and developed a small fix (Joomla 4.2.6 VM 4.0.12)

The problem has to be catched in function plgVmOnPaymentNotification in file plugins/vmpayments/paypal/paypal.php

Here is the fix to avoid multiple changes in status and notifications only when an order is already in C state (for us C is Confiermed after payment)

[code[
764         function plgVmOnPaymentNotification() {
.....
 793                 $order = $orderModel->getOrder($virtuemart_order_id);
    794 /****** FIX multiple notification ****/
    795
    796                 $test = $order['details']['BT'];
    797
    798                 // if order status is already accepted then exit : dirty hack to multiple email
    799                 error_log(__FILE__ ." " . __LINE__ . " order  $order_number status  " . $test->order_status .
    800                                 " PAYPAL status = " . $paypal_data['payment_status']
    801                                 );
    802                 if ( $paypal_data['payment_status'] === "Completed" &&
    803                         $test->order_status ==="C") {
    804                         error_log ("spurious paypal notification discarded for order ID $order_number");
    805                         return false;
    806                 }
    807
    808 /************ END FIX *********************/
   809
 810                 $this->_currentMethod->payment_currency = $this->getPaymentCurrency($this->_currentMethod,$order['details']['BT']->payment_currency_id);

[/code}

You may avoid the error_log part if not interested

Hope this helps