-
WorldPay Module for ZenCartv1.3x
I have at last got around to testing the WorldPay Payment Module on ZenCartv1.3.0.1 and it works as it should. I have renamed the module to 'WorldPay Module for Zencartv3.1x' and re-versioned it v0.1. It should however still work for 1.2x versions.
I have updated the template for the 'Checkout Success' page to capture more of the data included in the WordPay response giving designers greater control of the content, look and feel of this page. Read the install.txt file contained in the download for more information.
I would have placed this on the Downloads section but it appears to be unavailable at the moment. I'll try again later. In the meantime you can download it from my server here:
http://www.workingit.co.uk/ZenCart/W...C1_3x_v0_1.zip
I will provide support via this thread.
Hope this proves useful to some.
Alan
-
Re: WorldPay Module for ZenCartv1.3x
UPDATE:
This module is now available in the Downloads Section.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Alan,
Thanks for contributing this module. I am currently trying it out and I see that it takes the user to a WorldPay branded page hosted on their server. With other payment modules that I've used, the checkout scripts send & receive the transaction data to the payment gateway behind the scenes, so that the user only sees locally-hosted pages. (IIRC the first arrangement is called the callback model, not sure what the name is for the second).
Is your module capable of working in the non-callback way?
If not, any plans for it to do so and would it take a lot of modification?
Or would it be quicker to modify a module for another payment gateway that works in the desired way?
Does WorldPay Select Junior support the non-callback method?
If we have to use the callback method, is it possible to customise the Worldpay payment page ( https://select.worldpay.com/wcc/purchase ) with design & branding to match the rest of the site?
Sorry so many questions, thanks again for the module.
Dave
-
Re: WorldPay Module for ZenCartv1.3x
Dave,
Sorry for the delay in replying - just recovering from my son's wedding at the weekend!
I think what you are looking for is WorldPay Invisible:
http://support.worldpay.com/integrations/invisible
The current WorldPay payment module does not support this method.
Xspringe some time ago was looking for someone to develop this for him on a commercial basis but I do not know if he was successful.
Personally I am not convinced that this is a route I would want to go down for reasons explained in the forum debate between Xpringe and myself to be found here:
http://www.zen-cart.com/forum/showth...rldpayWorldPay
My thoughts are summarised as follows:
1. This method requires the merchant to handle (and store?) customer credit card details. WorldPay Invisible puts a large responsibility for credit card security on the Merchant.
2. WordPay Select Junior places Credit Card security issues in WordPay's lap - the merchant never sees or handles credit card details. WorldPay is owned by the The Royal Bank of Scotland Group - a slightly bigger organisation (with deeper pockets) than most merchants using ZenCart and much better equiped to deal with security issues etc.
3. Using a reputable payment gateway such as WorldPay should give customers confidence that their online transaction will be secure. Being transparent about the fact that WorldPay is handling the transaction should encourage customers to shop with confidence.
It is possible to customise the Select Junior payment pages. You will find details here:
http://support.worldpay.com/customising/index.html
Hope this helps.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hello,
I am using this module, thanks very much for the contribution. I have noticed this error within the Amin of the cart. Above the Products in a persons order page, this error is shown
Code:
Make selection to pay via WorldPay</td> </tr> </table></td> </tr> <tr> <td><table border=
It doesn't appear to cause any problems, but obviously that HTML code shouldn't be there?
-
Re: WorldPay Module for ZenCartv1.3x
Pauls,
I'm not seeing this and I'm not sure exactly which page you are seeing it on.
Could you send me a screenshot?
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
it is so happy to see there is new worldpay module comes up,:thumbsup: :thumbsup:
I am planing to have a worldpay account these day,
And I am currently running with ZENCART 1.3.0.2,
my concern is...Will this module work with V1.3.0.2?
I think it should work fine:wink2: right?
-
Re: WorldPay Module for ZenCartv1.3x
I am using 1.3.02 Cplam999, and it functions very well.
Alan, here is a screen shot of the oddness, I have highlighted with a red rectangle.
http://www.buy-stephen-mackey.co.uk/...ml_oddbits.jpg
The page is 'orders.php'
-
Re: WorldPay Module for ZenCartv1.3x
I have recently installed the worldpay module, and just had my first order.
the only problem is that it did not show up in the New orders section under the
admin home! it doesn’t appear in the reports either! can some one please help.
As well should the order show go through in test mode? i get an email saying the
card went through but its just a test, but zen-cart says Order Cancelled! and the order doesn’t
go through.
Thanks
-
Re: WorldPay Module for ZenCartv1.3x
Me again sorry no matter what i do i keep getting the same error in ZEN-CART
... your payment has been cancelled!
Response from WorldPay:
This is a TEST TRANSACTION. No money has changed hands
Your payment has been cancelled. Please contact us for alternative methods of payment. If you have experienced any problems with your payment please contact WorldPay immediately.
Our ref:
You will find WorldPay contact information here
Please Help!
-
Re: WorldPay Module for ZenCartv1.3x
It sounds like your settings are wrong in admin, you need to set your transaction mode to 0.
In admin > Modules > Payments > Credit Card via WorldPay
It sounds like you are currently running in test mode, click edit and set your transaction mode to 0 it is probably currently set at 100
-
Re: WorldPay Module for ZenCartv1.3x
I have tryed my shop in both test mode and live mode. it does the same thing.
i have narrowed the problem down though.
when i hit the make payment button in the world pay pages i get the same
message as i would if i clicked the cancel button. i just don't know how to fix it.
-
Re: WorldPay Module for ZenCartv1.3x
Quote:
when i hit the make payment button in the world pay pages i get the same
message as i would if i clicked the cancel button. i just don't know how to fix it.
There are several reasons why this might happen.
Firstly check your admin settings in:
Modules>Payment>Credit Card via WorldPay
Enable WorldPay Module - should be set to 'True'
Transaction Mode - 100 is test mode where all transactions will be accepted provided all the fields in the WorldPay payment page have valid values. For test purposes choose 'Visa' and use card number 4111111111111111 (that's one 4 and fifteeen 1s), any three digit security code and any valid expiry date (ie any date in the future within the next few years).
Transcation Mode - 101 is test mode where all transactions will fail even if all the information entered is perfectly valid. The information returned to Zencart for a failed transaction is always 'Transaction Cancelled'
Transaction Mode - 0 is 'Live' mode. You should not set to 'Live' until WorldPay have tested and approved your site. In 'Live' mode transactions will fail for all the reasons a transaction might fail - invalid card number, expiry date, security code etc or the bank may refuse the transaction for whatever bank-type reason e.g. insufficient funds. Whatever the reason this is not passed back to Zencart by WorldPay. The message will always be 'Transaction Cancelled'.
Use MD5? - set this appropriately. I have always set this to 'False' as I do not use MD5 encryption.
MD5 Secret Key - only required if MD5? is set to 'True'
Sort Order of Display - set the sort order!
Use Pre-Authorisation? - Should be set to 'False' unless you have a Pre-Authorisation arrangement with WorldPay.
Set Order Status - Best left as 'Default'.
Pre-Auth - Only set if using Pre-Authorisation.
Payment Zone - 'None' means that Payment by Credit Card via Worldpay will be available everywhere. If a Zone is selected then WorldPay will only be available in that Zone.
If all of the above settings are set correctly, you are using 'Live' mode ie Transaction Mode '0' and all of your transactions are being returned 'Cancelled' check that your Credit Card details are valid and that there are sufficient funds available. If you believe that all is well with the card details I'm afraid you will have to speak with WorldPay since it is they who are declining the transaction.
Hope this helps.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
when i am returned to
... your payment has been cancelled!
Response from WorldPay:
This is a TEST TRANSACTION. No money has changed hands
Your payment has been cancelled. Please contact us for alternative methods of payment. If you have experienced any problems with your payment please contact WorldPay immediately.
Our ref:
You will find WorldPay contact information here
and then check my emails the payments have gone through! its just the shop isn't seeing it
try it for your self www.surewin.co.uk/shop
another question is in test mode would the orders still go onto the new order section in admin
-
Re: WorldPay Module for ZenCartv1.3x
Quote:
my concern is...Will this module work with V1.3.0.2?
Quote:
I am using 1.3.02 Cplam999, and it functions very well.
That seems to answer that then!
As to your problem Pauls with the rogue html appearing on the orders page I suspect the answer is to be found in admin/orders.php around line 347. This is not a WorldPay module issue since the module does not include any changes to any of the files in the Admin folder. Have you installed any other mods such as one of the Admin Tools mods - or done some customising of your own that may have affected this file?
Hope this helps,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
i will take a look, but world pay seen to think its a callback issue.
-
Re: WorldPay Module for ZenCartv1.3x
Michaelchild
Quote:
This is a TEST TRANSACTION. No money has changed hands
This indicates that your installation is set in 'Test' mode - Transaction Mode 100 or 101 - probably 101 as with this setting all transactions fail.
No failed transactions will appear as orders whether they are test transactions or live transactions and this is as it should be. If the transaction has failed then the deal is off, no order is created and the goods remain in the customer's cart.
All successful transactions, whether they be in test mode or live mode, will result in an order being created which will appear in Admin. The goods will be cleared from the customer cart.
Set your transaction mode to '100' and enter valid card details as per my previous post and you should see an order being created although the WorldPay response will still include the 'This is a TEST TRANSACTION' message.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
the shop is and has been for 2 days set to 100. and i only updated the shop an hour or so ago! just to see if it helped. is there any way to change the callback scripts?
-
Re: WorldPay Module for ZenCartv1.3x
michaelchild,
I have had this module up and running on a busy live shop for the past 18 months. It works. What happens in ZenCart is entirely dependant upon the response from WorldPay. If WorldPay says 'Success' the order goes through and WorldPay proceed with the transaction. If WorldPay say 'cancelled' the order does not go through and the transaction is cancelled.
Have you made any mods to the downloaded WorldPay Module files?
I've tried to access your website to test but you have it Down for Maintenance.
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Michael, Things to note regarding your worldpay issues
1) If your shop is in maintenance mode the payment modules WILL NOT WORK as expected.
2) You state your shop is set to 100 for the last two days, it needs to be set to 0 as 100 is testing mode.
3) The worldpay module is telling you in no uncertain terms that your shop is in TESTING mode.
Alan, the code at line 347 is identical to the code from an untouched order.php form (v1.3.02), it looks like this ...
Code:
</td>
<td class="main"><?php echo $order->info['payment_method']; ?></td>
</tr>
<?php
However, i will endeavour to compare these two files using BeyondCompare to see what else might be different, in the mean time, any other places I might look for this issue, any other files that could cause this ?
Thanks for your help.
-
Re: WorldPay Module for ZenCartv1.3x
Yes I have installed a admin mod, in fact I installed the 'sales reports' modification, however I took it out again and still had the same problems. Of course though, that modification could have made changes to the order.php so off to see if I can find if that is the case. Due to your information that this module does not affect the files in Admin, this is not the place for my postings any longer, thank you for the clarification, now I will try to find a solution elsewhere.
Thanks for a great WorldPay contrib Alan, works flawlessly.
Quote:
Originally Posted by duncanad
Have you installed any other mods such as one of the Admin Tools mods - or done some customising of your own that may have affected this file?
Hope this helps,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
i have installed a new shop installed to try all posabilitys it is www.surewin.co.uk/onlineshop
i get the same feed back no matter what. order canceled.
-
Re: WorldPay Module for ZenCartv1.3x
as i said befor i have installed a new shop and i keep getting the same problem. so i need some sort of server setting changing, does it have anything to do will ssl?
-
Re: WorldPay Module for ZenCartv1.3x
Alan, there is a slight bug with the new information added. Notably, if you go through the order process and then opt to cancel at the last stage, the information that comes back could be a bit misleading to the customer, it simply shows the 'Test' page info. Like this.
Quote:
... your payment has been cancelled!
Response from WorldPay:
This is a TEST TRANSACTION. No money has changed hands
Your payment has been cancelled. Please contact us for alternative methods of payment. If you have experienced any problems with your payment please contact WorldPay immediately.
Specifically the line that is out of context here is
This is a TEST TRANSACTION. No money has changed hands
Not really a problem, just that i had noticed it.
-
Re: WorldPay Module for ZenCartv1.3x
Hi folks,
I'm just back from holiday and decided to install the updated WP payment module that I had asked Duncan about a month back.
I followed all the instructions as best I could on the WP admin site, uploading the module via FTP, setting up the ZC admin module payment pages then tried to go through and do a test run but when I click the last PROCEED type button it goes to WP and I get:
---
Secure Payment Page
Sorry, there was an error in processing this transaction:
The information sent from the merchant's site is invalid or incomplete. Please send the following information to the merchant:
The transaction cannot be processed due to one or more of the following:
the merchant account is suspended
the currency you selected is not supported
the authorisation mode is incorrect
test mode is unavailable
the installation is not live
Server information 09/Jul/2006 16:03:03 Server ID mggwcc8a (WPReq-2102514)
---
I'm a bit annoyed that for a big outfit like WP they say "due to ONE or MORE of the following" then list of a load of things, surely they bloody know which one or ones it is!
I am helping a friend install this and its the first time Ive used ZC or indeed any Ecommerce package so Im at a loss as to what to do myself. The WP account is brand new, I have gone in and copied and pasted the bits required for the payment module call back etc but I dont know if its suspended, live or otherwise.
Can anyone give me any advice, this is a brand new WP account so Im not sure the steps needed to get it to play ball.
Many thanks,
Rikki
-
Please Help!
Please help I am still in the dark about what is happening to my site in regards to the callback response from Worldpay. Let me start at the beginning, I have installed the latest version of Zen-Cart, and the latest WP Module. I have followed the instructions exactly i.e. installed all the bits where they need to be and set the callback to http://<wpdisplay item=MC_callback>, along with callback enabled and callback response both been ticked.
The first point is my shop is still in test mode and needs to be until the shop is working this isn’t a problem! The problem is When I go through to a payment page and enter the test details (or actual details) and press the make payment my shop records I cancellation, not a payment accepted!
E.g.
... your payment has been cancelled!
Response from Worldpay:
This is a TEST TRANSACTION. No money has changed hands
Your payment has been cancelled. Please contact us for alternative methods of payment. If you have experienced any problems with your payment please contact Worldpay immediately.
Our ref:
To try and narrow the problem down I opened the tpl_wpcallback_default.php
shop/includes/templates/template_default/templates/tpl_wpcallback_default.php
and changed the transStatus from
if($transStatus == "Y")
to
if($transStatus == "")
and then ran another test payment.
This worked I a way, the payment was accepted, and an order in zen-card was created!
e.g.
Thank You! We Appreciate your Business!
Response from WorldPay:
This is a TEST TRANSACTION. No money has changed hands
Please check your contact details. If there are any errors please contact us immediately.
Tel:
Email:
Your payment details are detailed below. If you have experienced any problems with your payment please contact WorldPay immediately.
has been debited from your card.
Our ref:
Your WorldPay Transaction ID is
You will find WorldPay contact information here
Your Order Number is: 10
What this has shown me is that not only is the transStatus not been received or sent, but neither is the amount, the transaction ID, Our ref, or the Worldpay banner that should appear. I have put the transStatus back to if($transStatus == "Y") now, and my shop is still in test mode
Does anyone have any idea why my shop isn’t seeing the Worldpay response?
is it sending it to a different place than where the shop is looking?
If any one needs any settings I’m using or anything please ask!
My shop URL is http://www.surewin.co.uk/shop
P.S. I have also tried installing a new shop with out any modifications and I still get the same problem! And my shop is NOT in maintenance mode!
-
Re: WorldPay Module for ZenCartv1.3x
I have just received the correct amount from the worldpay test. Yes it reports back at the shop that no money has exchanged, because it hasn't.
The module appears to work fine from the customers perspective here is the email
Code:
Transaction Confirmation
Please retain for your records
This is a test transaction -
no real money is involved.
Thank you
Your transaction has been processed on behalf of Doncaster Racing Publications Limited.
Transaction details:
Transaction for the value of: GBP 51.50
Description: Purchase from Surewin Online Shop
From: Doncaster Racing Publications Limited t/as Surewin
Merchant's cart ID: 0m0hajetufclev1o62l5uuseq5
Authorisation Date/Time: 10/Jul/2006 11:49:08
Transaction ID: 183071175
This is not a tax receipt.
If you have a query about your order
This confirmation only indicates that your transaction has been processed successfully. It does not indicate that your order has been accepted. It is the responsibility of Doncaster Racing Publications Limited to confirm that your order has been accepted, and to deliver any goods or services you have ordered.
If you have any questions about your order (including refunds, delivery status, wanting to cancel your order), please email Doncaster Racing Publications Limited at: [email protected], with the transaction details listed above.
Thank you for shopping with Doncaster Racing Publications Limited
Your transaction has been processed by WorldPay on behalf of Doncaster Racing Publications Limited.
-
Re: WorldPay Module for ZenCartv1.3x
Quote:
Originally Posted by Pauls
I have just received the correct amount from the worldpay test. Yes it reports back at the shop that no money has exchanged, because it hasn't.
The module appears to work fine from the customers perspective here is the email
[CODE]Transaction Confirmation
Please retain for your records
This is a test transaction -
no real money is involved.
Thank you
Your transaction has been processed on behalf of Doncaster Racing Publications Limited.
I know that no money is involved and that worldpay are sending emails out fine. the trouble is that my shop doesn't know that anything has gone through! even in test mode the transaction should show up successfull, and create an order in zen-cart! my shop is just reporting a cancellation everytime!
if i turn the shop to live it does the same! I've already had one customer make an order when it was in live mode, they got the cancellation message, the products did not leave there shopping cart and zen didn't report an order. The customer thinking the transaction didn't go through did it again, i had to refund it and ask him what he orded because i had no record of it, because like i said the shop thinks that you have cancelled the order, despite worldpay actually taking the money
the cancellation screen you get when it called cack into the shop from world pay should only happen if you click cancell order in the worldpay payment screen!
-
Re: WorldPay Module for ZenCartv1.3x
I had a similar issue to this using PayPals IPN, there can be many factors as I found out, the thread grew into a life of its own with peoples various issues. Your issue sounds similar and my particular solution was to re-upload the IPN_Main_handler.php file, (it was corrupted) but I think only PayPal uses this file.
It is very difficult to diagnose what is wrong so I will simply post shots of my settings within ZC and within the worldpay module, so you can verify that yours are the same as mine perhaps. If they are then, I will not be of much use to you, as always when something works, you tend to leave it alone, and my worldpay has fortunatley for me worked. Perhaps somoeone else can help you and i am sure you will find a solution. Here are my settings.
ZC settings
http://www.buy-stephen-mackey.co.uk/...rldpay_zc1.jpg
WP settings
http://www.buy-stephen-mackey.co.uk/...rldpay_zc2.jpg
Hope they help.
-
Re: WorldPay Module for ZenCartv1.3x
The modules works fine for me, it is great!:thumbsup:
by the way, I have a suggestion.
The tansaction ID is not record in the admin page,
sometimes I get confuse.. I don't know which order# related to which transaction#..
If in can record order# and transaction ID like PayPal IPN does,
It is perfect!
:P
Anyway, thank you !
-
Re: WorldPay Module for ZenCartv1.3x
Does The worldpay moduel need ssl installing on the server i'm using?
And does any one know if its possible that the callback responce is been sent
some where different to where the shop is trying to pick it up?
-
Re: WorldPay Module for ZenCartv1.3x
I have fixed the problem by changing the shop/includes/templates/template_default/templates/tpl_wpcallback_default.php from
if(isset($HTTP_POST_VARS['transId'])) {$transId = $HTTP_POST_VARS[transId];}
if(isset($HTTP_POST_VARS['transStatus'])) {$transStatus = $HTTP_POST_VARS[transStatus];}
if(isset($HTTP_POST_VARS['cartId'])) {$cartId = $HTTP_POST_VARS[cartId];}
if(isset($HTTP_POST_VARS['name'])) {$name = $HTTP_POST_VARS[name];}
if(isset($HTTP_POST_VARS['address'])) {$address = $HTTP_POST_VARS[address];}
if(isset($HTTP_POST_VARS['postcode'])) {$postcode = $HTTP_POST_VARS[postcode];}
if(isset($HTTP_POST_VARS['country'])) {$country = $HTTP_POST_VARS[country];}
if(isset($HTTP_POST_VARS['tel'])) {$tel = $HTTP_POST_VARS[tel];}
if(isset($HTTP_POST_VARS['email'])) {$email = $HTTP_POST_VARS[email];}
if(isset($HTTP_POST_VARS['authAmountString'])) {$authAmountString = $HTTP_POST_VARS[authAmountString];}
if(isset($HTTP_POST_VARS['cardType'])) {$cardType = $HTTP_POST_VARS[cardType];}
if(isset($HTTP_POST_VARS['testMode'])) {$testMode = $HTTP_POST_VARS[testMode];}
// if(isset($HTTP_POST_VARS['transTime'])) {$transTime = $HTTP_POST_VARS[transTime];}
to
if(isset($_POST['transId'])) {$transId = $_POST[transId];}
if(isset($_POST['transStatus'])) {$transStatus = $_POST[transStatus];}
if(isset($_POST['cartId'])) {$cartId = $_POST[cartId];}
if(isset($_POST['name'])) {$name = $_POST[name];}
if(isset($_POST['address'])) {$address = $_POST[address];}
if(isset($_POST['postcode'])) {$postcode = $_POST[postcode];}
if(isset($_POST['country'])) {$country = $_POST[country];}
if(isset($_POST['tel'])) {$tel = $_POST[tel];}
if(isset($_POST['email'])) {$email = $_POST[email];}
if(isset($_POST['authAmountString'])) {$authAmountString = $_POST[authAmountString];}
if(isset($_POST['cardType'])) {$cardType = $_POST[cardType];}
if(isset($_POST['testMode'])) {$testMode = $_POST[testMode];}
// if(isset($_POST['transTime'])) {$transTime = $_POST[transTime];}
It works now! if any one knows of a problem which this change of code can course please tell me, but after testing it a number of times is seems to be fine.
-
WorldPay Module - Currency selection
I received this request from a client today...
Quote:
I had to switch off currencies because the order is passed on to Worldpay in the currency selected, and Worldpay is set up to deal only with GBP. Can we make it so that the currency displayed is whatever the user chooses, but the currency actually passed on to Worldpay is GBP?
Is it possible?
-
Re: WorldPay Module for ZenCartv1.3x
Hi everybody!
Just back from a last minute break in sunny Spain hence my absence from this thread. My has this thread been busy! I'll try to get round to responding as best I can to the unresolved issues over the next few days.
I'll answer Ryk first because its easy.
WorldPay will only accept transacions in currencies that your account is set up to accept. When your account is originally set up by WorldPay this will be in the currency that you have nominated - in your case Sterling. If you require to make transactions in any other currency you will need to ask WorldPay to set these currencies up for you in your account. There is a set up fee charged for each additional currency you request. I think this is around £50 per currency but best check this with WorldPay.
You need to be sure that offering a particular currency will generate sufficient extra business to justify the initial outlay. Another thing to bear in mind is that if you allow transactions in, for example, US dollars the proceeds of any sale in Dollars will be deposited into your account in your home bank accounts currency ie Sterling. You, the merchant, pay the currency conversion fees from US Dollars to Sterling. If you only offer transactions in Sterling then the customer's credit card issuer charges the customer the currency conversion fees when charging the Sterling transaction to his account in Dollars.
Tricky one to evaluate.
Hope this helps,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Glad to see your back Alan, hope the holiday was good.
Some issues I have found with worldpay in this thread, care to comment?
http://www.zen-cart.com/forum/showthread.php?t=40298
ta
-
Re: WorldPay Module for ZenCartv1.3x
Ryk,
Actually I've just re-read your post and realised that I have missed the point a bit. What your customer is asking is that prices be DISPLAYED in the store in the currency of the customer's choice but that all transactions take place in Sterling, ie the payment module sends the transaction details to WorldPay in Sterling.
I suppose this should be possible but would need to be thought out in detail before implementing. The danger is that the customer may think they are being deceived in that the actual costs charged to his/her card will not be as stated on the payment pages.
There are two possible ways round this:
1. A prominent statement somewhere in the payment pages to the effect that his/her card will be charged in sterling at the appropriate exchange rate and not in the currency displayed. Other currency prices will therefore be approximate only since the merchant has no control over exchange rates at the time the transaction is charged to the customer's card.
2. Amend the final payment page to show both the current (approximate) customer's currency price AND the Sterling value that will be charged to the card.
Not sure that the confusion that might ensue would be worth the effort - but maybe others feel differently. Personally I feel that it is more transparent if the transaction takes place in the currency displayed. I'm not sure if WorldPay would take a view on this.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Paul,
It was great thanks, but ... touched down at Glasgow today at 12:40, got home to find 250 emails waiting for me. It's now 20:25 on Glasgow Fair Friday and it feels like I've never been away. Holidays were ever thus!
Had a quick look at your thread but want to catch up on some of the other issues first. Actually I've got a commission to rebuild one of my customer's stores from scratch and I'm thinking of taking a long hard look at the whole WorldPay module. The current module was originally ported over from OS Commerce (oops! am I allowed to mention the 'other' project) by Network Dad and has gone through a few tweaks since then until I seem to have become it's keepr by default. I think it probably needs a new look from the ground up and I'm hoping my new project will provide the impetus for me to do just that. That might be the time for me to look at your issue assuming you have not cracked it by then yourself. My new project is due to run through August which gives an idea of timescales.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Thanks Alan - it was as I expected but as the client himself set up the WorldPay end, I wanted to be sure of my thinking.
-
Re: WorldPay Module for ZenCartv1.3x
Hi folks,
I've got the WP module setup and running fine but it keeps displaying its in test mode for some reason?! The payments are going through but it displays to the user :
"Response from WorldPay:
This is a TEST TRANSACTION. No money has changed hands
Please check your contact details. If there are any errors please contact us immediately.
...
Your payment details are detailed below. If you have experienced any problems with your payment please contact WorldPay immediately.
£6.99 has been debited from your Mastercard card.
Our ref: eb4a8fa466c903b60684a7facaf47610
Your WorldPay Transaction ID is 190323799
You will find WorldPay contact information here
Your Order Number is: 10"
and my bank account shows the payment having gone through :
"16/08/2006 17/08/2006 5970 WRAFTYBITZ INTERNET £6.99 "
Any ideas on this puzzler?
Thanks,
Rikki
-
Re: WorldPay Module for ZenCartv1.3x
Quote:
Originally Posted by Rikki
and my bank account shows the payment having gone through :
Rikki,
Do you mean that you have put through a 'test' transaction in 'live' mode using your own credit card to pay for the purchase and the quote above refers to a debit from your card acount rather than a credit to your account from WorldPay? Credits from WorldPay are paid weekly, four weeks in arrears, so will not have reached your bank account yet.
Have you requested WorldPay to make your WorldPay account live?
To do this you should have forwarded to WorldPay a completed Activation Request Form. WorldPay will then revue the site and if everything is OK they will activate the site at which point you should set the transaction mode in Admin>Modules Payment>Credit Card via WorldPay to '0' and then make a small value purchase using your own valid card. If everything is working properly the transaction should go through successfully and there should be no 'Test Transaction' message on the callback response page. You can then refund your card via the WorldPay Control Panel and if you ask WorldPay nicely they will refund your WorldPay account the transaction fees for this 'test' transaction.
I don't know what happens if you attempt to put through a 'live' transaction before WorldPay has activated the account - I've never tried. If this is what you have done perhaps you have just found out.
I'm just guessing here so could you detail exactly the status of the account and what your Admin settings are.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Michael,
Glad to hear you finally got to the bottom of your problem - and sorry that you had to do this largely by yourself.
Which version of PHP is installed on your server?
I've eventually got round to doing some research as to why you had to change the code in includes/templates/template_default/templates/tpl_wpcallback_default.php as you indicated eg:
Code:
if(isset($HTTP_POST_VARS['transId'])) {$transId = $HTTP_POST_VARS[transId];}
to
Code:
if(isset($_POST['transId'])) {$transId = $_POST[transId];}
etc.
It seems that $_POST was introduced in PHP v4.1 The data contained in this array is global.
$HTTP_POST_VARS contains the same data as $_POST but the data is NOT global.
For versions of PHP before v4.1 $HTTP_POST_VARS needs to be used or the code won't work. This is used in the WorldPay module since it should work for versions of PHP both before and after v4.1.
EXCEPT that $HTTP_POST_VARS is now deprecated and is now turned off by default in newer versions of PHP (v5.1 on).
So for all versions of PHP up to v 5.0 the current code will work. For servers with PHP v5.1 and above it won't work by default.
The solution is to either configure the server so that $HTTP_POST_VARS is turned on or replace the existing code with the new code as per your post.
Does anyone know of a more elegant solution, one which allows the code to work regardless of PHP version? Or should all code now use $_POST with the expectation that everyone should be using PHP 4.1 or greater?
I imagine this will effect other areas of ZenCart.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Duncan,
Sorry for not explaining myself fully. What I meant was that I have set up the system for my friend and it's all setup live at WorldPay and also on the ZenCart module side.
When I mentioned moneys and account I was referring to my own personal bank account that has been debited with the correct amount of money when I make purchases but the screen still displays "this is a test transaction" in the browser.
In essence everything is working perfectly, but it displays "this is a test" to the customer.
I was wondering if anyone had any ideas on fixing this or if I should just butcher the line of text out of the PHP file (which is not the ideal situation LOL).
Many thanks for your help on this.
Kind regards,
Rikki
-
Re: WorldPay Module for ZenCartv1.3x
Rikki,
A number of questions for you - I need answers to them all unfortunately.
When you say you have set it up live at WorldPay:
1: Have you forwarded an Activation Request Form to WorldPay?
2: Have WorldPay tested the installation and given you the go ahead to put through live transactions?
This is very important since you should not send any live transactions (test mode 0 in the module admin) until WorldPay have activated the account.
What is the 'Transaction Mode' set to in the module admin?
In your WorldPay control panel configuration you should have the following settings:
Callback URL: http://<wpdisplay item="MC_callback">
Callback Enabled: box ticked
Use callback response? : box ticked
Attach callback data to failure email? : box ticked
You should certainly not just 'butcher the line of text out'.
in includes/templates/template_default/templates/tpl_wpcallback_default.php st lines 208 and 320 the code is
Code:
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
$testmode is sent by the Zencart script to WorldPay as part of the transaction token. WorldPay simply return this unchanged with their response. $testmode is set to the value of Transaction Mode set in the module admin - ie '0', '100', or '101'.
The logic is if it's not '0' then it must be '100 or '101' so display the 'Test transaction' message.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan,
1. It has been tested and is live, WorldPay have been on to it and conducted their testing/audit/test purchase.
2. Yes
I've grabbed screens of everything you asked for here, see if there is anything you can spot as Ive gone a bit cross eyed looking at it all :D
***removed humongus screenshot***
...
Kind regards,
Rikki
Quote:
Originally Posted by duncanad
Rikki,
A number of questions for you - I need answers to them all unfortunately.
When you say you have set it up live at WorldPay:
1: Have you forwarded an Activation Request Form to WorldPay?
2: Have WorldPay tested the installation and given you the go ahead to put through live transactions?
This is very important since you should not send any live transactions (test mode 0 in the module admin) until WorldPay have activated the account.
What is the 'Transaction Mode' set to in the module admin?
In your WorldPay control panel configuration you should have the following settings:
Callback URL: http://<wpdisplay item="MC_callback">
Callback Enabled: box ticked
Use callback response? : box ticked
Attach callback data to failure email? : box ticked
You should certainly not just 'butcher the line of text out'.
in includes/templates/template_default/templates/tpl_wpcallback_default.php st lines 208 and 320 the code is
Code:
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
$testmode is sent by the Zencart script to WorldPay as part of the transaction token. WorldPay simply return this unchanged with their response. $testmode is set to the value of Transaction Mode set in the module admin - ie '0', '100', or '101'.
The logic is if it's not '0' then it must be '100 or '101' so display the 'Test transaction' message.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
***removed humongus screenshot***
...
-
Re: WorldPay Module for ZenCartv1.3x
and the last one :
***removed humongus screenshot***
Shows the money is indeed being transfered out of the customers credit / debit card account as noted above. That is for a previous purchase I made a few days ago as the one shown in the previous screen grabs obviously hasnt gone through the process of appearing on my statement just yet.
Any ideas on this puzzler :S
Kind regards,
Rikki
-
Re: WorldPay Module for ZenCartv1.3x
Rikki,
Thanks for the comprehensive reply. It makes things so much easier to eliminate what is NOT causing the problem when you have all the information.
You have the 'Transaction Mode' set to '0' so that is OK.
Your WorldPay screenshots show that the purchase token received by WorldPay has $testMode = 0 otherwise each of the WorldPay screens would have
'TEST MODE - this is not a live transaction'
in red at the top.
That's OK too.
So there must be something wrong with the WorldPay response or the way your installation is handling the WorldPay response. This points to the file:
includes/templates/template_default/templates/tpl_wpcallback_default.php
or the version of this file you have in your custom template file e.g.
includes/templates/your_custom_template/templates/tpl_wpcallback_default.php
Have you customised this file in any way?
Check the code at line 206. It should look like this:
Code:
<?php
//echo '<WPDISPLAY ITEM=banner>';
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
echo WP_CONTACT_HEADING . "<br /><br />";
echo $name . "<br/>";
echo $address . "<br />";
echo $postcode . "<br />";
echo $country . "<br />";
echo "Tel: " . $tel . "<br />";
echo "Email: " . $email . "<br /><br />";
echo WP_PAYMENT_HEADING . "<br /><br />";
echo $authAmountString . " has been debited from your " . $cardType . " card.<br />";
echo "Our ref: " . $cartId . "<br />";
echo "Your WorldPay Transaction ID is " . $transId . "<br />";
?>
This is the code which displays the information for a successful transaction. As I said in my previous post it's the following line which determines whether the 'Test transaction' message is displayed.
Code:
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
Also at line 319
Code:
<?php
//echo '<WPDISPLAY ITEM=banner>';
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
echo WP_CANCELLED_HEADING . "<br /><br />";
echo "Our ref: " . $cartId . "<br />";
?>
This is the code for the information displayed when a transaction fails or is cancelled.
Check that this two pieces of code have not been changed in any way.
You could also add an additional line of code to test the value of $testMode being returned by WorldPay as follows:
Code:
echo '$testMode = ' . $testMode . "<br /><br />";
This should be positioned so that the above two pieces of code now look like this:
Code:
<?php
//echo '<WPDISPLAY ITEM=banner>';
echo '$testMode = ' . $testMode . "<br /><br />";
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
echo WP_CONTACT_HEADING . "<br /><br />";
echo $name . "<br/>";
echo $address . "<br />";
echo $postcode . "<br />";
echo $country . "<br />";
echo "Tel: " . $tel . "<br />";
echo "Email: " . $email . "<br /><br />";
echo WP_PAYMENT_HEADING . "<br /><br />";
echo $authAmountString . " has been debited from your " . $cardType . " card.<br />";
echo "Our ref: " . $cartId . "<br />";
echo "Your WorldPay Transaction ID is " . $transId . "<br />";
?>
<br />
<?php
and
Code:
<?php
//echo '<WPDISPLAY ITEM=banner>';
echo '$testMode = ' . $testMode . "<br /><br />";
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
echo WP_CANCELLED_HEADING . "<br /><br />";
echo "Our ref: " . $cartId . "<br />";
?>
For a successful transaction you should see this on the callback page:
Quote:
Response from WorldPay:
$testMode = x
This is a TEST TRANSACTION. No money has changed hands
Please check your contact details. If there are any errors please contact us immediately.
Fred Flintstone
Bedrock
6000BC
USA
Tel: 1234 567 8910
Email: fred AT theflintstones DOT com
Your payment details are detailed below. If you have experienced any problems with your payment please contact WorldPay immediately.
£41.24 has been debited from your Visa card.
Our ref: 12ee209e338e85761a568e2da2dcff39
Your WorldPay Transaction ID is 190601916
You will find WorldPay contact information here
and for a failed or cancelled transaction you should see this on the callback page
Quote:
Response from WorldPay:
$testMode = x
This is a TEST TRANSACTION. No money has changed hands
Your payment has been cancelled. Please contact us for alternative methods of payment. If you have experienced any problems with your payment please contact WorldPay immediately.
Our ref: 12ee209e338e85761a568e2da2dcff39
You will find WorldPay contact information here
If x= 0 then all is well with the WorldPay callback response and the problem lies in your installation. If x = anything other than '0' then there is something wrong with the WorldPay response.
To test this put through a test purchase but click on 'Cancel' once you reach the WorldPay payment pages. Testing using a cancelled transaction will save further transaction charges and debits on your credit card.
Let me know how you get on.
Alan
-
1 Attachment(s)
Re: WorldPay Module for ZenCartv1.3x
Hi all,
A further question about the latest WordlPay module. We need a Worldpay account to support multiple websites and therefore it would be ideal if each Zen site could send a unqiue Order_Id style e.g. ABC123, DEF123. Currently we are using different Order ranges
Site 1 - 10000+
Site 2 - 30000+
Site 3 - 50000+
One problem we have is that although each Zen cart store can use a different Order number range, the ID that Worldpay seems to receive/display is not applicable.
See attachment jpg.
The result was as follows:
Zen Cart Order Number = 10000
WorldPage Ref = 32ea519b65894d887094
WoldPay Transaction ID = 190893444
Question - Is it possible to send a ref to Worldpay so we can change their reference to either “10000” or "ABC-10000" or even "ABC-190893444"
Any help would be most appreciated
Regards
Jamie
-
Re: WorldPay Module for ZenCartv1.3x
Update - Just spoken with WorldPay and they said that they only return back the number or charcters that they are sent.
If that's true, then this means we are sending them "190893444" -hummm, I can't believe that....
Any help would be appreciated.
-
Re: WorldPay Module for ZenCartv1.3x
Jamie,
The way the WorldPay interface works is as follows:
When a customer clicks the final 'Confirm' button in the checkout process a 'Purchase Token' is sent to WorldPay. This contains data such as the customers name and address, the value of the purchase etc. Most of this data is returned to the callback URL via the WorldPay response.
I addition to the standard data you can include any data you want and, provided you use the correct naming conventions, WorldPay will use this data either in your WorldPay customised customer pages or return it unchanged in their response (or both).
Unfortunately you cannot send your order number in the purchase token since the order is not created until a 'Success' response is received from WorldPay. If we were to create the order before sending the purchase token to WorldPay and the customer cancelled the order on the WorldPay screens or their card was rejected we would have an order to fulfill but no payment will have been processed.
I'm afraid you are stuck with WorldPay's Transaction ID as this is their unique identifier for the transaction.
The ZenCart Order Number appears on the callback 'Success' page. This is the earliest time that it can appear since it is newly created as part of the callback process. If you have set a range for each of your installations then each installation should have a unique set of Order Numbers. The Order Number is not provided in the WorldPay callback response it is created by Zencart as a result of a 'Success' response from WorldPay.
I'm not sure what it is you want to use these references for. I do know that it can be difficult to cross reference ZenCart orders with transactions detailed in the WorldPay Statement. The WorldPay statement details the WorldPay Transaction ID and The ZenCart Cart ID. Although both these references appear on the callback page and in the Worldpay email they are not stored in the Orders table within the database. I think what you may really be after is for the WordPay Transaction ID to be stored in the Orders table and displayed in the Orders screens within the ZenCart admin. I know others have asked for this and I have in mind to do this when I revisit the module this month.
If you want the Transction ID to be in the format "ABC-190893444" you will need to amend the following file:
includes/templates/template_default/templates/tpl_wpcallback_default.php
Change line 31 from:
Code:
if(isset($HTTP_POST_VARS['transId'])) {$transId = $HTTP_POST_VARS[transId];}
to:
Code:
if(isset($HTTP_POST_VARS['transId'])) {$transId = 'ABC-' . $HTTP_POST_VARS[transId];}
This will display the transaction ID as "ABC-190893444" on the callback page but will not store this value anywhere and the WorldPay Statement will still show the Transaction ID as "190893444" so I don't know if this will have achieved much.
You can find out more about how the WorldPay Select Junior integration works on the support section of the WorldPay website at www.worldpay.co.uk
I hope this helps.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Jamie,
Our posts have just crossed.
You are quite right the transaction ID is created by WorldPay not by Zencart. WorldPay are nearly correct in that most of the data sent in the WorldPay response is a return of the data sent in the purchase token.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Thanks for your help Alan.
The difficulty is that from within the WorldPay Admin area there seems to be no reference to which store made the sale and then when we view a sale in Zen-Admin we get to only see our Zen Order Number.
We'll keep thinking...... ;)
Thanks once again
-
Re: WorldPay Module for ZenCartv1.3x
Jamie,
I'm sorry but I'm a bit confused.
What I understood from your previous posts was that you have three stores ie three separate ZenCart installations all accessing the one WorldPay account for payment processing. No problem with that. A purchase transaction originated from Store 1 will be passed back to Store 1 by WorldPay. A purchase transaction originated at Store 2 will be passed back to Store 2 and Store 3 to Store 3. Each store admin will only display data for orders originated in that store. I can see why you would want identifiable order numbers so that you know which installation to go to check details, but within each store admin there is no dubiety as to where any orders listed originated.
Now I get a sense that what you have is three stores all residing within a single Zencart installation - or perhaps sharing a single database which is a totally different ballgame.
Could you please explain the exact configuration of your three stores.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan,
Sometimes it's good to talk ;) - having re-read our posting I may of confused you.
You are correct the 1st time, we have 3 different stores which all use the same WorldPay account.
If we log into Worldpay we have difficulty seeing which store made the purchase as we are just shown a list of "Mechant Reference = SESSION_ID" sales.
We therefore, ideally, would like to pass over a Reference to help use identify a) the store and b) the sale.
Ideally this would be
ABC+Order ID
so we can then relate the Zen-Cart Admin Sale with the WorldPay list of sales.
Hope that is a little clearer ;-) Thanks for all your help so far..
Thanks
Jamie
-
Re: WorldPay Module for ZenCartv1.3x
Jamie,
I think I have found a simple solution to at least the WorldPay end of the problem.
Log in to your WorldPay account.
Click on 'Get Statement'.
Scroll down until you see 'Statement Configuration'
Click on 'Design Your Statement'
Click on 'New'.
At the top in the 'Column Configuration Name' field enter a name for your statement e.g. 'Custom Statement'
Choose which fields you wish to appear in your statement by choosing a column number from the dropdown lists adjacent to each field. Make sure you assign a column number to the 'Description' field. The column numbers determine the order in which the data is displayed.
Save your configuration by clicking 'Save Configuration' at the bottom.
Go to the bottom of the page again and click 'Back to Statement Request'.
In the 'Statement Request' page select 'Custom Statement' from the 'Column Configuration' drop down list.
Now click 'View Statement'.
You will now see all of the fields you have chosen to include in your custom statement. The description field will contain 'Purchase from "Your Store Name"' where "Your Store Name" will be the name of the initiating store as set up in your store admin - Configuration>My Store>Store Name.
This solves the problem of identifying which transactions have been initiated by which store in your WorldPay statement. It does not solve the problem of which transaction corresponds to which ZenCart Order number. For this it will be necessary to change things such that the WorldPay Transaction ID is stored in the ZenCart database and displayed within the 'Orders' screens in ZenCart Admin. A task for a future version of the WorldPay module. perhaps.
Hope this helps.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan,
Im back, sorry about the delay:
***removed humongus screenshot***
Looking at the PHP code comparing for NOT 0 running is confusing me! Is it maybe because the 0 has no quotes around it and is a string and not an integer?
I doubt it as it would have flagged on loads of other systems before now.
Kind regards,
Rikki
-
Re: WorldPay Module for ZenCartv1.3x
Rikki,
What you have just proved by adding my little snippet of code is that WorldPay are returning the correct value for 'Test Mode' for a live site ie '0'. So the problem is NOT at the WorldPay end.
I suspect you must have made an unintentional change to the code in
includes/templates/template_default/templates/tpl_wpcallback_default.php
line 208 should look exactly like this:
Code:
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
The syntax is as follows:
If the condition defined within the normal brackets is met then do whatever action is defined within the curly brackets.
The condition here is ($testMade !== 0) which basically means $testMode is NOT equal to '0'.
The action if this condition is met is to display the WP_TEST_HEADING text as defined in the language file.
You have just proved that $testMode does equal '0'. This is the only value that should result in the WP_TEST_HEADING text NOT being displayed so there must be something wrong with the syntax of this line of code. Check it very carefully. It should be exactly as shown above.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Here is the file, I had not altered it until you showed me how to display the text above.
http://www.kraftybitz.co.uk/tpl_wpca...efault.php.txt
I've copied it and renamed the copy .txt so you can see it.
Many thanks,
Rikki
-
Re: WorldPay Module for ZenCartv1.3x
Rikki,
I'm really quite baffled by this one. Your template file is identical to mine and I don't get your problem.
The only other thing I can think of is that there is something a bit awry with your language file.
Could you let me have a look at your includes/languages/english/wpcallback.php file?
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
I thought the same when I viewed the code!
Couldnt be a weird PHP versioning issue with global registers, or string/integer mismatch comparison? eg: ($variable !== "0")
Here is the other file you requested in TXT format.
http://www.kraftybitz.co.uk/wpcallback.php.txt
Many thanks,
Rikki
PS: Ive dropped you a PM.
-
Re: WorldPay Module for ZenCartv1.3x
Rikki,
Doesn't appear to be anything wrong with your language file either - it was a bit of a longshot anyway.
I did a quick search on Google to see if there were any reported bugs for the IF statement in any paticular version of PHP. I didn't find anything but I didn't pursue it too hard.
I am no PHP expert but my understanding is that when you are testing for a numerical value you do not use quotes.
Code:
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
However if you are testing for a string value, ie text, you do use quotes
Code:
if ($testMode !== "zero") {echo WP_TEST_HEADING . "<br /><br />";}
You could try using quotes in case the value 0 is being presented as text rather than as a number although if that were the case I would expect the transaction to fail at WorldPay. (I've just looked this up in the WorldPay integration Guide which states " . . . Set this parameter to "0" or omit it for a live transaction." Perhaps it wouldn't fail then!?)
On re-reading the syntax for IF statements it would appear than the curly brackets surrounding the executable code is not strictly necessary if there is only one line of executable code so you could try:
Code:
if ($testMode !== "zero") echo WP_TEST_HEADING . "<br /><br />";
Make only one change to your code then test it. If it doesn't work change things back and try another change. Otherwise you can make an awful mess of things and you can easily lose track of what caused what.
If either of the above works let me know.
I'll reply to your PM tomorrow.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
After adding quotes around the IF statement:
***removed humongus screenshots***
Ta-da!
I always thought PHP was clever with its variable assignments and could swap between string and numerical no problem at all but when its dealing with variables passed through to other scripts it must interpret everything as a string and therefore the : IF ($testdata !== 0) { ... } statement would be read as being "IF $testdata is NOT false display the test transaction message" as a comparison to 0 is a test for the variable existing/having data inside.
This is just what I reckon is going on with my limited PHP/C knowledge from a few years ago, I stopped doing all that and got more into making things look pretty as its easier to fix when things go ######## up :D
The curious thing is though, why is it only this installation that is affected by this? Surely there must be a lot of other folks with your gateway system installed.
Anyway, I think thats it sorted out (I hope) so thanks for your continued support and help.Drop me a reply tomorrow regarding the PM and I can hopefully put some business your way, its the least I can do.
Many thanks,
Rikki
-
Re: WorldPay Module for ZenCartv1.3x
Rikki,
Firstly, for clarity, the solution to your problem is to change includes/templates/template_default/templates/tpl_wpcallback_default.php at lines 208 and 321 from
Code:
if ($testMode !== 0) {echo WP_TEST_HEADING . "<br /><br />";}
to
Code:
if ($testMode !== "0") {echo WP_TEST_HEADING . "<br /><br />";}
I've been doing some research and some testing to try to get to the bottom of this.
My understanding is that PHP handles variables in context. In lay terms if the context is numerical ie mathematical operands are in use like + - etc then PHP treats the variable as a number. If the contect is textual it treats the variable as a string.
The conclusion I have come to is that it shouldn't matter which way the above code is written. It works both ways for me. You seem to be the only one to have experienced this problem - at least the only one to have reported it. What version of PHP is installed on your server?
I also wanted to understand exactly what is hppening here in terms what 'type' of variable $testMode actually is.
The value of $testMode is stored in the database in the 'configuration' table as the 'configuration-value'. In the database 'configuration_value' is a text field so it follows that the default type for $testMode will be 'string'.
I set up a test to display the type of the variable $testMode
Code:
echo '$testMode type = ' . gettype($testMode) ."<br /><br />";
The result? $testMode is indeed a string.
According to WorldPay $testMode should be sent to them as an integer so I changed the code which sets the value of $testMode in includes/modules/payment/worldpay.php at line 138 from
Code:
zen_draw_hidden_field('testMode', MODULE_PAYMENT_WORLDPAY_TEST_MODE) .
to
Code:
zen_draw_hidden_field('testMode', intval(MODULE_PAYMENT_WORLDPAY_TEST_MODE)) .
This I think should set the type to integer. However the value returned by WorldPay is still of type string.
I then changed line 42 in includes/templates/template_default/templates/tpl_wpcallback_default.php from
Code:
if(isset($HTTP_POST_VARS['testMode'])) {$testMode = $HTTP_POST_VARS[testMode];}
to
Code:
if(isset($HTTP_POST_VARS['testMode'])) {$testMode = intval($HTTP_POST_VARS[testMode]);}
This change resulted in the type being set to integer so this change should make the original code work on your server. However the easiest change is just to add the quotes as you have done. This too should work in all cases - unless anyone else knows differently!
I'll consider this change for the next version which I will be working on soon.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Yeah, this seems to be it sorted now thankfully.
When passing a variable from a script to another script it will be turned into a string no matter what as there is no data format on the web for POST or GET commands, everything is in ASCII and should be sanitized when it arrives at the receiving script.
Its amazing that this should crop up right here and right now as I had just finished listening to a Podcast by PHP inventor Rasmus Lerdorf and he specifically talks about just such things!
http://www.twit.tv/FLOSS
In particular : http://www.podtrac.com/pts/redirect..../FLOSS-012.mp3
At time point 38:35
Have a listen :D
BTW (PHP Version 4.4.2) is whats running on my server here FYI. Still puzzled as to why Im the only one to spot this problem, but happy its sorted out and I've learned something along the way too.
Kind regards,
Rikki
-
Re: WorldPay Module for ZenCartv1.3x
Rikki,
Just had a listen. Very interesting - but I'm not sure I understood it all!
My servers running PHP version 4.3.11.
I suppose if the data arrives as text the correct thing to do is to treat it as text and code accordingly in which case your solution is the better coding practice.
Well as they say "Every day's a school day!"
All the best,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan / Rikki,
Read your conversation with interest. I have exactly the same problem to the letter - as you Rikki.
Firstly, I don't know which solution to test out - Rikki's or Alan's - Rikki's seems less hassle and likelyhood of human error as it's a quick change - but Alan's seems the more correct solution if you're a dab hand at PHP - hhhhmnnnnn
What do you both suggest ....
Also - there's nothing worse than to solve a problem but not understand where it's coming from - ie: why only you and I Rikki? - so I'm with you on that one ...
For my 2pence worth - I'm running PHP as a CGI module which is not the best way for a zen cart installation - I'm wondering are you Rikki and do either of you think this would have any bearing on this particular problem??
For the record - here are my settings ...
Server OS: FreeBSD 4.10-STABLE
Database: MySQL 4.1.19
PHP Version: 4.3.10 (Zend: 1.3.0)
HTTP Server: Apache
Another quick one though not important - V1.3 is compliant but the worldpay image sidebox causes serious havoc with the validator. I'd sort this out myself if I could but I'm not confident enough to tackle someone elses code :o( - - - yet!
On a final note - cheers for your convo guys and to yourself Alan - well what can I say - thanks a bunch!
Quote:
Originally Posted by duncanad
Rikki,
Just had a listen. Very interesting - but I'm not sure I understood it all!
My servers running PHP version 4.3.11.
I suppose if the data arrives as text the correct thing to do is to treat it as text and code accordingly in which case your solution is the better coding practice.
Well as they say "Every day's a school day!"
All the best,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Guys,
Ok - so I put the quotes in as per what Rikki did and all is fine and working properly so thanks!
Now another problem crops up and I don't know whether it's an issue with the worldpay module, or the discount coupons but here's my problem ...
Everything works fine, I'm running the latest worldpay and zencart and all is perfect and fully tested by me before going live.
The first purchase that comes through after the upgrade is completed appears in the new orders but the money hasn't come through to worldpay (my configuration of both WP and zen is perfect)
The customer is trusted and contacts to advise that she received the checkout success page after clicking the final confirm and was at no time transfered to worldpay - and her order is in my database.
I promptly freak out and over the next few hours try to replicate her order. By process of isolation of all possible parameters individually, I worked out it was the discount coupon that was creating the problem. Just to make sure, I tested like this ...
1) Created a discount coupon for 10%
2) Created an account
3) Put some products in the basket and successfully ended up at the Worldpay payment page
4) Cancelled the payment at Worldpay, went back to the site, deleted a couple of products and added some more - once again successfully getting to the payment page
5) Repeated steps 3 and 4 over 60 times - successfully
6) Repeated the process once more but this time I added the discount coupon and when I clicked final confirmation - expecting the WP page - I was held for a couple of seconds and directed to the checkout success page - on checking, my order was in the database but I never went near Worldpay
7) It must be stressed that during my extensive testing, the discount coupon worked successfully with payment page many times - that's what confuses me and that's what makes it so difficult to pinpoint the problem
So This looks like a discount coupon problem. What made me think it might be Worldpay is that Alan mentioned somewhere else on this thread - that the order is not completed and entered until the call back is received from WP - so by that reckoning, could it have bounced off worldpay to get success? I contacted WP who assured me that they did not recieve any contact to my account during the offending 'purchases'
kind regards :o)
Any ideas - I'm sure all my settings are correct - I have checked and double checked and
-
Re: WorldPay Module for ZenCartv1.3x
Tigerbalm,
I'm a great believer in the KISS principle - the simple solutions are always best. I'd go with Rikki's 'just add quotes' solution and the next version of the mod will have this change. I see this is what you have done and it works for you too.
Like you I'm puzzled by why this has been a problem for some but not others. As I said above I believe PHP sets data type according to context. Perhaps in this instance there is not really any numerical context other than not having used quotes ie there are no mathematical operands used so perhaps its pot luck whether PHP handles it correctly or not. If there are any PHP gurus out there perhaps they may be able to shed some light.
Your Discount Coupon problem is a new one on me. Sounds to me as though ZenCart thinks there is sufficient value in the coupon to cover the whole cost of the order, in which case there would be no need to go through the WorldPay process and it would be quite correct to jump straight to the 'Checkout Success' process creating the order and displaying the standard 'Checkout Success' page - not the 'WorldPay Callback' page.
At the risk of being just a bit too obvious are you sure you created a 10% discount coupon and not a £10 discount coupon? A £10 discount coupon would produce the result you are experiencing if the total value of the sale was £10 or less? (Or even a 100% discount coupon!!!)
I don't think this is a WorldPay Module issue since there is nothing in the module code that looks at whether a coupon is being used or not. This is handled by the Orders Total module.
With regards to the 'We accept ...' sidebox I'll ensure that this is standards compliant for the next release. In the meantime have a go yourself. It's only HTML.
includes/templates/template_default/sideboxes/tpl_wp_cc_accept.php
I suspect the main problem is that it is just a row of images with nothing separating each one which is non compliant markup. I did it that way so that the display would be fluid and would adjust itself according to whatever width the sidebox happens to be. Seemed like a good idea at the time!
Keep us posted of any developments with your Discount Coupon problem.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Quote:
Originally Posted by duncanad
Rikki,
Just had a listen. Very interesting - but I'm not sure I understood it all!
My servers running PHP version 4.3.11.
I suppose if the data arrives as text the correct thing to do is to treat it as text and code accordingly in which case your solution is the better coding practice.
Well as they say "Every day's a school day!"
All the best,
Alan
I've got into pod casts lately, TWIT is pretty good and the FLOSS ones can be hit or miss but the best one is Security Now with Steve Gibson. www.grc.com
Not sure I understand it all, if any, but it was ironic that the bloke mentioned something I'd remember when looking at the code in the WP gateway scripts.
Kind regards,
Rikki
-
Re: WorldPay Module for ZenCartv1.3x
I would just like to thank all involved in this thread. I too had exactly the same problem as Rikki and couldn't get rid of the test transaction text. I copied tpl_wpcallback_default.php file to my templates folder and added the quotes as suggested but it didn't resolve the problem. I then used Alan's information, changed the if statement and all is now working fine.
Thanks again to all concerned and I hope that helps someone else.
Kind regards,
Hamish
-
Re: WorldPay Module for ZenCartv1.3x
Hi
I know a few people have requested the order id to be sent to the worldpay gateway so that they can reconcile the orders to the payments.
And I understand that the order id is not raised until zencart gets the callback from worldpay.
Would a compromise be that the customer id be sent to worldpay and returned to zencart. An account is created before going to the final checkout and an id would have been created. Most days a customer will only order once and it would be much easier to match up payments to customers and therefore orders.
I have no idea at implementing this but i thought I would mention it. It may be a stupid idea but I would appreciate comments.
Craig
-
Re: WorldPay Module for ZenCartv1.3x
Hamish,
Now I am confused! It's either numerical or a string. I've proved it is a string when it comes back from WorldPay so 'just add quotes' should work fine in all cases. Anybody got any clue why this simple snippet of code is not producing consistant results?
Craig,
As you rightly say you cannot send the order id to WorldPay since the order is not created until the 'success' response is received back from WorldPay.
One possibility is to store the WorldPay transaction ID in the database and display this in the orders listing in admin. This would give a cross reference within Zencart but not in the WorldPay control panel. The WorldPay control panel does store the session ID but this doesn't help.
I have thought of sending the cart ID rather than the session ID to WorldPay but I need to look into the implications of this in more detail. This would help in two ways.
1. If this were stored with the order data and displayed on the orders listing within Admin then we would have a common reference in both ZenCart Admin and the WorldPay control panel.
2. On the rare occasion when the transaction is successful at WorldPay but the callback fails the merchant can retrieve the order information from the cart ID.
NB The circumstance under which a credit card transaction is successful but the callback fails would be if the merchant host server went down while the WorldPay transaction was taking place. The callback would fail because the host server would be unavailable at the time of the callback. This has happened once in over 1500 orders to a customer of mine.
Your premise that the customer ID could be used on the basis that a customer is unlikely to make two orders on the same day is flawed. Although not common it is not unknown, which brings us inevitably to good old Murphy's Law - If it can go wrong - it will!
http://www.murphys-laws.com/
Any further thoughts on this subject would be appreciated.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Thanks for the quick reply Alan.
Might have guessed my idea was a non-starter, although for my use would probably be OK.
However, I did not realise the card ID was held by ZenCart at all. Sounds as if it would be good.
Look forward to more peoples thoughts on it.
Craig
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan,
I wish I knew and could help. I have come to the assumption that none of this is to be clear to me!!
I wanted to ask whether anyone had had an issue with the callback page showing secure and non secure items? I had your module on a 1.2.7 store and it worked great. I have now installed it on my new 1.3.6 version and when I make a payment, an error message pops up saying the page has both secure and non secure items on it.
When I click No to accept the secure items, the design of the page disappears and all I get is a text layout without the styling.
Any help would be greatly appreciated.
Many thanks.
Hamish
-
Re: WorldPay Module for ZenCartv1.3x
Hamish,
The 'Non secure items on the page' message is generated by your browser and simply means that within a page which is accessed securely by HTTPS (ie the URL starts https://...) some items are linked to non-securely by HTTP (ie the URL starts http://...) Usually the non secure links are to images and therefore there is no security issue with clicking 'Yes' in response to the message. However it would be better all round, not least for your customers' peace of mind, if this message was not displayed.
To find out where the non secure links are make a test transaction and when the message appears click 'Yes'. Now view the source of the resultant page. In Internet Explorer you click on 'View' on the menu bar and then on 'Source'. This opens the page code in 'Notepad'. Now search the source code for the string 'http://'. In notepad click 'Edit' on the menu bar and then 'Find Next'. Make a note of which links are non-secure and edit the appropriate Zencart file to correct this.
My guess is that you have placed an image in one of your sideboxes where you have hard coded the link as something like:
Code:
<img src="http://www.mysite.com/myimage.jpg" />
Changing this to
Code:
<img src="https://www.mysite.com/myimage.jpg" />
will solve the problem.
Hope this helps.
Alan
-
Re: WorldPay Module for ZenCartv1.3x
I allways get .. “your payment has been cancelled!”
I don’t know what´s wrong but the callback fails in my shop. I use Zen 1.35 and PHP Version: 5.1.5 .
If I make an order in the shop, and use this modul, all works fine until the callback starts.
The callback takes me back in my Shop with the message:
... your payment has been cancelled!
Response from WorldPay:
This is a TEST TRANSACTION. No money has changed hands
Your payment has been cancelled…
Later I get a message from Worldpay that all works fine with no error. Why I get the wrong message with “Your payment has been cancelled…”?
The Money changed from the customer to me but the shop can´t complete the order of the customer.
Can someone help me ?
-
Re: WorldPay Module for ZenCartv1.3x
Unifex,
Since you are using PHP version 5.1.5 it sounds as if you have encountered the same problem as Michaelchild did some time ago in this thread.
You will find his solution here:
http://www.zen-cart.com/forum/showpo...4&postcount=32
and you will find an explanation as to why this solution is needed here:
http://www.zen-cart.com/forum/showpo...0&postcount=41
There is another possibility that you are encountering a problem which some (but not all) users seem to have come across. This has to do with the way PHP handles the test in the script for the value of $testMode which is returned by WorldPay as part of their response token. The 'just add quotes' solution posted here SHOULD work in all cases.
http://www.zen-cart.com/forum/showpo...6&postcount=63
To risk teaching my granny to suck eggs do one change at a time testing thouroughly each time.
Hope this helps.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hamish,
While replying to Unifex (see above) it occured to me that your problem might have been related to PHP v 5.1 which might explain why the 'Just add quotes' solution didn't work for you. What version of PHP is installed on your server?
I just hate not knowing why something works or doesn't!
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Halleluja,
okay, i don´t believe in god but in fast support of technical problems. Solution one works for me.
Thanks Alan for your help.
Regards,
Unifex
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan,
Sorry for the delay in my reply - I didn't get the email to say someone had added to the thread.
With regards which version of PHP my server is using, I am afraid I don't have good news if you think the problem is with version 5. I have 4.4 installed according to the server info in admin.
Also, thank you for your detailed reply about the images. I have had a quick look and can't spot it but I will look in a little more depth when I get 5 mins.
Many thanks again for your help.
Kind regards,
Hamish
-
Re: WorldPay Module for ZenCartv1.3x
Hamish,
It's not necessarily a link to an image that is the problem - that was just my guess. But at least one of the links from your page should be HTTP for you to get this message so search for the string 'http://'
Have you got an URL to let me have a look?
Bummer about your PHP version!
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan,
Thanks for your prompt reply. My site is at www.styleforhome.co.uk.
Any help would really be appreciated.
Thanks again.
Hamish
-
Re: WorldPay Module for ZenCartv1.3x
Hamish,
I did have a limited look at your site - it's live so I wasn't able to complete a transaction. I did not get the "unsecure items" meassage at an time although I did process a purchase as far as the WorldPay gateway before cancelling.
Searching the source code for 'http://' I found several links, but these are not the problem since they do not bring actual content to the page but are links away from the page. All of your image links seem to be relative so shouldn't be the cause of the problem as I understand it. The only other thing I can think of is links to actual content such as 'require' which may not be secure but to check these you will have to look at the actual files - the content, not the link to the source is shown in the source code.
This is not a Zencart or WorldPay module problem per se. For more info try a search on Google.
Sorry I can't be more specific.
All the best,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Thanks very much for taking a look - it really is appreciated.
I did the same as you and couldn't find the issue either. I only noticed it when I was trying the site on IE7 before going live as I always use Firefox and have the warning turned off. It does actually do it for me even when I cancel a sale as well as place an order and it seems strange it doesn't do it for you - it must hate me!!
I will have a closer look when I get time but I really do appreciate you giving up your time to take a wee look - us Westies need to stick together!!
Many thanks.
Hamish
-
Re: WorldPay Module for ZenCartv1.3x
Hamish,
I had been viewing your site in IE6. I have now had a look in Firefox and IE7. No problem in Firefox but in IE7 I get the same "insecure items on page" message as you. I then had a look in my own sites - same thing.
Quote:
This is not a Zencart or WorldPay module problem per se.
How wrong can I be! No change there then :-o
It is actually a WorldPay Module problem. This is my understanding of what the problem is. The Callback page is not actually displayed from the Zencart host server but from the WorldPay server. WorldPay somehow take the content of the Callback page from the merchant's site and display it from within their own site as witnessed by the URL of the callback page
https://select.worldpay.com/wcc/purchase
As currently configured the link to the Merchant's site is non-secure ie http://www.mysite.com/.... This is what is causing the "insecure items on page" message although why it should only be IE7 that is picking this up I have no idea.
The reason for this goes way back to when the OS Commerce WorldPay Module was originally ported across to ZenCart. OSC at that time were not too hot on security - the main reason I chose Zencart rather than OSC. No one (including me) has picked up on this legacy issue since.
The solution is pretty simple. Just two changes to make as follows:
1. Edit includes/modules/payment/worldpay.php
Find:
Code:
$callback_url = zen_href_link(FILENAME_WPCALLBACK, $zenId);
at around line 128. Change this to:
Code:
$callback_url = zen_href_link(FILENAME_WPCALLBACK, $zenId, 'SSL');
Save the edited file to your server.
2. Login to your WorldPay account
Click 'Configuration Options' for your Select Junior installation.
Find the 'Callback URL' field and change the entry from:
Code:
http://<wpdisplay item="MC_callback">
to:
Code:
https://<wpdisplay item="MC_callback">
Click 'Save Changes'
That's it. Pretty obvious really when you think about it!
Let me know if this works for you.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Alan
Did not realise this problem might apply to me. I will ckeck it out on IE7 at home later.
My question is:
I do not have SSL on my site (at the moment - next thing to do after my upgade to 1.3.6). Will this solution work for me too even though I do no not have https?
Craig
-
Re: WorldPay Module for ZenCartv1.3x
Craig,
You should treat installing SSL on your site as a matter of priority. Although you do not collect credit card details via your website you do collect and store customer personal details and these are being transmitted across the internet insecurely. Ask your host if they have a shared SSL certificate you can use if you don't want to invest in a certificate of your own.
To answer your question I think you will find that you will get the same response from IE7 as Hamish and I have experienced. Making the change to your includes/modules/payment/worldpay.php file will not make any difference since the 'zen_href_link()' will only return an 'HTTPS://' URL if your configuration file has SSL enabled. Making the change now, while you remember, will make ready your WorldPay module for when you have SSL set up on your site. Of course you should only make the change to the 'Callback Url' in your WorldPay account configuration once SSL is enabled on your site.
Hope this helps.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Thanks Alan
I shall make SSL a priority and make the changes you suggest then.
Thanks for your time on this.
Craig
-
Re: WorldPay Module for ZenCartv1.3x
My apologies everyone. There is an omission in my post #85 above. There is one further change required to the includes/modules/payment/worldpay.php file.
At line 129 change this:
Code:
$worldpay_callback = explode('http://', $callback_url);
to this:
Code:
$worldpay_callback = explode('https://', $callback_url);
If you don't include this change the callback will fail.
Sorry about any confusion caused by this. If anyone knows of a way for me to edit my original post to prevent further confusion could they let me know.
Craig (and anyone else who has not got SSL set up yet),
You should NOT make any of these changes until you have SSL set up on your site.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Thanks again Alan.
Thought I would let you know that I've got SSL set up now :)
piece of cake really.
Although I find it strange the admin side is not 'secure' once you have logged in but I understand that will be in a future release.
I shall make the changes you suggest above.
Craig
-
Re: WorldPay Module for ZenCartv1.3x
Another update:
Made the changes you suggest to the WorldPay module and everything works OK. Have not checked whether I get the 'problem' in IE7, shall check that later at home.
Craig
-
Re: WorldPay Module for ZenCartv1.3x
Craig,
I've just put through a (cancelled) order on your site using IE7 and didn't get a "non secure items on page" message so it appears to be working OK. What I did notice is that the Shopping Cart icon at the top left does not act as a link in IE7 but does in IE6 which is strange!
Regarding SSL in Admin you are quite right it doesn't work out of the box as yet. Not all of the pages in admin need to be accessed securely e.g. the catalogue pages do not hold confidential information, however the customer pages do and should be accessed securely. I'm afraid it's a screwdriver job to fix this at present. There may be posts elsewhere on the forums detailing how to do this but here is a flavour of what needs to be done.
Edit admin/includes/boxes/customers_dhtml.php
Change:
Code:
$za_heading = array('text' => BOX_HEADING_CUSTOMERS, 'link' => zen_href_link(FILENAME_ALT_NAV, '', 'NONSSL'));
$za_contents[] = array('text' => BOX_CUSTOMERS_CUSTOMERS, 'link' => zen_href_link(FILENAME_CUSTOMERS, '', 'NONSSL'));
$za_contents[] = array('text' => BOX_CUSTOMERS_ORDERS, 'link' => zen_href_link(FILENAME_ORDERS, '', 'NONSSL'));
$za_contents[] = array('text' => BOX_CUSTOMERS_GROUP_PRICING, 'link' => zen_href_link(FILENAME_GROUP_PRICING, '', 'NONSSL'));
$za_contents[] = array('text' => BOX_CUSTOMERS_PAYPAL, 'link' => zen_href_link(FILENAME_PAYPAL, '', 'NONSSL'));
to:
Code:
$za_heading = array('text' => BOX_HEADING_CUSTOMERS, 'link' => zen_href_link(FILENAME_ALT_NAV, '', 'SSL'));
$za_contents[] = array('text' => BOX_CUSTOMERS_CUSTOMERS, 'link' => zen_href_link(FILENAME_CUSTOMERS, '', 'SSL'));
$za_contents[] = array('text' => BOX_CUSTOMERS_ORDERS, 'link' => zen_href_link(FILENAME_ORDERS, '', 'SSL'));
$za_contents[] = array('text' => BOX_CUSTOMERS_GROUP_PRICING, 'link' => zen_href_link(FILENAME_GROUP_PRICING, '', 'SSL'));
$za_contents[] = array('text' => BOX_CUSTOMERS_PAYPAL, 'link' => zen_href_link(FILENAME_PAYPAL, '', 'SSL'));
This isn't the whole deal. You need to find ALL of the files that link to admin pages that display confidential information and change 'NONSSL' to 'SSL' in the link code to those pages.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan,
I have implemented your solution and everything is working great now. Thanks very much indeed for the time you have given to resolve the issue and my apologies for not getting back sooner.
Kindest regards,
Hamish
-
Re: WorldPay Module for ZenCartv1.3x
Hamish,
Naebother big man.
Alan
-
Re: WorldPay Module for ZenCartv1.3x
Hi Alan
Sorry in the delay replying.
Thanks for all your effort, even checking out my site. Above and beyond the call of duty.
I have noticed the IE7 problem too. Works in FF which I use most of the time and in IE6 which I check at work (Win 2000). I have to check the site at home in IE7. The 'link' is there, just aligned well to the right. I am using an adaption of the 'simple zen' template so I will probably have to post a question in that forum.
Question: Do you alter all those admin links to SSL? If I knew an update was going to address the issue soon I would probably wait. As you suggested I will check the forums if there is a definitive list.
Thanks once again
Craig
-
Re: WorldPay Module for ZenCartv1.3x
Craig,
The short answer is I have changed some but not all. High on my todo list. I have encountered a bit of a bug 'though. I use a shared SSL certificate and things are configured such that I have one set of files but two paths ie
http://www.mywebsite.com
and
https://secure.securedomain.com/www.mywebsite.com
This works absolutely fine except with some of the SSL links in Admin the first time of clicking I get kicked out to the login screen. If I then log back in the problem dissappears! Others have reported similar problems elsewhere but I haven't seen any definitive solution. As far as I can ascertain this only seems to happen where a shared SSL certificate is used. Just recently I have been able to consistently reproduce this behaviour and now have a solution - but I don't know why it works. I'm still on v 1.3.5. When I upgrade to 1.3.6 I'm going to do some more rigorous testing. If I achieve consistant results I'll post the solution somewhere.
According to the Development Roadmap posted here:
http://www.zen-cart.com/forum/showthread.php?t=36912
an overhaul of the Admin is not due until 1.6 which may be some time off.
I've not tried this but a possible way to secure the whole of the admin would be set the non-secure path in the admin configuration to the secure path ie in admin/includes/configure.php:
Code:
// Main webserver: eg, http://localhost - should not be empty for productive servers
define('HTTP_SERVER', 'https://www.mywebsite.com');
// Secure webserver: eg, https://localhost - should not be empty for productive servers
define('HTTPS_SERVER', 'https://www.mywebsite.com'); // eg, https://localhost
This is probably a bit of overkill and I would test this on a test site first to ensure there are no unexpected side effects and/or server performance issues.
Regards,
Alan
-
Re: WorldPay Module for ZenCartv1.3x
It's nice to know I'm not the only one with a to do list!!
Cracked the alignment problem I had with IE7, just upgraded to the latest version of the template :-)
Although I'm no coder/programmer, let me know if you need help testing anything Alan, all your work is appreciated.
Craig
-
Re: WorldPay Module for ZenCartv1.3x
help!! this doesn't work on 1.3.6 - for some reason I still get TEST transaction text page even when its live! Obviously missed the 1.3x but not 1.3.6 part!! new shop - so cannot roll back :)
any ideas on why or how to resolve it!!
-
Re: WorldPay Module for ZenCartv1.3x
Think your answer is earlier on in this thread:
http://www.zen-cart.com/forum/showpo...6&postcount=63
Hopefully just a simple fix.
:-)
Craig
-
Re: WorldPay Module for ZenCartv1.3x
Quote:
Originally Posted by
CES
you angel :):) I thought that I had got as much from this thread that I needed - obviously missed that part!!!
Thank you I will try to remember this in future - oh buy the way
I have older version on exact same server using worldpay module - and I don't get this issue - so I think its for some reason zen cart code? rather than configuration?
thanks
Sarah