Can someone please help me. This is the paypal.log file after my order is confirmed-but the cart is not empty.
The only time the cart empties is if I go back to the store from the paypal link. In case I have a few tabs open
with items in the cart, none of the carts empty when the page is refreshed. Is this intended/bug..It seems an odd
thing to do.
2012-04-17 18:28:01
message: paypal_data 4.91 b64606 Ineligible 94HWRMKJABBYN 0.00 11:27:54 Apr 17, 2012 PDT Completed windows-1252 deepa 0.44 3.4 512383cf2c149c1cb34df1f58f1c3505 verified deepa_1329192018_biz@yahoo.com 1 AuL6cw-ASsYwHgJfs4X-aE93YB3lAkvo-T8iS0uZRe5yvSl-ZybQU2-7 deepa__1333386065_per@yahoo.com 3X235666C3490850P instant vaith deepa_1329192018_biz@yahoo.com 0.44 VHB2TFSFARJQ4 web_accept Order Number: b64606 USD US 1 0.00 512383cf2c149c1cb34df1f58f1c3505 4.91 0.00 1c27f374ac336
2012-04-17 18:28:01
message: process IPN
2012-04-17 18:28:01
message: process IPN OK
2012-04-17 18:28:01
message: plgVmOnPaymentNotification return new_status:C
2012-04-17 18:28:01
message: Notification: emptyCart
I forgot to mention joomla 1.5 and VM 2.0.6.
Even letting me know if what I'm asking for is not provided by VM will be great :(
Thanks,
Deepa
hmm...it seems to have something to do with these lines in vmpsplugin.php in the emptyCart function.
// Recover session in wich the payment is done
$this->logInfo('Notification: before new session emptyCart ' . $session_id, 'message');
session_id($session_id);
session_start();
$this->logInfo('Notification: after new session emptyCart ' . $session_id, 'message');
The first message is logged with the correct session id and the second message is not written out.
The session id matches what is in the database-even if I call the emptycart with this session id it
does not work.
Is this a bug? Is there a quick way to fix it....If so, please point me in the right direction.
Oh please let me not be talking to myself here!!!! :)
No, should work imho, but I am just not the expert for this.
I've tried it in every version from the first release to the 2.0.6.
And it does not work it any version when called from the
plgVmOnPaymentNotification, but works on the click
from Paypal which calls plgVmOnPaymentResponseReceived.
Am I right in this understanding?
Milbo - thanks for replying. Though your reply has made things
more confusing :(
Hi,
Yes you are rigth . The cart is not emptied.
I have fix it for the next version.
Meanwhile you can fix it by changing the code line 450 in file plud-gins/vmpayment/paypal/paypal.php
replace
$this->emptyCart($return_context);
by
$this->emptyCart($paypal_data['custom']);
Hi, Thanks for your response. The problem is not solved. I changed the line in paypal.php.
I've attached the changes in vmpsplugin.php and the output from the paypal.log files
below.
I added more debugging statements to the emptycart function in vmpsplugin.php file
There seems to be a problem in the session_start line in red. The session id in the
function, matches the id in the table.
Please help!
function emptyCart($session_id) {
if (!class_exists('VirtueMartCart'))
require(JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php');
$this->logInfo('Notification: emptyCart ' . $session_id, 'message');
/*$_db = JFactory::getDBO();
$_q = "SELECT data FROM #__session WHERE session_id='".$session_id. "'";
$this->logInfo('Notification: query' . $_q, 'message');
$_db->setQuery($_q);
$_r = $_db->loadResult(); // TODO Error check
$this->logInfo('Notification: after query' . $_r, 'message'); */
if ($session_id != null) {
$session = JFactory::getSession();
$session->close();
// Recover session in wich the payment is done
$this->logInfo('Notification: after session close', 'message');
session_id($session_id);
$this->logInfo('Notification: after getting session', 'message');
session_start();
$this->logInfo('Notification: after session_start' . $session_id, 'message');
}
$cart = VirtueMartCart::getCart();
$this->logInfo('Notification: getCart ' . $session_id, 'message');
$cart->emptyCart();
$this->logInfo('Notification: final emptyCart ' . $session_id, 'message');
return true;
}
Log file from Paypal
2012-04-18 16:23:41
message: plgVmOnPaymentNotification return new_status:C
2012-04-18 16:23:41
message: Notification: emptyCart 2f6956fae42734587377a39c5bfe7970
2012-04-18 16:23:41
message: Notification: after session close
2012-04-18 16:23:41
message: Notification: after getting session
Was anyone able to take a look at it? I'm really desperate as the launch date for
the site has been postponed due to this problem only.
Any idea when this can be solved?
Thanks,
Deepa
Hi,
Yes , change this function emptyCart in the file vmpsplugin.php
function emptyCart($session_id) {
if (!class_exists('VirtueMartCart'))
require(JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php');
$this->logInfo('Notification: emptyCart ' . $session_id, 'message');
if ($session_id != null) {
// Recover session in wich the payment is done
session_id($session_id);
session_start();
}
Hi Alatak,
Thanks for the prompt responses. Now the cart is emptying, but I am being logged out
too. Can it be worked such that the user does not have to login again if they have more
than one tab open?
Thanks,
Deepa
Any luck or pointers?
Hi! Please can you tell me if this is something that is likely to be fixed soon?
I am unable to get the contents of the session at that point-if you can tell how to do
that I can try to take it from there.
Thanks.
Hi! I am sounding like quite a pain...but I'm completely stuck. My site is ready and this is
the only thing holding up the launch. Please could you help me with this bug or let
me know if this is not something that is going to be fixed in soon? I've tried www.vm-expert.com/
too, but there has been no response from them.
I am really desperate at this stage....
Thanks,
Deepa
Am I the only one on this forum with this problem? Please can someone respond.
Thanks,
Deepa