It seems when it switch's to https to process the card info it does not carry over the itmes in the card therefor I have no total price. Any thoughts?

Comments

thedreampolice’s picture

Sorry I meant Cart not card so it should read

It seems when it switch's to https to process the card info it does not carry over the items in the cart therefore I have no total price. Any thoughts?

gordon’s picture

Status: Active » Closed (works as designed)

This is how e-commerce works, when you go to the payment page, the transaction is created and the cart is emptied.

thedreampolice’s picture

But it says that before you enter the card #

thedreampolice’s picture

Priority: Normal » Critical

Any other thoughts on this? I am about ready to give up on drupal for commerce.

neclimdul’s picture

Not, yet. I have some ideas I'm trying to test.

jeff veit’s picture

Dreampolice,

You said "It seems when it switch's to https to process the card info it does not carry over the itmes in the card ". Do you mean that this happens when you switch from the Drupal cart to the Authorise.net website? Or something else?

thedreampolice’s picture

well I am using Authorise.net as the processor, but when you click to check out it has to roll the site over to a secure transaction. I have made symbolic links in the https directory to everything i need. The sever is a red hat enterprise (version 2 i think) with a plesx front end.

jeff veit’s picture

So, let me check that I understand properly, and there's a lot of guesswork here because I'm not sure that this is what you meant in your answer:

You wanted the checkout process to be in https, as well as the authorise using an external site.

So you have an installation of Drupal and that can be served through http and https. When someone clicks Checkout you want to switch from http to https, continue with the checkout procedure, and then authorise through and https interaction with Authorise,net. Is that right?

If it is, I'd imagine the problem is a fundamental http design: cookies cannot be shared between sites.

The cart info is stored in the database, but access to the cart information is via the user's session data, and the data is stored in the cookie.

When you switch to https, that's another site, even though it's on the same machine. The session data is not transferred because it's usually in the cookie. I think this is done on the browser, so it's not possible to bypass by changing server settings.

It might be possible to transfer session data via URL - this is what's done in systems that don't have cookies switched on. That would be the first way to solve the problem and the preferred way, if possible.

Otherwise, if I were you and you really need it to work in https before the call to Authorise.net, I'd modify ecommerce to store a file on the server with cart information and use that to load the https cookie. You'll also need a cron job to delete old cookie files or you'll grow data forever. You should also give careful consideration to the way that the two are linked: you absolutely don't want Buyer A to end up with Buyer B's cart. Nor do you want people to be able to guess the cart. So I'd imagine the link used on clicking on checkout should be at least a 128 byte ID.

Hope my guesses about what you are doing are right and that this is a help,

Jeff

thedreampolice’s picture

is there a way to do it with out switching to https? I was just following the direction for the authorize.net module. here is the directions I was folllowing

"6. You may need to create symlinks from you ssl directory to the
drupal files files located in the public_html section. Here is
what I did:

%cd ~/public_ssl/
%ln -s ~/public_html/index.php index.php
%ln -s ~/public_html/includes/ includes
%ln -s ~/public_html/modules/ modules
%ln -s ~/public_html/files/ files
%ln -s ~/public_html/misc/ misc
%ln -s ~/public_html/themes/ themes
%ln -s ~/public_html/.htaccess .htacess
%ln -s ~/public_html/xmlrpc.php xmlrpc.php
%cp ~/public_html/.htaccess .htaccess

7. You should now be able to navigate your Drupal site by going to
either: http://www.example.com or https://www.example.com
"

is there a way that I dont need to do this?

neclimdul’s picture

You could hack the module to not use ssl but you *don't* want this! You do not want the liability of taking credit card numbers from your customer sent over clear text.

The symlink directions are also somewhat misleading. Notice he said you *may* need to do this. You should check with your hosting service on how they provide ssl sites. Mine uses the normal public_html directory so there would be no symlinks involved. A simpler solution would also have been to link the ssl directory like this. Make sure you understand what's going on before you do this though

cd ~
rm public_ssl 
ln -sf public_html public_ssl 

If all else fails make a ticket with your host to help you get the SSL setup the way you need it. They will be better equiped to help you with this part of the setup.

jcastr1’s picture

Component: authorize_net.module » payment

I had this same problem, after digging through the code for a while I resolved it.

payment module did not install properly (mysql tables did not get created.)

so here is what i did to reinstall it and it worked (maybe there is an easier way).

mysql: delete from system where name='payment' limit 1,
be careful with this, if you have a UI maybe use that instead.

then simply go to modules and activate again!

ec_renewals, ec_credit_card will now be in your db as tables and payment should work!