Hi,
Is 2Checkout ever going to have a proper Virtuemart module?
I see all sorts of 2CO code being announced, but are there no resources to get a single script written?
I have contacted 2CO multiple times in the past about this and I’ve received “We’ll look into it” almost every time.
Is anybody looking into this?
Just for clarity sake:
Virtuemart is a Shopping Cart solution for Joomla (2co just released a joomla plugin).
When using it with paypal or other payment options, the checkout process is the smoothest thing ever.
When checking out with the 2Co module, people have to enter their billing info twice. (once for virtuemart which should be copied to 2co like it does with paypal).
Once they checked out, their order stays at the “pending” status. Regardless if this has anything to do with the fraud check, people should be able to download after they paid. This is not possible with the 2Co module.
If you do a 5 minute google search, you’ll notice that this problem is common and several people have received the claim from 2CO that “they are looking into it”.
There are all sorts of hacks and scripts out there to improve the situation. But none do the job very well and I can’t say I’m comfortable using foreign code in my store.
So for the sake of still being able to use 2Co as a payment processor. Could somebody actually look into this please?
Kind Regards
- Bjorn
23 Comments »
+0
-0
Thank you for bringing these issues to our attention. Unfortunately, when working with a 3rd party cart, we are only able to advise them on what needs to be changed in order to work with our service. I will contact the VirtueMart developers in hopes of addressing these issues and update this post when more information is available.
In regards to the return issue you are encountering please open a support ticket so we can investigate the issue further. From what I have read on VirtueMart’s documentation this should not be an issue as long as the path to your return script is set up properly as your accounts approved url.
If their are any suppliers on the community who are currently using VirtueMart we would appreciate your feedback.
+0
-0
Hi Craig,
Thank you for your reply.
Correct me if I’m wrong (or if you have a colleague named Greg), but you said the exact same thing when I asked this question over your Live Chat many weeks ago.
I’ll try some test orders again to see if I’m incorrect about the return script issue.
Thank you!
Kind Regards,
- Bjorn
+0
-0
I am not the agent you previously chatted with but I apologize that your concern was not initially handled properly. I will insure that these concerns are directed to an integrations specialist in the future.
+0
-0
No problem.
I legitimately believed somebody was looking into this issue and gave it a rest for a while. Only to see no change.
I will set everything up again according to the provided instructions and will keep you posted on the problems.
I hope some other users might share their experiences, because I can imagine they’ve seen a lot of snippets of code and forums trying to get this working.
Thanks
- Bjorn
+0
-0
I’ve set everything up again and it seems my payments still show up as pending.
Let me take you thru my settings:
- 2Co Payment method chosen in Virtuemart. (Comes with the virtuemart package)
- In the payment method form I have the payment method type set to “HTML-Form Based”
- In the Configuration Tab, I’ve entered my Vendor ID, Secret word, Confirmed status for completed orders, Pending status for failed orders and test mode is off.
- I have the following script:
f("user_info_id")."'";$dbbt = new ps_DB;
$dbbt->setQuery($q);
$dbbt->query();
$dbbt->next_record();
// Get ship_to information
if( $db->f("user_info_id") != $dbbt->f("user_info_id")) {
$q2 = "SELECT * FROM #__vm_user_info WHERE user_info_id='".$db->f("user_info_id")."'";
$dbst = new ps_DB;
$dbst->setQuery($q2);
$dbst->query();
$dbst->next_record();
}
else {
$dbst = $dbbt;
}
//Authnet vars to send
$formdata = array (
'x_login' => TWOCO_LOGIN,
'x_email_merchant' => ((TWOCO_MERCHANT_EMAIL == 'True') ? 'TRUE' : 'FALSE'),
// Customer Name and Billing Address
'x_first_name' => $dbbt->f("first_name"),
'x_last_name' => $dbbt->f("last_name"),
'x_company' => $dbbt->f("company"),
'x_address' => $dbbt->f("address_1"),
'x_city' => $dbbt->f("city"),
'x_state' => $dbbt->f("state"),
'x_zip' => $dbbt->f("zip"),
'x_country' => $dbbt->f("country"),
'x_phone' => $dbbt->f("phone_1"),
'x_fax' => $dbbt->f("fax"),
'x_email' => $dbbt->f("email"),
// Customer Shipping Address
'x_ship_to_first_name' => $dbst->f("first_name"),
'x_ship_to_last_name' => $dbst->f("last_name"),
'x_ship_to_company' => $dbst->f("company"),
'x_ship_to_address' => $dbst->f("address_1"),
'x_ship_to_city' => $dbst->f("city"),
'x_ship_to_state' => $dbst->f("state"),
'x_ship_to_zip' => $dbst->f("zip"),
'x_ship_to_country' => $dbst->f("country"),
'x_invoice_num' => $db->f("order_id"),
'x_receipt_link_url' => SECUREURL."2checkout_notify.php"
);
if( TWOCO_TESTMODE == "Y" )
$formdata['demo'] = "Y";
$version = "2";
$url = "https://www.2checkout.com/checkout/spurchase";
$formdata['x_amount'] = number_format($db->f("order_total"), 2, '.', '');
//build the post string
$poststring = '';
foreach($formdata AS $key => $val){
$poststring .= "
";
}
?>
<form action="" method="post" target="_blank">
Click on the Image below to pay...
In 2checkout, I have the approved and pending URL’s set to http://www.my_site.org/2checkout_notify.php
Every time I complete an order using 2CO, It remains listed as pending in my Virtuemart store.
So download links don’t get sent out.
Any idea where I went wrong?
+0
-0
Ehrm.. These code tags didn’t work too well.
Anyway, here are a few links to forums discussing these problems.
If you want I can give many more links. I’m not the only person who has been trying to set this up for many weeks without any luck.
We need 2Co to help us out.
http://forum.virtuemart.net/index.php?topic=13874.msg109118
https://dev.virtuemart.net/cb/issue/1364
https://forum.virtuemart.net/index.php?topic=46438.msg154361
Kind Regards
- Bjorn
+0
-0
Bjorn,
The last message in the last message board link you provided has what appears to be a solution. This solution does make sense to me based on the problem you are describing. If the approved URL code is checking for a parameter we do not send back to the script it will never be able to change the status of the sale. Please try changing the code in your approved URL based on the information below and let me know if this works.
“When I looked at 2CO’s parameters page, I found this:
x_2checked – Y if card was successfully processed, K if pending.
So I changed line 65 from this:
if ($_REQUEST['x_response_code'] == ‘1′) {
To this:
if ($_REQUEST['x_2checked'] == ‘Y’) {
And then it updates the order status as it should.”
+0
-0
It seems to be already in there.
_(’VM_CHECKOUT_ORDERIDNOTSET’);
else {
/* Load the 2Checkout Configuration File */
require_once( CLASSPATH. ‘payment/ps_twocheckout.cfg.php’ );
/* x_invoice_num is the name of the variable that holds OUR order_number */
$order_number = vmGet( $_REQUEST, “x_invoice_num” );
// In Demo Mode the MD5 Hash is built using a “1″
if( isset($_REQUEST['demo']) )
if($_REQUEST['demo']== “Y”)
$_REQUEST['order_number'] = “1″;
/* Concat some variables for MD5 Hashing (like 2Checkout does online)
* order_number is the 2Checkout Order Number, not our one!
*/
$compare_string = TWOCO_SECRETWORD . TWOCO_LOGIN . $_REQUEST['order_number'] . $_REQUEST['x_amount'];
// make it md5
$compare_hash1 = strtoupper(md5($compare_string));
$compare_hash2 = $_REQUEST['x_MD5_Hash'];
/* If both hashes are the same, the post should come from 2Checkout */
if ($compare_hash1 != $compare_hash2) {
?>
<img src=”images/button_cancel.png” align=”middle” alt=”_(’VM_CHECKOUT_FAILURE’); ?>” border=”0″ />
_(’PHPSHOP_PAYMENT_ERROR’) ?>query($qv);
$dbbt->next_record();
$d['order_id'] = $dbbt->f(”order_id”);
if ($_REQUEST['x_2checked'] == ‘Y’) {
// UPDATE THE ORDER STATUS to ‘VALID’
$d['order_status'] = TWOCO_VERIFIED_STATUS;
require_once ( CLASSPATH . ‘ps_order.php’ );
$ps_order= new ps_order;
$ps_order->order_status_update($d);
?>
<img src=”images/button_ok.png” align=”middle” alt=”_(’VM_CHECKOUT_SUCCESS’); ?>” border=”0″ />
_(’PHPSHOP_PAYMENT_TRANSACTION_SUCCESS’) ?>
order_status_update($d);
?>
<img src=”images/button_cancel.png” align=”middle” alt=”_(’VM_CHECKOUT_FAILURE’); ?>” border=”0″ />
_(’PHPSHOP_PAYMENT_ERROR’) ?>
<a href=”purl( SECUREURL.”index.php?option=com_virtuemart&page=account.order_details&order_id=”.$d['order_id'] ) ?>”>
_(’PHPSHOP_ORDER_LINK’) ?>
<?php
}
+0
-0
Any other ideas what might be the problem?
Is there any chance to get somebody at 2Co to get this up and running for themselves?
I wish this were user error…
+0
-0
We are going to look into this issue further. The research may take a little time, but our integrations team is going to take a closer look at the VirtueMart scripts and see if they can work out a solution.
+0
-0
Thank you very much.
I’ve honestly tried all other avenues. Some of the forum threads I linked date over a year back. Hence the outdated script adjustment tips.
I’m currently just using PayPal on my new site, but its slowly but surely reminding me why I used 2Co for the last 2 years. Paypal is smoothly integrated from my perspective, but it scares the daylight out of some potential customers.
I really enjoy doing business with 2Co, so I hope this issue can be resolved.
Thank you for looking into this!
Kind Regards
- Bjorn
+0
-0
Hi,
Is there anything I can do to help?
I have the 2co plugin installed in an active store that is working smoothly, but its currently deactivated.
Cheers
- Bjorn
+0
-0
Your offer is greatly appreciated. Although, at the moment, there is not much that can be done other than having our integrations team work with the developers of VirtueMart to work out a solution. We will post information to this thread once we hear of any solutions.
+0
-0
Any updates regarding this subject?
+0
-0
Hello Bjorn – Simba is not available to provide an update today but as soon as him or I can provide an update we will post it here.
+0
-0
So is there a final word on this wetter or not you’re going to support virtuemart?
+0
-0
Unfortunately, its not up to us to support VirtueMart. We have to get VirtueMart to support one of our parameter sets and at this point we have received no response from the VirtueMart support staff. Our integrations team will continue to attempt to contact the cart developer and will update this post when the integration issues have been resolved.
+0
-0
So basically the next time somebody asks about this, they’ll get the same reply. You stated about a year ago that you are looking into this “in depth”. http://www.2checkout.com/community/public/getting-started/virtuemart/
I find it hard to believe that the developers can’t be reached by phone or email for all this time. But yeah, you’re right. Its not up to you to support something like this. Even if the whole appeal of the service is 2co support.
http://virtuemart.net/documentation/User_Manual/Payment_Methods.html
Anyway. I suppose I’ll have to concede. Lord knows I tried sorting this out with the virtuemart developers too. 2 companies pointing fingers. This will never get resolved.
The only reason I complained harder here is because virtuemart isn’t the one losing customers.
Thanks for trying.
- Bjorn
+0
-0
We appreciate your concern with this issue and understand your frustration as this is the most requested shopping cart to get certified. The main goal of our integrations department is to get as many carts certified as possible. We have been trying to get VirtueMart certified for the some time now but thus far have been unsuccessful. We have attempted to contact all 3 contacts listed on their site with in the past month but have not been successful thus far. We will continue to pursue this certification and will update this post once we have new information pertaining to this issue.
+0
-0
We have been in communication with the VirtueMart developers and we have been assured that these issues will be resolved in VirtueMart’s next software release. At this time we do not have a release date but we will update this thread as soon as we have more information.
+0
-0
Hi,
to fix the issue, the VirtueMart Store owner must update their 2Checkout Payment Method using the Store’s Payment Method Form.
In the payment method form for the 2Checkout payment method, select the tab “Configuration”. After that fill in this new text (completely replace the old text) in the field “Payment Extra Info”:
f("user_info_id") != $dbbt->f("user_info_id")) {
$q2 = "SELECT * FROM #__vm_user_info WHERE user_info_id='".$db->f("user_info_id")."'";
$dbst = new ps_DB;
$dbst->setQuery($q2);
$dbst->query();
$dbst->next_record();
}
else {
$dbst = $dbbt;
}
//Authnet vars to send
$formdata = array (
'x_login' => TWOCO_LOGIN,
'x_email_merchant' => ((TWOCO_MERCHANT_EMAIL == 'True') ? 'TRUE' : 'FALSE'),
// Customer Name and Billing Address
'x_first_name' => $dbbt->f("first_name"),
'x_last_name' => $dbbt->f("last_name"),
'x_company' => $dbbt->f("company"),
'x_address' => $dbbt->f("address_1"),
'x_city' => $dbbt->f("city"),
'x_state' => $dbbt->f("state"),
'x_zip' => $dbbt->f("zip"),
'x_country' => $dbbt->f("country"),
'x_phone' => $dbbt->f("phone_1"),
'x_fax' => $dbbt->f("fax"),
'x_email' => $dbbt->f("user_email"),
// Customer Shipping Address
'x_ship_to_first_name' => $dbst->f("first_name"),
'x_ship_to_last_name' => $dbst->f("last_name"),
'x_ship_to_company' => $dbst->f("company"),
'x_ship_to_address' => $dbst->f("address_1"),
'x_ship_to_city' => $dbst->f("city"),
'x_ship_to_state' => $dbst->f("state"),
'x_ship_to_zip' => $dbst->f("zip"),
'x_ship_to_country' => $dbst->f("country"),
'x_invoice_num' => $db->f("order_number"),
'x_receipt_link_url' => SECUREURL."2checkout_notify.php"
);
if( TWOCO_TESTMODE == "Y" )
$formdata['demo'] = "Y";
$version = "2";
$url = "https://www2.2checkout.com/2co/buyer/purchase";
$formdata['x_amount'] = number_format($db->f("order_total"), 2, '.', '');
//build the post string
$poststring = '';
foreach($formdata AS $key => $val){
$poststring .= '
';
}
?>
<form action="" method="post" target="_blank">
Click on the Image below to pay...
ciao, Sören
+0
-0
there’s something missing at the beginning of the code!
this:
###
f
###
+0
-0
ok, see here: 2Checkout in VM 1.1.3