Results 1 to 10 of 117

Hybrid View

  1. #1
    Join Date
    Nov 2013
    Location
    Dorset, UK
    Posts
    124
    Plugin Contributions
    0

    Default Re: WorldPay Module version 3.0 - Support thread

    Looked a bit deeper..... its the data for the admin > customers > worldpay payments

    example:
    Code:
    Original Billing Address: 
    17 Any Road
    Suburb
    Town
     
    WorldPay CC Address: 
    17 Any Road
    Another Town
    Warning: Address Mismatch
    Which of course is part of your AVS and other cross checks with worldpay.... or so my understanding of this goes.

  2. #2
    Join Date
    Apr 2009
    Posts
    2,134
    Plugin Contributions
    3

    Default Re: WorldPay Module version 3.0 - Support thread

    The module stores the complete state at the time of processing. So, all the post variables, all the session variables, all the server variables, and all the request variables. I think this is just someone in the past thinking one of two things. Either that some of this stuff may be useful for compliance. Or that they don't really know so they are going to store it anyway.

    The code block looks like this (so would be easy enough to change to disable the storage of this data).

    Code:
    		$str['POST'] = base64_encode(serialize($_POST));
    		$str['SESSION'] = base64_encode(serialize($_SESSION));
    		$str['SERVER'] = base64_encode(serialize($_SERVER));
    		$str['REQUEST'] = base64_encode(serialize($_REQUEST));
    		
    		if($_REQUEST['transStatus'] == 'C'){
    				$_POST['transId'] = 'Cancelled';
    				$_REQUEST['transId'] = 'Cancelled';
    		}
    
    		$db->Execute("INSERT INTO `".TABLE_WORLDPAY_PAYMENTS."` (cartId, worldpay_transaction_id, POST, SESSION, SERVER, REQUEST) VALUES ('".zen_db_input($_POST['cartId'])."', '".zen_db_input($_POST['transId'])."', '". $str['POST'] ."', '". $str['SESSION'] ."', '". $str['SERVER'] ."', '". $str['REQUEST'] ."')");
    As I say, I do not want to get into the nitty-gritty of this, and yes I have read my way through the PCI guidance notes. I don't think that this is a compliance issue but I am not an expert.

    My solution would always be to use another gateway. This is because the underlying methods of Worldpay are just horrible. I understand that Worldpay is slightly cheaper but as a programmer and not a business owner I don't think the savings are worth it. Different perspectives.

  3. #3
    Join Date
    Nov 2013
    Location
    Dorset, UK
    Posts
    124
    Plugin Contributions
    0

    Default Re: WorldPay Module version 3.0 - Support thread

    Quote Originally Posted by niccol View Post
    The module stores the complete state at the time of processing. So, all the post variables, all the session variables, all the server variables, and all the request variables. I think this is just someone in the past thinking one of two things. Either that some of this stuff may be useful for compliance. Or that they don't really know so they are going to store it anyway.

    The code block looks like this (so would be easy enough to change to disable the storage of this data).

    Code:
    		$str['POST'] = base64_encode(serialize($_POST));
    		$str['SESSION'] = base64_encode(serialize($_SESSION));
    		$str['SERVER'] = base64_encode(serialize($_SERVER));
    		$str['REQUEST'] = base64_encode(serialize($_REQUEST));
    		
    		if($_REQUEST['transStatus'] == 'C'){
    				$_POST['transId'] = 'Cancelled';
    				$_REQUEST['transId'] = 'Cancelled';
    		}
    
    		$db->Execute("INSERT INTO `".TABLE_WORLDPAY_PAYMENTS."` (cartId, worldpay_transaction_id, POST, SESSION, SERVER, REQUEST) VALUES ('".zen_db_input($_POST['cartId'])."', '".zen_db_input($_POST['transId'])."', '". $str['POST'] ."', '". $str['SESSION'] ."', '". $str['SERVER'] ."', '". $str['REQUEST'] ."')");
    As I say, I do not want to get into the nitty-gritty of this, and yes I have read my way through the PCI guidance notes. I don't think that this is a compliance issue but I am not an expert.

    My solution would always be to use another gateway. This is because the underlying methods of Worldpay are just horrible. I understand that Worldpay is slightly cheaper but as a programmer and not a business owner I don't think the savings are worth it. Different perspectives.
    I agree, not the nicest experience for the customer either.

  4. #4
    Join Date
    Jun 2007
    Location
    Cymru
    Posts
    124
    Plugin Contributions
    0

    Default Re: WorldPay Module version 3.0 - Support thread

    Hi all. The plugin works great for me other than one issue. After people choose to pay via WorldPay, they are taken to the WorldPay site. All the processing is done there, and the customer returns to the Zen Cart order confirmation page. Everything seems fine,tbut the issue is that none of the Worldpay orders are logged under 'Transactions' in our Google Analytics account. All orders placed on our site using Paypal are logged on Analytics but not the Worldpay ones. This has been an ongoing issue for us. Today I copied all of the *clean* files again from the plugin to our server. The only changes I have made (changes made by the developer) is to change the following code in includes/modules/payment/worldpay.php.

    Code:
          function selection() {
    
            if(sizeof(explode(',', trim(MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC_LIST)))>0 && MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC_LIST !='--none--' && MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC != 'False'){
                switch(MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC){
                case 'Radio Buttons' :
                return array('id' => $this->code,
                            'module' => $this->title.$this->_draw_radio_menu($this->_cc_map(), $_SESSION['paymentType'] ));
                break;
                case 'Select Box':
                $this->cc_drop = array();
                array_walk($this->_cc_map(), array('worldpay', 'cc_split'));
                return array('id' => $this->code,
                            'module' => $this->title.'</label> '.zen_draw_pull_down_menu("paymentType", $this->cc_drop, $_SESSION['paymentType'] ).'<label>' );
                break;
                default:
                return array('id' => $this->code,
                            'module' => $this->title);
                }
            }else{
            return array('id' => $this->code,
                    'module' => $this->title);
            }
    
          }
    to:

    Code:
          function selection() {
    
            if(sizeof(explode(',', trim(MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC_LIST)))>0 && MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC_LIST !='--none--' && MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC != 'False'){
                switch(MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC){
                case 'Radio Buttons' :
                return array('id' => $this->code,
                            'module' => $this->title.$this->_draw_radio_menu($this->_cc_map(), $_SESSION['paymentType'] ));
                break;
                case 'Select Box':
                $this->cc_drop = array();
                array_walk($this->_cc_map(), array('worldpay', 'cc_split'));
                return array('id' => $this->code,
                            'module' => $this->title.'</label><p align="center"><img src=https://www.cadwyngifts.com/images/cardiau-credyd-cadwyn.png border=0 alt="Card payments supported by Worldpay"></p> '.zen_draw_pull_down_menu("paymentType", $this->cc_drop, $_SESSION['paymentType'] ).'<label>' );
                break;
                default:
                return array('id' => $this->code,
                            'module' => $this->title.'<p style="margin: 0px;"><img src=https://www.cadwyngifts.com/images/cardiau-credyd-cadwyn.png border=0 alt="Card payments supported by Worldpay"></p></label> ');
                }
            }else{
            return array('id' => $this->code,
                    'module' => $this->title.'<p style="margin: 0px;"><img src=https://www.cadwyngifts.com/images/cardiau-credyd-cadwyn.png border=0 alt="Card payments supported by Worldpay"></p></label>' );
            }
    
          }
    Other than that it a clean installation.

    Could the changes above be somehow stopping Google Analytics from logging any Worldpay orders made on our site cadwyngifts.com ? I hope the above is clear. I would greatly appreciate any feedback.

  5. #5
    Join Date
    Apr 2009
    Posts
    2,134
    Plugin Contributions
    3

    Default Re: WorldPay Module version 3.0 - Support thread

    Quote Originally Posted by bonheddwr View Post
    Hi all. The plugin works great for me other than one issue. After people choose to pay via WorldPay, they are taken to the WorldPay site. All the processing is done there, and the customer returns to the Zen Cart order confirmation page. Everything seems fine,tbut the issue is that none of the Worldpay orders are logged under 'Transactions' in our Google Analytics account. All orders placed on our site using Paypal are logged on Analytics but not the Worldpay ones. This has been an ongoing issue for us. Today I copied all of the *clean* files again from the plugin to our server. The only changes I have made (changes made by the developer) is to change the following code in includes/modules/payment/worldpay.php.

    Code:
          function selection() {
    
            if(sizeof(explode(',', trim(MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC_LIST)))>0 && MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC_LIST !='--none--' && MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC != 'False'){
                switch(MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC){
                case 'Radio Buttons' :
                return array('id' => $this->code,
                            'module' => $this->title.$this->_draw_radio_menu($this->_cc_map(), $_SESSION['paymentType'] ));
                break;
                case 'Select Box':
                $this->cc_drop = array();
                array_walk($this->_cc_map(), array('worldpay', 'cc_split'));
                return array('id' => $this->code,
                            'module' => $this->title.'</label> '.zen_draw_pull_down_menu("paymentType", $this->cc_drop, $_SESSION['paymentType'] ).'<label>' );
                break;
                default:
                return array('id' => $this->code,
                            'module' => $this->title);
                }
            }else{
            return array('id' => $this->code,
                    'module' => $this->title);
            }
    
          }
    to:

    Code:
          function selection() {
    
            if(sizeof(explode(',', trim(MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC_LIST)))>0 && MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC_LIST !='--none--' && MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC != 'False'){
                switch(MODULE_PAYMENT_WORLDPAY_ACCEPTED_CC){
                case 'Radio Buttons' :
                return array('id' => $this->code,
                            'module' => $this->title.$this->_draw_radio_menu($this->_cc_map(), $_SESSION['paymentType'] ));
                break;
                case 'Select Box':
                $this->cc_drop = array();
                array_walk($this->_cc_map(), array('worldpay', 'cc_split'));
                return array('id' => $this->code,
                            'module' => $this->title.'</label><p align="center"><img src=https://www.cadwyngifts.com/images/cardiau-credyd-cadwyn.png border=0 alt="Card payments supported by Worldpay"></p> '.zen_draw_pull_down_menu("paymentType", $this->cc_drop, $_SESSION['paymentType'] ).'<label>' );
                break;
                default:
                return array('id' => $this->code,
                            'module' => $this->title.'<p style="margin: 0px;"><img src=https://www.cadwyngifts.com/images/cardiau-credyd-cadwyn.png border=0 alt="Card payments supported by Worldpay"></p></label> ');
                }
            }else{
            return array('id' => $this->code,
                    'module' => $this->title.'<p style="margin: 0px;"><img src=https://www.cadwyngifts.com/images/cardiau-credyd-cadwyn.png border=0 alt="Card payments supported by Worldpay"></p></label>' );
            }
    
          }
    Other than that it a clean installation.

    Could the changes above be somehow stopping Google Analytics from logging any Worldpay orders made on our site cadwyngifts.com ? I hope the above is clear. I would greatly appreciate any feedback.
    It will be because of the weird 'order confirmation' page that Worldpay uses.

    By which I mean that the page after the customer enters their details ssuccessfully is generataed by the worldpay server rather than your server. The GA code will be on the page that your server generates so may never get actioned in the Worldpay way of doing things.

    So, I think that the good news is that it has not got to do with the changes that your developer has made. The bad news is that it is going to be challenging to rectify.

    :-)

  6. #6
    Join Date
    Jun 2007
    Location
    Cymru
    Posts
    124
    Plugin Contributions
    0

    Default Re: WorldPay Module version 3.0 - Support thread

    Quote Originally Posted by niccol View Post
    It will be because of the weird 'order confirmation' page that Worldpay uses.

    By which I mean that the page after the customer enters their details ssuccessfully is generataed by the worldpay server rather than your server. The GA code will be on the page that your server generates so may never get actioned in the Worldpay way of doing things.

    So, I think that the good news is that it has not got to do with the changes that your developer has made. The bad news is that it is going to be challenging to rectify.

    :-)
    Thanks Nicco for the information! I have heard many people complain about WorldPay's weird setup! But the strange thing is, other people seem to use the WorldPay and GA plugins, and the orders are logged in their analytics. Could it be something to do with the options I have chosen on the Worldpay site itself therefore?

  7. #7
    Join Date
    Jun 2007
    Location
    Cymru
    Posts
    124
    Plugin Contributions
    0

    Default Re: WorldPay Module version 3.0 - Support thread

    Hi all. I've spoken to the google team who have gone through and checked the analytics code etc on our site. They say this is an issue with WorldPay (or possibly the plugin, although the code looks correct from their end). When a customer pays using WorldPay they are taken to an URL similar to this:

    https://secure.worldpay.com/wcc/card...-1530101623925

    It looks to the customer as if they have returned to our site, but if you look at the URL in the browser it is WorldPay. Because of this, Google analytics does not register the transaction:

    Click image for larger version. 

Name:	payment-page-worldpayl.jpg 
Views:	111 
Size:	42.2 KB 
ID:	17953

    Somone said earlier in the discussion that orders using WorldPay on their site ARE being recorded by Google Analytics. Are customers sent back to your site therefore? If so what changes have you made to ensure that this happens?

    Customers using Paypal on our site are correctly returned to the following URL on our site https://www.welsh-lovespoons.co.uk/i...eckout_success, so those sales are registered in Google Analytics.

    Click image for larger version. 

Name:	payment-page-paypal.jpg 
Views:	96 
Size:	39.6 KB 
ID:	17954

    There is a workaround suggested here - http://thesitedoctor.co.uk/blog/how-...with-worldpay/

    Code:
    @if (string.IsNullOrWhiteSpace(Request.QueryString["processed"]))
    {
        <meta http-equiv="refresh" content="0;[email protected]()&processed=yes" /">
    }
    Would this code or similar work with Zen Cart do you think, and on what page should I include the code?


    I would greatly appreciate any advice.

 

 

Similar Threads

  1. MultiSite Module Support Thread
    By Gerome in forum All Other Contributions/Addons
    Replies: 2246
    Last Post: 29 Dec 2025, 10:13 AM
  2. WorldPay Module version 2.0 - Support thread
    By philip_clarke in forum Addon Payment Modules
    Replies: 729
    Last Post: 4 Nov 2017, 08:23 AM
  3. v151 Codetrio Sphinx Search Version 1.0 Support Thread
    By imranulh in forum All Other Contributions/Addons
    Replies: 5
    Last Post: 16 Jul 2014, 01:24 AM
  4. Simple SEO URL (OLD version) [support thread]
    By yellow1912 in forum All Other Contributions/Addons
    Replies: 5053
    Last Post: 30 Jun 2014, 02:42 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg