I've hit a similar brick wall once.
After digging in the code I found that you cannot use payment methods that required a redirect to the payment gateway in multishipping checkout. I may be wrong here, but here is the reasons of my conclusion.
In the onepage checkout, when saving the order Mage_Checkout_OnepageController::saveOrderAction
there is this code:
$redirectUrl = $this->getOnepage()->getCheckout()->getRedirectUrl();
.....
if (isset($redirectUrl)) {
$result['redirect'] = $redirectUrl;
}
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
and in opcheckout.js
in the review
class there is this:
if (response.redirect) {
this.isSuccess = true;
location.href = response.redirect;
return;
}
So if there is a redirect url specified you will get redirected to that url.
There is something similar in the savePaymentAction
.
I found no trace of something like that in the MultishippingController
. take a look at what overviewPostAction
does. (that's where the payment is processed).
After saving a few details about the credit card type (if applicable) this is called.
$this->_getCheckout()->createOrders();
The main attraction in the createOrders
method is
foreach ($orders as $order) {
$order->place();
$order->save();
if ($order->getCanSendNewEmailFlag()){
$order->sendNewOrderEmail();
}
$orderIds[$order->getId()] = $order->getIncrementId();
}
So nothing about any redirect.
An other thing that made me reach this conclusion is that most of the online payment methods that Magento has by default are not allowed in the multishipping checkout.
Look in the code for the variable $_canUseForMultishipping
. It is set to false
for most of the online payment methods.
I guess the safest solution would be to disable your method for multishipping.
You can do that by adding
protected $_canUseForMultishipping = false;
to the model that handles the payment method.
I ended up doing the same in my case.
i have faced the same issue the problem is solved by removing the extra field value i was sending.
<input type="hidden" maxlength="15" value="SINGLE" name="vpc_TxSourceSubType">
after changing it's value to null solved my problem
<input type="hidden" maxlength="15" value="" name="vpc_TxSourceSubType">
i hope it will help other too.
in your can case i see your merchant account
detail is not correct or you are missing the secret hash
make sure you must have these field
<input type="hidden" maxlength="250" value="https://migs.mastercard.com.au/vpcpay" size="63" name="virtualPaymentClientURL">
<input type="hidden" value="test" name="Title">
<input type="hidden" maxlength="8" size="20" value="1" name="vpc_Version">
<input type="text" maxlength="8" size="20" value="aces_code" name="vpc_AccessCode">
<input type="text" maxlength="16" size="20" value="your" name="vpc_Merchant">
<input type="hidden" maxlength="16" size="20" value="pay" name="vpc_Command">
<input type="hidden" maxlength="40" size="20" value="1467269875" name="vpc_MerchTxnRef">
<input type="hidden" maxlength="34" size="20" value="this is product-10" name="vpc_OrderInfo">
<input type="hidden" maxlength="10" size="20" value="70" name="vpc_Amount">
<input type="hidden" maxlength="5" size="20" value="en" name="vpc_Locale">
<input type="hidden" maxlength="250" value="return_url" size="63" name="vpc_ReturnURL">
<input type="hidden" maxlength="15" name="vpc_TicketNo">
<input type="hidden" maxlength="15" value="" name="vpc_TxSourceSubType">
Best Answer
MiGS Payment Gateway For Magento 1.9
You can Download Thinkhigh_VPCpaymentgateway Extension to integrate MasterCard internet Gateway Service (MiGS) with magento 1.9.2.4.
MiGS uses MD5 hash as default and now it converted to SHA256. So you have to made some changes in Coding also