Version Notes
Upgrade
- Support for MageWorld One Step Checkout Pro
Minor fixes:
- Fix for stores with custom DB table prefixes
- Fix for manual payments not submitting for some stores
Download this release
Release Info
| Developer | eWAY Payments |
| Extension | eWAY_Payment_Rapid31 |
| Version | 1.3.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.3.0 to 1.3.1
- app/code/community/Eway/Rapid31/Block/Sales/Order/Grid.php +1 -4
- app/code/community/Eway/Rapid31/Helper/Data.php +1 -5
- app/code/community/Eway/Rapid31/Model/Config.php +1 -1
- app/code/community/Eway/Rapid31/Model/EwayCron.php +1 -4
- app/code/community/Eway/Rapid31/Model/Observer.php +292 -292
- app/code/community/Eway/Rapid31/Model/RecurringProfile.php +2 -0
- app/code/community/Eway/Rapid31/Model/Request/Abstract.php +155 -148
- app/code/community/Eway/Rapid31/Model/Request/Direct.php +270 -268
- app/code/community/Eway/Rapid31/Model/Request/Sharedpage.php +532 -529
- app/code/community/Eway/Rapid31/Model/Request/Token.php +524 -515
- app/code/community/Eway/Rapid31/Model/Request/Transparent.php +693 -685
- app/code/community/Eway/Rapid31/controllers/Adminhtml/IndexController.php +1 -4
- app/code/community/Eway/Rapid31/controllers/TestController.php +1 -4
- app/code/community/Eway/Rapid31/etc/config.xml +1 -1
- app/code/community/Eway/Rapid31/etc/system.xml +2 -2
- app/code/community/Eway/Rapid31/sql/ewayrapid_setup/install-0.1.0.php +18 -21
- app/code/community/Eway/Rapid31/sql/ewayrapid_setup/upgrade-0.1.0-1.0.0.php +18 -18
- app/code/community/Eway/Rapid31/sql/ewayrapid_setup/upgrade-1.0.0-1.0.1.php +40 -25
- app/code/community/Eway/Rapid31/sql/ewayrapid_setup/upgrade-1.0.1-1.0.3.php +32 -33
- app/design/frontend/base/default/template/ewayrapid/js.phtml +306 -242
- js/ewayrapid/eWAY_Payment_Rapid31.xml +145 -0
- js/ewayrapid/ewayrapid.js +764 -1012
- package.xml +12 -12
app/code/community/Eway/Rapid31/Block/Sales/Order/Grid.php
CHANGED
|
@@ -1,9 +1,6 @@
|
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
-
*
|
| 4 |
-
* User: Administrator PC
|
| 5 |
-
* Date: 7/21/14
|
| 6 |
-
* Time: 3:47 PM
|
| 7 |
*/
|
| 8 |
class Eway_Rapid31_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid {
|
| 9 |
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
+
*
|
|
|
|
|
|
|
|
|
|
| 4 |
*/
|
| 5 |
class Eway_Rapid31_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid {
|
| 6 |
|
app/code/community/Eway/Rapid31/Helper/Data.php
CHANGED
|
@@ -1,10 +1,6 @@
|
|
| 1 |
<?php
|
| 2 |
-
|
| 3 |
/**
|
| 4 |
-
*
|
| 5 |
-
* User: hiephm
|
| 6 |
-
* Date: 4/23/14
|
| 7 |
-
* Time: 5:30 PM
|
| 8 |
*/
|
| 9 |
class Eway_Rapid31_Helper_Data extends Mage_Core_Helper_Abstract
|
| 10 |
{
|
| 1 |
<?php
|
|
|
|
| 2 |
/**
|
| 3 |
+
*
|
|
|
|
|
|
|
|
|
|
| 4 |
*/
|
| 5 |
class Eway_Rapid31_Helper_Data extends Mage_Core_Helper_Abstract
|
| 6 |
{
|
app/code/community/Eway/Rapid31/Model/Config.php
CHANGED
|
@@ -25,7 +25,7 @@ class Eway_Rapid31_Model_Config
|
|
| 25 |
const PAYPAL_EXPRESS_METHOD = 'paypal_express';
|
| 26 |
const MASTERPASS_METHOD = 'masterpass';
|
| 27 |
|
| 28 |
-
const MESSAGE_ERROR_ORDER = 'Billing Frequency is wrong. It must be numeric and greater than 0. Status of recurring profile is changed to
|
| 29 |
|
| 30 |
const TRANSPARENT_ACCESSCODE = 'AccessCodes';
|
| 31 |
const TRANSPARENT_ACCESSCODE_RESULT = 'AccessCode';
|
| 25 |
const PAYPAL_EXPRESS_METHOD = 'paypal_express';
|
| 26 |
const MASTERPASS_METHOD = 'masterpass';
|
| 27 |
|
| 28 |
+
const MESSAGE_ERROR_ORDER = 'Billing Frequency is wrong. It must be numeric and greater than 0. Status of recurring profile is changed to cancelled';
|
| 29 |
|
| 30 |
const TRANSPARENT_ACCESSCODE = 'AccessCodes';
|
| 31 |
const TRANSPARENT_ACCESSCODE_RESULT = 'AccessCode';
|
app/code/community/Eway/Rapid31/Model/EwayCron.php
CHANGED
|
@@ -1,9 +1,6 @@
|
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
-
*
|
| 4 |
-
* User: Administrator PC
|
| 5 |
-
* Date: 7/31/14
|
| 6 |
-
* Time: 4:38 PM
|
| 7 |
*/
|
| 8 |
class Eway_Rapid31_Model_EwayCron {
|
| 9 |
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
+
*
|
|
|
|
|
|
|
|
|
|
| 4 |
*/
|
| 5 |
class Eway_Rapid31_Model_EwayCron {
|
| 6 |
|
app/code/community/Eway/Rapid31/Model/Observer.php
CHANGED
|
@@ -1,293 +1,293 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
/**
|
| 3 |
-
*
|
| 4 |
-
*/
|
| 5 |
-
class Eway_Rapid31_Model_Observer {
|
| 6 |
-
|
| 7 |
-
/* @var Magento_Sales_Model_Order_Invoice*/
|
| 8 |
-
var $_invoice;
|
| 9 |
-
|
| 10 |
-
public function myCards() {
|
| 11 |
-
|
| 12 |
-
}
|
| 13 |
-
|
| 14 |
-
public function checkCustomerMark() {
|
| 15 |
-
if(Mage::getSingleton('customer/session')->isLoggedIn()) {
|
| 16 |
-
$fraud_enabled = Mage::getStoreConfig('payment/ewayrapid_general/block_fraud_customers');
|
| 17 |
-
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
| 18 |
-
$markFraud = $customer->getMarkFraud();
|
| 19 |
-
$unblock = $customer->getBlockFraudCustomer();
|
| 20 |
-
if((int)$markFraud === 1
|
| 21 |
-
&& $fraud_enabled
|
| 22 |
-
&& (int)$unblock === 0
|
| 23 |
-
) {
|
| 24 |
-
Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
|
| 25 |
-
Mage::app()->getResponse()->sendResponse();
|
| 26 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('Your latest payment is being reviewed and you cannot place a new order temporarily. Please try again later.'));
|
| 27 |
-
exit;
|
| 28 |
-
}
|
| 29 |
-
}
|
| 30 |
-
}
|
| 31 |
-
|
| 32 |
-
public function sales_order_save_before($observer) {
|
| 33 |
-
|
| 34 |
-
}
|
| 35 |
-
|
| 36 |
-
public function sales_order_save_after($observer) {
|
| 37 |
-
|
| 38 |
-
}
|
| 39 |
-
|
| 40 |
-
public function sales_order_place_before($observer) {
|
| 41 |
-
// Check order fraud here
|
| 42 |
-
// ...
|
| 43 |
-
$fraud = Mage::getSingleton('core/session')->getData('fraud');
|
| 44 |
-
if($fraud === 1) {
|
| 45 |
-
|
| 46 |
-
}
|
| 47 |
-
}
|
| 48 |
-
|
| 49 |
-
public function sales_order_place_after($observer) {
|
| 50 |
-
// Check order fraud here
|
| 51 |
-
// ...
|
| 52 |
-
|
| 53 |
-
$fraud = Mage::getSingleton('core/session')->getData('fraud');
|
| 54 |
-
if($fraud === 1) {
|
| 55 |
-
|
| 56 |
-
}
|
| 57 |
-
}
|
| 58 |
-
|
| 59 |
-
public function sales_order_invoice_save_after($observer)
|
| 60 |
-
{
|
| 61 |
-
try {
|
| 62 |
-
/* @var $order Magento_Sales_Model_Order_Invoice */
|
| 63 |
-
$this->_invoice = $observer->getEvent()->getInvoice();
|
| 64 |
-
$this->_invoice->sendEmail();
|
| 65 |
-
} catch (Mage_Core_Exception $e) {
|
| 66 |
-
Mage::log("Error sending invoice email: " . $e->getMessage());
|
| 67 |
-
}
|
| 68 |
-
return $this;
|
| 69 |
-
}
|
| 70 |
-
|
| 71 |
-
public function checkout_submit_all_after(Varien_Event_Observer $observer) {
|
| 72 |
-
$fraud = Mage::getSingleton('core/session')->getData('fraud');
|
| 73 |
-
$comment = Mage::getSingleton('core/session')->getData('fraudMessage');
|
| 74 |
-
// Read setting config enabled fraud or not
|
| 75 |
-
if($fraud === 1 && $order = $observer->getEvent()->getOrder()) {
|
| 76 |
-
$order->setState('fraud');
|
| 77 |
-
$order->setStatus('fraud');
|
| 78 |
-
if ($comment) {
|
| 79 |
-
$comment = 'An order is marked as Suspected Fraud. Because it contains: ' . $comment;
|
| 80 |
-
$order->addStatusHistoryComment($comment)
|
| 81 |
-
->setIsVisibleOnFront(false)
|
| 82 |
-
->setIsCustomerNotified(false);
|
| 83 |
-
}
|
| 84 |
-
$order->save();
|
| 85 |
-
|
| 86 |
-
// Update user to fraud
|
| 87 |
-
$session = Mage::getSingleton('customer/session');
|
| 88 |
-
if ($session->isLoggedIn()) {
|
| 89 |
-
$customer = $session->getCustomer();
|
| 90 |
-
$customer->setData('mark_fraud', 1);
|
| 91 |
-
$customer->save();
|
| 92 |
-
}
|
| 93 |
-
|
| 94 |
-
Mage::getSingleton('core/session')->unsetData('fraud');
|
| 95 |
-
Mage::getSingleton('core/session')->unsetData('fraudMessage');
|
| 96 |
-
}
|
| 97 |
-
}
|
| 98 |
-
|
| 99 |
-
/**
|
| 100 |
-
* Update eway transaction for order
|
| 101 |
-
* @param Varien_Event_Observer $observer
|
| 102 |
-
*/
|
| 103 |
-
public function checkout_type_onepage_save_order_after(Varien_Event_Observer $observer) {
|
| 104 |
-
$order = $observer->getData('order');
|
| 105 |
-
$order->setEwayTransactionId($order->getPayment()->getTransactionId());
|
| 106 |
-
$order->save();
|
| 107 |
-
|
| 108 |
-
}
|
| 109 |
-
/*
|
| 110 |
-
* create order of recurring profile
|
| 111 |
-
*
|
| 112 |
-
* @param Varien_Event_Observer $observer
|
| 113 |
-
*/
|
| 114 |
-
public function createRecurringOrder(Varien_Event_Observer $observer)
|
| 115 |
-
{
|
| 116 |
-
$profiles = $observer->getEvent()->getRecurringProfiles();
|
| 117 |
-
|
| 118 |
-
if (isset($profiles[0])) {
|
| 119 |
-
/** @var Mage_Sales_Model_Recurring_Profile $profile */
|
| 120 |
-
$profile = $profiles[0];
|
| 121 |
-
} else {
|
| 122 |
-
return;
|
| 123 |
-
}
|
| 124 |
-
|
| 125 |
-
//if Billing Frequency <= 0 or isn't numeric, Status of recurring profile changed to canceled
|
| 126 |
-
if (!$profile->getPeriodFrequency()
|
| 127 |
-
|| (string)(int) $profile->getPeriodFrequency() !== ltrim($profile->getPeriodFrequency(), '0')
|
| 128 |
-
|| (int) $profile->getPeriodFrequency() <= 0
|
| 129 |
-
) {
|
| 130 |
-
$profile->cancel();
|
| 131 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('Billing Frequency is wrong. It must be numeric and greater than 0. Status of recurring profile is changed to canceled'));
|
| 132 |
-
$session = Mage::getSingleton('checkout/type_onepage')->getCheckout();
|
| 133 |
-
$session->setLastRecurringProfileIds(null);
|
| 134 |
-
return;
|
| 135 |
-
}
|
| 136 |
-
|
| 137 |
-
$quote = $observer->getEvent()->getQuote();
|
| 138 |
-
|
| 139 |
-
/** @var Eway_Rapid31_Model_RecurringProfile $recurringProfile */
|
| 140 |
-
$recurringProfile = Mage::getModel('ewayrapid/recurringProfile');
|
| 141 |
-
$orderItemInfo = $profile->getOrderItemInfo();
|
| 142 |
-
$buyRequest = unserialize($orderItemInfo['info_buyRequest']);
|
| 143 |
-
|
| 144 |
-
// timezone used as store's timezone
|
| 145 |
-
$startDate = isset($buyRequest['recurring_profile_start_datetime']) && $buyRequest['recurring_profile_start_datetime'] ? $buyRequest['recurring_profile_start_datetime'] : null;
|
| 146 |
-
|
| 147 |
-
$additional = $profile->getAdditionalInfo();
|
| 148 |
-
$token = $recurringProfile->processToken($quote);
|
| 149 |
-
$token = json_decode($token, true);
|
| 150 |
-
$additional['token'] = $token;
|
| 151 |
-
$additional['startDate'] = $startDate;
|
| 152 |
-
$additional['initialFee'] = true;
|
| 153 |
-
$profile->setAdditionalInfo($additional);
|
| 154 |
-
$profile->save();
|
| 155 |
-
|
| 156 |
-
// charge Initial Fee if It is greater than 0 and is numeric
|
| 157 |
-
if ($profile->getInitAmount()
|
| 158 |
-
&& (
|
| 159 |
-
|
| 160 |
-
) {
|
| 161 |
-
try {
|
| 162 |
-
$recurringProfile->processInitialFee($profile);
|
| 163 |
-
} catch (Exception $e) {
|
| 164 |
-
$additional = $profile->getAdditionalInfo();
|
| 165 |
-
$additional['initialFee'] = false;
|
| 166 |
-
if ($profile->getInitMayFail() == '1') {
|
| 167 |
-
// Allow Initial Fee Failure = yes
|
| 168 |
-
// change status recurring profile = suspended
|
| 169 |
-
$profile->suspend();
|
| 170 |
-
$errorMessage = Mage::getSingleton('core/session')->getData('errorMessage');
|
| 171 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('An error occurred while making the transaction by Initial Fee (Error message: %s). Status of recurring profile is changed to suspended.', $errorMessage));
|
| 172 |
-
return;
|
| 173 |
-
|
| 174 |
-
} else {
|
| 175 |
-
// Allow Initial Fee Failure = no
|
| 176 |
-
// Auto Bill on Next Cycle = no
|
| 177 |
-
// set additionalInfo['outstanding'] = Initial Fee
|
| 178 |
-
if (!$profile->getBillFailedLater()) {
|
| 179 |
-
$additional['outstanding'] = $profile->getInitAmount();
|
| 180 |
-
}
|
| 181 |
-
}
|
| 182 |
-
$profile->setAdditionalInfo($additional);
|
| 183 |
-
$profile->save();
|
| 184 |
-
}
|
| 185 |
-
}
|
| 186 |
-
|
| 187 |
-
// check current time >= started time
|
| 188 |
-
if (!$startDate || $recurringProfile->checkRecurringTimeStart($startDate)) {
|
| 189 |
-
try {
|
| 190 |
-
// create order
|
| 191 |
-
// before day = current date // check if frequency >1day
|
| 192 |
-
// next day with current date
|
| 193 |
-
$recurringProfile->processRequest($profile);
|
| 194 |
-
} catch (Exception $e) {
|
| 195 |
-
$errorMessage = Mage::getSingleton('core/session')->getData('errorMessage');
|
| 196 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('An error occurred while making the transaction. (Error message: %s)', $errorMessage));
|
| 197 |
-
// suspend recurring profile when response data contains error and/or TransactionID is null
|
| 198 |
-
$checkPaymentFailures = $recurringProfile->checkMaxPaymentFailures($profile);
|
| 199 |
-
if (!$checkPaymentFailures) {
|
| 200 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('Out of Payment failures. Status of recurring profile is changed to suspended.'));
|
| 201 |
-
}
|
| 202 |
-
return;
|
| 203 |
-
}
|
| 204 |
-
} else {
|
| 205 |
-
// not created order
|
| 206 |
-
// before day = null
|
| 207 |
-
// next day = date of started time
|
| 208 |
-
$additionalInfo = $profile->getAdditionalInfo();
|
| 209 |
-
$additionalInfo['nextDate'] = $startDate;
|
| 210 |
-
$profile->setAdditionalInfo($additionalInfo);
|
| 211 |
-
$profile->save();
|
| 212 |
-
}
|
| 213 |
-
}
|
| 214 |
-
|
| 215 |
-
/**
|
| 216 |
-
* load recurring profile if methodcode = ewayrapid_saved
|
| 217 |
-
*
|
| 218 |
-
* @param string $methodCode
|
| 219 |
-
* @return array
|
| 220 |
-
*/
|
| 221 |
-
protected function _loadProfileByMethod($methodCode = 'ewayrapid_saved')
|
| 222 |
-
{
|
| 223 |
-
$modelRecurringProfile = Mage::getModel('sales/recurring_profile')->getCollection()
|
| 224 |
-
->addFieldToFilter('method_code', $methodCode)
|
| 225 |
-
->addFieldToFilter('state', 'active')
|
| 226 |
-
->addFieldToFilter('additional_info', array('notnull' => true))
|
| 227 |
-
->addFieldToFilter('period_max_cycles', array(
|
| 228 |
-
array('null' => true),
|
| 229 |
-
array('gt' => 0)
|
| 230 |
-
)
|
| 231 |
-
);
|
| 232 |
-
$profiles = array();
|
| 233 |
-
|
| 234 |
-
foreach ($modelRecurringProfile as $item) {
|
| 235 |
-
/** @var Mage_Sales_Model_Recurring_Profile $item */
|
| 236 |
-
$additionalInfo = unserialize($item->getAdditionalInfo());
|
| 237 |
-
$billingInfo = unserialize($item->getBillingAddressInfo());
|
| 238 |
-
$addressInfo = unserialize($item->getShippingAddressInfo());
|
| 239 |
-
$orderItemInfo = unserialize($item->getOrderItemInfo());
|
| 240 |
-
$orderInfo = unserialize($item->getOrderInfo());
|
| 241 |
-
$item->setBillingAddressInfo($billingInfo);
|
| 242 |
-
$item->setShippingAddressInfo($addressInfo);
|
| 243 |
-
$item->setOrderItemInfo($orderItemInfo);
|
| 244 |
-
$item->setAdditionalInfo($additionalInfo);
|
| 245 |
-
$item->setOrderInfo($orderInfo);
|
| 246 |
-
$profiles[] = $item;
|
| 247 |
-
}
|
| 248 |
-
return $profiles;
|
| 249 |
-
}
|
| 250 |
-
|
| 251 |
-
/**
|
| 252 |
-
* cron recurring profile to create order
|
| 253 |
-
*/
|
| 254 |
-
public function cronRecurringOrder()
|
| 255 |
-
{
|
| 256 |
-
$profiles = $this->_loadProfileByMethod();
|
| 257 |
-
foreach ($profiles as $profile) {
|
| 258 |
-
/** @var Mage_Sales_Model_Recurring_Profile $profile */
|
| 259 |
-
/** @var Eway_Rapid31_Model_RecurringProfile $recurringProfile */
|
| 260 |
-
$recurringProfile = Mage::getModel('ewayrapid/recurringProfile');
|
| 261 |
-
|
| 262 |
-
$recurringProfile->updateNextDate($profile);
|
| 263 |
-
|
| 264 |
-
// check run cron job conditions
|
| 265 |
-
if ($recurringProfile->checkRecurringProfileRunCronJob($profile)) {
|
| 266 |
-
// check charge money initial Fee
|
| 267 |
-
$additional = $profile->getAdditionalInfo();
|
| 268 |
-
if ($additional['initialFee'] == false) {
|
| 269 |
-
if (!$profile->getInitMayFail() && $profile->getBillFailedLater()) {
|
| 270 |
-
try {
|
| 271 |
-
$recurringProfile->processInitialFee($profile);
|
| 272 |
-
$additional['initialFee'] = true;
|
| 273 |
-
$profile->setAdditionalInfo($additional);
|
| 274 |
-
$profile->save();
|
| 275 |
-
} catch (Exception $e) {
|
| 276 |
-
Mage::logException($e);
|
| 277 |
-
}
|
| 278 |
-
}
|
| 279 |
-
}
|
| 280 |
-
|
| 281 |
-
$profile->setIsCronJob(true);
|
| 282 |
-
|
| 283 |
-
try {
|
| 284 |
-
$recurringProfile->processRequest($profile);
|
| 285 |
-
} catch (Exception $e) {
|
| 286 |
-
$paymentFailures = $recurringProfile->checkMaxPaymentFailures($profile);
|
| 287 |
-
Mage::logException($e);
|
| 288 |
-
}
|
| 289 |
-
}
|
| 290 |
-
}
|
| 291 |
-
return;
|
| 292 |
-
}
|
| 293 |
}
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
*
|
| 4 |
+
*/
|
| 5 |
+
class Eway_Rapid31_Model_Observer {
|
| 6 |
+
|
| 7 |
+
/* @var Magento_Sales_Model_Order_Invoice*/
|
| 8 |
+
var $_invoice;
|
| 9 |
+
|
| 10 |
+
public function myCards() {
|
| 11 |
+
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
public function checkCustomerMark() {
|
| 15 |
+
if(Mage::getSingleton('customer/session')->isLoggedIn()) {
|
| 16 |
+
$fraud_enabled = Mage::getStoreConfig('payment/ewayrapid_general/block_fraud_customers');
|
| 17 |
+
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
| 18 |
+
$markFraud = $customer->getMarkFraud();
|
| 19 |
+
$unblock = $customer->getBlockFraudCustomer();
|
| 20 |
+
if((int)$markFraud === 1
|
| 21 |
+
&& $fraud_enabled
|
| 22 |
+
&& (int)$unblock === 0
|
| 23 |
+
) {
|
| 24 |
+
Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
|
| 25 |
+
Mage::app()->getResponse()->sendResponse();
|
| 26 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('Your latest payment is being reviewed and you cannot place a new order temporarily. Please try again later.'));
|
| 27 |
+
exit;
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
public function sales_order_save_before($observer) {
|
| 33 |
+
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
public function sales_order_save_after($observer) {
|
| 37 |
+
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
public function sales_order_place_before($observer) {
|
| 41 |
+
// Check order fraud here
|
| 42 |
+
// ...
|
| 43 |
+
$fraud = Mage::getSingleton('core/session')->getData('fraud');
|
| 44 |
+
if($fraud === 1) {
|
| 45 |
+
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
public function sales_order_place_after($observer) {
|
| 50 |
+
// Check order fraud here
|
| 51 |
+
// ...
|
| 52 |
+
|
| 53 |
+
$fraud = Mage::getSingleton('core/session')->getData('fraud');
|
| 54 |
+
if($fraud === 1) {
|
| 55 |
+
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
public function sales_order_invoice_save_after($observer)
|
| 60 |
+
{
|
| 61 |
+
try {
|
| 62 |
+
/* @var $order Magento_Sales_Model_Order_Invoice */
|
| 63 |
+
$this->_invoice = $observer->getEvent()->getInvoice();
|
| 64 |
+
$this->_invoice->sendEmail();
|
| 65 |
+
} catch (Mage_Core_Exception $e) {
|
| 66 |
+
Mage::log("Error sending invoice email: " . $e->getMessage());
|
| 67 |
+
}
|
| 68 |
+
return $this;
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
public function checkout_submit_all_after(Varien_Event_Observer $observer) {
|
| 72 |
+
$fraud = Mage::getSingleton('core/session')->getData('fraud');
|
| 73 |
+
$comment = Mage::getSingleton('core/session')->getData('fraudMessage');
|
| 74 |
+
// Read setting config enabled fraud or not
|
| 75 |
+
if($fraud === 1 && $order = $observer->getEvent()->getOrder()) {
|
| 76 |
+
$order->setState('fraud');
|
| 77 |
+
$order->setStatus('fraud');
|
| 78 |
+
if ($comment) {
|
| 79 |
+
$comment = 'An order is marked as Suspected Fraud. Because it contains: ' . $comment;
|
| 80 |
+
$order->addStatusHistoryComment($comment)
|
| 81 |
+
->setIsVisibleOnFront(false)
|
| 82 |
+
->setIsCustomerNotified(false);
|
| 83 |
+
}
|
| 84 |
+
$order->save();
|
| 85 |
+
|
| 86 |
+
// Update user to fraud
|
| 87 |
+
$session = Mage::getSingleton('customer/session');
|
| 88 |
+
if ($session->isLoggedIn()) {
|
| 89 |
+
$customer = $session->getCustomer();
|
| 90 |
+
$customer->setData('mark_fraud', 1);
|
| 91 |
+
$customer->save();
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
Mage::getSingleton('core/session')->unsetData('fraud');
|
| 95 |
+
Mage::getSingleton('core/session')->unsetData('fraudMessage');
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
/**
|
| 100 |
+
* Update eway transaction for order
|
| 101 |
+
* @param Varien_Event_Observer $observer
|
| 102 |
+
*/
|
| 103 |
+
public function checkout_type_onepage_save_order_after(Varien_Event_Observer $observer) {
|
| 104 |
+
$order = $observer->getData('order');
|
| 105 |
+
$order->setEwayTransactionId($order->getPayment()->getTransactionId());
|
| 106 |
+
$order->save();
|
| 107 |
+
|
| 108 |
+
}
|
| 109 |
+
/*
|
| 110 |
+
* create order of recurring profile
|
| 111 |
+
*
|
| 112 |
+
* @param Varien_Event_Observer $observer
|
| 113 |
+
*/
|
| 114 |
+
public function createRecurringOrder(Varien_Event_Observer $observer)
|
| 115 |
+
{
|
| 116 |
+
$profiles = $observer->getEvent()->getRecurringProfiles();
|
| 117 |
+
|
| 118 |
+
if (isset($profiles[0])) {
|
| 119 |
+
/** @var Mage_Sales_Model_Recurring_Profile $profile */
|
| 120 |
+
$profile = $profiles[0];
|
| 121 |
+
} else {
|
| 122 |
+
return;
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
//if Billing Frequency <= 0 or isn't numeric, Status of recurring profile changed to canceled
|
| 126 |
+
if (!$profile->getPeriodFrequency()
|
| 127 |
+
|| (string)(int) $profile->getPeriodFrequency() !== ltrim($profile->getPeriodFrequency(), '0')
|
| 128 |
+
|| (int) $profile->getPeriodFrequency() <= 0
|
| 129 |
+
) {
|
| 130 |
+
$profile->cancel();
|
| 131 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('Billing Frequency is wrong. It must be numeric and greater than 0. Status of recurring profile is changed to canceled'));
|
| 132 |
+
$session = Mage::getSingleton('checkout/type_onepage')->getCheckout();
|
| 133 |
+
$session->setLastRecurringProfileIds(null);
|
| 134 |
+
return;
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
$quote = $observer->getEvent()->getQuote();
|
| 138 |
+
|
| 139 |
+
/** @var Eway_Rapid31_Model_RecurringProfile $recurringProfile */
|
| 140 |
+
$recurringProfile = Mage::getModel('ewayrapid/recurringProfile');
|
| 141 |
+
$orderItemInfo = $profile->getOrderItemInfo();
|
| 142 |
+
$buyRequest = unserialize($orderItemInfo['info_buyRequest']);
|
| 143 |
+
|
| 144 |
+
// timezone used as store's timezone
|
| 145 |
+
$startDate = isset($buyRequest['recurring_profile_start_datetime']) && $buyRequest['recurring_profile_start_datetime'] ? $buyRequest['recurring_profile_start_datetime'] : null;
|
| 146 |
+
|
| 147 |
+
$additional = $profile->getAdditionalInfo();
|
| 148 |
+
$token = $recurringProfile->processToken($quote);
|
| 149 |
+
$token = json_decode($token, true);
|
| 150 |
+
$additional['token'] = $token;
|
| 151 |
+
$additional['startDate'] = $startDate;
|
| 152 |
+
$additional['initialFee'] = true;
|
| 153 |
+
$profile->setAdditionalInfo($additional);
|
| 154 |
+
$profile->save();
|
| 155 |
+
|
| 156 |
+
// charge Initial Fee if It is greater than 0 and is numeric
|
| 157 |
+
if ($profile->getInitAmount()
|
| 158 |
+
&& (float) $profile->getInitAmount() > 0
|
| 159 |
+
//&& (string)(int) $profile->getInitAmount() === ltrim($profile->getInitAmount(), '0')
|
| 160 |
+
) {
|
| 161 |
+
try {
|
| 162 |
+
$recurringProfile->processInitialFee($profile);
|
| 163 |
+
} catch (Exception $e) {
|
| 164 |
+
$additional = $profile->getAdditionalInfo();
|
| 165 |
+
$additional['initialFee'] = false;
|
| 166 |
+
if ($profile->getInitMayFail() == '1') {
|
| 167 |
+
// Allow Initial Fee Failure = yes
|
| 168 |
+
// change status recurring profile = suspended
|
| 169 |
+
$profile->suspend();
|
| 170 |
+
$errorMessage = Mage::getSingleton('core/session')->getData('errorMessage');
|
| 171 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('An error occurred while making the transaction by Initial Fee (Error message: %s). Status of recurring profile is changed to suspended.', $errorMessage));
|
| 172 |
+
return;
|
| 173 |
+
|
| 174 |
+
} else {
|
| 175 |
+
// Allow Initial Fee Failure = no
|
| 176 |
+
// Auto Bill on Next Cycle = no
|
| 177 |
+
// set additionalInfo['outstanding'] = Initial Fee
|
| 178 |
+
if (!$profile->getBillFailedLater()) {
|
| 179 |
+
$additional['outstanding'] = $profile->getInitAmount();
|
| 180 |
+
}
|
| 181 |
+
}
|
| 182 |
+
$profile->setAdditionalInfo($additional);
|
| 183 |
+
$profile->save();
|
| 184 |
+
}
|
| 185 |
+
}
|
| 186 |
+
|
| 187 |
+
// check current time >= started time
|
| 188 |
+
if (!$startDate || $recurringProfile->checkRecurringTimeStart($startDate)) {
|
| 189 |
+
try {
|
| 190 |
+
// create order
|
| 191 |
+
// before day = current date // check if frequency >1day
|
| 192 |
+
// next day with current date
|
| 193 |
+
$recurringProfile->processRequest($profile);
|
| 194 |
+
} catch (Exception $e) {
|
| 195 |
+
$errorMessage = Mage::getSingleton('core/session')->getData('errorMessage');
|
| 196 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('An error occurred while making the transaction. (Error message: %s)', $errorMessage));
|
| 197 |
+
// suspend recurring profile when response data contains error and/or TransactionID is null
|
| 198 |
+
$checkPaymentFailures = $recurringProfile->checkMaxPaymentFailures($profile);
|
| 199 |
+
if (!$checkPaymentFailures) {
|
| 200 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('Out of Payment failures. Status of recurring profile is changed to suspended.'));
|
| 201 |
+
}
|
| 202 |
+
return;
|
| 203 |
+
}
|
| 204 |
+
} else {
|
| 205 |
+
// not created order
|
| 206 |
+
// before day = null
|
| 207 |
+
// next day = date of started time
|
| 208 |
+
$additionalInfo = $profile->getAdditionalInfo();
|
| 209 |
+
$additionalInfo['nextDate'] = $startDate;
|
| 210 |
+
$profile->setAdditionalInfo($additionalInfo);
|
| 211 |
+
$profile->save();
|
| 212 |
+
}
|
| 213 |
+
}
|
| 214 |
+
|
| 215 |
+
/**
|
| 216 |
+
* load recurring profile if methodcode = ewayrapid_saved
|
| 217 |
+
*
|
| 218 |
+
* @param string $methodCode
|
| 219 |
+
* @return array
|
| 220 |
+
*/
|
| 221 |
+
protected function _loadProfileByMethod($methodCode = 'ewayrapid_saved')
|
| 222 |
+
{
|
| 223 |
+
$modelRecurringProfile = Mage::getModel('sales/recurring_profile')->getCollection()
|
| 224 |
+
->addFieldToFilter('method_code', $methodCode)
|
| 225 |
+
->addFieldToFilter('state', 'active')
|
| 226 |
+
->addFieldToFilter('additional_info', array('notnull' => true))
|
| 227 |
+
->addFieldToFilter('period_max_cycles', array(
|
| 228 |
+
array('null' => true),
|
| 229 |
+
array('gt' => 0)
|
| 230 |
+
)
|
| 231 |
+
);
|
| 232 |
+
$profiles = array();
|
| 233 |
+
|
| 234 |
+
foreach ($modelRecurringProfile as $item) {
|
| 235 |
+
/** @var Mage_Sales_Model_Recurring_Profile $item */
|
| 236 |
+
$additionalInfo = unserialize($item->getAdditionalInfo());
|
| 237 |
+
$billingInfo = unserialize($item->getBillingAddressInfo());
|
| 238 |
+
$addressInfo = unserialize($item->getShippingAddressInfo());
|
| 239 |
+
$orderItemInfo = unserialize($item->getOrderItemInfo());
|
| 240 |
+
$orderInfo = unserialize($item->getOrderInfo());
|
| 241 |
+
$item->setBillingAddressInfo($billingInfo);
|
| 242 |
+
$item->setShippingAddressInfo($addressInfo);
|
| 243 |
+
$item->setOrderItemInfo($orderItemInfo);
|
| 244 |
+
$item->setAdditionalInfo($additionalInfo);
|
| 245 |
+
$item->setOrderInfo($orderInfo);
|
| 246 |
+
$profiles[] = $item;
|
| 247 |
+
}
|
| 248 |
+
return $profiles;
|
| 249 |
+
}
|
| 250 |
+
|
| 251 |
+
/**
|
| 252 |
+
* cron recurring profile to create order
|
| 253 |
+
*/
|
| 254 |
+
public function cronRecurringOrder()
|
| 255 |
+
{
|
| 256 |
+
$profiles = $this->_loadProfileByMethod();
|
| 257 |
+
foreach ($profiles as $profile) {
|
| 258 |
+
/** @var Mage_Sales_Model_Recurring_Profile $profile */
|
| 259 |
+
/** @var Eway_Rapid31_Model_RecurringProfile $recurringProfile */
|
| 260 |
+
$recurringProfile = Mage::getModel('ewayrapid/recurringProfile');
|
| 261 |
+
|
| 262 |
+
$recurringProfile->updateNextDate($profile);
|
| 263 |
+
|
| 264 |
+
// check run cron job conditions
|
| 265 |
+
if ($recurringProfile->checkRecurringProfileRunCronJob($profile)) {
|
| 266 |
+
// check charge money initial Fee
|
| 267 |
+
$additional = $profile->getAdditionalInfo();
|
| 268 |
+
if ($additional['initialFee'] == false) {
|
| 269 |
+
if (!$profile->getInitMayFail() && $profile->getBillFailedLater()) {
|
| 270 |
+
try {
|
| 271 |
+
$recurringProfile->processInitialFee($profile);
|
| 272 |
+
$additional['initialFee'] = true;
|
| 273 |
+
$profile->setAdditionalInfo($additional);
|
| 274 |
+
$profile->save();
|
| 275 |
+
} catch (Exception $e) {
|
| 276 |
+
Mage::logException($e);
|
| 277 |
+
}
|
| 278 |
+
}
|
| 279 |
+
}
|
| 280 |
+
|
| 281 |
+
$profile->setIsCronJob(true);
|
| 282 |
+
|
| 283 |
+
try {
|
| 284 |
+
$recurringProfile->processRequest($profile);
|
| 285 |
+
} catch (Exception $e) {
|
| 286 |
+
$paymentFailures = $recurringProfile->checkMaxPaymentFailures($profile);
|
| 287 |
+
Mage::logException($e);
|
| 288 |
+
}
|
| 289 |
+
}
|
| 290 |
+
}
|
| 291 |
+
return;
|
| 292 |
+
}
|
| 293 |
}
|
app/code/community/Eway/Rapid31/Model/RecurringProfile.php
CHANGED
|
@@ -404,6 +404,8 @@ class Eway_Rapid31_Model_RecurringProfile
|
|
| 404 |
*/
|
| 405 |
public function checkRecurringTimeStart($startDate = null)
|
| 406 |
{
|
|
|
|
|
|
|
| 407 |
// timezone used as store's timezone
|
| 408 |
return strtotime(date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time()))) >= strtotime($startDate);
|
| 409 |
}
|
| 404 |
*/
|
| 405 |
public function checkRecurringTimeStart($startDate = null)
|
| 406 |
{
|
| 407 |
+
// fix for ambigious timestamp (dashes force to dd/mm not mm/dd)
|
| 408 |
+
//$startDate = str_replace('/', '-', $startDate);
|
| 409 |
// timezone used as store's timezone
|
| 410 |
return strtotime(date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time()))) >= strtotime($startDate);
|
| 411 |
}
|
app/code/community/Eway/Rapid31/Model/Request/Abstract.php
CHANGED
|
@@ -1,149 +1,156 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
/**
|
| 4 |
-
* Class Eway_Rapid31_Model_Request_Abstract
|
| 5 |
-
*
|
| 6 |
-
* @method Eway_Rapid31_Model_Field_Customer getCustomer()
|
| 7 |
-
* @method Eway_Rapid31_Model_Request_Abstract setCustomer(Eway_Rapid31_Model_Field_Customer $value)
|
| 8 |
-
* @method Eway_Rapid31_Model_Field_ShippingAddress getShippingAddress()
|
| 9 |
-
* @method Eway_Rapid31_Model_Request_Abstract setShippingAddress(Eway_Rapid31_Model_Field_ShippingAddress $value)
|
| 10 |
-
* @method string getShippingMethod()
|
| 11 |
-
* @method Eway_Rapid31_Model_Request_Abstract setShippingMethod(string $value)
|
| 12 |
-
* @method array getItems()
|
| 13 |
-
* @method Eway_Rapid31_Model_Request_Abstract setItems(array $value)
|
| 14 |
-
* @method Eway_Rapid31_Model_Field_Payment getPayment()
|
| 15 |
-
* @method Eway_Rapid31_Model_Request_Abstract setPayment(Eway_Rapid31_Model_Field_Payment $value)
|
| 16 |
-
* @method string getDeviceID()
|
| 17 |
-
* @method Eway_Rapid31_Model_Request_Abstract setDeviceID(string $value)
|
| 18 |
-
* @method string getCustomerIP()
|
| 19 |
-
* @method Eway_Rapid31_Model_Request_Abstract setCustomerIP(string $value)
|
| 20 |
-
* @method string getPartnerID()
|
| 21 |
-
* @method Eway_Rapid31_Model_Request_Abstract setPartnerID(string $value)
|
| 22 |
-
* @method string getTransactionType()
|
| 23 |
-
* @method Eway_Rapid31_Model_Request_Abstract setTransactionType(string $value)
|
| 24 |
-
* @method string getMethod()
|
| 25 |
-
* @method Eway_Rapid31_Model_Request_Abstract setMethod(string $value)
|
| 26 |
-
* @method int getTransactionId()
|
| 27 |
-
* @method Eway_Rapid31_Model_Request_Abstract setTransactionId(int $value)
|
| 28 |
-
* @method Eway_Rapid31_Model_Field_Payment getRefund()
|
| 29 |
-
* @method Eway_Rapid31_Model_Request_Abstract setRefund(Eway_Rapid31_Model_Field_Payment $value)
|
| 30 |
-
* @method string getRedirectUrl()
|
| 31 |
-
* @method Eway_Rapid31_Model_Request_Abstract setRedirectUrl(string $value)
|
| 32 |
-
* @method string getCheckoutPayment()
|
| 33 |
-
* @method Eway_Rapid31_Model_Request_Abstract setCheckoutPayment(bool $value)
|
| 34 |
-
* @method string getCheckoutURL()
|
| 35 |
-
* @method Eway_Rapid31_Model_Request_Abstract setCheckoutURL(string $value)
|
| 36 |
-
* @method string getCancelUrl()
|
| 37 |
-
* @method Eway_Rapid31_Model_Request_Abstract setCancelUrl(string $value)
|
| 38 |
-
* @method Eway_Rapid31_Model_Request_Abstract setCustomerReadOnly(bool $value)
|
| 39 |
-
*/
|
| 40 |
-
abstract class Eway_Rapid31_Model_Request_Abstract extends Eway_Rapid31_Model_JsonSerializableAbstract
|
| 41 |
-
{
|
| 42 |
-
const DEBUG_FILE = 'ewayrapid31_api_request.log';
|
| 43 |
-
|
| 44 |
-
/**
|
| 45 |
-
* @var Eway_Rapid31_Model_Config
|
| 46 |
-
*/
|
| 47 |
-
protected $_config = null;
|
| 48 |
-
|
| 49 |
-
protected function _construct()
|
| 50 |
-
{
|
| 51 |
-
$this->_config = Mage::getSingleton('ewayrapid/config');
|
| 52 |
-
}
|
| 53 |
-
|
| 54 |
-
/**
|
| 55 |
-
* Do the main API request.
|
| 56 |
-
* All API request to eWAY should call this function with appropriate parameters, after set all necessary data.
|
| 57 |
-
*
|
| 58 |
-
* @param string $action can be one of POST, GET, DELETE or PUT
|
| 59 |
-
* @param string $method
|
| 60 |
-
* @return Eway_Rapid31_Model_Response
|
| 61 |
-
*/
|
| 62 |
-
protected function _doRapidAPI($action, $method = 'POST') {
|
| 63 |
-
|
| 64 |
-
$url = $this->_config->getRapidAPIUrl($action);
|
| 65 |
-
$mode = $this->_config->isSandbox() ? '(Sandbox)' : '(Live)';
|
| 66 |
-
$this->_log('>>>>> START REQUEST ' . $mode . ' (' . $method . ') ' . ' : ' . $url);
|
| 67 |
-
|
| 68 |
-
$ch = curl_init($url);
|
| 69 |
-
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/json"));
|
| 70 |
-
curl_setopt($ch, CURLOPT_USERPWD, $this->_config->getBasicAuthenticationHeader());
|
| 71 |
-
switch($method) {
|
| 72 |
-
case 'POST':
|
| 73 |
-
curl_setopt($ch, CURLOPT_POST, true);
|
| 74 |
-
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->jsonSerialize());
|
| 75 |
-
$this->_logPostJSON();
|
| 76 |
-
break;
|
| 77 |
-
case 'GET':
|
| 78 |
-
case 'DELETE':
|
| 79 |
-
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
|
| 80 |
-
break;
|
| 81 |
-
case 'PUT':
|
| 82 |
-
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
|
| 83 |
-
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->jsonSerialize());
|
| 84 |
-
$this->_logPostJSON();
|
| 85 |
-
break;
|
| 86 |
-
}
|
| 87 |
-
|
| 88 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 89 |
-
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 90 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->_config->isEnableSSLVerification());
|
| 91 |
-
|
| 92 |
-
$result = curl_exec($ch);
|
| 93 |
-
|
| 94 |
-
$this->_log('<<<<< RESPONSE:');
|
| 95 |
-
$response = Mage::getModel('ewayrapid/response');
|
| 96 |
-
if (curl_errno($ch) != CURLE_OK) {
|
| 97 |
-
$response->isSuccess(false);
|
| 98 |
-
$response->setMessage(Mage::helper('ewayrapid')->__("There is an error in making API request: %s", curl_error($ch)));
|
| 99 |
-
$this->_log("There is an error in making API request: " . curl_error($ch));
|
| 100 |
-
} else {
|
| 101 |
-
$info = curl_getinfo($ch);
|
| 102 |
-
$http_code = intval(trim($info['http_code']));
|
| 103 |
-
if ($http_code == 401 || $http_code == 404 || $http_code == 403) {
|
| 104 |
-
$response->isSuccess(false);
|
| 105 |
-
$response->setMessage(Mage::helper('ewayrapid')->__("Please check the API Key and Password %s", $mode));
|
| 106 |
-
$this->_log('Access denied. HTTP_CODE = ' . $info['http_code']);
|
| 107 |
-
} elseif ($http_code != 200) {
|
| 108 |
-
$response->isSuccess(false);
|
| 109 |
-
$response->setMessage(Mage::helper('ewayrapid')->__("Error connecting to payment gateway, please try again"));
|
| 110 |
-
$this->_log('Error connecting to payment gateway. HTTP_CODE = ' . $info['http_code']);
|
| 111 |
-
} else {
|
| 112 |
-
$response->isSuccess(true);
|
| 113 |
-
$response->decodeJSON($result);
|
| 114 |
-
if($this->_config->isDebug()) {
|
| 115 |
-
$this->_log('SUCCESS. Response body: ');
|
| 116 |
-
$this->_log(print_r(json_decode($result, true), true));
|
| 117 |
-
}
|
| 118 |
-
$this->_log('SUCCESS. HTTP_CODE = ' . $info['http_code']);
|
| 119 |
-
}
|
| 120 |
-
curl_close($ch);
|
| 121 |
-
}
|
| 122 |
-
|
| 123 |
-
$this->_log('===== END REQUEST.');
|
| 124 |
-
return $response;
|
| 125 |
-
}
|
| 126 |
-
|
| 127 |
-
protected function _logPostJSON()
|
| 128 |
-
{
|
| 129 |
-
if($this->_config->isDebug()) {
|
| 130 |
-
$cardDetails = null;
|
| 131 |
-
if($this->getCustomer() && $this->getCustomer()->getCardDetails()) {
|
| 132 |
-
$cardDetails = $this->getCustomer()->getCardDetails();
|
| 133 |
-
$cardDetails->shouldBeMasked();
|
| 134 |
-
}
|
| 135 |
-
$this->_log('Request body:');
|
| 136 |
-
$this->_log(print_r($this->getJsonData(), true));
|
| 137 |
-
if(!is_null($cardDetails)) {
|
| 138 |
-
$cardDetails->shouldBeMasked(false);
|
| 139 |
-
}
|
| 140 |
-
}
|
| 141 |
-
}
|
| 142 |
-
|
| 143 |
-
protected function _log($message, $file = self::DEBUG_FILE)
|
| 144 |
-
{
|
| 145 |
-
if($this->_config->isDebug()) {
|
| 146 |
-
Mage::log($message, Zend_Log::DEBUG, $file, true);
|
| 147 |
-
}
|
| 148 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 149 |
}
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Class Eway_Rapid31_Model_Request_Abstract
|
| 5 |
+
*
|
| 6 |
+
* @method Eway_Rapid31_Model_Field_Customer getCustomer()
|
| 7 |
+
* @method Eway_Rapid31_Model_Request_Abstract setCustomer(Eway_Rapid31_Model_Field_Customer $value)
|
| 8 |
+
* @method Eway_Rapid31_Model_Field_ShippingAddress getShippingAddress()
|
| 9 |
+
* @method Eway_Rapid31_Model_Request_Abstract setShippingAddress(Eway_Rapid31_Model_Field_ShippingAddress $value)
|
| 10 |
+
* @method string getShippingMethod()
|
| 11 |
+
* @method Eway_Rapid31_Model_Request_Abstract setShippingMethod(string $value)
|
| 12 |
+
* @method array getItems()
|
| 13 |
+
* @method Eway_Rapid31_Model_Request_Abstract setItems(array $value)
|
| 14 |
+
* @method Eway_Rapid31_Model_Field_Payment getPayment()
|
| 15 |
+
* @method Eway_Rapid31_Model_Request_Abstract setPayment(Eway_Rapid31_Model_Field_Payment $value)
|
| 16 |
+
* @method string getDeviceID()
|
| 17 |
+
* @method Eway_Rapid31_Model_Request_Abstract setDeviceID(string $value)
|
| 18 |
+
* @method string getCustomerIP()
|
| 19 |
+
* @method Eway_Rapid31_Model_Request_Abstract setCustomerIP(string $value)
|
| 20 |
+
* @method string getPartnerID()
|
| 21 |
+
* @method Eway_Rapid31_Model_Request_Abstract setPartnerID(string $value)
|
| 22 |
+
* @method string getTransactionType()
|
| 23 |
+
* @method Eway_Rapid31_Model_Request_Abstract setTransactionType(string $value)
|
| 24 |
+
* @method string getMethod()
|
| 25 |
+
* @method Eway_Rapid31_Model_Request_Abstract setMethod(string $value)
|
| 26 |
+
* @method int getTransactionId()
|
| 27 |
+
* @method Eway_Rapid31_Model_Request_Abstract setTransactionId(int $value)
|
| 28 |
+
* @method Eway_Rapid31_Model_Field_Payment getRefund()
|
| 29 |
+
* @method Eway_Rapid31_Model_Request_Abstract setRefund(Eway_Rapid31_Model_Field_Payment $value)
|
| 30 |
+
* @method string getRedirectUrl()
|
| 31 |
+
* @method Eway_Rapid31_Model_Request_Abstract setRedirectUrl(string $value)
|
| 32 |
+
* @method string getCheckoutPayment()
|
| 33 |
+
* @method Eway_Rapid31_Model_Request_Abstract setCheckoutPayment(bool $value)
|
| 34 |
+
* @method string getCheckoutURL()
|
| 35 |
+
* @method Eway_Rapid31_Model_Request_Abstract setCheckoutURL(string $value)
|
| 36 |
+
* @method string getCancelUrl()
|
| 37 |
+
* @method Eway_Rapid31_Model_Request_Abstract setCancelUrl(string $value)
|
| 38 |
+
* @method Eway_Rapid31_Model_Request_Abstract setCustomerReadOnly(bool $value)
|
| 39 |
+
*/
|
| 40 |
+
abstract class Eway_Rapid31_Model_Request_Abstract extends Eway_Rapid31_Model_JsonSerializableAbstract
|
| 41 |
+
{
|
| 42 |
+
const DEBUG_FILE = 'ewayrapid31_api_request.log';
|
| 43 |
+
|
| 44 |
+
/**
|
| 45 |
+
* @var Eway_Rapid31_Model_Config
|
| 46 |
+
*/
|
| 47 |
+
protected $_config = null;
|
| 48 |
+
|
| 49 |
+
protected function _construct()
|
| 50 |
+
{
|
| 51 |
+
$this->_config = Mage::getSingleton('ewayrapid/config');
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
/**
|
| 55 |
+
* Do the main API request.
|
| 56 |
+
* All API request to eWAY should call this function with appropriate parameters, after set all necessary data.
|
| 57 |
+
*
|
| 58 |
+
* @param string $action can be one of POST, GET, DELETE or PUT
|
| 59 |
+
* @param string $method
|
| 60 |
+
* @return Eway_Rapid31_Model_Response
|
| 61 |
+
*/
|
| 62 |
+
protected function _doRapidAPI($action, $method = 'POST') {
|
| 63 |
+
|
| 64 |
+
$url = $this->_config->getRapidAPIUrl($action);
|
| 65 |
+
$mode = $this->_config->isSandbox() ? '(Sandbox)' : '(Live)';
|
| 66 |
+
$this->_log('>>>>> START REQUEST ' . $mode . ' (' . $method . ') ' . ' : ' . $url);
|
| 67 |
+
|
| 68 |
+
$ch = curl_init($url);
|
| 69 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/json"));
|
| 70 |
+
curl_setopt($ch, CURLOPT_USERPWD, $this->_config->getBasicAuthenticationHeader());
|
| 71 |
+
switch($method) {
|
| 72 |
+
case 'POST':
|
| 73 |
+
curl_setopt($ch, CURLOPT_POST, true);
|
| 74 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->jsonSerialize());
|
| 75 |
+
$this->_logPostJSON();
|
| 76 |
+
break;
|
| 77 |
+
case 'GET':
|
| 78 |
+
case 'DELETE':
|
| 79 |
+
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
|
| 80 |
+
break;
|
| 81 |
+
case 'PUT':
|
| 82 |
+
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
|
| 83 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->jsonSerialize());
|
| 84 |
+
$this->_logPostJSON();
|
| 85 |
+
break;
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 89 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 90 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->_config->isEnableSSLVerification());
|
| 91 |
+
|
| 92 |
+
$result = curl_exec($ch);
|
| 93 |
+
|
| 94 |
+
$this->_log('<<<<< RESPONSE:');
|
| 95 |
+
$response = Mage::getModel('ewayrapid/response');
|
| 96 |
+
if (curl_errno($ch) != CURLE_OK) {
|
| 97 |
+
$response->isSuccess(false);
|
| 98 |
+
$response->setMessage(Mage::helper('ewayrapid')->__("There is an error in making API request: %s", curl_error($ch)));
|
| 99 |
+
$this->_log("There is an error in making API request: " . curl_error($ch));
|
| 100 |
+
} else {
|
| 101 |
+
$info = curl_getinfo($ch);
|
| 102 |
+
$http_code = intval(trim($info['http_code']));
|
| 103 |
+
if ($http_code == 401 || $http_code == 404 || $http_code == 403) {
|
| 104 |
+
$response->isSuccess(false);
|
| 105 |
+
$response->setMessage(Mage::helper('ewayrapid')->__("Please check the API Key and Password %s", $mode));
|
| 106 |
+
$this->_log('Access denied. HTTP_CODE = ' . $info['http_code']);
|
| 107 |
+
} elseif ($http_code != 200) {
|
| 108 |
+
$response->isSuccess(false);
|
| 109 |
+
$response->setMessage(Mage::helper('ewayrapid')->__("Error connecting to payment gateway, please try again"));
|
| 110 |
+
$this->_log('Error connecting to payment gateway. HTTP_CODE = ' . $info['http_code']);
|
| 111 |
+
} else {
|
| 112 |
+
$response->isSuccess(true);
|
| 113 |
+
$response->decodeJSON($result);
|
| 114 |
+
if($this->_config->isDebug()) {
|
| 115 |
+
$this->_log('SUCCESS. Response body: ');
|
| 116 |
+
$this->_log(print_r(json_decode($result, true), true));
|
| 117 |
+
}
|
| 118 |
+
$this->_log('SUCCESS. HTTP_CODE = ' . $info['http_code']);
|
| 119 |
+
}
|
| 120 |
+
curl_close($ch);
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
$this->_log('===== END REQUEST.');
|
| 124 |
+
return $response;
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
protected function _logPostJSON()
|
| 128 |
+
{
|
| 129 |
+
if($this->_config->isDebug()) {
|
| 130 |
+
$cardDetails = null;
|
| 131 |
+
if($this->getCustomer() && $this->getCustomer()->getCardDetails()) {
|
| 132 |
+
$cardDetails = $this->getCustomer()->getCardDetails();
|
| 133 |
+
$cardDetails->shouldBeMasked();
|
| 134 |
+
}
|
| 135 |
+
$this->_log('Request body:');
|
| 136 |
+
$this->_log(print_r($this->getJsonData(), true));
|
| 137 |
+
if(!is_null($cardDetails)) {
|
| 138 |
+
$cardDetails->shouldBeMasked(false);
|
| 139 |
+
}
|
| 140 |
+
}
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
protected function _log($message, $file = self::DEBUG_FILE)
|
| 144 |
+
{
|
| 145 |
+
if($this->_config->isDebug()) {
|
| 146 |
+
Mage::log($message, Zend_Log::DEBUG, $file, true);
|
| 147 |
+
}
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
protected function _fixTitle($title) {
|
| 151 |
+
if ($title == 'n/a' || empty($title)) {
|
| 152 |
+
return 'Mr.';
|
| 153 |
+
}
|
| 154 |
+
return $title;
|
| 155 |
+
}
|
| 156 |
}
|
app/code/community/Eway/Rapid31/Model/Request/Direct.php
CHANGED
|
@@ -1,269 +1,271 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
class Eway_Rapid31_Model_Request_Direct extends Eway_Rapid31_Model_Request_Abstract
|
| 3 |
-
{
|
| 4 |
-
/**
|
| 5 |
-
* Call Transaction API (Authorized & Capture at the same time)
|
| 6 |
-
*
|
| 7 |
-
* @param Mage_Sales_Model_Order_Payment $payment
|
| 8 |
-
* @param float $amount
|
| 9 |
-
* @return Eway_Rapid31_Model_Request_Direct $this
|
| 10 |
-
*/
|
| 11 |
-
public function doTransaction(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 12 |
-
{
|
| 13 |
-
$this->_buildRequest($payment, $amount);
|
| 14 |
-
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_PROCESS_PAYMENT);
|
| 15 |
-
$response = $this->_doRapidAPI('Transaction');
|
| 16 |
-
|
| 17 |
-
if($response->isSuccess()) {
|
| 18 |
-
$payment->setTransactionId($response->getTransactionID());
|
| 19 |
-
$payment->setCcLast4($response->getCcLast4());
|
| 20 |
-
return $this;
|
| 21 |
-
} else {
|
| 22 |
-
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while making the transaction. Please try again. (Error message: %s)',
|
| 23 |
-
$response->getMessage()));
|
| 24 |
-
}
|
| 25 |
-
}
|
| 26 |
-
|
| 27 |
-
/**
|
| 28 |
-
* Call Authorisation API (Authorized only)
|
| 29 |
-
*
|
| 30 |
-
* @param Mage_Sales_Model_Order_Payment $payment
|
| 31 |
-
* @param $amount
|
| 32 |
-
* @return Eway_Rapid31_Model_Request_Direct
|
| 33 |
-
*/
|
| 34 |
-
public function doAuthorisation(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 35 |
-
{
|
| 36 |
-
$this->_buildRequest($payment, $amount);
|
| 37 |
-
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_AUTHORISE);
|
| 38 |
-
$response = $this->_doRapidAPI('Authorisation');
|
| 39 |
-
|
| 40 |
-
if($response->isSuccess()) {
|
| 41 |
-
$payment->setTransactionId($response->getTransactionID());
|
| 42 |
-
$payment->setIsTransactionClosed(0);
|
| 43 |
-
$payment->setCcLast4($response->getCcLast4());
|
| 44 |
-
return $this;
|
| 45 |
-
} else {
|
| 46 |
-
if ($payment->getIsRecurring()) {
|
| 47 |
-
Mage::getSingleton('core/session')->setData('errorMessage', $response->getMessage());
|
| 48 |
-
}
|
| 49 |
-
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the authorisation. Please try again. (Error message: %s)',
|
| 50 |
-
$response->getMessage()));
|
| 51 |
-
}
|
| 52 |
-
}
|
| 53 |
-
|
| 54 |
-
/**
|
| 55 |
-
* Call Capture API (do the Capture only, must Authorized previously)
|
| 56 |
-
*
|
| 57 |
-
* @param Mage_Sales_Model_Order_Payment $payment
|
| 58 |
-
* @param $amount
|
| 59 |
-
* @return Eway_Rapid31_Model_Request_Direct
|
| 60 |
-
*/
|
| 61 |
-
public function doCapturePayment(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 62 |
-
{
|
| 63 |
-
// Empty Varien_Object's data
|
| 64 |
-
$this->unsetData();
|
| 65 |
-
|
| 66 |
-
/* @var Mage_Sales_Model_Order_Invoice $invoice */
|
| 67 |
-
$invoice = Mage::registry('current_invoice');
|
| 68 |
-
$order = $payment->getOrder();
|
| 69 |
-
|
| 70 |
-
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 71 |
-
$paymentParam->setTotalAmount($amount)
|
| 72 |
-
->setCurrencyCode($order->getBaseCurrencyCode());
|
| 73 |
-
if($invoice && $invoice->getIncrementId()) {
|
| 74 |
-
$paymentParam->setInvoiceNumber($invoice->getIncrementId())
|
| 75 |
-
->setInvoiceReference($invoice->getIncrementId())
|
| 76 |
-
->setInvoiceDescription(Mage::helper('ewayrapid')->__('Invoice created from Magento'));
|
| 77 |
-
}
|
| 78 |
-
$this->setPayment($paymentParam);
|
| 79 |
-
$this->setTransactionId($payment->getLastTransId());
|
| 80 |
-
|
| 81 |
-
$response = $this->_doRapidAPI('CapturePayment');
|
| 82 |
-
|
| 83 |
-
if($response->isSuccess()) {
|
| 84 |
-
$payment->setTransactionId($response->getTransactionID());
|
| 85 |
-
return $this;
|
| 86 |
-
} else {
|
| 87 |
-
if ($payment->getIsRecurring()) {
|
| 88 |
-
Mage::getSingleton('core/session')->setData('errorMessage', $response->getMessage());
|
| 89 |
-
}
|
| 90 |
-
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the capture. Please try again. (Error message: %s)',
|
| 91 |
-
$response->getMessage()));
|
| 92 |
-
}
|
| 93 |
-
}
|
| 94 |
-
|
| 95 |
-
/**
|
| 96 |
-
* Call Refund API, must complete the transaction (Authorized & Capture) beforehand
|
| 97 |
-
*
|
| 98 |
-
* @param Mage_Sales_Model_Order_Payment $payment
|
| 99 |
-
* @param $amount
|
| 100 |
-
* @return Eway_Rapid31_Model_Request_Direct
|
| 101 |
-
*/
|
| 102 |
-
public function doRefund(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 103 |
-
{
|
| 104 |
-
// Empty Varien_Object's data
|
| 105 |
-
$this->unsetData();
|
| 106 |
-
|
| 107 |
-
$order = $payment->getOrder();
|
| 108 |
-
/* @var Mage_Sales_Model_Order_Creditmemo $creditMemo */
|
| 109 |
-
$creditMemo = Mage::registry('current_creditmemo');
|
| 110 |
-
|
| 111 |
-
$invoice = ($creditMemo ? $creditMemo->getInvoice() : null);
|
| 112 |
-
/* @var Mage_Sales_Model_Order_Invoice $invoice */
|
| 113 |
-
if(!$invoice || !$invoice->getTransactionId()) {
|
| 114 |
-
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the online refund: Invoice or transaction does not exist.'));
|
| 115 |
-
}
|
| 116 |
-
|
| 117 |
-
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 118 |
-
$paymentParam->setTotalAmount($amount)
|
| 119 |
-
->setCurrencyCode($order->getBaseCurrencyCode())
|
| 120 |
-
->setTransactionID($invoice->getTransactionId());
|
| 121 |
-
if($creditMemo && $creditMemo->getIncrementId()) {
|
| 122 |
-
$paymentParam->setInvoiceDescription("Creditmemo ID " . $creditMemo->getIncrementId());
|
| 123 |
-
}
|
| 124 |
-
|
| 125 |
-
if($invoice && $invoice->getIncrementId()) {
|
| 126 |
-
$paymentParam->setInvoiceNumber($invoice->getIncrementId())
|
| 127 |
-
->setInvoiceReference($invoice->getIncrementId());
|
| 128 |
-
}
|
| 129 |
-
$this->setRefund($paymentParam);
|
| 130 |
-
|
| 131 |
-
$response = $this->_doRapidAPI('Transaction/' . $invoice->getTransactionId() . '/Refund');
|
| 132 |
-
|
| 133 |
-
if($response->isSuccess()) {
|
| 134 |
-
$payment->setTransactionId($response->getTransactionID());
|
| 135 |
-
return $this;
|
| 136 |
-
} else {
|
| 137 |
-
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the refund. Please try again. (Error message: %s)',
|
| 138 |
-
$response->getMessage()));
|
| 139 |
-
}
|
| 140 |
-
}
|
| 141 |
-
|
| 142 |
-
/**
|
| 143 |
-
* Call Cancel API, the transaction must be Authorized beforehand
|
| 144 |
-
*
|
| 145 |
-
* @param Mage_Sales_Model_Order_Payment $payment
|
| 146 |
-
* @return Eway_Rapid31_Model_Request_Direct
|
| 147 |
-
*/
|
| 148 |
-
public function doCancel(Mage_Sales_Model_Order_Payment $payment)
|
| 149 |
-
{
|
| 150 |
-
// Empty Varien_Object's data
|
| 151 |
-
$this->unsetData();
|
| 152 |
-
|
| 153 |
-
$transactionId = $payment->getLastTransId();
|
| 154 |
-
$this->setTransactionId($transactionId);
|
| 155 |
-
$response = $this->_doRapidAPI('CancelAuthorisation');
|
| 156 |
-
|
| 157 |
-
if($response->isSuccess()) {
|
| 158 |
-
$payment->setTransactionId($response->getTransactionID());
|
| 159 |
-
$payment->setIsTransactionClosed(1);
|
| 160 |
-
return $this;
|
| 161 |
-
} else {
|
| 162 |
-
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the cancel. Please try again. (Error message: %s)',
|
| 163 |
-
$response->getMessage()));
|
| 164 |
-
}
|
| 165 |
-
|
| 166 |
-
}
|
| 167 |
-
|
| 168 |
-
/**
|
| 169 |
-
* Build the request with necessary parameters for doAuthorisation() and doTransaction()
|
| 170 |
-
*
|
| 171 |
-
* @param Mage_Sales_Model_Order_Payment $payment
|
| 172 |
-
* @param $amount
|
| 173 |
-
* @return Eway_Rapid31_Model_Request_Direct
|
| 174 |
-
*/
|
| 175 |
-
protected function _buildRequest(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 176 |
-
{
|
| 177 |
-
// Empty Varien_Object's data
|
| 178 |
-
$this->unsetData();
|
| 179 |
-
$methodInstance = $payment->getMethodInstance();
|
| 180 |
-
$infoInstance = $methodInstance->getInfoInstance();
|
| 181 |
-
$order = $payment->getOrder();
|
| 182 |
-
$billing = $order->getBillingAddress();
|
| 183 |
-
$shipping = $order->getShippingAddress();
|
| 184 |
-
|
| 185 |
-
// if item is virtual product
|
| 186 |
-
if (!$shipping) {
|
| 187 |
-
$quote = Mage::getModel('checkout/cart')->getQuote();
|
| 188 |
-
if ($quote->isVirtual()) {
|
| 189 |
-
$shipping = $quote->getBillingAddress();
|
| 190 |
-
}
|
| 191 |
-
}
|
| 192 |
-
|
| 193 |
-
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 194 |
-
if(Mage::helper('ewayrapid')->isBackendOrder()) {
|
| 195 |
-
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
|
| 196 |
-
} else {
|
| 197 |
-
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
|
| 198 |
-
}
|
| 199 |
-
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 200 |
-
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY
|
| 201 |
-
$this->setShippingMethod('Other');
|
| 202 |
-
|
| 203 |
-
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 204 |
-
$paymentParam->setTotalAmount($amount)
|
| 205 |
-
->setCurrencyCode($order->getBaseCurrencyCode());
|
| 206 |
-
$this->setPayment($paymentParam);
|
| 207 |
-
|
| 208 |
-
$
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
->
|
| 213 |
-
->
|
| 214 |
-
->
|
| 215 |
-
->
|
| 216 |
-
->
|
| 217 |
-
->
|
| 218 |
-
->
|
| 219 |
-
->
|
| 220 |
-
->
|
| 221 |
-
->
|
| 222 |
-
->
|
| 223 |
-
->
|
| 224 |
-
->
|
| 225 |
-
->
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
->
|
| 231 |
-
->
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
$
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
->
|
| 241 |
-
->
|
| 242 |
-
->
|
| 243 |
-
->
|
| 244 |
-
->
|
| 245 |
-
->
|
| 246 |
-
->
|
| 247 |
-
->
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
$
|
| 257 |
-
$lineItem
|
| 258 |
-
$lineItem->
|
| 259 |
-
$lineItem->
|
| 260 |
-
$lineItem->
|
| 261 |
-
$lineItem->
|
| 262 |
-
$
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
|
|
|
|
|
|
| 269 |
}
|
| 1 |
+
<?php
|
| 2 |
+
class Eway_Rapid31_Model_Request_Direct extends Eway_Rapid31_Model_Request_Abstract
|
| 3 |
+
{
|
| 4 |
+
/**
|
| 5 |
+
* Call Transaction API (Authorized & Capture at the same time)
|
| 6 |
+
*
|
| 7 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 8 |
+
* @param float $amount
|
| 9 |
+
* @return Eway_Rapid31_Model_Request_Direct $this
|
| 10 |
+
*/
|
| 11 |
+
public function doTransaction(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 12 |
+
{
|
| 13 |
+
$this->_buildRequest($payment, $amount);
|
| 14 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_PROCESS_PAYMENT);
|
| 15 |
+
$response = $this->_doRapidAPI('Transaction');
|
| 16 |
+
|
| 17 |
+
if($response->isSuccess()) {
|
| 18 |
+
$payment->setTransactionId($response->getTransactionID());
|
| 19 |
+
$payment->setCcLast4($response->getCcLast4());
|
| 20 |
+
return $this;
|
| 21 |
+
} else {
|
| 22 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while making the transaction. Please try again. (Error message: %s)',
|
| 23 |
+
$response->getMessage()));
|
| 24 |
+
}
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
/**
|
| 28 |
+
* Call Authorisation API (Authorized only)
|
| 29 |
+
*
|
| 30 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 31 |
+
* @param $amount
|
| 32 |
+
* @return Eway_Rapid31_Model_Request_Direct
|
| 33 |
+
*/
|
| 34 |
+
public function doAuthorisation(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 35 |
+
{
|
| 36 |
+
$this->_buildRequest($payment, $amount);
|
| 37 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_AUTHORISE);
|
| 38 |
+
$response = $this->_doRapidAPI('Authorisation');
|
| 39 |
+
|
| 40 |
+
if($response->isSuccess()) {
|
| 41 |
+
$payment->setTransactionId($response->getTransactionID());
|
| 42 |
+
$payment->setIsTransactionClosed(0);
|
| 43 |
+
$payment->setCcLast4($response->getCcLast4());
|
| 44 |
+
return $this;
|
| 45 |
+
} else {
|
| 46 |
+
if ($payment->getIsRecurring()) {
|
| 47 |
+
Mage::getSingleton('core/session')->setData('errorMessage', $response->getMessage());
|
| 48 |
+
}
|
| 49 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the authorisation. Please try again. (Error message: %s)',
|
| 50 |
+
$response->getMessage()));
|
| 51 |
+
}
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
/**
|
| 55 |
+
* Call Capture API (do the Capture only, must Authorized previously)
|
| 56 |
+
*
|
| 57 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 58 |
+
* @param $amount
|
| 59 |
+
* @return Eway_Rapid31_Model_Request_Direct
|
| 60 |
+
*/
|
| 61 |
+
public function doCapturePayment(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 62 |
+
{
|
| 63 |
+
// Empty Varien_Object's data
|
| 64 |
+
$this->unsetData();
|
| 65 |
+
|
| 66 |
+
/* @var Mage_Sales_Model_Order_Invoice $invoice */
|
| 67 |
+
$invoice = Mage::registry('current_invoice');
|
| 68 |
+
$order = $payment->getOrder();
|
| 69 |
+
|
| 70 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 71 |
+
$paymentParam->setTotalAmount($amount)
|
| 72 |
+
->setCurrencyCode($order->getBaseCurrencyCode());
|
| 73 |
+
if($invoice && $invoice->getIncrementId()) {
|
| 74 |
+
$paymentParam->setInvoiceNumber($invoice->getIncrementId())
|
| 75 |
+
->setInvoiceReference($invoice->getIncrementId())
|
| 76 |
+
->setInvoiceDescription(Mage::helper('ewayrapid')->__('Invoice created from Magento'));
|
| 77 |
+
}
|
| 78 |
+
$this->setPayment($paymentParam);
|
| 79 |
+
$this->setTransactionId($payment->getLastTransId());
|
| 80 |
+
|
| 81 |
+
$response = $this->_doRapidAPI('CapturePayment');
|
| 82 |
+
|
| 83 |
+
if($response->isSuccess()) {
|
| 84 |
+
$payment->setTransactionId($response->getTransactionID());
|
| 85 |
+
return $this;
|
| 86 |
+
} else {
|
| 87 |
+
if ($payment->getIsRecurring()) {
|
| 88 |
+
Mage::getSingleton('core/session')->setData('errorMessage', $response->getMessage());
|
| 89 |
+
}
|
| 90 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the capture. Please try again. (Error message: %s)',
|
| 91 |
+
$response->getMessage()));
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
/**
|
| 96 |
+
* Call Refund API, must complete the transaction (Authorized & Capture) beforehand
|
| 97 |
+
*
|
| 98 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 99 |
+
* @param $amount
|
| 100 |
+
* @return Eway_Rapid31_Model_Request_Direct
|
| 101 |
+
*/
|
| 102 |
+
public function doRefund(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 103 |
+
{
|
| 104 |
+
// Empty Varien_Object's data
|
| 105 |
+
$this->unsetData();
|
| 106 |
+
|
| 107 |
+
$order = $payment->getOrder();
|
| 108 |
+
/* @var Mage_Sales_Model_Order_Creditmemo $creditMemo */
|
| 109 |
+
$creditMemo = Mage::registry('current_creditmemo');
|
| 110 |
+
|
| 111 |
+
$invoice = ($creditMemo ? $creditMemo->getInvoice() : null);
|
| 112 |
+
/* @var Mage_Sales_Model_Order_Invoice $invoice */
|
| 113 |
+
if(!$invoice || !$invoice->getTransactionId()) {
|
| 114 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the online refund: Invoice or transaction does not exist.'));
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 118 |
+
$paymentParam->setTotalAmount($amount)
|
| 119 |
+
->setCurrencyCode($order->getBaseCurrencyCode())
|
| 120 |
+
->setTransactionID($invoice->getTransactionId());
|
| 121 |
+
if($creditMemo && $creditMemo->getIncrementId()) {
|
| 122 |
+
$paymentParam->setInvoiceDescription("Creditmemo ID " . $creditMemo->getIncrementId());
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
if($invoice && $invoice->getIncrementId()) {
|
| 126 |
+
$paymentParam->setInvoiceNumber($invoice->getIncrementId())
|
| 127 |
+
->setInvoiceReference($invoice->getIncrementId());
|
| 128 |
+
}
|
| 129 |
+
$this->setRefund($paymentParam);
|
| 130 |
+
|
| 131 |
+
$response = $this->_doRapidAPI('Transaction/' . $invoice->getTransactionId() . '/Refund');
|
| 132 |
+
|
| 133 |
+
if($response->isSuccess()) {
|
| 134 |
+
$payment->setTransactionId($response->getTransactionID());
|
| 135 |
+
return $this;
|
| 136 |
+
} else {
|
| 137 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the refund. Please try again. (Error message: %s)',
|
| 138 |
+
$response->getMessage()));
|
| 139 |
+
}
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
/**
|
| 143 |
+
* Call Cancel API, the transaction must be Authorized beforehand
|
| 144 |
+
*
|
| 145 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 146 |
+
* @return Eway_Rapid31_Model_Request_Direct
|
| 147 |
+
*/
|
| 148 |
+
public function doCancel(Mage_Sales_Model_Order_Payment $payment)
|
| 149 |
+
{
|
| 150 |
+
// Empty Varien_Object's data
|
| 151 |
+
$this->unsetData();
|
| 152 |
+
|
| 153 |
+
$transactionId = $payment->getLastTransId();
|
| 154 |
+
$this->setTransactionId($transactionId);
|
| 155 |
+
$response = $this->_doRapidAPI('CancelAuthorisation');
|
| 156 |
+
|
| 157 |
+
if($response->isSuccess()) {
|
| 158 |
+
$payment->setTransactionId($response->getTransactionID());
|
| 159 |
+
$payment->setIsTransactionClosed(1);
|
| 160 |
+
return $this;
|
| 161 |
+
} else {
|
| 162 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the cancel. Please try again. (Error message: %s)',
|
| 163 |
+
$response->getMessage()));
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
}
|
| 167 |
+
|
| 168 |
+
/**
|
| 169 |
+
* Build the request with necessary parameters for doAuthorisation() and doTransaction()
|
| 170 |
+
*
|
| 171 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 172 |
+
* @param $amount
|
| 173 |
+
* @return Eway_Rapid31_Model_Request_Direct
|
| 174 |
+
*/
|
| 175 |
+
protected function _buildRequest(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 176 |
+
{
|
| 177 |
+
// Empty Varien_Object's data
|
| 178 |
+
$this->unsetData();
|
| 179 |
+
$methodInstance = $payment->getMethodInstance();
|
| 180 |
+
$infoInstance = $methodInstance->getInfoInstance();
|
| 181 |
+
$order = $payment->getOrder();
|
| 182 |
+
$billing = $order->getBillingAddress();
|
| 183 |
+
$shipping = $order->getShippingAddress();
|
| 184 |
+
|
| 185 |
+
// if item is virtual product
|
| 186 |
+
if (!$shipping) {
|
| 187 |
+
$quote = Mage::getModel('checkout/cart')->getQuote();
|
| 188 |
+
if ($quote->isVirtual()) {
|
| 189 |
+
$shipping = $quote->getBillingAddress();
|
| 190 |
+
}
|
| 191 |
+
}
|
| 192 |
+
|
| 193 |
+
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 194 |
+
if(Mage::helper('ewayrapid')->isBackendOrder()) {
|
| 195 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
|
| 196 |
+
} else {
|
| 197 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
|
| 198 |
+
}
|
| 199 |
+
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 200 |
+
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY '.$version);
|
| 201 |
+
$this->setShippingMethod('Other');
|
| 202 |
+
|
| 203 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 204 |
+
$paymentParam->setTotalAmount($amount)
|
| 205 |
+
->setCurrencyCode($order->getBaseCurrencyCode());
|
| 206 |
+
$this->setPayment($paymentParam);
|
| 207 |
+
|
| 208 |
+
$title = $this->_fixTitle($billing->getPrefix());
|
| 209 |
+
|
| 210 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 211 |
+
$customerParam->setTitle($title)
|
| 212 |
+
->setFirstName($billing->getFirstname())
|
| 213 |
+
->setLastName($billing->getLastname())
|
| 214 |
+
->setCompanyName($billing->getCompany())
|
| 215 |
+
->setJobDescription('')
|
| 216 |
+
->setStreet1($billing->getStreet1())
|
| 217 |
+
->setStreet2($billing->getStreet2())
|
| 218 |
+
->setCity($billing->getCity())
|
| 219 |
+
->setState($billing->getRegion())
|
| 220 |
+
->setPostalCode($billing->getPostcode())
|
| 221 |
+
->setCountry(strtolower($billing->getCountryModel()->getIso2Code()))
|
| 222 |
+
->setEmail($billing->getEmail())
|
| 223 |
+
->setPhone($billing->getTelephone())
|
| 224 |
+
->setMobile('')
|
| 225 |
+
->setComments('')
|
| 226 |
+
->setFax($billing->getFax())
|
| 227 |
+
->setUrl('');
|
| 228 |
+
$cardDetails = Mage::getModel('ewayrapid/field_cardDetails');
|
| 229 |
+
$cardDetails->setName($infoInstance->getCcOwner())
|
| 230 |
+
->setNumber($infoInstance->getCcNumber())
|
| 231 |
+
->setExpiryMonth($infoInstance->getCcExpMonth())
|
| 232 |
+
->setExpiryYear($infoInstance->getCcExpYear())
|
| 233 |
+
->setCVN($infoInstance->getCcCid());
|
| 234 |
+
|
| 235 |
+
$customerParam->setCardDetails($cardDetails);
|
| 236 |
+
$this->setCustomer($customerParam);
|
| 237 |
+
|
| 238 |
+
$shippingParam = Mage::getModel('ewayrapid/field_shippingAddress');
|
| 239 |
+
$shippingParam->setFirstName($shipping->getFirstname())
|
| 240 |
+
->setLastName($shipping->getLastname())
|
| 241 |
+
->setStreet1($shipping->getStreet1())
|
| 242 |
+
->setStreet2($shipping->getStreet2())
|
| 243 |
+
->setCity($shipping->getCity())
|
| 244 |
+
->setState($shipping->getRegion())
|
| 245 |
+
->setPostalCode($shipping->getPostcode())
|
| 246 |
+
->setCountry(strtolower($shipping->getCountryModel()->getIso2Code()))
|
| 247 |
+
->setEmail($shipping->getEmail())
|
| 248 |
+
->setPhone($shipping->getTelephone())
|
| 249 |
+
->setFax($shipping->getFax());
|
| 250 |
+
$this->setShippingAddress($shippingParam);
|
| 251 |
+
|
| 252 |
+
if($methodInstance->getConfigData('transfer_cart_items')) {
|
| 253 |
+
$orderItems = $order->getAllVisibleItems();
|
| 254 |
+
$lineItems = array();
|
| 255 |
+
foreach($orderItems as $orderItem) {
|
| 256 |
+
/* @var Mage_Sales_Model_Order_Item $orderItem */
|
| 257 |
+
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
|
| 258 |
+
$lineItem->setSKU($orderItem->getSku());
|
| 259 |
+
$lineItem->setDescription(substr($orderItem->getName(), 0, 26));
|
| 260 |
+
$lineItem->setQuantity($orderItem->getQtyOrdered());
|
| 261 |
+
$lineItem->setUnitCost(round($orderItem->getBasePrice() * 100));
|
| 262 |
+
$lineItem->setTax(round($orderItem->getBaseTaxAmount() * 100));
|
| 263 |
+
$lineItem->setTotal(round($orderItem->getBaseRowTotalInclTax() * 100));
|
| 264 |
+
$lineItems[] = $lineItem;
|
| 265 |
+
}
|
| 266 |
+
$this->setItems($lineItems);
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
return $this;
|
| 270 |
+
}
|
| 271 |
}
|
app/code/community/Eway/Rapid31/Model/Request/Sharedpage.php
CHANGED
|
@@ -1,530 +1,533 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
class Eway_Rapid31_Model_Request_Sharedpage extends Eway_Rapid31_Model_Request_Abstract
|
| 4 |
-
{
|
| 5 |
-
/**
|
| 6 |
-
* @var Mage_Sales_Model_Quote
|
| 7 |
-
*/
|
| 8 |
-
protected $_quote = null;
|
| 9 |
-
|
| 10 |
-
/**
|
| 11 |
-
* @var Mage_Customer_Model_Session
|
| 12 |
-
*/
|
| 13 |
-
protected $_customerSession;
|
| 14 |
-
|
| 15 |
-
public function __construct($params = array())
|
| 16 |
-
{
|
| 17 |
-
if (isset($params['quote']) && $params['quote'] instanceof Mage_Sales_Model_Quote) {
|
| 18 |
-
$this->_quote = $params['quote'];
|
| 19 |
-
} else {
|
| 20 |
-
throw new Exception('Quote instance is required.');
|
| 21 |
-
}
|
| 22 |
-
|
| 23 |
-
$this->_config = Mage::getSingleton('ewayrapid/config');
|
| 24 |
-
$this->_customerSession = Mage::getSingleton('customer/session');
|
| 25 |
-
}
|
| 26 |
-
|
| 27 |
-
/**
|
| 28 |
-
* create AccessCode for process checkout
|
| 29 |
-
*
|
| 30 |
-
* @param null $returnUrl
|
| 31 |
-
* @param null $cancelUrl
|
| 32 |
-
* @return Eway_Rapid31_Model_Response
|
| 33 |
-
*/
|
| 34 |
-
public function createAccessCode($returnUrl = null, $cancelUrl = null)
|
| 35 |
-
{
|
| 36 |
-
// Empty Varien_Object's data
|
| 37 |
-
$this->unsetData();
|
| 38 |
-
$token = null;
|
| 39 |
-
$paypal = null;
|
| 40 |
-
$totalAmount = 0;
|
| 41 |
-
|
| 42 |
-
if ($this->getMethod() == Eway_Rapid31_Model_Config::PAYMENT_SAVED_METHOD) {
|
| 43 |
-
if ($this->_isNewToken()) {
|
| 44 |
-
$returnUrl .= '?newToken=1';
|
| 45 |
-
$method = Eway_Rapid31_Model_Config::METHOD_CREATE_TOKEN;
|
| 46 |
-
} elseif ($token = $this->_editToken()) {
|
| 47 |
-
$returnUrl .= '?editToken=' . $token;
|
| 48 |
-
$token = Mage::helper('ewayrapid/customer')->getCustomerTokenId($token);
|
| 49 |
-
$method = Eway_Rapid31_Model_Config::METHOD_UPDATE_TOKEN;
|
| 50 |
-
}
|
| 51 |
-
} else {
|
| 52 |
-
if (Mage::helper('ewayrapid')->getPaymentAction() === Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE) {
|
| 53 |
-
$method = Eway_Rapid31_Model_Config::METHOD_PROCESS_PAYMENT;
|
| 54 |
-
} else {
|
| 55 |
-
$method = Eway_Rapid31_Model_Config::METHOD_AUTHORISE;
|
| 56 |
-
}
|
| 57 |
-
$totalAmount = round($this->_quote->getBaseGrandTotal() * 100);
|
| 58 |
-
$paypal = $this->_getPaypalCheckout();
|
| 59 |
-
if ($paypal === Eway_Rapid31_Model_Config::PAYPAL_EXPRESS_METHOD) {
|
| 60 |
-
$this->setCheckoutPayment(true);
|
| 61 |
-
$this->setCheckoutURL(Mage::getUrl('ewayrapid/sharedpage/review'));
|
| 62 |
-
}
|
| 63 |
-
}
|
| 64 |
-
|
| 65 |
-
$this->_buildRequest();
|
| 66 |
-
|
| 67 |
-
$customer = $this->getCustomer();
|
| 68 |
-
$customer->setTokenCustomerID($token ? $token : '');
|
| 69 |
-
$this->setCustomer($customer);
|
| 70 |
-
|
| 71 |
-
// prepare API
|
| 72 |
-
$this->setRedirectUrl($returnUrl);
|
| 73 |
-
$this->setCancelUrl($cancelUrl);
|
| 74 |
-
$this->setMethod($method);
|
| 75 |
-
|
| 76 |
-
if (Mage::helper('ewayrapid')->getTransferCartLineItems()) {
|
| 77 |
-
// add Shipping item and Line items
|
| 78 |
-
$lineItems = Mage::helper('ewayrapid')->getLineItems();
|
| 79 |
-
$this->setItems($lineItems);
|
| 80 |
-
}
|
| 81 |
-
|
| 82 |
-
// add Payment
|
| 83 |
-
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 84 |
-
$paymentParam->setTotalAmount($totalAmount);
|
| 85 |
-
$paymentParam->setCurrencyCode($this->_quote->getBaseCurrencyCode());
|
| 86 |
-
$this->setPayment($paymentParam);
|
| 87 |
-
|
| 88 |
-
$response = $this->_doRapidAPI('AccessCodesShared');
|
| 89 |
-
return $response;
|
| 90 |
-
}
|
| 91 |
-
|
| 92 |
-
/**
|
| 93 |
-
* Call Authorisation API (Authorized only)
|
| 94 |
-
*
|
| 95 |
-
* @param Eway_Rapid31_Model_Response $response
|
| 96 |
-
* @return Eway_Rapid31_Model_Response
|
| 97 |
-
*/
|
| 98 |
-
public function doAuthorisation(Eway_Rapid31_Model_Response $response)
|
| 99 |
-
{
|
| 100 |
-
$this->unsetData();
|
| 101 |
-
|
| 102 |
-
$this->_buildRequest();
|
| 103 |
-
|
| 104 |
-
$cardData = $response->getCustomer();
|
| 105 |
-
if ($cardData['CardNumber'] && $cardData['CardName']) {
|
| 106 |
-
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_AUTHORISE);
|
| 107 |
-
} else {
|
| 108 |
-
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_TOKEN_PAYMENT);
|
| 109 |
-
}
|
| 110 |
-
|
| 111 |
-
$items = $this->_quote->getAllVisibleItems();
|
| 112 |
-
$lineItems = array();
|
| 113 |
-
foreach ($items as $item) {
|
| 114 |
-
/* @var Mage_Sales_Model_Order_Item $item */
|
| 115 |
-
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
|
| 116 |
-
$lineItem->setSKU($item->getSku());
|
| 117 |
-
$lineItem->setDescription(substr($item->getName(), 0, 26));
|
| 118 |
-
$lineItem->setQuantity($item->getQty());
|
| 119 |
-
$lineItem->setUnitCost(round($item->getBasePrice() * 100));
|
| 120 |
-
$lineItem->setTax(round($item->getBaseTaxAmount() * 100));
|
| 121 |
-
$lineItem->setTotal(round($item->getBaseRowTotalInclTax() * 100));
|
| 122 |
-
$lineItems[] = $lineItem;
|
| 123 |
-
}
|
| 124 |
-
$this->setItems($lineItems);
|
| 125 |
-
|
| 126 |
-
$this->setItems(false);
|
| 127 |
-
|
| 128 |
-
// add Payment
|
| 129 |
-
$amount = round($this->_quote->getBaseGrandTotal() * 100);
|
| 130 |
-
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 131 |
-
$paymentParam->setTotalAmount($amount);
|
| 132 |
-
$paymentParam->setCurrencyCode($this->_quote->getBaseCurrencyCode());
|
| 133 |
-
$this->setPayment($paymentParam);
|
| 134 |
-
|
| 135 |
-
$customerParam = $this->getCustomer();
|
| 136 |
-
$customerParam->setTokenCustomerID($response->getTokenCustomerID());
|
| 137 |
-
$this->setCustomer($customerParam);
|
| 138 |
-
|
| 139 |
-
$response = $this->_doRapidAPI('Authorisation');
|
| 140 |
-
return $response;
|
| 141 |
-
}
|
| 142 |
-
|
| 143 |
-
/**
|
| 144 |
-
* Call Transaction API (Authorized & Capture at the same time)
|
| 145 |
-
*
|
| 146 |
-
* @param Eway_Rapid31_Model_Response $response
|
| 147 |
-
* @return Eway_Rapid31_Model_Response
|
| 148 |
-
*/
|
| 149 |
-
public function doTransaction(Eway_Rapid31_Model_Response $response)
|
| 150 |
-
{
|
| 151 |
-
$this->unsetData();
|
| 152 |
-
|
| 153 |
-
$this->_buildRequest();
|
| 154 |
-
|
| 155 |
-
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_TOKEN_PAYMENT);
|
| 156 |
-
|
| 157 |
-
$items = $this->_quote->getAllVisibleItems();
|
| 158 |
-
$lineItems = array();
|
| 159 |
-
foreach ($items as $item) {
|
| 160 |
-
/* @var Mage_Sales_Model_Order_Item $item */
|
| 161 |
-
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
|
| 162 |
-
$lineItem->setSKU($item->getSku());
|
| 163 |
-
$lineItem->setDescription(substr($item->getName(), 0, 26));
|
| 164 |
-
$lineItem->setQuantity($item->getQty());
|
| 165 |
-
$lineItem->setUnitCost(round($item->getBasePrice() * 100));
|
| 166 |
-
$lineItem->setTax(round($item->getBaseTaxAmount() * 100));
|
| 167 |
-
$lineItem->setTotal(round($item->getBaseRowTotalInclTax() * 100));
|
| 168 |
-
$lineItems[] = $lineItem;
|
| 169 |
-
}
|
| 170 |
-
$this->setItems($lineItems);
|
| 171 |
-
|
| 172 |
-
$this->setItems(false);
|
| 173 |
-
|
| 174 |
-
// add Payment
|
| 175 |
-
$amount = round($this->_quote->getBaseGrandTotal() * 100);
|
| 176 |
-
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 177 |
-
$paymentParam->setTotalAmount($amount);
|
| 178 |
-
$paymentParam->setCurrencyCode($this->_quote->getBaseCurrencyCode());
|
| 179 |
-
$this->setPayment($paymentParam);
|
| 180 |
-
|
| 181 |
-
$customerParam = $this->getCustomer();
|
| 182 |
-
$customerParam->setTokenCustomerID($response->getTokenCustomerID());
|
| 183 |
-
|
| 184 |
-
$this->setCustomer($customerParam);
|
| 185 |
-
|
| 186 |
-
$response = $this->_doRapidAPI('Transaction');
|
| 187 |
-
return $response;
|
| 188 |
-
}
|
| 189 |
-
|
| 190 |
-
/**
|
| 191 |
-
* Call Capture API (do the Capture only, must Authorized previously)
|
| 192 |
-
*
|
| 193 |
-
* @param Eway_Rapid31_Model_Response $response
|
| 194 |
-
* @return Eway_Rapid31_Model_Response
|
| 195 |
-
*/
|
| 196 |
-
public function doCapturePayment(Eway_Rapid31_Model_Response $response)
|
| 197 |
-
{
|
| 198 |
-
$this->setTransactionId($response->getTransactionID());
|
| 199 |
-
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_PROCESS_PAYMENT);
|
| 200 |
-
|
| 201 |
-
$response = $this->_doRapidAPI('CapturePayment');
|
| 202 |
-
return $response;
|
| 203 |
-
}
|
| 204 |
-
|
| 205 |
-
/**
|
| 206 |
-
* Build the request with necessary parameters for doAuthorisation(), doTransaction() and CreateAccessCode()
|
| 207 |
-
*
|
| 208 |
-
* @return $this
|
| 209 |
-
*/
|
| 210 |
-
protected function _buildRequest()
|
| 211 |
-
{
|
| 212 |
-
// prepare API
|
| 213 |
-
$this->setShippingMethod('Other');
|
| 214 |
-
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 215 |
-
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 216 |
-
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY
|
| 217 |
-
if (Mage::helper('ewayrapid')->isBackendOrder()) {
|
| 218 |
-
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
|
| 219 |
-
} else {
|
| 220 |
-
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
|
| 221 |
-
}
|
| 222 |
-
$this->setCustomerReadOnly(true);
|
| 223 |
-
|
| 224 |
-
// add Billing Address
|
| 225 |
-
$billingAddress = $this->_quote->getBillingAddress();
|
| 226 |
-
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
->
|
| 232 |
-
->
|
| 233 |
-
->
|
| 234 |
-
->
|
| 235 |
-
->
|
| 236 |
-
->
|
| 237 |
-
->
|
| 238 |
-
->
|
| 239 |
-
->
|
| 240 |
-
->
|
| 241 |
-
->
|
| 242 |
-
->
|
| 243 |
-
->
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
$
|
| 248 |
-
|
| 249 |
-
//
|
| 250 |
-
$
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
)
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
->
|
| 263 |
-
->
|
| 264 |
-
->
|
| 265 |
-
->
|
| 266 |
-
->
|
| 267 |
-
->
|
| 268 |
-
->
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 280 |
-
|
| 281 |
-
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
|
| 291 |
-
|
| 292 |
-
|
| 293 |
-
|
| 294 |
-
|
| 295 |
-
|
| 296 |
-
|
| 297 |
-
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
|
| 328 |
-
|
| 329 |
-
|
| 330 |
-
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
| 339 |
-
|
| 340 |
-
|
| 341 |
-
|
| 342 |
-
|
| 343 |
-
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
$
|
| 350 |
-
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
|
| 354 |
-
|
| 355 |
-
|
| 356 |
-
|
| 357 |
-
->
|
| 358 |
-
->
|
| 359 |
-
->
|
| 360 |
-
->
|
| 361 |
-
->
|
| 362 |
-
->
|
| 363 |
-
->
|
| 364 |
-
->
|
| 365 |
-
->
|
| 366 |
-
->
|
| 367 |
-
->
|
| 368 |
-
->
|
| 369 |
-
|
| 370 |
-
|
| 371 |
-
|
| 372 |
-
|
| 373 |
-
|
| 374 |
-
|
| 375 |
-
|
| 376 |
-
->
|
| 377 |
-
->
|
| 378 |
-
->
|
| 379 |
-
->
|
| 380 |
-
->
|
| 381 |
-
|
| 382 |
-
|
| 383 |
-
|
| 384 |
-
|
| 385 |
-
|
| 386 |
-
$
|
| 387 |
-
|
| 388 |
-
|
| 389 |
-
|
| 390 |
-
|
| 391 |
-
}
|
| 392 |
-
|
| 393 |
-
|
| 394 |
-
|
| 395 |
-
|
| 396 |
-
|
| 397 |
-
|
| 398 |
-
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
*
|
| 402 |
-
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
$
|
| 409 |
-
|
| 410 |
-
$
|
| 411 |
-
$
|
| 412 |
-
$this->
|
| 413 |
-
$
|
| 414 |
-
$
|
| 415 |
-
|
| 416 |
-
$
|
| 417 |
-
$
|
| 418 |
-
|
| 419 |
-
|
| 420 |
-
|
| 421 |
-
|
| 422 |
-
|
| 423 |
-
|
| 424 |
-
|
| 425 |
-
|
| 426 |
-
|
| 427 |
-
|
| 428 |
-
}
|
| 429 |
-
|
| 430 |
-
|
| 431 |
-
}
|
| 432 |
-
|
| 433 |
-
|
| 434 |
-
|
| 435 |
-
|
| 436 |
-
|
| 437 |
-
|
| 438 |
-
|
| 439 |
-
*
|
| 440 |
-
|
| 441 |
-
|
| 442 |
-
|
| 443 |
-
|
| 444 |
-
|
| 445 |
-
|
| 446 |
-
|
| 447 |
-
|
| 448 |
-
|
| 449 |
-
|
| 450 |
-
'
|
| 451 |
-
'
|
| 452 |
-
'
|
| 453 |
-
'
|
| 454 |
-
'
|
| 455 |
-
'
|
| 456 |
-
'
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
|
| 463 |
-
|
| 464 |
-
|
| 465 |
-
|
| 466 |
-
|
| 467 |
-
|
| 468 |
-
|
| 469 |
-
|
| 470 |
-
*
|
| 471 |
-
*
|
| 472 |
-
|
| 473 |
-
|
| 474 |
-
|
| 475 |
-
|
| 476 |
-
|
| 477 |
-
|
| 478 |
-
|
| 479 |
-
|
| 480 |
-
|
| 481 |
-
|
| 482 |
-
'
|
| 483 |
-
'
|
| 484 |
-
'
|
| 485 |
-
'
|
| 486 |
-
'
|
| 487 |
-
'
|
| 488 |
-
'
|
| 489 |
-
|
| 490 |
-
|
| 491 |
-
|
| 492 |
-
|
| 493 |
-
|
| 494 |
-
|
| 495 |
-
|
| 496 |
-
|
| 497 |
-
|
| 498 |
-
|
| 499 |
-
|
| 500 |
-
|
| 501 |
-
|
| 502 |
-
|
| 503 |
-
|
| 504 |
-
|
| 505 |
-
|
| 506 |
-
|
| 507 |
-
|
| 508 |
-
|
| 509 |
-
|
| 510 |
-
|
| 511 |
-
|
| 512 |
-
|
| 513 |
-
|
| 514 |
-
|
| 515 |
-
|
| 516 |
-
|
| 517 |
-
|
| 518 |
-
|
| 519 |
-
|
| 520 |
-
|
| 521 |
-
|
| 522 |
-
|
| 523 |
-
|
| 524 |
-
|
| 525 |
-
|
| 526 |
-
|
| 527 |
-
|
| 528 |
-
|
| 529 |
-
|
|
|
|
|
|
|
|
|
|
| 530 |
}
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Eway_Rapid31_Model_Request_Sharedpage extends Eway_Rapid31_Model_Request_Abstract
|
| 4 |
+
{
|
| 5 |
+
/**
|
| 6 |
+
* @var Mage_Sales_Model_Quote
|
| 7 |
+
*/
|
| 8 |
+
protected $_quote = null;
|
| 9 |
+
|
| 10 |
+
/**
|
| 11 |
+
* @var Mage_Customer_Model_Session
|
| 12 |
+
*/
|
| 13 |
+
protected $_customerSession;
|
| 14 |
+
|
| 15 |
+
public function __construct($params = array())
|
| 16 |
+
{
|
| 17 |
+
if (isset($params['quote']) && $params['quote'] instanceof Mage_Sales_Model_Quote) {
|
| 18 |
+
$this->_quote = $params['quote'];
|
| 19 |
+
} else {
|
| 20 |
+
throw new Exception('Quote instance is required.');
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
$this->_config = Mage::getSingleton('ewayrapid/config');
|
| 24 |
+
$this->_customerSession = Mage::getSingleton('customer/session');
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
/**
|
| 28 |
+
* create AccessCode for process checkout
|
| 29 |
+
*
|
| 30 |
+
* @param null $returnUrl
|
| 31 |
+
* @param null $cancelUrl
|
| 32 |
+
* @return Eway_Rapid31_Model_Response
|
| 33 |
+
*/
|
| 34 |
+
public function createAccessCode($returnUrl = null, $cancelUrl = null)
|
| 35 |
+
{
|
| 36 |
+
// Empty Varien_Object's data
|
| 37 |
+
$this->unsetData();
|
| 38 |
+
$token = null;
|
| 39 |
+
$paypal = null;
|
| 40 |
+
$totalAmount = 0;
|
| 41 |
+
|
| 42 |
+
if ($this->getMethod() == Eway_Rapid31_Model_Config::PAYMENT_SAVED_METHOD) {
|
| 43 |
+
if ($this->_isNewToken()) {
|
| 44 |
+
$returnUrl .= '?newToken=1';
|
| 45 |
+
$method = Eway_Rapid31_Model_Config::METHOD_CREATE_TOKEN;
|
| 46 |
+
} elseif ($token = $this->_editToken()) {
|
| 47 |
+
$returnUrl .= '?editToken=' . $token;
|
| 48 |
+
$token = Mage::helper('ewayrapid/customer')->getCustomerTokenId($token);
|
| 49 |
+
$method = Eway_Rapid31_Model_Config::METHOD_UPDATE_TOKEN;
|
| 50 |
+
}
|
| 51 |
+
} else {
|
| 52 |
+
if (Mage::helper('ewayrapid')->getPaymentAction() === Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE) {
|
| 53 |
+
$method = Eway_Rapid31_Model_Config::METHOD_PROCESS_PAYMENT;
|
| 54 |
+
} else {
|
| 55 |
+
$method = Eway_Rapid31_Model_Config::METHOD_AUTHORISE;
|
| 56 |
+
}
|
| 57 |
+
$totalAmount = round($this->_quote->getBaseGrandTotal() * 100);
|
| 58 |
+
$paypal = $this->_getPaypalCheckout();
|
| 59 |
+
if ($paypal === Eway_Rapid31_Model_Config::PAYPAL_EXPRESS_METHOD) {
|
| 60 |
+
$this->setCheckoutPayment(true);
|
| 61 |
+
$this->setCheckoutURL(Mage::getUrl('ewayrapid/sharedpage/review'));
|
| 62 |
+
}
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
$this->_buildRequest();
|
| 66 |
+
|
| 67 |
+
$customer = $this->getCustomer();
|
| 68 |
+
$customer->setTokenCustomerID($token ? $token : '');
|
| 69 |
+
$this->setCustomer($customer);
|
| 70 |
+
|
| 71 |
+
// prepare API
|
| 72 |
+
$this->setRedirectUrl($returnUrl);
|
| 73 |
+
$this->setCancelUrl($cancelUrl);
|
| 74 |
+
$this->setMethod($method);
|
| 75 |
+
|
| 76 |
+
if (Mage::helper('ewayrapid')->getTransferCartLineItems()) {
|
| 77 |
+
// add Shipping item and Line items
|
| 78 |
+
$lineItems = Mage::helper('ewayrapid')->getLineItems();
|
| 79 |
+
$this->setItems($lineItems);
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
// add Payment
|
| 83 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 84 |
+
$paymentParam->setTotalAmount($totalAmount);
|
| 85 |
+
$paymentParam->setCurrencyCode($this->_quote->getBaseCurrencyCode());
|
| 86 |
+
$this->setPayment($paymentParam);
|
| 87 |
+
|
| 88 |
+
$response = $this->_doRapidAPI('AccessCodesShared');
|
| 89 |
+
return $response;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
/**
|
| 93 |
+
* Call Authorisation API (Authorized only)
|
| 94 |
+
*
|
| 95 |
+
* @param Eway_Rapid31_Model_Response $response
|
| 96 |
+
* @return Eway_Rapid31_Model_Response
|
| 97 |
+
*/
|
| 98 |
+
public function doAuthorisation(Eway_Rapid31_Model_Response $response)
|
| 99 |
+
{
|
| 100 |
+
$this->unsetData();
|
| 101 |
+
|
| 102 |
+
$this->_buildRequest();
|
| 103 |
+
|
| 104 |
+
$cardData = $response->getCustomer();
|
| 105 |
+
if ($cardData['CardNumber'] && $cardData['CardName']) {
|
| 106 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_AUTHORISE);
|
| 107 |
+
} else {
|
| 108 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_TOKEN_PAYMENT);
|
| 109 |
+
}
|
| 110 |
+
|
| 111 |
+
$items = $this->_quote->getAllVisibleItems();
|
| 112 |
+
$lineItems = array();
|
| 113 |
+
foreach ($items as $item) {
|
| 114 |
+
/* @var Mage_Sales_Model_Order_Item $item */
|
| 115 |
+
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
|
| 116 |
+
$lineItem->setSKU($item->getSku());
|
| 117 |
+
$lineItem->setDescription(substr($item->getName(), 0, 26));
|
| 118 |
+
$lineItem->setQuantity($item->getQty());
|
| 119 |
+
$lineItem->setUnitCost(round($item->getBasePrice() * 100));
|
| 120 |
+
$lineItem->setTax(round($item->getBaseTaxAmount() * 100));
|
| 121 |
+
$lineItem->setTotal(round($item->getBaseRowTotalInclTax() * 100));
|
| 122 |
+
$lineItems[] = $lineItem;
|
| 123 |
+
}
|
| 124 |
+
$this->setItems($lineItems);
|
| 125 |
+
|
| 126 |
+
$this->setItems(false);
|
| 127 |
+
|
| 128 |
+
// add Payment
|
| 129 |
+
$amount = round($this->_quote->getBaseGrandTotal() * 100);
|
| 130 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 131 |
+
$paymentParam->setTotalAmount($amount);
|
| 132 |
+
$paymentParam->setCurrencyCode($this->_quote->getBaseCurrencyCode());
|
| 133 |
+
$this->setPayment($paymentParam);
|
| 134 |
+
|
| 135 |
+
$customerParam = $this->getCustomer();
|
| 136 |
+
$customerParam->setTokenCustomerID($response->getTokenCustomerID());
|
| 137 |
+
$this->setCustomer($customerParam);
|
| 138 |
+
|
| 139 |
+
$response = $this->_doRapidAPI('Authorisation');
|
| 140 |
+
return $response;
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
/**
|
| 144 |
+
* Call Transaction API (Authorized & Capture at the same time)
|
| 145 |
+
*
|
| 146 |
+
* @param Eway_Rapid31_Model_Response $response
|
| 147 |
+
* @return Eway_Rapid31_Model_Response
|
| 148 |
+
*/
|
| 149 |
+
public function doTransaction(Eway_Rapid31_Model_Response $response)
|
| 150 |
+
{
|
| 151 |
+
$this->unsetData();
|
| 152 |
+
|
| 153 |
+
$this->_buildRequest();
|
| 154 |
+
|
| 155 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_TOKEN_PAYMENT);
|
| 156 |
+
|
| 157 |
+
$items = $this->_quote->getAllVisibleItems();
|
| 158 |
+
$lineItems = array();
|
| 159 |
+
foreach ($items as $item) {
|
| 160 |
+
/* @var Mage_Sales_Model_Order_Item $item */
|
| 161 |
+
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
|
| 162 |
+
$lineItem->setSKU($item->getSku());
|
| 163 |
+
$lineItem->setDescription(substr($item->getName(), 0, 26));
|
| 164 |
+
$lineItem->setQuantity($item->getQty());
|
| 165 |
+
$lineItem->setUnitCost(round($item->getBasePrice() * 100));
|
| 166 |
+
$lineItem->setTax(round($item->getBaseTaxAmount() * 100));
|
| 167 |
+
$lineItem->setTotal(round($item->getBaseRowTotalInclTax() * 100));
|
| 168 |
+
$lineItems[] = $lineItem;
|
| 169 |
+
}
|
| 170 |
+
$this->setItems($lineItems);
|
| 171 |
+
|
| 172 |
+
$this->setItems(false);
|
| 173 |
+
|
| 174 |
+
// add Payment
|
| 175 |
+
$amount = round($this->_quote->getBaseGrandTotal() * 100);
|
| 176 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 177 |
+
$paymentParam->setTotalAmount($amount);
|
| 178 |
+
$paymentParam->setCurrencyCode($this->_quote->getBaseCurrencyCode());
|
| 179 |
+
$this->setPayment($paymentParam);
|
| 180 |
+
|
| 181 |
+
$customerParam = $this->getCustomer();
|
| 182 |
+
$customerParam->setTokenCustomerID($response->getTokenCustomerID());
|
| 183 |
+
|
| 184 |
+
$this->setCustomer($customerParam);
|
| 185 |
+
|
| 186 |
+
$response = $this->_doRapidAPI('Transaction');
|
| 187 |
+
return $response;
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
/**
|
| 191 |
+
* Call Capture API (do the Capture only, must Authorized previously)
|
| 192 |
+
*
|
| 193 |
+
* @param Eway_Rapid31_Model_Response $response
|
| 194 |
+
* @return Eway_Rapid31_Model_Response
|
| 195 |
+
*/
|
| 196 |
+
public function doCapturePayment(Eway_Rapid31_Model_Response $response)
|
| 197 |
+
{
|
| 198 |
+
$this->setTransactionId($response->getTransactionID());
|
| 199 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_PROCESS_PAYMENT);
|
| 200 |
+
|
| 201 |
+
$response = $this->_doRapidAPI('CapturePayment');
|
| 202 |
+
return $response;
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
/**
|
| 206 |
+
* Build the request with necessary parameters for doAuthorisation(), doTransaction() and CreateAccessCode()
|
| 207 |
+
*
|
| 208 |
+
* @return $this
|
| 209 |
+
*/
|
| 210 |
+
protected function _buildRequest()
|
| 211 |
+
{
|
| 212 |
+
// prepare API
|
| 213 |
+
$this->setShippingMethod('Other');
|
| 214 |
+
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 215 |
+
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 216 |
+
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY '.$version);
|
| 217 |
+
if (Mage::helper('ewayrapid')->isBackendOrder()) {
|
| 218 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
|
| 219 |
+
} else {
|
| 220 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
|
| 221 |
+
}
|
| 222 |
+
$this->setCustomerReadOnly(true);
|
| 223 |
+
|
| 224 |
+
// add Billing Address
|
| 225 |
+
$billingAddress = $this->_quote->getBillingAddress();
|
| 226 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 227 |
+
|
| 228 |
+
$title = $this->_fixTitle($billingAddress->getPrefix());
|
| 229 |
+
|
| 230 |
+
$customerParam->setTitle($title)
|
| 231 |
+
->setFirstName($billingAddress->getFirstname())
|
| 232 |
+
->setLastName($billingAddress->getLastname())
|
| 233 |
+
->setCompanyName($billingAddress->getCompany())
|
| 234 |
+
->setJobDescription($billingAddress->getJobDescription())
|
| 235 |
+
->setStreet1($billingAddress->getStreet1())
|
| 236 |
+
->setStreet2($billingAddress->getStreet2())
|
| 237 |
+
->setCity($billingAddress->getCity())
|
| 238 |
+
->setState($billingAddress->getRegion())
|
| 239 |
+
->setPostalCode($billingAddress->getPostcode())
|
| 240 |
+
->setCountry(strtolower($billingAddress->getCountryModel()->getIso2Code()))
|
| 241 |
+
->setEmail($billingAddress->getEmail())
|
| 242 |
+
->setPhone($billingAddress->getTelephone())
|
| 243 |
+
->setMobile($billingAddress->getMobile())
|
| 244 |
+
->setComments('')
|
| 245 |
+
->setFax($billingAddress->getFax())
|
| 246 |
+
->setUrl('');
|
| 247 |
+
$this->setCustomer($customerParam);
|
| 248 |
+
|
| 249 |
+
// add Shipping Address
|
| 250 |
+
$shippingAddress = $this->_quote->getShippingAddress();
|
| 251 |
+
|
| 252 |
+
// copy BillingAddress to ShippingAddress if checkout with guest or register
|
| 253 |
+
$checkoutMethod = $this->_quote->getCheckoutMethod();
|
| 254 |
+
if ($checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_GUEST
|
| 255 |
+
|| $checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER
|
| 256 |
+
) {
|
| 257 |
+
$shippingAddress = $billingAddress;
|
| 258 |
+
}
|
| 259 |
+
|
| 260 |
+
$shippingParam = Mage::getModel('ewayrapid/field_shippingAddress');
|
| 261 |
+
$shippingParam->setFirstName($shippingAddress->getFirstname())
|
| 262 |
+
->setLastName($shippingAddress->getLastname())
|
| 263 |
+
->setStreet1($shippingAddress->getStreet1())
|
| 264 |
+
->setStreet2($shippingAddress->getStreet2())
|
| 265 |
+
->setCity($shippingAddress->getCity())
|
| 266 |
+
->setState($shippingAddress->getRegion())
|
| 267 |
+
->setPostalCode($shippingAddress->getPostcode())
|
| 268 |
+
->setCountry(strtolower($shippingAddress->getCountryModel()->getIso2Code()))
|
| 269 |
+
->setEmail($shippingAddress->getEmail())
|
| 270 |
+
->setPhone($shippingAddress->getTelephone())
|
| 271 |
+
->setFax($shippingAddress->getFax());
|
| 272 |
+
$this->setShippingAddress($shippingParam);
|
| 273 |
+
|
| 274 |
+
return $this;
|
| 275 |
+
}
|
| 276 |
+
|
| 277 |
+
/**
|
| 278 |
+
* Get customer information by access code
|
| 279 |
+
*/
|
| 280 |
+
public function getInfoByAccessCode($accessCode)
|
| 281 |
+
{
|
| 282 |
+
$response = $this->_doRapidAPI('AccessCode/' . $accessCode, false);
|
| 283 |
+
return $response;
|
| 284 |
+
}
|
| 285 |
+
|
| 286 |
+
/**
|
| 287 |
+
* Get customer session object
|
| 288 |
+
*
|
| 289 |
+
* @return Mage_Customer_Model_Session
|
| 290 |
+
*/
|
| 291 |
+
public function getCustomerSession()
|
| 292 |
+
{
|
| 293 |
+
return $this->_customerSession;
|
| 294 |
+
}
|
| 295 |
+
|
| 296 |
+
/**
|
| 297 |
+
* check is new token when checkout
|
| 298 |
+
*
|
| 299 |
+
* @return bool
|
| 300 |
+
*/
|
| 301 |
+
protected function _isNewToken()
|
| 302 |
+
{
|
| 303 |
+
$info = $this->_quote->getPayment();
|
| 304 |
+
Mage::helper('ewayrapid')->unserializeInfoInstace($info);
|
| 305 |
+
if ($token = Mage::getSingleton('core/session')->getData('newToken')) {
|
| 306 |
+
Mage::getSingleton('core/session')->unsetData('newToken');
|
| 307 |
+
return true;
|
| 308 |
+
}
|
| 309 |
+
return false;
|
| 310 |
+
}
|
| 311 |
+
|
| 312 |
+
/**
|
| 313 |
+
* get TokenCustomerID is selected of customer
|
| 314 |
+
*
|
| 315 |
+
* @return mixed
|
| 316 |
+
*/
|
| 317 |
+
protected function _editToken()
|
| 318 |
+
{
|
| 319 |
+
if ($token = Mage::getSingleton('core/session')->getData('editToken')) {
|
| 320 |
+
Mage::getSingleton('core/session')->unsetData('editToken');
|
| 321 |
+
return $token;
|
| 322 |
+
}
|
| 323 |
+
return $token;
|
| 324 |
+
}
|
| 325 |
+
|
| 326 |
+
/**
|
| 327 |
+
* check paypal option in eway not saved
|
| 328 |
+
*
|
| 329 |
+
* @return mixed|null
|
| 330 |
+
*/
|
| 331 |
+
protected function _getPaypalCheckout()
|
| 332 |
+
{
|
| 333 |
+
if ($paypal = Mage::getSingleton('core/session')->getData('sharedpagePaypal')) {
|
| 334 |
+
Mage::getModel('core/session')->unsetData('sharedpagePaypal');
|
| 335 |
+
return $paypal;
|
| 336 |
+
}
|
| 337 |
+
return null;
|
| 338 |
+
}
|
| 339 |
+
|
| 340 |
+
/**
|
| 341 |
+
* update customer when edit shipping address to paypal
|
| 342 |
+
*
|
| 343 |
+
* @param $accessCode
|
| 344 |
+
*/
|
| 345 |
+
public function updateCustomer($accessCode)
|
| 346 |
+
{
|
| 347 |
+
$response = $this->_doRapidAPI('Transaction/' . $accessCode, 'GET');
|
| 348 |
+
if ($response->isSuccess()) {
|
| 349 |
+
$customer = $this->_quote->getCustomer();
|
| 350 |
+
$billingAddress = $this->_quote->getBillingAddress();
|
| 351 |
+
$shippingAddress = $this->_quote->getShippingAddress();
|
| 352 |
+
$trans = $response->getTransactions();
|
| 353 |
+
|
| 354 |
+
if (isset($trans[0]['Customer'])) {
|
| 355 |
+
$billing = $trans[0]['Customer'];
|
| 356 |
+
$billingAddress->setFirstname($billing['FirstName'])
|
| 357 |
+
->setLastName($billing['LastName'])
|
| 358 |
+
->setCompany($billing['CompanyName'])
|
| 359 |
+
->setJobDescription($billing['JobDescription'])
|
| 360 |
+
->setStreet($billing['Street1'])
|
| 361 |
+
->setStreet2($billing['Street2'])
|
| 362 |
+
->setCity($billing['City'])
|
| 363 |
+
->setState($billing['State'])
|
| 364 |
+
->setPostcode($billing['PostalCode'])
|
| 365 |
+
->setCountryId(strtoupper($billing['Country']))
|
| 366 |
+
->setEmail($billing['Email'])
|
| 367 |
+
->setTelephone($billing['Phone'])
|
| 368 |
+
->setMobile($billing['Mobile'])
|
| 369 |
+
->setComments($billing['Comments'])
|
| 370 |
+
->setFax($billing['Fax'])
|
| 371 |
+
->setUrl($billing['Url']);
|
| 372 |
+
}
|
| 373 |
+
if (isset($trans[0]['ShippingAddress'])) {
|
| 374 |
+
$shipping = $trans[0]['ShippingAddress'];
|
| 375 |
+
$shippingAddress->setFirstname($shipping['FirstName'])
|
| 376 |
+
->setLastname($shipping['LastName'])
|
| 377 |
+
->setStreet($shipping['Street1'])
|
| 378 |
+
->setStreet2($shipping['Street2'])
|
| 379 |
+
->setCity($shipping['City'])
|
| 380 |
+
->setPostcode($shipping['PostalCode'])
|
| 381 |
+
->setCountryId(strtoupper($shipping['Country']))
|
| 382 |
+
->setEmail($shipping['Email'])
|
| 383 |
+
->setFax($shipping['Fax']);
|
| 384 |
+
|
| 385 |
+
if ($shipping['State']
|
| 386 |
+
&& $shipping['Country']
|
| 387 |
+
&& $region = Mage::getModel('directory/region')->loadByCode($shipping['State'], $shipping['Country'])
|
| 388 |
+
) {
|
| 389 |
+
$shippingAddress->setRegion($region->getName())
|
| 390 |
+
->setRegionId($region->getId());
|
| 391 |
+
}
|
| 392 |
+
if ($shipping['Phone']) {
|
| 393 |
+
$shippingAddress->setTelephone($shipping['Phone']);
|
| 394 |
+
}
|
| 395 |
+
}
|
| 396 |
+
$this->_quote->assignCustomerWithAddressChange($customer, $billingAddress, $shippingAddress)->save();
|
| 397 |
+
}
|
| 398 |
+
}
|
| 399 |
+
|
| 400 |
+
/**
|
| 401 |
+
* save token when checkout with eway saved
|
| 402 |
+
*
|
| 403 |
+
* @param Eway_Rapid31_Model_Response $response
|
| 404 |
+
* @param null $ccNumber
|
| 405 |
+
*/
|
| 406 |
+
public function saveTokenById(Eway_Rapid31_Model_Response $response, $ccNumber = null)
|
| 407 |
+
{
|
| 408 |
+
$this->unsetData();
|
| 409 |
+
|
| 410 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 411 |
+
$customerParam->setTokenCustomerID($response->getTokenCustomerID());
|
| 412 |
+
$this->setCustomer($customerParam);
|
| 413 |
+
$payment = Mage::getModel('ewayrapid/field_payment');
|
| 414 |
+
$payment->setTotalAmount(1);
|
| 415 |
+
$this->setPayment($payment);
|
| 416 |
+
$this->setRedirectUrl(Mage::getBaseUrl() . '/ewayrapid/sharedpage/saveToken');
|
| 417 |
+
$this->setMethod('');
|
| 418 |
+
|
| 419 |
+
$response = $this->_doRapidAPI('AccessCodesShared');
|
| 420 |
+
$token = true;
|
| 421 |
+
if ($response->isSuccess()) {
|
| 422 |
+
if (!$ccNumber) {
|
| 423 |
+
$token = $this->_createNewToken($response);
|
| 424 |
+
} else {
|
| 425 |
+
$token = $this->_updateToken($response, $ccNumber);
|
| 426 |
+
}
|
| 427 |
+
|
| 428 |
+
} else {
|
| 429 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while creating new token. Please try again. (Error message: %s)',
|
| 430 |
+
$response->getMessage()));
|
| 431 |
+
}
|
| 432 |
+
if (!$token) {
|
| 433 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while process token. Please try again.'));
|
| 434 |
+
}
|
| 435 |
+
return $response;
|
| 436 |
+
}
|
| 437 |
+
|
| 438 |
+
/**
|
| 439 |
+
* Create new token when checkout
|
| 440 |
+
*
|
| 441 |
+
* @param Eway_Rapid31_Model_Response $response
|
| 442 |
+
* @return $this
|
| 443 |
+
*/
|
| 444 |
+
protected function _createNewToken(Eway_Rapid31_Model_Response $response)
|
| 445 |
+
{
|
| 446 |
+
try {
|
| 447 |
+
$customer = $response->getCustomer();
|
| 448 |
+
|
| 449 |
+
$tokenInfo = array(
|
| 450 |
+
'Token' => $response->getTokenCustomerID(),
|
| 451 |
+
'Card' => $customer['CardNumber'] ? substr_replace($customer['CardNumber'], '******', 6, 6) : 'Paypal',
|
| 452 |
+
'Owner' => $customer['CardName'],
|
| 453 |
+
'StartMonth' => $customer['CardStartMonth'],
|
| 454 |
+
'StartYear' => $customer['CardStartYear'],
|
| 455 |
+
'IssueNumber' => $customer['CardIssueNumber'],
|
| 456 |
+
'ExpMonth' => $customer['CardExpiryMonth'],
|
| 457 |
+
'ExpYear' => (strlen($customer['CardExpiryYear']) == 2 ? '20' . $customer['CardExpiryYear'] : $customer['CardExpiryYear']),
|
| 458 |
+
'Type' => $this->checkCardType($customer['CardNumber']),
|
| 459 |
+
'Address' => Mage::getModel('ewayrapid/field_customer')->addData($customer),
|
| 460 |
+
);
|
| 461 |
+
|
| 462 |
+
Mage::helper('ewayrapid/customer')->addToken($tokenInfo);
|
| 463 |
+
return true;
|
| 464 |
+
} catch (Exception $e) {
|
| 465 |
+
return false;
|
| 466 |
+
}
|
| 467 |
+
}
|
| 468 |
+
|
| 469 |
+
/**
|
| 470 |
+
* Update token when checkout with existing token
|
| 471 |
+
*
|
| 472 |
+
* @param Eway_Rapid31_Model_Response $response
|
| 473 |
+
* @param null $ccNumber
|
| 474 |
+
* @return $this
|
| 475 |
+
*/
|
| 476 |
+
protected function _updateToken(Eway_Rapid31_Model_Response $response, $ccNumber = null)
|
| 477 |
+
{
|
| 478 |
+
try {
|
| 479 |
+
$customer = $response->getCustomer();
|
| 480 |
+
|
| 481 |
+
$tokenInfo = array(
|
| 482 |
+
'Token' => $response->getTokenCustomerID(),
|
| 483 |
+
'Card' => $customer['CardNumber'] ? substr_replace($customer['CardNumber'], '******', 6, 6) : 'Paypal',
|
| 484 |
+
'Owner' => $customer['CardName'],
|
| 485 |
+
'StartMonth' => $customer['CardStartMonth'],
|
| 486 |
+
'StartYear' => $customer['CardStartYear'],
|
| 487 |
+
'IssueNumber' => $customer['CardIssueNumber'],
|
| 488 |
+
'ExpMonth' => $customer['CardExpiryMonth'],
|
| 489 |
+
'ExpYear' => (strlen($customer['CardExpiryYear']) == 2 ? '20' . $customer['CardExpiryYear'] : $customer['CardExpiryYear']),
|
| 490 |
+
'Type' => $this->checkCardType($customer['CardNumber']),
|
| 491 |
+
'Address' => Mage::getModel('ewayrapid/field_customer')->addData($customer),
|
| 492 |
+
);
|
| 493 |
+
|
| 494 |
+
Mage::helper('ewayrapid/customer')->updateToken($ccNumber, $tokenInfo);
|
| 495 |
+
return true;
|
| 496 |
+
} catch (Exception $e) {
|
| 497 |
+
return false;
|
| 498 |
+
}
|
| 499 |
+
}
|
| 500 |
+
|
| 501 |
+
/**
|
| 502 |
+
* Get card type name by card number
|
| 503 |
+
* @param $num Card number
|
| 504 |
+
* @return string Card type name
|
| 505 |
+
*/
|
| 506 |
+
public function checkCardType($num)
|
| 507 |
+
{
|
| 508 |
+
if ($num == null) {
|
| 509 |
+
return Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD;
|
| 510 |
+
}
|
| 511 |
+
return Mage::getModel('ewayrapid/request_token')->checkCardType($num);
|
| 512 |
+
}
|
| 513 |
+
|
| 514 |
+
public function getShippingByCode($postalCode)
|
| 515 |
+
{
|
| 516 |
+
$groups = $this->_quote->getShippingAddress()
|
| 517 |
+
->collectShippingRates()
|
| 518 |
+
->getGroupedAllShippingRates();
|
| 519 |
+
// determine current selected code & name
|
| 520 |
+
foreach ($groups as $code => $rates) {
|
| 521 |
+
foreach ($rates as $rate) {
|
| 522 |
+
if (strtoupper($postalCode) == strtoupper($rate->getCode())) {
|
| 523 |
+
return $rate;
|
| 524 |
+
}
|
| 525 |
+
}
|
| 526 |
+
}
|
| 527 |
+
return false;
|
| 528 |
+
}
|
| 529 |
+
public function getMethod()
|
| 530 |
+
{
|
| 531 |
+
return Mage::getSingleton('core/session')->getData('ewayMethod');
|
| 532 |
+
}
|
| 533 |
}
|
app/code/community/Eway/Rapid31/Model/Request/Token.php
CHANGED
|
@@ -1,516 +1,525 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
class Eway_Rapid31_Model_Request_Token extends Eway_Rapid31_Model_Request_Direct
|
| 3 |
-
{
|
| 4 |
-
/**
|
| 5 |
-
* Call create new customer token API
|
| 6 |
-
*
|
| 7 |
-
* @param Varien_Object $billing
|
| 8 |
-
* @param Varien_Object $infoInstance
|
| 9 |
-
* @return Eway_Rapid31_Model_Request_Token
|
| 10 |
-
*/
|
| 11 |
-
public function createNewToken(Varien_Object $billing, Varien_Object $infoInstance)
|
| 12 |
-
{
|
| 13 |
-
// Empty Varien_Object's data
|
| 14 |
-
$this->unsetData();
|
| 15 |
-
|
| 16 |
-
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
->
|
| 22 |
-
->
|
| 23 |
-
->
|
| 24 |
-
->
|
| 25 |
-
->
|
| 26 |
-
->
|
| 27 |
-
->
|
| 28 |
-
->
|
| 29 |
-
->
|
| 30 |
-
->
|
| 31 |
-
->
|
| 32 |
-
->
|
| 33 |
-
->
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
->
|
| 41 |
-
->
|
| 42 |
-
->
|
| 43 |
-
->
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
$
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
$customerReturn
|
| 53 |
-
$
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
'
|
| 58 |
-
'
|
| 59 |
-
'
|
| 60 |
-
'
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
Mage::
|
| 66 |
-
|
| 67 |
-
}
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
*
|
| 75 |
-
*
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
$
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
->
|
| 95 |
-
->
|
| 96 |
-
->
|
| 97 |
-
->
|
| 98 |
-
->
|
| 99 |
-
->
|
| 100 |
-
->
|
| 101 |
-
->
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
$
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
$
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
$
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
$
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
$this->
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
$
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
/**
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
$
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
->
|
| 222 |
-
->
|
| 223 |
-
->
|
| 224 |
-
->
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
$
|
| 229 |
-
$
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
$
|
| 238 |
-
$lineItem
|
| 239 |
-
$
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
->
|
| 274 |
-
->
|
| 275 |
-
->
|
| 276 |
-
->
|
| 277 |
-
->
|
| 278 |
-
->
|
| 279 |
-
->
|
| 280 |
-
->
|
| 281 |
-
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
$
|
| 286 |
-
|
| 287 |
-
|
| 288 |
-
$
|
| 289 |
-
|
| 290 |
-
|
| 291 |
-
|
| 292 |
-
|
| 293 |
-
if($
|
| 294 |
-
$returnUrl .= '&
|
| 295 |
-
}
|
| 296 |
-
|
| 297 |
-
|
| 298 |
-
|
| 299 |
-
$
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
$
|
| 307 |
-
|
| 308 |
-
$
|
| 309 |
-
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
$
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
$response = $this->_doRapidAPI(
|
| 326 |
-
return $response;
|
| 327 |
-
}
|
| 328 |
-
|
| 329 |
-
|
| 330 |
-
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
$
|
| 335 |
-
$
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
| 339 |
-
|
| 340 |
-
|
| 341 |
-
$this->
|
| 342 |
-
|
| 343 |
-
$
|
| 344 |
-
$
|
| 345 |
-
$
|
| 346 |
-
$
|
| 347 |
-
$
|
| 348 |
-
|
| 349 |
-
$
|
| 350 |
-
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
|
| 354 |
-
|
| 355 |
-
|
| 356 |
-
|
| 357 |
-
|
| 358 |
-
|
| 359 |
-
|
| 360 |
-
|
| 361 |
-
|
| 362 |
-
|
| 363 |
-
|
| 364 |
-
|
| 365 |
-
$
|
| 366 |
-
|
| 367 |
-
|
| 368 |
-
|
| 369 |
-
|
| 370 |
-
|
| 371 |
-
|
| 372 |
-
|
| 373 |
-
|
| 374 |
-
|
| 375 |
-
|
| 376 |
-
'
|
| 377 |
-
'
|
| 378 |
-
'
|
| 379 |
-
'
|
| 380 |
-
'
|
| 381 |
-
'
|
| 382 |
-
'
|
| 383 |
-
'
|
| 384 |
-
'
|
| 385 |
-
'
|
| 386 |
-
|
| 387 |
-
|
| 388 |
-
'
|
| 389 |
-
'
|
| 390 |
-
'
|
| 391 |
-
'
|
| 392 |
-
'
|
| 393 |
-
'
|
| 394 |
-
'
|
| 395 |
-
|
| 396 |
-
|
| 397 |
-
'
|
| 398 |
-
'
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
|
| 402 |
-
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
|
| 414 |
-
|
| 415 |
-
|
| 416 |
-
|
| 417 |
-
|
| 418 |
-
|
| 419 |
-
|
| 420 |
-
|
| 421 |
-
|
| 422 |
-
|
| 423 |
-
|
| 424 |
-
'
|
| 425 |
-
'
|
| 426 |
-
'
|
| 427 |
-
'
|
| 428 |
-
'
|
| 429 |
-
'
|
| 430 |
-
'
|
| 431 |
-
'
|
| 432 |
-
'
|
| 433 |
-
'
|
| 434 |
-
|
| 435 |
-
|
| 436 |
-
|
| 437 |
-
'
|
| 438 |
-
'
|
| 439 |
-
'
|
| 440 |
-
'
|
| 441 |
-
'
|
| 442 |
-
'
|
| 443 |
-
|
| 444 |
-
|
| 445 |
-
|
| 446 |
-
'
|
| 447 |
-
|
| 448 |
-
|
| 449 |
-
|
| 450 |
-
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
|
| 455 |
-
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
|
| 463 |
-
|
| 464 |
-
|
| 465 |
-
|
| 466 |
-
|
| 467 |
-
|
| 468 |
-
|
| 469 |
-
|
| 470 |
-
|
| 471 |
-
|
| 472 |
-
|
| 473 |
-
|
| 474 |
-
|
| 475 |
-
|
| 476 |
-
|
| 477 |
-
|
| 478 |
-
if (preg_match('/^(
|
| 479 |
-
return '
|
| 480 |
-
}
|
| 481 |
-
if (preg_match('/^
|
| 482 |
-
|
| 483 |
-
|
| 484 |
-
if (preg_match('/^
|
| 485 |
-
return '
|
| 486 |
-
}
|
| 487 |
-
if (preg_match('/^(
|
| 488 |
-
return '
|
| 489 |
-
}
|
| 490 |
-
|
| 491 |
-
|
| 492 |
-
|
| 493 |
-
|
| 494 |
-
|
| 495 |
-
|
| 496 |
-
|
| 497 |
-
|
| 498 |
-
|
| 499 |
-
|
| 500 |
-
|
| 501 |
-
|
| 502 |
-
|
| 503 |
-
|
| 504 |
-
|
| 505 |
-
|
| 506 |
-
|
| 507 |
-
|
| 508 |
-
|
| 509 |
-
|
| 510 |
-
|
| 511 |
-
|
| 512 |
-
|
| 513 |
-
|
| 514 |
-
|
| 515 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 516 |
}
|
| 1 |
+
<?php
|
| 2 |
+
class Eway_Rapid31_Model_Request_Token extends Eway_Rapid31_Model_Request_Direct
|
| 3 |
+
{
|
| 4 |
+
/**
|
| 5 |
+
* Call create new customer token API
|
| 6 |
+
*
|
| 7 |
+
* @param Varien_Object $billing
|
| 8 |
+
* @param Varien_Object $infoInstance
|
| 9 |
+
* @return Eway_Rapid31_Model_Request_Token
|
| 10 |
+
*/
|
| 11 |
+
public function createNewToken(Varien_Object $billing, Varien_Object $infoInstance)
|
| 12 |
+
{
|
| 13 |
+
// Empty Varien_Object's data
|
| 14 |
+
$this->unsetData();
|
| 15 |
+
|
| 16 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 17 |
+
|
| 18 |
+
$title = $this->_fixTitle($billing->getPrefix());
|
| 19 |
+
|
| 20 |
+
$customerParam->setTitle($title)
|
| 21 |
+
->setFirstName($billing->getFirstname())
|
| 22 |
+
->setLastName($billing->getLastname())
|
| 23 |
+
->setCompanyName($billing->getCompany())
|
| 24 |
+
->setJobDescription($billing->getJobDescription())
|
| 25 |
+
->setStreet1($billing->getStreet1())
|
| 26 |
+
->setStreet2($billing->getStreet2())
|
| 27 |
+
->setCity($billing->getCity())
|
| 28 |
+
->setState($billing->getRegion())
|
| 29 |
+
->setPostalCode($billing->getPostcode())
|
| 30 |
+
->setCountry(strtolower($billing->getCountryModel()->getIso2Code()))
|
| 31 |
+
->setEmail($billing->getEmail())
|
| 32 |
+
->setPhone($billing->getTelephone())
|
| 33 |
+
->setMobile($billing->getMobile())
|
| 34 |
+
->setComments('')
|
| 35 |
+
->setFax($billing->getFax())
|
| 36 |
+
->setUrl('');
|
| 37 |
+
|
| 38 |
+
$cardDetails = Mage::getModel('ewayrapid/field_cardDetails');
|
| 39 |
+
$cardDetails->setName($infoInstance->getCcOwner())
|
| 40 |
+
->setNumber($infoInstance->getCcNumber())
|
| 41 |
+
->setExpiryMonth($infoInstance->getCcExpMonth())
|
| 42 |
+
->setExpiryYear($infoInstance->getCcExpYear())
|
| 43 |
+
->setCVN($infoInstance->getCcCid())
|
| 44 |
+
->setStartMonth($infoInstance->getStartMonth())
|
| 45 |
+
->setStartYear($infoInstance->getStartYear())
|
| 46 |
+
->setIssueNumber($infoInstance->getIssueNumber());
|
| 47 |
+
$customerParam->setCardDetails($cardDetails);
|
| 48 |
+
$this->setCustomer($customerParam);
|
| 49 |
+
|
| 50 |
+
$response = $this->_doRapidAPI('Customer');
|
| 51 |
+
if ($response->isSuccess()) {
|
| 52 |
+
$customerReturn = $response->getCustomer();
|
| 53 |
+
$cardDetails = $customerReturn['CardDetails'];
|
| 54 |
+
unset($customerReturn['CardDetails']);
|
| 55 |
+
$customerReturn['RegionId'] = ((!$billing->getRegion() && $billing->getRegionId()) ? $billing->getRegionId() : '');
|
| 56 |
+
$tokenInfo = array(
|
| 57 |
+
'Token' => $response->getTokenCustomerID(),
|
| 58 |
+
'Card' => substr_replace($cardDetails['Number'], '******', 6, 6),
|
| 59 |
+
'Owner' => $infoInstance->getCcOwner(),
|
| 60 |
+
'ExpMonth' => $infoInstance->getCcExpMonth(),
|
| 61 |
+
'ExpYear' => $infoInstance->getCcExpYear(),
|
| 62 |
+
'Type' => $infoInstance->getCcType(),
|
| 63 |
+
'Address' => Mage::getModel('ewayrapid/field_customer')->addData($customerReturn),
|
| 64 |
+
);
|
| 65 |
+
Mage::helper('ewayrapid/customer')->addToken($tokenInfo);
|
| 66 |
+
return $this;
|
| 67 |
+
} else {
|
| 68 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while creating new token. Please try again. (Error message: %s)',
|
| 69 |
+
$response->getMessage()));
|
| 70 |
+
}
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
/**
|
| 74 |
+
* Update current token
|
| 75 |
+
*
|
| 76 |
+
* @param Varien_Object $billing
|
| 77 |
+
* @param Varien_Object $infoInstance
|
| 78 |
+
* @return Eway_Rapid31_Model_Request_Token
|
| 79 |
+
*/
|
| 80 |
+
public function updateToken(Varien_Object $billing, Varien_Object $infoInstance)
|
| 81 |
+
{
|
| 82 |
+
if (!Mage::helper('ewayrapid')->isBackendOrder() && !Mage::getSingleton('ewayrapid/config')->canEditToken()) {
|
| 83 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('Customers are not allowed to edit token.'));
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
// Empty Varien_Object's data
|
| 87 |
+
$this->unsetData();
|
| 88 |
+
|
| 89 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 90 |
+
|
| 91 |
+
$title = $this->_fixTitle($billing->getPrefix());
|
| 92 |
+
|
| 93 |
+
$customerParam->setTitle($title)
|
| 94 |
+
->setFirstName($billing->getFirstname())
|
| 95 |
+
->setLastName($billing->getLastname())
|
| 96 |
+
->setCompanyName($billing->getCompany())
|
| 97 |
+
->setJobDescription($billing->getJobDescription())
|
| 98 |
+
->setStreet1($billing->getStreet1())
|
| 99 |
+
->setStreet2($billing->getStreet2())
|
| 100 |
+
->setCity($billing->getCity())
|
| 101 |
+
->setState($billing->getRegion())
|
| 102 |
+
->setPostalCode($billing->getPostcode())
|
| 103 |
+
->setCountry(strtolower($billing->getCountryModel()->getIso2Code()))
|
| 104 |
+
->setEmail($billing->getEmail())
|
| 105 |
+
->setPhone($billing->getTelephone())
|
| 106 |
+
->setMobile($billing->getMobile())
|
| 107 |
+
->setFax($billing->getFax());
|
| 108 |
+
|
| 109 |
+
$customerHelper = Mage::helper('ewayrapid/customer');
|
| 110 |
+
$customerTokenId = $customerHelper->getCustomerTokenId($infoInstance->getSavedToken());
|
| 111 |
+
if ($customerTokenId) {
|
| 112 |
+
$customerParam->setTokenCustomerID($customerTokenId);
|
| 113 |
+
} else {
|
| 114 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while updating token: Token info does not exist.'));
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
$cardDetails = Mage::getModel('ewayrapid/field_cardDetails');
|
| 118 |
+
$cardDetails->setName($infoInstance->getCcOwner())
|
| 119 |
+
->setExpiryMonth($infoInstance->getCcExpMonth())
|
| 120 |
+
->setNumber('444433XXXXXX1111') // Required dummy card number for update to work
|
| 121 |
+
->setExpiryYear($infoInstance->getCcExpYear())
|
| 122 |
+
->setCVN($infoInstance->getCcCid());
|
| 123 |
+
$customerParam->setCardDetails($cardDetails);
|
| 124 |
+
|
| 125 |
+
$this->setCustomer($customerParam);
|
| 126 |
+
|
| 127 |
+
$response = $this->_doRapidAPI('Customer', 'PUT');
|
| 128 |
+
if ($response->isSuccess()) {
|
| 129 |
+
$customerReturn = $response->getCustomer();
|
| 130 |
+
$customerReturn['RegionId'] = ((!$billing->getRegion() && $billing->getRegionId()) ? $billing->getRegionId() : '');
|
| 131 |
+
unset($customerReturn['CardDetails']);
|
| 132 |
+
$tokenInfo = array(
|
| 133 |
+
'Token' => $response->getTokenCustomerID(),
|
| 134 |
+
'Owner' => $infoInstance->getCcOwner(),
|
| 135 |
+
'ExpMonth' => $infoInstance->getCcExpMonth(),
|
| 136 |
+
'ExpYear' => $infoInstance->getCcExpYear(),
|
| 137 |
+
'Address' => Mage::getModel('ewayrapid/field_customer')->addData($customerReturn),
|
| 138 |
+
);
|
| 139 |
+
Mage::helper('ewayrapid/customer')->updateToken($infoInstance->getSavedToken(), $tokenInfo);
|
| 140 |
+
return $this;
|
| 141 |
+
} else {
|
| 142 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while updating token. Please try again. (Error message: %s)',
|
| 143 |
+
$response->getMessage()));
|
| 144 |
+
}
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
protected function _buildRequest(Mage_Sales_Model_Order_Payment $payment, $amount)
|
| 148 |
+
{
|
| 149 |
+
// Empty Varien_Object's data
|
| 150 |
+
$this->unsetData();
|
| 151 |
+
// in case recurring profile, $methodInstance is not exist, and $payment->getIsRecurring() is used
|
| 152 |
+
if (!$payment->getIsRecurring()) {
|
| 153 |
+
$methodInstance = $payment->getMethodInstance();
|
| 154 |
+
$infoInstance = $methodInstance->getInfoInstance();
|
| 155 |
+
Mage::helper('ewayrapid')->unserializeInfoInstace($infoInstance);
|
| 156 |
+
}
|
| 157 |
+
$order = $payment->getOrder();
|
| 158 |
+
$shipping = $order->getShippingAddress();
|
| 159 |
+
|
| 160 |
+
// if item is virtual product
|
| 161 |
+
if (!$shipping) {
|
| 162 |
+
$quote = Mage::getModel('checkout/cart')->getQuote();
|
| 163 |
+
if ($quote->isVirtual()) {
|
| 164 |
+
$shipping = $quote->getBillingAddress();
|
| 165 |
+
}
|
| 166 |
+
}
|
| 167 |
+
|
| 168 |
+
if (!$payment->getIsRecurring()) {
|
| 169 |
+
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 170 |
+
}
|
| 171 |
+
if (Mage::helper('ewayrapid')->isBackendOrder()) {
|
| 172 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
|
| 173 |
+
} elseif ($payment->getIsRecurring()) {
|
| 174 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_RECURRING);
|
| 175 |
+
} else {
|
| 176 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
|
| 177 |
+
}
|
| 178 |
+
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 179 |
+
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY '.$version);
|
| 180 |
+
$this->setShippingMethod('Other');
|
| 181 |
+
|
| 182 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 183 |
+
$paymentParam->setTotalAmount($amount)
|
| 184 |
+
->setCurrencyCode($order->getBaseCurrencyCode());
|
| 185 |
+
$this->setPayment($paymentParam);
|
| 186 |
+
|
| 187 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 188 |
+
$customerTokenId = null;
|
| 189 |
+
|
| 190 |
+
/** get $customerTokenId if product is recurring profile */
|
| 191 |
+
if ($payment->getIsRecurring()) {
|
| 192 |
+
/** @todo save customer id and tokent id into payment when place order */
|
| 193 |
+
$customer = Mage::getModel('customer/customer')->load($payment->getCustomerId());
|
| 194 |
+
$customerHelper = Mage::helper('ewayrapid/customer');
|
| 195 |
+
$customerHelper->setCurrentCustomer($customer);
|
| 196 |
+
$customerTokenId = $customerHelper->getCustomerTokenId($payment->getTokenId());
|
| 197 |
+
} else {
|
| 198 |
+
/** get $customerTokenId if product is normal item */
|
| 199 |
+
if ($infoInstance->getSavedToken()) {
|
| 200 |
+
$customerHelper = Mage::helper('ewayrapid/customer');
|
| 201 |
+
$customerTokenId = $customerHelper->getCustomerTokenId($infoInstance->getSavedToken());
|
| 202 |
+
}
|
| 203 |
+
else {
|
| 204 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while making the transaction: Token info does not exist.'));
|
| 205 |
+
}
|
| 206 |
+
}
|
| 207 |
+
if ($customerTokenId) {
|
| 208 |
+
$customerParam->setTokenCustomerID($customerTokenId);
|
| 209 |
+
if ($this->getTransactionType() == Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE) {
|
| 210 |
+
$cardDetails = Mage::getModel('ewayrapid/field_cardDetails');
|
| 211 |
+
$cardDetails->setCVN($infoInstance->getCcCid());
|
| 212 |
+
$customerParam->setCardDetails($cardDetails);
|
| 213 |
+
}
|
| 214 |
+
$this->setCustomer($customerParam);
|
| 215 |
+
} else {
|
| 216 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while making the transaction: Token info does not exist.'));
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
$shippingParam = Mage::getModel('ewayrapid/field_shippingAddress');
|
| 220 |
+
$shippingParam->setFirstName($shipping->getFirstname())
|
| 221 |
+
->setLastName($shipping->getLastname())
|
| 222 |
+
->setStreet1($shipping->getStreet1())
|
| 223 |
+
->setStreet2($shipping->getStreet2())
|
| 224 |
+
->setCity($shipping->getCity())
|
| 225 |
+
->setState($shipping->getRegion())
|
| 226 |
+
->setPostalCode($shipping->getPostcode())
|
| 227 |
+
->setCountry(strtolower($shipping->getCountryModel()->getIso2Code()))
|
| 228 |
+
->setEmail($shipping->getEmail())
|
| 229 |
+
->setPhone($shipping->getTelephone())
|
| 230 |
+
->setFax($shipping->getFax());
|
| 231 |
+
$this->setShippingAddress($shippingParam);
|
| 232 |
+
|
| 233 |
+
if ((isset($methodInstance) && $methodInstance->getConfigData('transfer_cart_items')) || $payment->getIsRecurring() || !$payment->getIsInitialFee()) {
|
| 234 |
+
$orderItems = $order->getAllVisibleItems();
|
| 235 |
+
$lineItems = array();
|
| 236 |
+
foreach ($orderItems as $orderItem) {
|
| 237 |
+
/* @var Mage_Sales_Model_Order_Item $orderItem */
|
| 238 |
+
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
|
| 239 |
+
$lineItem->setSKU($orderItem->getSku());
|
| 240 |
+
$lineItem->setDescription(substr($orderItem->getName(), 0, 26));
|
| 241 |
+
$lineItem->setQuantity($orderItem->getQtyOrdered());
|
| 242 |
+
$lineItem->setUnitCost(round($orderItem->getBasePrice() * 100));
|
| 243 |
+
$lineItem->setTax(round($orderItem->getBaseTaxAmount() * 100));
|
| 244 |
+
$lineItem->setTotal(round($orderItem->getBaseRowTotalInclTax() * 100));
|
| 245 |
+
$lineItems[] = $lineItem;
|
| 246 |
+
}
|
| 247 |
+
$this->setItems($lineItems);
|
| 248 |
+
}
|
| 249 |
+
|
| 250 |
+
|
| 251 |
+
return $this;
|
| 252 |
+
}
|
| 253 |
+
|
| 254 |
+
/**
|
| 255 |
+
* Create new AccessCode
|
| 256 |
+
* @param Varien_Object $billing
|
| 257 |
+
* @param Varien_Object $infoInstance
|
| 258 |
+
* @param string $method
|
| 259 |
+
* @param null $request
|
| 260 |
+
* @return Eway_Rapid31_Model_Response
|
| 261 |
+
*/
|
| 262 |
+
public function createAccessCode(Varien_Object $billing, Varien_Object $infoInstance,
|
| 263 |
+
$method = 'AccessCodes', $request = null)
|
| 264 |
+
{
|
| 265 |
+
// Empty Varien_Object's data
|
| 266 |
+
$tokenCustomerID = $request->get('TokenCustomerID');
|
| 267 |
+
$this->unsetData();
|
| 268 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 269 |
+
|
| 270 |
+
$title = $this->_fixTitle($billing->getPrefix());
|
| 271 |
+
|
| 272 |
+
$customerParam->setTokenCustomerID($tokenCustomerID)
|
| 273 |
+
->setTitle($title)
|
| 274 |
+
->setFirstName($billing->getFirstname())
|
| 275 |
+
->setLastName($billing->getLastname())
|
| 276 |
+
->setCompanyName($billing->getCompany())
|
| 277 |
+
->setJobDescription($billing->getJobDescription())
|
| 278 |
+
->setStreet1($billing->getStreet1())
|
| 279 |
+
->setStreet2($billing->getStreet2())
|
| 280 |
+
->setCity($billing->getCity())
|
| 281 |
+
->setState($billing->getRegion())
|
| 282 |
+
->setPostalCode($billing->getPostcode())
|
| 283 |
+
->setCountry(strtolower($billing->getCountryModel()->getIso2Code()))
|
| 284 |
+
->setEmail($billing->getEmail())
|
| 285 |
+
->setPhone($billing->getTelephone())
|
| 286 |
+
->setMobile($billing->getMobile())
|
| 287 |
+
->setComments('')
|
| 288 |
+
->setFax($billing->getFax())
|
| 289 |
+
->setUrl('');
|
| 290 |
+
|
| 291 |
+
$returnUrl = Mage::getBaseUrl() . '/ewayrapid/mycards/saveToken?ccType='
|
| 292 |
+
. $infoInstance->getCcType() . '&expYear=' . $infoInstance->getCcExpYear();
|
| 293 |
+
if ($request->get('is_default') == 'on') {
|
| 294 |
+
$returnUrl .= '&is_default=on';
|
| 295 |
+
}
|
| 296 |
+
if($infoInstance->getCcStartMonth()) {
|
| 297 |
+
$returnUrl .= '&startMonth=' . $infoInstance->getCcStartMonth();
|
| 298 |
+
}
|
| 299 |
+
if($infoInstance->getCcStartYear()) {
|
| 300 |
+
$returnUrl .= '&startYear=' . $infoInstance->getCcStartYear();
|
| 301 |
+
}
|
| 302 |
+
if($infoInstance->getCcIssueNumber()) {
|
| 303 |
+
$returnUrl .= '&issueNumber=' . $infoInstance->getCcIssueNumber();
|
| 304 |
+
}
|
| 305 |
+
// Binding address on url param
|
| 306 |
+
$returnUrl .= '&street1=' . base64_encode($billing->getStreet1())
|
| 307 |
+
. '&street2=' . base64_encode($billing->getStreet2());
|
| 308 |
+
$tokenId = $request->get('token_id');
|
| 309 |
+
if (!empty($tokenId)) { // ID token customer will be defined to update
|
| 310 |
+
$returnUrl = $returnUrl . '&token_id=' . $tokenId;
|
| 311 |
+
}
|
| 312 |
+
|
| 313 |
+
$this->setCustomer($customerParam);
|
| 314 |
+
$this->setRedirectUrl($returnUrl);
|
| 315 |
+
$this->setCancelUrl($returnUrl);
|
| 316 |
+
$this->setMethod(!empty($tokenCustomerID) ? 'UpdateTokenCustomer' : 'CreateTokenCustomer');
|
| 317 |
+
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 318 |
+
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 319 |
+
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY '.$version);
|
| 320 |
+
$this->setTransactionType("Purchase");
|
| 321 |
+
$this->setCustomerReadOnly(true);
|
| 322 |
+
|
| 323 |
+
// Create new access code
|
| 324 |
+
//$formMethod = !empty($tokenCustomerID) ? 'PUT' : 'POST';
|
| 325 |
+
$response = $this->_doRapidAPI($method);
|
| 326 |
+
return $response;
|
| 327 |
+
}
|
| 328 |
+
|
| 329 |
+
/*
|
| 330 |
+
* Get customer information by access code
|
| 331 |
+
*/
|
| 332 |
+
public function getInfoByAccessCode($accessCode)
|
| 333 |
+
{
|
| 334 |
+
$response = $this->_doRapidAPI('AccessCode/' . $accessCode, false);
|
| 335 |
+
return $response;
|
| 336 |
+
}
|
| 337 |
+
|
| 338 |
+
public function saveInfoByTokenId($cardData)
|
| 339 |
+
{
|
| 340 |
+
// Empty Varien_Object's data
|
| 341 |
+
$this->unsetData();
|
| 342 |
+
|
| 343 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 344 |
+
$customerParam->setTokenCustomerID($cardData['token']);
|
| 345 |
+
$payment = Mage::getModel('ewayrapid/field_payment');
|
| 346 |
+
$payment->setTotalAmount(1);
|
| 347 |
+
$returnUrl = Mage::getBaseUrl() . '/ewayrapid/mycards';
|
| 348 |
+
|
| 349 |
+
$this->setCustomer($customerParam);
|
| 350 |
+
$this->setPayment($payment);
|
| 351 |
+
$this->setRedirectUrl($returnUrl);
|
| 352 |
+
$this->setMethod('');
|
| 353 |
+
$this->setTransactionType('');
|
| 354 |
+
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 355 |
+
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY '.$version);
|
| 356 |
+
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 357 |
+
|
| 358 |
+
$response = $this->_doRapidAPI('AccessCodes');
|
| 359 |
+
|
| 360 |
+
if ($cardData['token_id']) {
|
| 361 |
+
// Update card
|
| 362 |
+
$this->__updateTokenTransparentOrSharedPage($response, $cardData);
|
| 363 |
+
} else
|
| 364 |
+
// Create new token
|
| 365 |
+
$this->__createNewTokenTransparentOrSharedPage($response, $cardData);
|
| 366 |
+
return $this;
|
| 367 |
+
|
| 368 |
+
}
|
| 369 |
+
|
| 370 |
+
private function __createNewTokenTransparentOrSharedPage($response, $cardData)
|
| 371 |
+
{
|
| 372 |
+
if ($response->isSuccess()) {
|
| 373 |
+
$data = $response->getData();
|
| 374 |
+
$customer = $data['Customer'];
|
| 375 |
+
$address = array(
|
| 376 |
+
//'TokenCustomerID' => $customer['TokenCustomerID'],
|
| 377 |
+
'Reference' => $customer['Reference'],
|
| 378 |
+
'Title' => $customer['Title'],
|
| 379 |
+
'FirstName' => $customer['FirstName'],
|
| 380 |
+
'LastName' => $customer['LastName'],
|
| 381 |
+
'CompanyName' => $customer['CompanyName'],
|
| 382 |
+
'JobDescription' => $customer['JobDescription'],
|
| 383 |
+
'Street1' => isset($cardData['street1'])? $cardData['street1'] : $customer['Street1'],
|
| 384 |
+
'Street2' => isset($cardData['street2']) ? $cardData['street2'] : $customer['Street2'],
|
| 385 |
+
'City' => $customer['City'],
|
| 386 |
+
'State' => $customer['State'],
|
| 387 |
+
'PostalCode' => $customer['PostalCode'],
|
| 388 |
+
'Country' => $customer['Country'],
|
| 389 |
+
'Email' => $customer['Email'],
|
| 390 |
+
'Phone' => $customer['Phone'],
|
| 391 |
+
'Mobile' => $customer['Mobile'],
|
| 392 |
+
'Comments' => $customer['Comments'],
|
| 393 |
+
'Fax' => $customer['Fax'],
|
| 394 |
+
'Url' => $customer['Url']
|
| 395 |
+
);
|
| 396 |
+
$tokenInfo = array(
|
| 397 |
+
'Token' => $response->getTokenCustomerID(),
|
| 398 |
+
'Card' => substr_replace($customer['CardNumber'], '******', 6, 6),
|
| 399 |
+
'Owner' => $customer['CardName'],
|
| 400 |
+
'StartMonth' => $cardData['startMonth'],
|
| 401 |
+
'StartYear' => $cardData['startYear'],
|
| 402 |
+
'IssueNumber' => $cardData['issueNumber'],
|
| 403 |
+
'ExpMonth' => $customer['CardExpiryMonth'],
|
| 404 |
+
'ExpYear' => (!empty($cardData['expYear']) ? $cardData['expYear'] :
|
| 405 |
+
(strlen($customer['CardExpiryYear']) == 2 ? '20' . $customer['CardExpiryYear'] : $customer['CardExpiryYear'])),
|
| 406 |
+
'Type' => $cardData['ccType'] ? $cardData['ccType'] : $this->checkCardType($customer['CardNumber']),
|
| 407 |
+
'Address' => Mage::getModel('ewayrapid/field_customer')->addData($address),
|
| 408 |
+
);
|
| 409 |
+
|
| 410 |
+
Mage::helper('ewayrapid/customer')->addToken($tokenInfo);
|
| 411 |
+
return $this;
|
| 412 |
+
} else {
|
| 413 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while creating new token. Please try again. (Error message: %s)',
|
| 414 |
+
$response->getMessage()));
|
| 415 |
+
}
|
| 416 |
+
}
|
| 417 |
+
|
| 418 |
+
private function __updateTokenTransparentOrSharedPage($res, $cardData)
|
| 419 |
+
{
|
| 420 |
+
if ($res->isSuccess()) {
|
| 421 |
+
$data = $res->getData();
|
| 422 |
+
$customer = $data['Customer'];
|
| 423 |
+
$address = array(
|
| 424 |
+
//'TokenCustomerID' => $customer['TokenCustomerID'],
|
| 425 |
+
'Reference' => $customer['Reference'],
|
| 426 |
+
'Title' => $customer['Title'],
|
| 427 |
+
'FirstName' => $customer['FirstName'],
|
| 428 |
+
'LastName' => $customer['LastName'],
|
| 429 |
+
'CompanyName' => $customer['CompanyName'],
|
| 430 |
+
'JobDescription' => $customer['JobDescription'],
|
| 431 |
+
'Street1' => isset($cardData['street1'])? $cardData['street1'] : $customer['Street1'],
|
| 432 |
+
'Street2' => isset($cardData['street2']) ? $cardData['street2'] : $customer['Street2'],
|
| 433 |
+
'City' => $customer['City'],
|
| 434 |
+
'State' => $customer['State'],
|
| 435 |
+
'PostalCode' => $customer['PostalCode'],
|
| 436 |
+
'Country' => $customer['Country'],
|
| 437 |
+
'Email' => $customer['Email'],
|
| 438 |
+
'Phone' => $customer['Phone'],
|
| 439 |
+
'Mobile' => $customer['Mobile'],
|
| 440 |
+
'Comments' => $customer['Comments'],
|
| 441 |
+
'Fax' => $customer['Fax'],
|
| 442 |
+
'Url' => $customer['Url']
|
| 443 |
+
);
|
| 444 |
+
|
| 445 |
+
$tokenInfo = array(
|
| 446 |
+
'Token' => $res->getTokenCustomerID(),
|
| 447 |
+
'Owner' => $customer['CardName'],
|
| 448 |
+
'StartMonth' => $cardData['startMonth'],
|
| 449 |
+
'StartYear' => $cardData['startYear'],
|
| 450 |
+
'IssueNumber' => $cardData['issueNumber'],
|
| 451 |
+
'ExpMonth' => $customer['CardExpiryMonth'],
|
| 452 |
+
'ExpYear' => (!empty($cardData['expYear']) ? $cardData['expYear'] :
|
| 453 |
+
(strlen($customer['CardExpiryYear']) == 2 ? '20' . $customer['CardExpiryYear'] : $customer['CardExpiryYear'])),
|
| 454 |
+
'Type' => $cardData['ccType'] ? $cardData['ccType'] : $this->checkCardType($customer['CardNumber']),
|
| 455 |
+
'Address' => Mage::getModel('ewayrapid/field_customer')->addData($address),
|
| 456 |
+
);
|
| 457 |
+
//edit card number if connection type = shared page
|
| 458 |
+
if (Mage::getStoreConfig('payment/ewayrapid_general/connection_type') === Eway_Rapid31_Model_Config::CONNECTION_SHARED_PAGE) {
|
| 459 |
+
$tokenInfo['Card'] = str_replace('X', '*', $customer['CardNumber']);
|
| 460 |
+
$tokenInfo['Card'] = str_replace('x', '*', $tokenInfo['Card']);
|
| 461 |
+
}
|
| 462 |
+
|
| 463 |
+
Mage::helper('ewayrapid/customer')->updateToken($cardData['token_id'], $tokenInfo);
|
| 464 |
+
return $this;
|
| 465 |
+
} else {
|
| 466 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while creating new token. Please try again. (Error message: %s)',
|
| 467 |
+
$res->getMessage()));
|
| 468 |
+
}
|
| 469 |
+
}
|
| 470 |
+
|
| 471 |
+
/**
|
| 472 |
+
* Get card type name by card number
|
| 473 |
+
* @param $num Card number
|
| 474 |
+
* @return string Card type name
|
| 475 |
+
*/
|
| 476 |
+
public function checkCardType($num)
|
| 477 |
+
{
|
| 478 |
+
if (preg_match('/^(4026|417500|4508|4844|4913|4917)/', $num)) {
|
| 479 |
+
return 'VE';
|
| 480 |
+
}
|
| 481 |
+
if (preg_match('/^4/', $num)) {
|
| 482 |
+
return 'VI';
|
| 483 |
+
}
|
| 484 |
+
if (preg_match('/^(34|37)/', $num)) {
|
| 485 |
+
return 'AE';
|
| 486 |
+
}
|
| 487 |
+
if (preg_match('/^(5[1-5])/', $num)) {
|
| 488 |
+
return 'MC';
|
| 489 |
+
}
|
| 490 |
+
if (preg_match('/^(2131|1800)/', $num)) {
|
| 491 |
+
return 'JCB';
|
| 492 |
+
}
|
| 493 |
+
if (preg_match('/^36/', $num)) {
|
| 494 |
+
return 'DC';
|
| 495 |
+
}
|
| 496 |
+
if (preg_match('/^(5018|5020|5038|5893|6304|6759|6761|6762|6763)/', $num)) {
|
| 497 |
+
return 'ME';
|
| 498 |
+
}
|
| 499 |
+
|
| 500 |
+
return 'Unknown';
|
| 501 |
+
}
|
| 502 |
+
|
| 503 |
+
public function getTransaction($transaction_number) {
|
| 504 |
+
|
| 505 |
+
}
|
| 506 |
+
|
| 507 |
+
|
| 508 |
+
/**
|
| 509 |
+
* Check Card Name
|
| 510 |
+
* @param $card Card Info
|
| 511 |
+
* @return string Card name: paypal | masterpass | mastercard
|
| 512 |
+
*/
|
| 513 |
+
public function checkCardName($card)
|
| 514 |
+
{
|
| 515 |
+
$cardType = strtolower($card->getType());
|
| 516 |
+
if (preg_match('/^paypal/', $cardType)) {
|
| 517 |
+
return Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD;
|
| 518 |
+
}
|
| 519 |
+
$ccTypes = Mage::getSingleton('ewayrapid/system_config_source_cctype')->getAllowedTypes();
|
| 520 |
+
if (in_array(strtoupper($cardType), $ccTypes)) {
|
| 521 |
+
return Eway_Rapid31_Model_Config::CREDITCARD_METHOD;
|
| 522 |
+
}
|
| 523 |
+
return Eway_Rapid31_Model_Config::MASTERPASS_METHOD;
|
| 524 |
+
}
|
| 525 |
}
|
app/code/community/Eway/Rapid31/Model/Request/Transparent.php
CHANGED
|
@@ -1,686 +1,694 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
class Eway_Rapid31_Model_Request_Transparent extends Eway_Rapid31_Model_Request_Abstract
|
| 4 |
-
{
|
| 5 |
-
/**
|
| 6 |
-
* Get AccessCode
|
| 7 |
-
*
|
| 8 |
-
* @param Mage_Sales_Model_Quote $quote
|
| 9 |
-
* @return Eway_Rapid31_Model_Response
|
| 10 |
-
*/
|
| 11 |
-
public function createAccessCode(Mage_Sales_Model_Quote $quote, $method = 'ProcessPayment', $action = 'AccessCodes')
|
| 12 |
-
{
|
| 13 |
-
// Empty Varien_Object's data
|
| 14 |
-
$this->unsetData();
|
| 15 |
-
|
| 16 |
-
$billingAddress = $quote->getBillingAddress();
|
| 17 |
-
|
| 18 |
-
$
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
->
|
| 23 |
-
->
|
| 24 |
-
->
|
| 25 |
-
->
|
| 26 |
-
->
|
| 27 |
-
->
|
| 28 |
-
->
|
| 29 |
-
->
|
| 30 |
-
->
|
| 31 |
-
->
|
| 32 |
-
->
|
| 33 |
-
->
|
| 34 |
-
->
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
$
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
)
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
->
|
| 69 |
-
->
|
| 70 |
-
->
|
| 71 |
-
->
|
| 72 |
-
->
|
| 73 |
-
->
|
| 74 |
-
->
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
$
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
$
|
| 86 |
-
$
|
| 87 |
-
|
| 88 |
-
$
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
$
|
| 92 |
-
|
| 93 |
-
if
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
$this->
|
| 113 |
-
$
|
| 114 |
-
$this->
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
}
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
->
|
| 190 |
-
->
|
| 191 |
-
->
|
| 192 |
-
->
|
| 193 |
-
->
|
| 194 |
-
->
|
| 195 |
-
->
|
| 196 |
-
->
|
| 197 |
-
->
|
| 198 |
-
->
|
| 199 |
-
->
|
| 200 |
-
->
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
->
|
| 209 |
-
->
|
| 210 |
-
->
|
| 211 |
-
->
|
| 212 |
-
->
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
$
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
}
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
return false;
|
| 231 |
-
}
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
* @
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
->
|
| 265 |
-
->
|
| 266 |
-
->
|
| 267 |
-
->
|
| 268 |
-
->
|
| 269 |
-
->
|
| 270 |
-
->
|
| 271 |
-
->
|
| 272 |
-
->
|
| 273 |
-
->
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
$
|
| 279 |
-
|
| 280 |
-
|
| 281 |
-
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
$
|
| 285 |
-
$cardNumber =
|
| 286 |
-
$tokenInfo['EWAY_CARDNAME'] =
|
| 287 |
-
$tokenInfo['EWAY_CARDEXPIRYMONTH'] = $
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
$cardNumber = $cardetail && isset($cardetail['Number']) ? $cardetail['Number']
|
| 291 |
-
$cardNumber = substr_replace($cardNumber, '******', 6, 6);
|
| 292 |
-
$tokenInfo['EWAY_CARDNAME'] = $cardetail && isset($cardetail['Name']) ? $cardetail['Name'] : "
|
| 293 |
-
$tokenInfo['EWAY_CARDEXPIRYMONTH'] = $cardetail && isset($cardetail['ExpiryMonth']) ? $cardetail['ExpiryMonth'] : "";
|
| 294 |
-
$tokenInfo['EWAY_CARDEXPIRYYEAR'] = $cardetail && isset($cardetail['ExpiryYear']) ? $cardetail['ExpiryYear'] : "";
|
| 295 |
-
}
|
| 296 |
-
|
| 297 |
-
|
| 298 |
-
$
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
$
|
| 303 |
-
|
| 304 |
-
'
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
'
|
| 310 |
-
'
|
| 311 |
-
'
|
| 312 |
-
'
|
| 313 |
-
'
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
|
| 328 |
-
|
| 329 |
-
|
| 330 |
-
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
| 339 |
-
$cardetail
|
| 340 |
-
|
| 341 |
-
|
| 342 |
-
$
|
| 343 |
-
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
|
| 350 |
-
$info['
|
| 351 |
-
$info['
|
| 352 |
-
|
| 353 |
-
|
| 354 |
-
|
| 355 |
-
'
|
| 356 |
-
'
|
| 357 |
-
'
|
| 358 |
-
|
| 359 |
-
|
| 360 |
-
|
| 361 |
-
|
| 362 |
-
|
| 363 |
-
|
| 364 |
-
|
| 365 |
-
|
| 366 |
-
$
|
| 367 |
-
|
| 368 |
-
|
| 369 |
-
|
| 370 |
-
|
| 371 |
-
|
| 372 |
-
|
| 373 |
-
|
| 374 |
-
|
| 375 |
-
|
| 376 |
-
|
| 377 |
-
|
| 378 |
-
|
| 379 |
-
|
| 380 |
-
|
| 381 |
-
|
| 382 |
-
|
| 383 |
-
|
| 384 |
-
|
| 385 |
-
|
| 386 |
-
|
| 387 |
-
|
| 388 |
-
|
| 389 |
-
|
| 390 |
-
|
| 391 |
-
|
| 392 |
-
|
| 393 |
-
|
| 394 |
-
|
| 395 |
-
|
| 396 |
-
|
| 397 |
-
|
| 398 |
-
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
|
| 402 |
-
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
|
| 414 |
-
|
| 415 |
-
|
| 416 |
-
|
| 417 |
-
|
| 418 |
-
|
| 419 |
-
|
| 420 |
-
|
| 421 |
-
|
| 422 |
-
|
| 423 |
-
|
| 424 |
-
|
| 425 |
-
|
| 426 |
-
|
| 427 |
-
|
| 428 |
-
|
| 429 |
-
|
| 430 |
-
|
| 431 |
-
|
| 432 |
-
|
| 433 |
-
|
| 434 |
-
|
| 435 |
-
|
| 436 |
-
|
| 437 |
-
|
| 438 |
-
|
| 439 |
-
|
| 440 |
-
|
| 441 |
-
|
| 442 |
-
|
| 443 |
-
|
| 444 |
-
|
| 445 |
-
|
| 446 |
-
|
| 447 |
-
|
| 448 |
-
|
| 449 |
-
|
| 450 |
-
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
|
| 455 |
-
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
|
| 463 |
-
|
| 464 |
-
|
| 465 |
-
|
| 466 |
-
|
| 467 |
-
|
| 468 |
-
|
| 469 |
-
|
| 470 |
-
|
| 471 |
-
|
| 472 |
-
|
| 473 |
-
|
| 474 |
-
|
| 475 |
-
|
| 476 |
-
|
| 477 |
-
|
| 478 |
-
|
| 479 |
-
|
| 480 |
-
|
| 481 |
-
|
| 482 |
-
|
| 483 |
-
|
| 484 |
-
$this->
|
| 485 |
-
|
| 486 |
-
$
|
| 487 |
-
$
|
| 488 |
-
|
| 489 |
-
|
| 490 |
-
|
| 491 |
-
|
| 492 |
-
|
| 493 |
-
|
| 494 |
-
|
| 495 |
-
|
| 496 |
-
|
| 497 |
-
|
| 498 |
-
|
| 499 |
-
|
| 500 |
-
|
| 501 |
-
|
| 502 |
-
|
| 503 |
-
|
| 504 |
-
|
| 505 |
-
|
| 506 |
-
|
| 507 |
-
|
| 508 |
-
|
| 509 |
-
|
| 510 |
-
|
| 511 |
-
|
| 512 |
-
|
| 513 |
-
|
| 514 |
-
//
|
| 515 |
-
$
|
| 516 |
-
|
| 517 |
-
|
| 518 |
-
)
|
| 519 |
-
|
| 520 |
-
|
| 521 |
-
|
| 522 |
-
$
|
| 523 |
-
|
| 524 |
-
|
| 525 |
-
|
| 526 |
-
|
| 527 |
-
|
| 528 |
-
$
|
| 529 |
-
|
| 530 |
-
|
| 531 |
-
|
| 532 |
-
|
| 533 |
-
|
| 534 |
-
$
|
| 535 |
-
$this->
|
| 536 |
-
|
| 537 |
-
|
| 538 |
-
$
|
| 539 |
-
|
| 540 |
-
|
| 541 |
-
|
| 542 |
-
|
| 543 |
-
|
| 544 |
-
|
| 545 |
-
|
| 546 |
-
|
| 547 |
-
->
|
| 548 |
-
->
|
| 549 |
-
->
|
| 550 |
-
->
|
| 551 |
-
->
|
| 552 |
-
->
|
| 553 |
-
->
|
| 554 |
-
->
|
| 555 |
-
|
| 556 |
-
|
| 557 |
-
|
| 558 |
-
$
|
| 559 |
-
|
| 560 |
-
|
| 561 |
-
|
| 562 |
-
|
| 563 |
-
|
| 564 |
-
|
| 565 |
-
|
| 566 |
-
|
| 567 |
-
|
| 568 |
-
|
| 569 |
-
|
| 570 |
-
|
| 571 |
-
|
| 572 |
-
|
| 573 |
-
|
| 574 |
-
|
| 575 |
-
|
| 576 |
-
|
| 577 |
-
|
| 578 |
-
->
|
| 579 |
-
|
| 580 |
-
|
| 581 |
-
|
| 582 |
-
|
| 583 |
-
|
| 584 |
-
|
| 585 |
-
->
|
| 586 |
-
->
|
| 587 |
-
|
| 588 |
-
|
| 589 |
-
|
| 590 |
-
|
| 591 |
-
|
| 592 |
-
|
| 593 |
-
$
|
| 594 |
-
|
| 595 |
-
|
| 596 |
-
|
| 597 |
-
|
| 598 |
-
|
| 599 |
-
|
| 600 |
-
|
| 601 |
-
|
| 602 |
-
|
| 603 |
-
|
| 604 |
-
$
|
| 605 |
-
|
| 606 |
-
|
| 607 |
-
|
| 608 |
-
|
| 609 |
-
|
| 610 |
-
|
| 611 |
-
|
| 612 |
-
|
| 613 |
-
|
| 614 |
-
|
| 615 |
-
|
| 616 |
-
|
| 617 |
-
|
| 618 |
-
|
| 619 |
-
|
| 620 |
-
|
| 621 |
-
|
| 622 |
-
|
| 623 |
-
|
| 624 |
-
|
| 625 |
-
|
| 626 |
-
|
| 627 |
-
|
| 628 |
-
|
| 629 |
-
if ($
|
| 630 |
-
|
| 631 |
-
} else {
|
| 632 |
-
|
| 633 |
-
}
|
| 634 |
-
|
| 635 |
-
|
| 636 |
-
|
| 637 |
-
|
| 638 |
-
|
| 639 |
-
|
| 640 |
-
|
| 641 |
-
|
| 642 |
-
|
| 643 |
-
|
| 644 |
-
public function
|
| 645 |
-
{
|
| 646 |
-
|
| 647 |
-
|
| 648 |
-
|
| 649 |
-
|
| 650 |
-
|
| 651 |
-
|
| 652 |
-
|
| 653 |
-
|
| 654 |
-
|
| 655 |
-
|
| 656 |
-
|
| 657 |
-
|
| 658 |
-
|
| 659 |
-
|
| 660 |
-
|
| 661 |
-
|
| 662 |
-
|
| 663 |
-
|
| 664 |
-
|
| 665 |
-
|
| 666 |
-
|
| 667 |
-
|
| 668 |
-
|
| 669 |
-
|
| 670 |
-
|
| 671 |
-
|
| 672 |
-
|
| 673 |
-
|
| 674 |
-
|
| 675 |
-
|
| 676 |
-
|
| 677 |
-
|
| 678 |
-
|
| 679 |
-
|
| 680 |
-
|
| 681 |
-
|
| 682 |
-
|
| 683 |
-
Mage::getSingleton('core/session')->
|
| 684 |
-
Mage::getSingleton('core/session')->
|
| 685 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 686 |
}
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Eway_Rapid31_Model_Request_Transparent extends Eway_Rapid31_Model_Request_Abstract
|
| 4 |
+
{
|
| 5 |
+
/**
|
| 6 |
+
* Get AccessCode
|
| 7 |
+
*
|
| 8 |
+
* @param Mage_Sales_Model_Quote $quote
|
| 9 |
+
* @return Eway_Rapid31_Model_Response
|
| 10 |
+
*/
|
| 11 |
+
public function createAccessCode(Mage_Sales_Model_Quote $quote, $method = 'ProcessPayment', $action = 'AccessCodes')
|
| 12 |
+
{
|
| 13 |
+
// Empty Varien_Object's data
|
| 14 |
+
$this->unsetData();
|
| 15 |
+
|
| 16 |
+
$billingAddress = $quote->getBillingAddress();
|
| 17 |
+
|
| 18 |
+
$title = $this->_fixTitle($billingAddress->getPrefix());
|
| 19 |
+
|
| 20 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 21 |
+
$customerParam->setTitle($title)
|
| 22 |
+
->setFirstName($billingAddress->getFirstname())
|
| 23 |
+
->setLastName($billingAddress->getLastname())
|
| 24 |
+
->setCompanyName($billingAddress->getCompany())
|
| 25 |
+
->setJobDescription($billingAddress->getJobDescription())
|
| 26 |
+
->setStreet1($billingAddress->getStreet1())
|
| 27 |
+
->setStreet2($billingAddress->getStreet2())
|
| 28 |
+
->setCity($billingAddress->getCity())
|
| 29 |
+
->setState($billingAddress->getRegion())
|
| 30 |
+
->setPostalCode($billingAddress->getPostcode())
|
| 31 |
+
->setCountry(strtolower($billingAddress->getCountryModel()->getIso2Code()))
|
| 32 |
+
->setEmail($billingAddress->getEmail())
|
| 33 |
+
->setPhone($billingAddress->getTelephone())
|
| 34 |
+
->setMobile($billingAddress->getMobile())
|
| 35 |
+
->setComments('')
|
| 36 |
+
->setFax($billingAddress->getFax())
|
| 37 |
+
->setUrl('');
|
| 38 |
+
|
| 39 |
+
if ($this->getMethod() == Eway_Rapid31_Model_Config::PAYMENT_SAVED_METHOD) {
|
| 40 |
+
$customerTokenId = Mage::getSingleton('core/session')->getSavedToken();
|
| 41 |
+
if (!$customerTokenId) {
|
| 42 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while updating token: Token info does not exist.'));
|
| 43 |
+
} elseif (is_numeric($customerTokenId)) {
|
| 44 |
+
$customerHelper = Mage::helper('ewayrapid/customer');
|
| 45 |
+
$customerTokenId = $customerHelper->getCustomerTokenId($customerTokenId);
|
| 46 |
+
if ($customerTokenId) {
|
| 47 |
+
$customerParam->setTokenCustomerID($customerTokenId);
|
| 48 |
+
} else {
|
| 49 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while updating token: Token info does not exist.'));
|
| 50 |
+
}
|
| 51 |
+
}
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
$this->setCustomer($customerParam);
|
| 55 |
+
|
| 56 |
+
$shippingAddress = $quote->getShippingAddress();
|
| 57 |
+
|
| 58 |
+
// copy BillingAddress to ShippingAddress if checkout with guest or register
|
| 59 |
+
$checkoutMethod = $quote->getCheckoutMethod();
|
| 60 |
+
if ($checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_GUEST
|
| 61 |
+
|| $checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER
|
| 62 |
+
) {
|
| 63 |
+
$shippingAddress = $billingAddress;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
$shippingParam = Mage::getModel('ewayrapid/field_shippingAddress');
|
| 67 |
+
$shippingParam->setFirstName($shippingAddress->getFirstname())
|
| 68 |
+
->setLastName($shippingAddress->getLastname())
|
| 69 |
+
->setStreet1($shippingAddress->getStreet1())
|
| 70 |
+
->setStreet2($shippingAddress->getStreet2())
|
| 71 |
+
->setCity($shippingAddress->getCity())
|
| 72 |
+
->setState($shippingAddress->getRegion())
|
| 73 |
+
->setPostalCode($shippingAddress->getPostcode())
|
| 74 |
+
->setCountry(strtolower($shippingAddress->getCountryModel()->getIso2Code()))
|
| 75 |
+
->setEmail($shippingAddress->getEmail())
|
| 76 |
+
->setPhone($shippingAddress->getTelephone())
|
| 77 |
+
->setFax($shippingAddress->getFax());
|
| 78 |
+
$this->setShippingAddress($shippingParam);
|
| 79 |
+
|
| 80 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 81 |
+
$paymentParam->setTotalAmount(round($quote->getBaseGrandTotal() * 100));
|
| 82 |
+
if ($method == 'CreateTokenCustomer' || $method == 'UpdateTokenCustomer') {
|
| 83 |
+
$paymentParam->setTotalAmount(0);
|
| 84 |
+
}
|
| 85 |
+
$paymentParam->setCurrencyCode($quote->getBaseCurrencyCode());
|
| 86 |
+
$this->setPayment($paymentParam);
|
| 87 |
+
|
| 88 |
+
$returnUrl = Mage::getBaseUrl() . '/ewayrapid/transparent/callBack';
|
| 89 |
+
$cancelUrl = Mage::getBaseUrl() . '/ewayrapid/transparent/cancel';
|
| 90 |
+
|
| 91 |
+
$this->setRedirectUrl($returnUrl);
|
| 92 |
+
|
| 93 |
+
//CheckOutUrl if using PayPal
|
| 94 |
+
$checkOutUrl = Mage::getBaseUrl() . '/ewayrapid/transparent/review';
|
| 95 |
+
|
| 96 |
+
if (Mage::helper('ewayrapid/data')->getTransferCartLineItems()) {
|
| 97 |
+
// add Shipping item and Line items
|
| 98 |
+
$lineItems = Mage::helper('ewayrapid')->getLineItems();
|
| 99 |
+
$this->setItems($lineItems);
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
/*if ($this->getTransMethod() == Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD) {
|
| 103 |
+
$this->setItems(false);
|
| 104 |
+
}*/
|
| 105 |
+
|
| 106 |
+
if ($this->getTransMethod() == Eway_Rapid31_Model_Config::PAYPAL_EXPRESS_METHOD) {
|
| 107 |
+
$this->setCheckoutPayment(true);
|
| 108 |
+
$this->setCheckoutURL($checkOutUrl);
|
| 109 |
+
$this->setItems(false);
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
$this->setCancelUrl($cancelUrl);
|
| 113 |
+
$this->setMethod($method);
|
| 114 |
+
$this->setShippingMethod('Other');
|
| 115 |
+
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 116 |
+
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 117 |
+
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY '.$version);
|
| 118 |
+
if (Mage::helper('ewayrapid')->isBackendOrder()) {
|
| 119 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
|
| 120 |
+
} else {
|
| 121 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
|
| 122 |
+
}
|
| 123 |
+
$this->setCustomerReadOnly(true);
|
| 124 |
+
|
| 125 |
+
$response = $this->_doRapidAPI($action);
|
| 126 |
+
if ($response->isSuccess()) {
|
| 127 |
+
return $response;
|
| 128 |
+
} else {
|
| 129 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while connecting to payment gateway. Please try again later. (Error message: %s)',
|
| 130 |
+
$response->getMessage()));
|
| 131 |
+
}
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
/**
|
| 135 |
+
* Get customer information by access code
|
| 136 |
+
* @param $accessCode
|
| 137 |
+
* @throws Mage_Core_Exception
|
| 138 |
+
*/
|
| 139 |
+
public function getInfoByAccessCode($accessCode)
|
| 140 |
+
{
|
| 141 |
+
$response = $this->_doRapidAPI('AccessCode/' . $accessCode, false);
|
| 142 |
+
if ($response->isSuccess()) {
|
| 143 |
+
return $response;
|
| 144 |
+
} else {
|
| 145 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while making the transaction. Please try again. (Error message: %s)',
|
| 146 |
+
$response->getMessage()));
|
| 147 |
+
return false;
|
| 148 |
+
}
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
public function getTransaction($accessCode)
|
| 152 |
+
{
|
| 153 |
+
try {
|
| 154 |
+
$results = $this->_doRapidAPI("Transaction/$accessCode", 'GET');
|
| 155 |
+
if ($results->isSuccess()) {
|
| 156 |
+
return $results->getTransactions();
|
| 157 |
+
}
|
| 158 |
+
} catch (Exception $e) {
|
| 159 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while connecting to payment gateway. Please try again later. (Error message: %s)',
|
| 160 |
+
$results->getMessage()));
|
| 161 |
+
return false;
|
| 162 |
+
}
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
/**
|
| 166 |
+
* Update customer info
|
| 167 |
+
* @param $transId
|
| 168 |
+
* @return mixed
|
| 169 |
+
*/
|
| 170 |
+
public function updateCustomer($accessCode, Mage_Sales_Model_Quote $quote)
|
| 171 |
+
{
|
| 172 |
+
try {
|
| 173 |
+
$results = $this->_doRapidAPI("Transaction/$accessCode", 'GET');
|
| 174 |
+
if (!$results->isSuccess()) {
|
| 175 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while connecting to payment gateway. Please try again later. (Error message: %s)',
|
| 176 |
+
$results->getMessage()));
|
| 177 |
+
}
|
| 178 |
+
|
| 179 |
+
$customer = $quote->getCustomer();
|
| 180 |
+
$billingAddress = $quote->getBillingAddress();
|
| 181 |
+
$shippingAddress = $quote->getShippingAddress();
|
| 182 |
+
|
| 183 |
+
if ($results->isSuccess()) {
|
| 184 |
+
$trans = $results->getTransactions();
|
| 185 |
+
|
| 186 |
+
if (isset($trans[0]['Customer'])) {
|
| 187 |
+
$billing = $trans[0]['Customer'];
|
| 188 |
+
$billingAddress->setFirstname($billing['FirstName'])
|
| 189 |
+
->setLastName($billing['LastName'])
|
| 190 |
+
->setCompany($billing['CompanyName'])
|
| 191 |
+
->setJobDescription($billing['JobDescription'])
|
| 192 |
+
->setStreet($billing['Street1'])
|
| 193 |
+
->setStreet2($billing['Street2'])
|
| 194 |
+
->setCity($billing['City'])
|
| 195 |
+
->setState($billing['State'])
|
| 196 |
+
->setPostcode($billing['PostalCode'])
|
| 197 |
+
->setCountryId(strtoupper($billing['Country']))
|
| 198 |
+
->setEmail($billing['Email'])
|
| 199 |
+
->setTelephone($billing['Phone'])
|
| 200 |
+
->setMobile($billing['Mobile'])
|
| 201 |
+
->setComments($billing['Comments'])
|
| 202 |
+
->setFax($billing['Fax'])
|
| 203 |
+
->setUrl($billing['Url']);
|
| 204 |
+
}
|
| 205 |
+
if (isset($trans[0]['ShippingAddress'])) {
|
| 206 |
+
$shipping = $trans[0]['ShippingAddress'];
|
| 207 |
+
$shippingAddress->setFirstname($shipping['FirstName'])
|
| 208 |
+
->setLastname($shipping['LastName'])
|
| 209 |
+
->setStreet($shipping['Street1'])
|
| 210 |
+
->setStreet2($shipping['Street2'])
|
| 211 |
+
->setCity($shipping['City'])
|
| 212 |
+
->setPostcode($shipping['PostalCode'])
|
| 213 |
+
->setCountryId(strtoupper($shipping['Country']))
|
| 214 |
+
->setEmail($shipping['Email'])
|
| 215 |
+
->setFax($shipping['Fax']);
|
| 216 |
+
|
| 217 |
+
if ($shipping['State']
|
| 218 |
+
&& $shipping['Country']
|
| 219 |
+
&& $region = Mage::getModel('directory/region')->loadByCode($shipping['State'], $shipping['Country'])
|
| 220 |
+
) {
|
| 221 |
+
$shippingAddress->setRegion($region->getName())
|
| 222 |
+
->setRegionId($region->getId());
|
| 223 |
+
}
|
| 224 |
+
if ($shipping['Phone']) {
|
| 225 |
+
$shippingAddress->setTelephone($shipping['Phone']);
|
| 226 |
+
}
|
| 227 |
+
}
|
| 228 |
+
return $quote->assignCustomerWithAddressChange($customer, $billingAddress, $shippingAddress)->save();
|
| 229 |
+
}
|
| 230 |
+
return false;
|
| 231 |
+
} catch (Exception $e) {
|
| 232 |
+
Mage::throwException($e->getMessage());
|
| 233 |
+
return false;
|
| 234 |
+
}
|
| 235 |
+
}
|
| 236 |
+
|
| 237 |
+
/**
|
| 238 |
+
* @param Mage_Sales_Model_Quote $quote
|
| 239 |
+
* @param $tokenInfo
|
| 240 |
+
* @param $tokenCustomerID
|
| 241 |
+
* @return bool
|
| 242 |
+
*/
|
| 243 |
+
public function addToken(Mage_Sales_Model_Quote $quote, $tokenInfo, $tokenCustomerID = 0)
|
| 244 |
+
{
|
| 245 |
+
try {
|
| 246 |
+
if (!$tokenCustomerID)
|
| 247 |
+
return false;
|
| 248 |
+
|
| 249 |
+
//Get Customer Card Info
|
| 250 |
+
$customerCard = $this->getCustomerCard($tokenCustomerID);
|
| 251 |
+
$cardetail = null;
|
| 252 |
+
if ($customerCard) {
|
| 253 |
+
$customer = $customerCard->getCustomer();
|
| 254 |
+
$cardetail = $customer && isset($customer['CardDetails']) ? $customer['CardDetails'] : null;
|
| 255 |
+
unset($customer);
|
| 256 |
+
}
|
| 257 |
+
|
| 258 |
+
$billingAddress = $quote->getBillingAddress();
|
| 259 |
+
|
| 260 |
+
$title = $this->_fixTitle($billingAddress->getPrefix());
|
| 261 |
+
|
| 262 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 263 |
+
$customerParam->setTitle($title)
|
| 264 |
+
->setFirstName($billingAddress->getFirstname())
|
| 265 |
+
->setLastName($billingAddress->getLastname())
|
| 266 |
+
->setCompanyName($billingAddress->getCompany())
|
| 267 |
+
->setJobDescription($billingAddress->getJobDescription())
|
| 268 |
+
->setStreet1($billingAddress->getStreet1())
|
| 269 |
+
->setStreet2($billingAddress->getStreet2())
|
| 270 |
+
->setCity($billingAddress->getCity())
|
| 271 |
+
->setState($billingAddress->getRegion())
|
| 272 |
+
->setPostalCode($billingAddress->getPostcode())
|
| 273 |
+
->setCountry(strtolower($billingAddress->getCountryModel()->getIso2Code()))
|
| 274 |
+
->setEmail($billingAddress->getEmail())
|
| 275 |
+
->setPhone($billingAddress->getTelephone())
|
| 276 |
+
->setMobile($billingAddress->getMobile())
|
| 277 |
+
->setComments('')
|
| 278 |
+
->setFax($billingAddress->getFax())
|
| 279 |
+
->setUrl('');
|
| 280 |
+
$config = Mage::getSingleton('ewayrapid/config');
|
| 281 |
+
$cardNumber = null;
|
| 282 |
+
|
| 283 |
+
if ($tokenInfo['SavedType'] == Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD) {
|
| 284 |
+
$tokenInfo['ccType'] = "PayPal";
|
| 285 |
+
$cardNumber = "PayPal";
|
| 286 |
+
$tokenInfo['EWAY_CARDNAME'] = "PayPal";
|
| 287 |
+
$tokenInfo['EWAY_CARDEXPIRYMONTH'] = $tokenInfo['EWAY_CARDEXPIRYYEAR'] = '';
|
| 288 |
+
} elseif ($tokenInfo['SavedType'] == Eway_Rapid31_Model_Config::MASTERPASS_METHOD) {
|
| 289 |
+
//$tokenInfo['ccType'] = "MC";
|
| 290 |
+
$cardNumber = $cardetail && isset($cardetail['Number']) ? substr_replace($cardetail['Number'], '******', 6, 6) : "MasterPass";
|
| 291 |
+
$cardNumber = substr_replace($cardNumber, '******', 6, 6);
|
| 292 |
+
$tokenInfo['EWAY_CARDNAME'] = $cardetail && isset($cardetail['Name']) ? $cardetail['Name'] : "MasterPass";
|
| 293 |
+
$tokenInfo['EWAY_CARDEXPIRYMONTH'] = $cardetail && isset($cardetail['ExpiryMonth']) ? $cardetail['ExpiryMonth'] : "";
|
| 294 |
+
$tokenInfo['EWAY_CARDEXPIRYYEAR'] = $cardetail && isset($cardetail['ExpiryYear']) ? $cardetail['ExpiryYear'] : "";
|
| 295 |
+
} else {
|
| 296 |
+
$cardNumber = $cardetail && isset($cardetail['Number']) ? $cardetail['Number'] : @Mage::helper('ewayrapid/data')->decryptSha256($tokenInfo['EWAY_CARDNUMBER'], $config->getBasicAuthenticationHeader());
|
| 297 |
+
$cardNumber = substr_replace($cardNumber, '******', 6, 6);
|
| 298 |
+
$tokenInfo['EWAY_CARDNAME'] = $cardetail && isset($cardetail['Name']) ? $cardetail['Name'] : "creditcard";
|
| 299 |
+
$tokenInfo['EWAY_CARDEXPIRYMONTH'] = $cardetail && isset($cardetail['ExpiryMonth']) ? $cardetail['ExpiryMonth'] : "";
|
| 300 |
+
$tokenInfo['EWAY_CARDEXPIRYYEAR'] = $cardetail && isset($cardetail['ExpiryYear']) ? $cardetail['ExpiryYear'] : "";
|
| 301 |
+
}
|
| 302 |
+
$type = isset($tokenInfo['ccType']) ? $tokenInfo['ccType'] : $this->checkCardType($cardNumber);
|
| 303 |
+
if($type == 'Unknown') {
|
| 304 |
+
$type = $tokenInfo['SavedType'] == Eway_Rapid31_Model_Config::MASTERPASS_METHOD ? 'MasterPass' : 'CreditCard';
|
| 305 |
+
}
|
| 306 |
+
|
| 307 |
+
$tokenInfo['EWAY_CARDEXPIRYYEAR'] = $tokenInfo['EWAY_CARDEXPIRYYEAR'] && strlen($tokenInfo['EWAY_CARDEXPIRYYEAR']) == 2 ? '20' . $tokenInfo['EWAY_CARDEXPIRYYEAR'] : $cardetail['EWAY_CARDEXPIRYYEAR'];
|
| 308 |
+
$cardInfo = array(
|
| 309 |
+
'Token' => $tokenCustomerID,
|
| 310 |
+
'TokenCustomerID' => $tokenCustomerID,
|
| 311 |
+
'Card' => $cardNumber,
|
| 312 |
+
'Owner' => $tokenInfo['EWAY_CARDNAME'],
|
| 313 |
+
'StartMonth' => '',
|
| 314 |
+
'StartYear' => '',
|
| 315 |
+
'IssueNumber' => '',
|
| 316 |
+
'ExpMonth' => (int)$tokenInfo['EWAY_CARDEXPIRYMONTH'],
|
| 317 |
+
'ExpYear' => (int)$tokenInfo['EWAY_CARDEXPIRYYEAR'],
|
| 318 |
+
'Type' => $type,
|
| 319 |
+
'Address' => $customerParam,
|
| 320 |
+
);
|
| 321 |
+
|
| 322 |
+
Mage::helper('ewayrapid/customer')->addToken($cardInfo);
|
| 323 |
+
return true;
|
| 324 |
+
} catch (Exception $e) {
|
| 325 |
+
return false;
|
| 326 |
+
}
|
| 327 |
+
}
|
| 328 |
+
|
| 329 |
+
/**
|
| 330 |
+
* @param $id
|
| 331 |
+
* @param $info
|
| 332 |
+
* @return bool
|
| 333 |
+
*/
|
| 334 |
+
public function updateToken($id, $info = null)
|
| 335 |
+
{
|
| 336 |
+
try {
|
| 337 |
+
//Get Customer Card Info
|
| 338 |
+
$customerCard = $this->getCustomerCard($id);
|
| 339 |
+
$cardetail = null;
|
| 340 |
+
if ($customerCard) {
|
| 341 |
+
$customer = $customerCard->getCustomer();
|
| 342 |
+
$cardetail = $customer && isset($customer['CardDetails']) ? $customer['CardDetails'] : null;
|
| 343 |
+
unset($customer);
|
| 344 |
+
}
|
| 345 |
+
$cardetail['ExpiryYear'] = $cardetail['ExpiryYear'] && strlen($cardetail['ExpiryYear']) == 2 ? '20' . $cardetail['ExpiryYear'] : $cardetail['ExpiryYear'];
|
| 346 |
+
|
| 347 |
+
if ($info['SavedType'] == Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD) {
|
| 348 |
+
$tokenInfo['EWAY_CARDNAME'] = "PayPal";
|
| 349 |
+
} elseif ($info['SavedType'] == Eway_Rapid31_Model_Config::MASTERPASS_METHOD) {
|
| 350 |
+
$info['ccType'] = "MC";
|
| 351 |
+
$info['EWAY_CARDNAME'] = $cardetail && isset($cardetail['Name']) ? $cardetail['Name'] : "MasterPass";
|
| 352 |
+
$info['EWAY_CARDEXPIRYMONTH'] = $cardetail && isset($cardetail['ExpiryMonth']) ? $cardetail['ExpiryMonth'] : "";
|
| 353 |
+
$info['EWAY_CARDEXPIRYYEAR'] = $cardetail && isset($cardetail['ExpiryYear']) ? $cardetail['ExpiryYear'] : "";
|
| 354 |
+
} else {
|
| 355 |
+
$info['EWAY_CARDNAME'] = $cardetail && isset($cardetail['Name']) ? $cardetail['Name'] : "PayPal";
|
| 356 |
+
$info['EWAY_CARDEXPIRYMONTH'] = $cardetail && isset($cardetail['ExpiryMonth']) ? $cardetail['ExpiryMonth'] : $info['EWAY_CARDEXPIRYMONTH'];
|
| 357 |
+
$info['EWAY_CARDEXPIRYYEAR'] = $cardetail && isset($cardetail['ExpiryYear']) ? $cardetail['ExpiryYear'] : $info['EWAY_CARDEXPIRYYEAR'];
|
| 358 |
+
}
|
| 359 |
+
|
| 360 |
+
$cardInfo = array(
|
| 361 |
+
'Owner' => $info['EWAY_CARDNAME'],
|
| 362 |
+
'StartMonth' => '',
|
| 363 |
+
'StartYear' => '',
|
| 364 |
+
'IssueNumber' => '',
|
| 365 |
+
'ExpMonth' => $info ? (int)$info['EWAY_CARDEXPIRYMONTH'] : '',
|
| 366 |
+
'ExpYear' => $info ? (int)$info['EWAY_CARDEXPIRYYEAR'] : '',
|
| 367 |
+
);
|
| 368 |
+
|
| 369 |
+
if ($this->getTransMethod() == Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD) {
|
| 370 |
+
$uid = Mage::getSingleton('core/session')->getPaypalSavedToken();
|
| 371 |
+
} elseif ($this->getTransMethod() == Eway_Rapid31_Model_Config::MASTERPASS_METHOD) {
|
| 372 |
+
$uid = Mage::getSingleton('core/session')->getMasterpassSavedToken();
|
| 373 |
+
} else {
|
| 374 |
+
$uid = Mage::getSingleton('core/session')->getSavedToken();
|
| 375 |
+
}
|
| 376 |
+
|
| 377 |
+
Mage::helper('ewayrapid/customer')->updateToken($uid, $cardInfo);
|
| 378 |
+
return true;
|
| 379 |
+
} catch (Exception $e) {
|
| 380 |
+
return false;
|
| 381 |
+
}
|
| 382 |
+
}
|
| 383 |
+
|
| 384 |
+
/**
|
| 385 |
+
* Get card type name by card number
|
| 386 |
+
* @param $num Card number
|
| 387 |
+
* @return string Card type name
|
| 388 |
+
*/
|
| 389 |
+
public function checkCardType($num)
|
| 390 |
+
{
|
| 391 |
+
return Mage::getModel('ewayrapid/request_token')->checkCardType($num);
|
| 392 |
+
}
|
| 393 |
+
|
| 394 |
+
/**
|
| 395 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 396 |
+
* @return bool
|
| 397 |
+
*/
|
| 398 |
+
public function setTransaction(Mage_Sales_Model_Order_Payment $payment)
|
| 399 |
+
{
|
| 400 |
+
$payment->setTransactionId(Mage::getSingleton('core/session')->getTransactionId());
|
| 401 |
+
$payment->setIsTransactionClosed(0);
|
| 402 |
+
return $payment;
|
| 403 |
+
}
|
| 404 |
+
|
| 405 |
+
/**
|
| 406 |
+
* Get shipping by code
|
| 407 |
+
*
|
| 408 |
+
* @param Mage_Sales_Model_Quote $quote
|
| 409 |
+
* @param $postalCode
|
| 410 |
+
* @return bool
|
| 411 |
+
*/
|
| 412 |
+
public function getShippingByCode(Mage_Sales_Model_Quote $quote, $postalCode)
|
| 413 |
+
{
|
| 414 |
+
$groups = $quote->getShippingAddress()->collectShippingRates()->getGroupedAllShippingRates();
|
| 415 |
+
// determine current selected code & name
|
| 416 |
+
foreach ($groups as $code => $rates) {
|
| 417 |
+
foreach ($rates as $rate) {
|
| 418 |
+
if (strtoupper($postalCode) == strtoupper($rate->getCode())) {
|
| 419 |
+
return $rate;
|
| 420 |
+
}
|
| 421 |
+
}
|
| 422 |
+
}
|
| 423 |
+
return false;
|
| 424 |
+
}
|
| 425 |
+
|
| 426 |
+
/**
|
| 427 |
+
* Call Transaction API (Authorized & Capture at the same time)
|
| 428 |
+
*
|
| 429 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 430 |
+
* @param float $amount
|
| 431 |
+
* @return Eway_Rapid31_Model_Request_Direct $this
|
| 432 |
+
*/
|
| 433 |
+
public function doTransaction(Mage_Sales_Model_Quote $quote, $amount)
|
| 434 |
+
{
|
| 435 |
+
$this->_buildRequest($quote, $amount);
|
| 436 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_TOKEN_PAYMENT);
|
| 437 |
+
$response = $this->_doRapidAPI('Transaction');
|
| 438 |
+
|
| 439 |
+
if ($response->isSuccess()) {
|
| 440 |
+
$quote->setTransactionId($response->getTransactionID());
|
| 441 |
+
$quote->setCcLast4($response->getCcLast4());
|
| 442 |
+
$quote->save();
|
| 443 |
+
return $quote;
|
| 444 |
+
} else {
|
| 445 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while making the transaction. Please try again. (Error message: %s)',
|
| 446 |
+
$response->getMessage()));
|
| 447 |
+
}
|
| 448 |
+
}
|
| 449 |
+
|
| 450 |
+
/**
|
| 451 |
+
* Call Authorisation API (Authorized only)
|
| 452 |
+
*
|
| 453 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 454 |
+
* @param $amount
|
| 455 |
+
* @return Eway_Rapid31_Model_Request_Direct
|
| 456 |
+
*/
|
| 457 |
+
public function doAuthorisation(Mage_Sales_Model_Quote $quote, $amount)
|
| 458 |
+
{
|
| 459 |
+
$this->_buildRequest($quote, $amount);
|
| 460 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_AUTHORISE);
|
| 461 |
+
$response = $this->_doRapidAPI('Authorisation');
|
| 462 |
+
if ($response->isSuccess()) {
|
| 463 |
+
$quote->setTransactionId($response->getTransactionID());
|
| 464 |
+
$quote->setIsTransactionClosed(0);
|
| 465 |
+
$quote->setCcLast4($response->getCcLast4());
|
| 466 |
+
$quote->save();
|
| 467 |
+
return $quote;
|
| 468 |
+
} else {
|
| 469 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the authorisation. Please try again. (Error message: %s)',
|
| 470 |
+
$response->getMessage()));
|
| 471 |
+
}
|
| 472 |
+
}
|
| 473 |
+
|
| 474 |
+
/**
|
| 475 |
+
* Call Capture API (do the Capture only, must Authorized previously)
|
| 476 |
+
*
|
| 477 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 478 |
+
* @param $amount
|
| 479 |
+
* @return Eway_Rapid31_Model_Request_Direct
|
| 480 |
+
*/
|
| 481 |
+
public function doCapturePayment(Mage_Sales_Model_Quote $quote, $amount)
|
| 482 |
+
{
|
| 483 |
+
// Empty Varien_Object's data
|
| 484 |
+
$this->unsetData();
|
| 485 |
+
|
| 486 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 487 |
+
$paymentParam->setTotalAmount($amount)
|
| 488 |
+
->setCurrencyCode($quote->getBaseCurrencyCode());
|
| 489 |
+
|
| 490 |
+
$this->setPayment($paymentParam);
|
| 491 |
+
$this->setTransactionId($quote->getTransactionId());
|
| 492 |
+
$this->setMethod(Eway_Rapid31_Model_Config::METHOD_TOKEN_PAYMENT);
|
| 493 |
+
$response = $this->_doRapidAPI('CapturePayment');
|
| 494 |
+
|
| 495 |
+
if ($response->isSuccess()) {
|
| 496 |
+
$quote->setTransactionId($response->getTransactionID());
|
| 497 |
+
$quote->save();
|
| 498 |
+
return $quote;
|
| 499 |
+
} else {
|
| 500 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while doing the capture. Please try again. (Error message: %s)',
|
| 501 |
+
$response->getMessage()));
|
| 502 |
+
}
|
| 503 |
+
}
|
| 504 |
+
|
| 505 |
+
/**
|
| 506 |
+
* Build the request with necessary parameters for doAuthorisation() and doTransaction()
|
| 507 |
+
*
|
| 508 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 509 |
+
* @param $amount
|
| 510 |
+
* @return Eway_Rapid31_Model_Request_Direct
|
| 511 |
+
*/
|
| 512 |
+
protected function _buildRequest(Mage_Sales_Model_Quote $quote, $amount)
|
| 513 |
+
{
|
| 514 |
+
// Empty Varien_Object's data
|
| 515 |
+
$this->unsetData();
|
| 516 |
+
|
| 517 |
+
$billing = $quote->getBillingAddress();
|
| 518 |
+
$shipping = $quote->getShippingAddress();
|
| 519 |
+
|
| 520 |
+
// copy BillingAddress to ShippingAddress if checkout with guest or register
|
| 521 |
+
$checkoutMethod = $quote->getCheckoutMethod();
|
| 522 |
+
if ($checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_GUEST
|
| 523 |
+
|| $checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER
|
| 524 |
+
) {
|
| 525 |
+
$shipping = $billing;
|
| 526 |
+
}
|
| 527 |
+
|
| 528 |
+
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
|
| 529 |
+
if (Mage::helper('ewayrapid')->isBackendOrder()) {
|
| 530 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
|
| 531 |
+
} else {
|
| 532 |
+
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
|
| 533 |
+
}
|
| 534 |
+
$version = Mage::helper('ewayrapid')->getExtensionVersion();
|
| 535 |
+
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY '.$version);
|
| 536 |
+
$this->setShippingMethod('Other');
|
| 537 |
+
|
| 538 |
+
$paymentParam = Mage::getModel('ewayrapid/field_payment');
|
| 539 |
+
$paymentParam->setTotalAmount($amount);
|
| 540 |
+
$paymentParam->setCurrencyCode($quote->getBaseCurrencyCode());
|
| 541 |
+
$this->setPayment($paymentParam);
|
| 542 |
+
|
| 543 |
+
$title = $this->_fixTitle($billing->getPrefix());
|
| 544 |
+
|
| 545 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 546 |
+
$customerParam->setTitle($title)
|
| 547 |
+
->setFirstName($billing->getFirstname())
|
| 548 |
+
->setLastName($billing->getLastname())
|
| 549 |
+
->setCompanyName($billing->getCompany())
|
| 550 |
+
->setJobDescription('')
|
| 551 |
+
->setStreet1($billing->getStreet1())
|
| 552 |
+
->setStreet2($billing->getStreet2())
|
| 553 |
+
->setCity($billing->getCity())
|
| 554 |
+
->setState($billing->getRegion())
|
| 555 |
+
->setPostalCode($billing->getPostcode())
|
| 556 |
+
->setCountry(strtolower($billing->getCountryModel()->getIso2Code()))
|
| 557 |
+
->setEmail($billing->getEmail())
|
| 558 |
+
->setPhone($billing->getTelephone())
|
| 559 |
+
->setMobile('')
|
| 560 |
+
->setComments('')
|
| 561 |
+
->setFax($billing->getFax())
|
| 562 |
+
->setUrl('');
|
| 563 |
+
|
| 564 |
+
$infoCard = Mage::getSingleton('core/session')->getInfoCard();
|
| 565 |
+
if ($infoCard && $infoCard->getCard() && $infoCard->getOwner() && !$this->getTokenInfo()) {
|
| 566 |
+
$cardDetails = Mage::getModel('ewayrapid/field_cardDetails');
|
| 567 |
+
$cardDetails->setName($infoCard->getOwner())
|
| 568 |
+
->setNumber($infoCard->getCard())
|
| 569 |
+
->setExpiryMonth($infoCard->getExpMonth())
|
| 570 |
+
->setExpiryYear($infoCard->getExpYear())
|
| 571 |
+
->setCVN($infoCard->getCid());
|
| 572 |
+
$customerParam->setCardDetails($cardDetails);
|
| 573 |
+
}
|
| 574 |
+
|
| 575 |
+
if ($quote->getTokenCustomerID()) {
|
| 576 |
+
$customerParam->setTokenCustomerID($quote->getTokenCustomerID());
|
| 577 |
+
} elseif ($token = $this->getTokenInfo()) {
|
| 578 |
+
$customerParam->setTokenCustomerID($token->getToken() ? $token->getToken() : $token->getTokenCustomerID());
|
| 579 |
+
}
|
| 580 |
+
|
| 581 |
+
$this->setCustomer($customerParam);
|
| 582 |
+
|
| 583 |
+
$shippingParam = Mage::getModel('ewayrapid/field_shippingAddress');
|
| 584 |
+
$shippingParam->setFirstName($shipping->getFirstname())
|
| 585 |
+
->setLastName($shipping->getLastname())
|
| 586 |
+
->setStreet1($shipping->getStreet1())
|
| 587 |
+
->setStreet2($shipping->getStreet2())
|
| 588 |
+
->setCity($shipping->getCity())
|
| 589 |
+
->setState($shipping->getRegion())
|
| 590 |
+
->setPostalCode($shipping->getPostcode())
|
| 591 |
+
->setCountry(strtolower($shipping->getCountryModel()->getIso2Code()))
|
| 592 |
+
->setEmail($shipping->getEmail())
|
| 593 |
+
->setPhone($shipping->getTelephone())
|
| 594 |
+
->setFax($shipping->getFax());
|
| 595 |
+
$this->setShippingAddress($shippingParam);
|
| 596 |
+
|
| 597 |
+
$orderItems = $quote->getAllVisibleItems();
|
| 598 |
+
$lineItems = array();
|
| 599 |
+
foreach ($orderItems as $orderItem) {
|
| 600 |
+
/* @var Mage_Sales_Model_Order_Item $orderItem */
|
| 601 |
+
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
|
| 602 |
+
$lineItem->setSKU($orderItem->getSku());
|
| 603 |
+
$lineItem->setDescription(substr($orderItem->getName(), 0, 26));
|
| 604 |
+
$lineItem->setQuantity($orderItem->getQtyOrdered());
|
| 605 |
+
$lineItem->setUnitCost(round($orderItem->getBasePrice() * 100));
|
| 606 |
+
$lineItem->setTax(round($orderItem->getBaseTaxAmount() * 100));
|
| 607 |
+
$lineItem->setTotal(round($orderItem->getBaseRowTotalInclTax() * 100));
|
| 608 |
+
$lineItems[] = $lineItem;
|
| 609 |
+
}
|
| 610 |
+
$this->setItems($lineItems);
|
| 611 |
+
if ($this->getTransMethod() == Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD) {
|
| 612 |
+
$this->setItems(false);
|
| 613 |
+
}
|
| 614 |
+
|
| 615 |
+
return $this;
|
| 616 |
+
}
|
| 617 |
+
|
| 618 |
+
/**
|
| 619 |
+
* @param $tokenCustomerID
|
| 620 |
+
* @throws Mage_Core_Exception
|
| 621 |
+
*/
|
| 622 |
+
public function getCustomerCard($tokenCustomerID)
|
| 623 |
+
{
|
| 624 |
+
// Empty Varien_Object's data
|
| 625 |
+
$this->unsetData();
|
| 626 |
+
|
| 627 |
+
$customerParam = Mage::getModel('ewayrapid/field_customer');
|
| 628 |
+
|
| 629 |
+
if ($tokenCustomerID) {
|
| 630 |
+
$customerParam->setTokenCustomerID($tokenCustomerID);
|
| 631 |
+
} else {
|
| 632 |
+
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while updating token: Token info does not exist.'));
|
| 633 |
+
}
|
| 634 |
+
$this->setCustomer($customerParam);
|
| 635 |
+
|
| 636 |
+
$response = $this->_doRapidAPI('Customer', 'PUT');
|
| 637 |
+
if ($response->isSuccess()) {
|
| 638 |
+
return $response;
|
| 639 |
+
} else {
|
| 640 |
+
return false;
|
| 641 |
+
}
|
| 642 |
+
}
|
| 643 |
+
|
| 644 |
+
public function getMethod()
|
| 645 |
+
{
|
| 646 |
+
return Mage::getSingleton('core/session')->getMethod();
|
| 647 |
+
}
|
| 648 |
+
|
| 649 |
+
/**
|
| 650 |
+
* @return mixed
|
| 651 |
+
*/
|
| 652 |
+
public function getTransMethod()
|
| 653 |
+
{
|
| 654 |
+
$transMethod = Mage::getSingleton('core/session')->getTransparentNotsaved();
|
| 655 |
+
if (!$transMethod) {
|
| 656 |
+
$transMethod = Mage::getSingleton('core/session')->getTransparentSaved();
|
| 657 |
+
}
|
| 658 |
+
return $transMethod;
|
| 659 |
+
}
|
| 660 |
+
|
| 661 |
+
/**
|
| 662 |
+
* @return mixed
|
| 663 |
+
*/
|
| 664 |
+
public function getTokenInfo()
|
| 665 |
+
{
|
| 666 |
+
if ($this->getTransMethod() == Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD) {
|
| 667 |
+
$uid = Mage::getSingleton('core/session')->getPaypalSavedToken();
|
| 668 |
+
} elseif ($this->getTransMethod() == Eway_Rapid31_Model_Config::MASTERPASS_METHOD) {
|
| 669 |
+
$uid = Mage::getSingleton('core/session')->getMasterpassSavedToken();
|
| 670 |
+
} else {
|
| 671 |
+
$uid = Mage::getSingleton('core/session')->getSavedToken();
|
| 672 |
+
}
|
| 673 |
+
if ($uid && $uid != Eway_Rapid31_Model_Config::TOKEN_NEW)
|
| 674 |
+
return Mage::helper('ewayrapid/customer')->getTokenById($uid);
|
| 675 |
+
return false;
|
| 676 |
+
}
|
| 677 |
+
|
| 678 |
+
/**
|
| 679 |
+
*
|
| 680 |
+
*/
|
| 681 |
+
public function unsetSessionData()
|
| 682 |
+
{
|
| 683 |
+
Mage::getSingleton('core/session')->unsTransparentNotsaved();
|
| 684 |
+
Mage::getSingleton('core/session')->unsTransparentSaved();
|
| 685 |
+
Mage::getSingleton('core/session')->unsSavedToken();
|
| 686 |
+
Mage::getSingleton('core/session')->unsTransactionId();
|
| 687 |
+
Mage::getSingleton('core/session')->unsFormActionUrl();
|
| 688 |
+
Mage::getSingleton('core/session')->unsPaypalSavedToken();
|
| 689 |
+
Mage::getSingleton('core/session')->unsMethod();
|
| 690 |
+
Mage::getSingleton('core/session')->unsCompleteCheckoutURL();
|
| 691 |
+
Mage::getSingleton('core/session')->unsMasterPassSavedToken();
|
| 692 |
+
Mage::getSingleton('core/session')->unsInfoCard();
|
| 693 |
+
}
|
| 694 |
}
|
app/code/community/Eway/Rapid31/controllers/Adminhtml/IndexController.php
CHANGED
|
@@ -1,9 +1,6 @@
|
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
-
*
|
| 4 |
-
* User: Administrator PC
|
| 5 |
-
* Date: 7/22/14
|
| 6 |
-
* Time: 9:07 AM
|
| 7 |
*/
|
| 8 |
class Eway_Rapid31_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action {
|
| 9 |
public function indexAction() {
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
+
*
|
|
|
|
|
|
|
|
|
|
| 4 |
*/
|
| 5 |
class Eway_Rapid31_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action {
|
| 6 |
public function indexAction() {
|
app/code/community/Eway/Rapid31/controllers/TestController.php
CHANGED
|
@@ -1,9 +1,6 @@
|
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
-
*
|
| 4 |
-
* User: Administrator PC
|
| 5 |
-
* Date: 8/7/14
|
| 6 |
-
* Time: 10:05 AM
|
| 7 |
*/
|
| 8 |
class Eway_Rapid31_TestController extends Mage_Core_Controller_Front_Action
|
| 9 |
{
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
+
*
|
|
|
|
|
|
|
|
|
|
| 4 |
*/
|
| 5 |
class Eway_Rapid31_TestController extends Mage_Core_Controller_Front_Action
|
| 6 |
{
|
app/code/community/Eway/Rapid31/etc/config.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Eway_Rapid31>
|
| 5 |
-
<version>1.3.
|
| 6 |
</Eway_Rapid31>
|
| 7 |
</modules>
|
| 8 |
<global>
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Eway_Rapid31>
|
| 5 |
+
<version>1.3.1</version>
|
| 6 |
</Eway_Rapid31>
|
| 7 |
</modules>
|
| 8 |
<global>
|
app/code/community/Eway/Rapid31/etc/system.xml
CHANGED
|
@@ -65,7 +65,7 @@
|
|
| 65 |
<sort_order>50</sort_order>
|
| 66 |
<comment>
|
| 67 |
<![CDATA[
|
| 68 |
-
<a href="https://
|
| 69 |
]]>
|
| 70 |
</comment>
|
| 71 |
</live_api_password>
|
|
@@ -96,7 +96,7 @@
|
|
| 96 |
<sort_order>70</sort_order>
|
| 97 |
<comment>
|
| 98 |
<![CDATA[
|
| 99 |
-
<a href="https://
|
| 100 |
]]>
|
| 101 |
</comment>
|
| 102 |
</sandbox_api_password>
|
| 65 |
<sort_order>50</sort_order>
|
| 66 |
<comment>
|
| 67 |
<![CDATA[
|
| 68 |
+
<a href="https://go.eway.io/s/article/How-do-I-setup-my-Live-eWAY-API-Key-and-Password" target="_blank">How to generate Live Rapid 3.1 API Key and Password</a>
|
| 69 |
]]>
|
| 70 |
</comment>
|
| 71 |
</live_api_password>
|
| 96 |
<sort_order>70</sort_order>
|
| 97 |
<comment>
|
| 98 |
<![CDATA[
|
| 99 |
+
<a href="https://go.eway.io/s/article/How-do-I-set-up-my-Sandbox-API-Key-and-password" target="_blank">How to generate Sandbox Rapid 3.1 API Key and Password</a>
|
| 100 |
]]>
|
| 101 |
</comment>
|
| 102 |
</sandbox_api_password>
|
app/code/community/Eway/Rapid31/sql/ewayrapid_setup/install-0.1.0.php
CHANGED
|
@@ -1,22 +1,19 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
'
|
| 14 |
-
'
|
| 15 |
-
'
|
| 16 |
-
'
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
'backend' => 'ewayrapid/backend_savedtokens',
|
| 20 |
-
));
|
| 21 |
-
|
| 22 |
$installer->endSetup();
|
| 1 |
+
<?php
|
| 2 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
| 3 |
+
$installer = $this;
|
| 4 |
+
|
| 5 |
+
$installer->startSetup();
|
| 6 |
+
|
| 7 |
+
$setup = Mage::getResourceModel('customer/setup', 'core_setup');
|
| 8 |
+
|
| 9 |
+
$setup->addAttribute('customer', 'saved_tokens_json', array(
|
| 10 |
+
'input' => '',
|
| 11 |
+
'type' => 'text',
|
| 12 |
+
'label' => '',
|
| 13 |
+
'visible' => '0',
|
| 14 |
+
'required' => '0',
|
| 15 |
+
'user_defined' => '0',
|
| 16 |
+
'backend' => 'ewayrapid/backend_savedtokens',
|
| 17 |
+
));
|
| 18 |
+
|
|
|
|
|
|
|
|
|
|
| 19 |
$installer->endSetup();
|
app/code/community/Eway/Rapid31/sql/ewayrapid_setup/upgrade-0.1.0-1.0.0.php
CHANGED
|
@@ -1,19 +1,19 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
/* @var $installer Mage_Core_Model_Resource_Setup */
|
| 3 |
-
$installer = $this;
|
| 4 |
-
|
| 5 |
-
$installer->startSetup();
|
| 6 |
-
|
| 7 |
-
Mage::getModel('sales/order_status')
|
| 8 |
-
->setStatus(Eway_Rapid31_Model_Config::ORDER_STATUS_AUTHORISED)
|
| 9 |
-
->setLabel('eWAY Authorised')
|
| 10 |
-
->assignState('processing')
|
| 11 |
-
->save();
|
| 12 |
-
|
| 13 |
-
Mage::getModel('sales/order_status')
|
| 14 |
-
->setStatus(Eway_Rapid31_Model_Config::ORDER_STATUS_CAPTURED)
|
| 15 |
-
->setLabel('eWAY Captured')
|
| 16 |
-
->assignState('processing')
|
| 17 |
-
->save();
|
| 18 |
-
|
| 19 |
$installer->endSetup();
|
| 1 |
+
<?php
|
| 2 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
| 3 |
+
$installer = $this;
|
| 4 |
+
|
| 5 |
+
$installer->startSetup();
|
| 6 |
+
|
| 7 |
+
Mage::getModel('sales/order_status')
|
| 8 |
+
->setStatus(Eway_Rapid31_Model_Config::ORDER_STATUS_AUTHORISED)
|
| 9 |
+
->setLabel('eWAY Authorised')
|
| 10 |
+
->assignState('processing')
|
| 11 |
+
->save();
|
| 12 |
+
|
| 13 |
+
Mage::getModel('sales/order_status')
|
| 14 |
+
->setStatus(Eway_Rapid31_Model_Config::ORDER_STATUS_CAPTURED)
|
| 15 |
+
->setLabel('eWAY Captured')
|
| 16 |
+
->assignState('processing')
|
| 17 |
+
->save();
|
| 18 |
+
|
| 19 |
$installer->endSetup();
|
app/code/community/Eway/Rapid31/sql/ewayrapid_setup/upgrade-1.0.0-1.0.1.php
CHANGED
|
@@ -1,26 +1,41 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
/* @var $installer Mage_Core_Model_Resource_Setup */
|
| 3 |
-
$installer = $this;
|
| 4 |
-
|
| 5 |
-
$installer->startSetup();
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
'
|
| 20 |
-
'
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
$installer->endSetup();
|
| 1 |
+
<?php
|
| 2 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
| 3 |
+
$installer = $this;
|
| 4 |
+
|
| 5 |
+
$installer->startSetup();
|
| 6 |
+
|
| 7 |
+
$installer->getConnection()
|
| 8 |
+
->addColumn($installer->getTable('sales/order'),
|
| 9 |
+
'eway_transaction_id',
|
| 10 |
+
array(
|
| 11 |
+
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
|
| 12 |
+
'length' => 50,
|
| 13 |
+
'nullable' => true,
|
| 14 |
+
'comment' => 'eWAY Transaction ID'
|
| 15 |
+
)
|
| 16 |
+
);
|
| 17 |
+
|
| 18 |
+
$installer->getConnection()
|
| 19 |
+
->addColumn($installer->getTable('sales/quote'),
|
| 20 |
+
'transaction_id',
|
| 21 |
+
array(
|
| 22 |
+
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
|
| 23 |
+
'length' => 50,
|
| 24 |
+
'nullable' => true,
|
| 25 |
+
'comment' => 'eWAY Transaction ID'
|
| 26 |
+
)
|
| 27 |
+
);
|
| 28 |
+
|
| 29 |
+
$setup = Mage::getResourceModel('customer/setup', 'core_setup');
|
| 30 |
+
|
| 31 |
+
$setup->addAttribute('customer', 'mark_fraud', array(
|
| 32 |
+
'input' => '',
|
| 33 |
+
'type' => 'int',
|
| 34 |
+
'label' => '',
|
| 35 |
+
'visible' => '0',
|
| 36 |
+
'required' => '0',
|
| 37 |
+
'user_defined' => '0',
|
| 38 |
+
'backend' => '',
|
| 39 |
+
));
|
| 40 |
+
|
| 41 |
$installer->endSetup();
|
app/code/community/Eway/Rapid31/sql/ewayrapid_setup/upgrade-1.0.1-1.0.3.php
CHANGED
|
@@ -1,33 +1,32 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
/* @var $installer Mage_Core_Model_Resource_Setup */
|
| 4 |
-
$installer = $this;
|
| 5 |
-
$installer->startSetup();
|
| 6 |
-
|
| 7 |
-
$setup = Mage::getResourceModel('customer/setup', 'core_setup');
|
| 8 |
-
|
| 9 |
-
$setup->addAttribute('customer', 'block_fraud_customer', array(
|
| 10 |
-
'input' => 'select',
|
| 11 |
-
'type' => 'int',
|
| 12 |
-
'label' => 'Unblock Fraud Customer',
|
| 13 |
-
'visible' => '0',
|
| 14 |
-
'required' => '0',
|
| 15 |
-
'user_defined' => '0',
|
| 16 |
-
'default' => '0',
|
| 17 |
-
'source' => 'eav/entity_attribute_source_boolean'
|
| 18 |
-
));
|
| 19 |
-
|
| 20 |
-
try {
|
| 21 |
-
$attributeId = $setup->getAttributeId('customer', 'block_fraud_customer');
|
| 22 |
-
Mage::getModel('customer/attribute')->load($attributeId)
|
| 23 |
-
->setSortOrder(999)
|
| 24 |
-
->save();
|
| 25 |
-
|
| 26 |
-
$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'block_fraud_customer');
|
| 27 |
-
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
|
| 28 |
-
$oAttribute->save();
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
}
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
| 4 |
+
$installer = $this;
|
| 5 |
+
$installer->startSetup();
|
| 6 |
+
|
| 7 |
+
$setup = Mage::getResourceModel('customer/setup', 'core_setup');
|
| 8 |
+
|
| 9 |
+
$setup->addAttribute('customer', 'block_fraud_customer', array(
|
| 10 |
+
'input' => 'select',
|
| 11 |
+
'type' => 'int',
|
| 12 |
+
'label' => 'Unblock Fraud Customer',
|
| 13 |
+
'visible' => '0',
|
| 14 |
+
'required' => '0',
|
| 15 |
+
'user_defined' => '0',
|
| 16 |
+
'default' => '0',
|
| 17 |
+
'source' => 'eav/entity_attribute_source_boolean'
|
| 18 |
+
));
|
| 19 |
+
|
| 20 |
+
try {
|
| 21 |
+
$attributeId = $setup->getAttributeId('customer', 'block_fraud_customer');
|
| 22 |
+
Mage::getModel('customer/attribute')->load($attributeId)
|
| 23 |
+
->setSortOrder(999)
|
| 24 |
+
->save();
|
| 25 |
+
|
| 26 |
+
$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'block_fraud_customer');
|
| 27 |
+
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
|
| 28 |
+
$oAttribute->save();
|
| 29 |
+
} catch (Exception $e) {
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
$installer->endSetup();
|
|
|
app/design/frontend/base/default/template/ewayrapid/js.phtml
CHANGED
|
@@ -1,243 +1,307 @@
|
|
| 1 |
-
<?php $_config = Mage::getSingleton('ewayrapid/config'); ?>
|
| 2 |
-
<?php $_backend = Mage::helper('ewayrapid')->isBackendOrder(); ?>
|
| 3 |
-
<?php $_checkoutExtension = $this->getCheckoutExtension(); ?>
|
| 4 |
-
<?php
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
<?php
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
<?php
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
form.
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
form.
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
checkout.
|
| 50 |
-
checkout.
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
FireCheckout.prototype.
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
<?php
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
IWD.OPC.
|
| 70 |
-
IWD.OPC.
|
| 71 |
-
IWD.OPC.
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
<?php
|
| 76 |
-
|
| 77 |
-
<?php
|
| 78 |
-
<?php
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
$('
|
| 139 |
-
$('
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
});
|
| 159 |
-
$('
|
| 160 |
-
|
| 161 |
-
});
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
$('
|
| 165 |
-
$('
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 243 |
<?php endif; ?>
|
| 1 |
+
<?php $_config = Mage::getSingleton('ewayrapid/config'); ?>
|
| 2 |
+
<?php $_backend = Mage::helper('ewayrapid')->isBackendOrder(); ?>
|
| 3 |
+
<?php $_checkoutExtension = $this->getCheckoutExtension(); ?>
|
| 4 |
+
<?php $_mageworld = Mage::helper('core')->isModuleEnabled('MW_Onestepcheckout'); ?>
|
| 5 |
+
<?php if ($_config->isDirectConnection() || $_backend): ?>
|
| 6 |
+
<script type="text/javascript">
|
| 7 |
+
EwayPayment.supportCardTypes = <?php echo json_encode($_config->getSupportedCardTypes()) ?>;
|
| 8 |
+
<?php if(Mage::helper('ewayrapid')->isBackendOrder()): ?>
|
| 9 |
+
var ewayPayment = new EwayPayment($('edit_form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 10 |
+
AdminOrder.prototype.submit = ewayPayment.submitAdminOrder;
|
| 11 |
+
<?php else: ?>
|
| 12 |
+
<?php switch($_checkoutExtension):
|
| 13 |
+
case 'OneStepCheckout': // OneStepCheckout extension ?>
|
| 14 |
+
document.observe("dom:loaded", function () {
|
| 15 |
+
|
| 16 |
+
<?php if(Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')): ?>
|
| 17 |
+
var ewayPayment = new EwayPayment($('onestepcheckout-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 18 |
+
if (ewayPayment && $('onestepcheckout-form')) {
|
| 19 |
+
Payment.prototype.switchMethod = ewayPayment.OneStepCheckout.switchMethod;
|
| 20 |
+
if (payment.currentMethod) {
|
| 21 |
+
payment.switchMethod(payment.currentMethod);
|
| 22 |
+
}
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
$('onestepcheckout-form') && ($('onestepcheckout-form').submit = function () {
|
| 26 |
+
form = eCrypt.doEncrypt();
|
| 27 |
+
form.submit();
|
| 28 |
+
});
|
| 29 |
+
<?php endif; ?>
|
| 30 |
+
|
| 31 |
+
<?php if(Mage::getStoreConfig('onestepcheckout/general/active')): ?>
|
| 32 |
+
var ewayPayment2 = new EwayPayment($('one-step-checkout-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 33 |
+
if (ewayPayment2 && $('one-step-checkout-form'))
|
| 34 |
+
Payment.prototype.switchMethod = ewayPayment2.OneStepCheckout.switchMethod;
|
| 35 |
+
|
| 36 |
+
$('one-step-checkout-form') && ($('one-step-checkout-form').submit = function () {
|
| 37 |
+
form = eCrypt.doEncrypt();
|
| 38 |
+
form.submit();
|
| 39 |
+
});
|
| 40 |
+
<?php endif; ?>
|
| 41 |
+
|
| 42 |
+
});
|
| 43 |
+
<?php break; ?>
|
| 44 |
+
|
| 45 |
+
<?php case 'LightCheckout': ?>
|
| 46 |
+
document.observe("dom:loaded", function () {
|
| 47 |
+
var ewayPayment = new EwayPayment($('gcheckout-onepage-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 48 |
+
if (typeof checkout.LightcheckoutSubmitOld == "undefined") {
|
| 49 |
+
checkout.LightcheckoutSubmitOld = checkout.LightcheckoutSubmit;
|
| 50 |
+
checkout.LightcheckoutSubmit = ewayPayment.Lightcheckout.LightcheckoutSubmit;
|
| 51 |
+
checkout.getFormData = ewayPayment.Lightcheckout.getFormData;
|
| 52 |
+
}
|
| 53 |
+
});
|
| 54 |
+
<?php break; ?>
|
| 55 |
+
|
| 56 |
+
<?php case 'FireCheckout': // FireCheckout extension ?>
|
| 57 |
+
document.observe("dom:loaded", function () {
|
| 58 |
+
var ewayPayment = new EwayPayment($('firecheckout-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 59 |
+
if (typeof FireCheckout.prototype.ewayOldSave == "undefined") {
|
| 60 |
+
FireCheckout.prototype.ewayOldSave = FireCheckout.prototype.save;
|
| 61 |
+
FireCheckout.prototype.save = ewayPayment.FireCheckout.save;
|
| 62 |
+
}
|
| 63 |
+
});
|
| 64 |
+
<?php break; ?>
|
| 65 |
+
<?php case 'IWDOnePageCheckout': // IWD OnePageCheckout extension ?>
|
| 66 |
+
document.observe("dom:loaded", function () {
|
| 67 |
+
var ewayPayment = new EwayPayment($('co-payment-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 68 |
+
if (typeof IWD.OPC.ewayOldSavePayment == "undefined") {
|
| 69 |
+
IWD.OPC.ewayOldSavePayment = IWD.OPC.savePayment;
|
| 70 |
+
IWD.OPC.ewayOldSaveOrder = IWD.OPC.saveOrder;
|
| 71 |
+
IWD.OPC.savePayment = ewayPayment.IWDOnePageCheckout.savePayment;
|
| 72 |
+
IWD.OPC.saveOrder = ewayPayment.IWDOnePageCheckout.saveOrder;
|
| 73 |
+
}
|
| 74 |
+
});
|
| 75 |
+
<?php break; ?>
|
| 76 |
+
<?php case 'MultiShippingAddress': // Magento default multi shipping address ?>
|
| 77 |
+
var ewayPayment = new EwayPayment($('multishipping-billing-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 78 |
+
<?php break; ?>
|
| 79 |
+
<?php default: // Magento default one page checkout ?>
|
| 80 |
+
var ewayPayment = new EwayPayment($('co-payment-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 81 |
+
Payment.prototype.save = ewayPayment.savePaymentWithEncryption;
|
| 82 |
+
Review.prototype.save = ewayPayment.saveReviewWithEncryption;
|
| 83 |
+
|
| 84 |
+
document.observe("dom:loaded", function () {
|
| 85 |
+
window.onload = function(){
|
| 86 |
+
// MageWorld One Step Checkout Pro
|
| 87 |
+
if(typeof $MW_Onestepcheckout != 'undefined') {
|
| 88 |
+
$MW_Onestepcheckout('.btn-checkout').die('click');
|
| 89 |
+
$MW_Onestepcheckout('.btn-checkout').live("click",function(e){
|
| 90 |
+
var ewayPayment = new EwayPayment($('onestep_form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 91 |
+
<?php if($_mageworld && Mage::helper('onestepcheckout')->onlyProductDownloadable()):?>
|
| 92 |
+
var notshipmethod=1;
|
| 93 |
+
<?php else:?>
|
| 94 |
+
var notshipmethod=$MW_Onestepcheckout("input[name=shipping_method]:checked").val();
|
| 95 |
+
<?php endif?>
|
| 96 |
+
ewayPayment.MageWorld.submit(e, notshipmethod, false);
|
| 97 |
+
});
|
| 98 |
+
}
|
| 99 |
+
}
|
| 100 |
+
});
|
| 101 |
+
<?php endswitch; ?>
|
| 102 |
+
<?php endif; ?>
|
| 103 |
+
</script>
|
| 104 |
+
<?php endif; ?>
|
| 105 |
+
|
| 106 |
+
<?php if ($_config->isTransparentConnection() && !$_backend): ?>
|
| 107 |
+
<?php if($_checkoutExtension) {
|
| 108 |
+
Mage::getSingleton('core/session')->setCheckoutExtension($_checkoutExtension);
|
| 109 |
+
} else {
|
| 110 |
+
Mage::getSingleton('core/session')->unsCheckoutExtension();
|
| 111 |
+
}?>
|
| 112 |
+
<script type="text/javascript">
|
| 113 |
+
var creditcard = '<?php echo Eway_Rapid31_Model_Config::CREDITCARD_METHOD ?>';
|
| 114 |
+
|
| 115 |
+
<?php switch($_checkoutExtension):
|
| 116 |
+
case 'OneStepCheckout': // OneStepCheckout extension ?>
|
| 117 |
+
document.observe("dom:loaded", function () {
|
| 118 |
+
<?php if(Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')): ?>
|
| 119 |
+
var ewayPayment = new EwayPayment($('onestepcheckout-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 120 |
+
Payment.prototype.switchMethod = ewayPayment.OneStepCheckout.switchMethod;
|
| 121 |
+
if (payment.currentMethod) {
|
| 122 |
+
payment.switchMethod(payment.currentMethod);
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
$('onestepcheckout-form') && ($('onestepcheckout-form').submit = function () {
|
| 126 |
+
form = eCrypt.doEncrypt();
|
| 127 |
+
form.submit();
|
| 128 |
+
});
|
| 129 |
+
|
| 130 |
+
if ($('onestepcheckout-form')) {
|
| 131 |
+
$('ewayrapid_notsaved_expiration') && $('ewayrapid_notsaved_expiration').writeAttribute('style', 'width:103px !important;');
|
| 132 |
+
$('ewayrapid_saved_expiration') && $('ewayrapid_saved_expiration').writeAttribute('style', 'width:103px !important;');
|
| 133 |
+
$('ewayrapid_saved_token') && $('ewayrapid_saved_token').writeAttribute('style', 'width:128px !important;');
|
| 134 |
+
$('v-fix-change') && $('v-fix-change').writeAttribute('style', 'width:60px !important;');
|
| 135 |
+
$('v-fix-cvn-id') && $('v-fix-cvn-id').writeAttribute('style', 'width:60px !important;');
|
| 136 |
+
|
| 137 |
+
$('ul_payment_form_ewayrapid_notsaved') && $('ul_payment_form_ewayrapid_notsaved').setStyle({'margin-left': '-2px'});
|
| 138 |
+
$('ul_payment_form_ewayrapid_saved') && $('ul_payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
|
| 139 |
+
$('ul-eway-saved-div-box') && $('ul-eway-saved-div-box').setStyle({'margin-left': '-2px'});
|
| 140 |
+
$$('#container_payment_method_ewayrapid_notsaved ul li').each(function (element) {
|
| 141 |
+
element.writeAttribute('style', 'float: left; width: 100%');
|
| 142 |
+
});
|
| 143 |
+
}
|
| 144 |
+
<?php endif; ?>
|
| 145 |
+
|
| 146 |
+
<?php if(Mage::getStoreConfig('onestepcheckout/general/active')): ?>
|
| 147 |
+
var ewayPayment2 = new EwayPayment($('one-step-checkout-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 148 |
+
if (ewayPayment2 && $('one-step-checkout-form'))
|
| 149 |
+
Payment.prototype.switchMethod = ewayPayment2.OneStepCheckout.switchMethod;
|
| 150 |
+
|
| 151 |
+
$('one-step-checkout-form') && ($('one-step-checkout-form').submit = function () {
|
| 152 |
+
form = eCrypt.doEncrypt();
|
| 153 |
+
form.submit();
|
| 154 |
+
});
|
| 155 |
+
|
| 156 |
+
if ($('one-step-checkout-form')) {
|
| 157 |
+
$('payment_form_ewayrapid_notsaved') && $('payment_form_ewayrapid_notsaved').setStyle({'width': '95%'});
|
| 158 |
+
$('payment_form_ewayrapid_saved') && $('payment_form_ewayrapid_saved').setStyle({'width': '95%'});
|
| 159 |
+
$('ul_payment_form_ewayrapid_notsaved') && $('ul_payment_form_ewayrapid_notsaved').setStyle({'margin-left': '-2px'});
|
| 160 |
+
$('ul_payment_form_ewayrapid_saved') && $('ul_payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
|
| 161 |
+
$('payment_form_ewayrapid_saved') && $('payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
|
| 162 |
+
$('ul-eway-saved-div-box') && $('ul-eway-saved-div-box').setStyle({'margin-left': '-2px'});
|
| 163 |
+
|
| 164 |
+
$('ewayrapid_notsaved_cc_type_cvv_div') && $$('#ewayrapid_notsaved_cc_type_cvv_div div.v-fix')[0].writeAttribute('style', 'width: 35% !important');
|
| 165 |
+
$('ewayrapid_saved_cc_type_cvv_div') && $$('#ewayrapid_saved_cc_type_cvv_div div.v-fix')[0].writeAttribute('style', 'width: 35% !important');
|
| 166 |
+
|
| 167 |
+
$$('#ul_payment_form_ewayrapid_notsaved input[type=text]').each(function (element) {
|
| 168 |
+
element.writeAttribute('style', 'width: 97% !important;');
|
| 169 |
+
});
|
| 170 |
+
|
| 171 |
+
$('ul_payment_form_ewayrapid_saved') && $$('#ul_payment_form_ewayrapid_saved input[type=text]').each(function (element) {
|
| 172 |
+
element.writeAttribute('style', 'width: 97% !important;');
|
| 173 |
+
});
|
| 174 |
+
|
| 175 |
+
$$('#container_payment_method_ewayrapid_notsaved ul li').each(function (element) {
|
| 176 |
+
element.writeAttribute('style', 'float: left; width: 100%');
|
| 177 |
+
});
|
| 178 |
+
$('container_payment_method_ewayrapid_saved') && $$('#container_payment_method_ewayrapid_saved ul li').each(function (element) {
|
| 179 |
+
element.writeAttribute('style', 'float: left; width: 100%');
|
| 180 |
+
});
|
| 181 |
+
|
| 182 |
+
$$('.eway-saved-div-box')[0].writeAttribute('style', 'margin-left:-26px');
|
| 183 |
+
$('ewayrapid_saved_cc_cid') && $('ewayrapid_saved_cc_cid').removeAttribute('disabled');
|
| 184 |
+
$('eway_save_paypal') && $('eway_save_paypal').hide();
|
| 185 |
+
$('eway_save_masterpass') && $('eway_save_masterpass').hide();
|
| 186 |
+
var _ctype = $('ewayrapid_saved_token')[0].readAttribute('rel');
|
| 187 |
+
if (_ctype == 'paypal') {
|
| 188 |
+
$('ewayrapid_saved_cc_type_cvv_div') && $('ewayrapid_saved_cc_type_cvv_div').hide();
|
| 189 |
+
$('ewayrapid_saved_edit') && $('ewayrapid_saved_edit').hide();
|
| 190 |
+
$$('.element_save_creditcard').each(function (el) {
|
| 191 |
+
el.hide();
|
| 192 |
+
});
|
| 193 |
+
} else if ((_ctype == "" || _ctype == null || $('ewayrapid_saved_token').getValue() == 'new')) {
|
| 194 |
+
$('<?php echo $_code ?>_cc_number') && $('<?php echo $_code ?>_cc_number').writeAttribute('disabled', false);
|
| 195 |
+
$('eway_save_masterpass') && $('eway_save_masterpass').show(150);
|
| 196 |
+
$('eway_save_paypal') && $('eway_save_paypal').show(150);
|
| 197 |
+
$('ul_payment_form_<?php echo $_code ?>') && $('ul_payment_form_<?php echo $_code ?>').show(150);
|
| 198 |
+
|
| 199 |
+
$('ewayrapid_saved_edit') && $('ewayrapid_saved_edit').hide();
|
| 200 |
+
|
| 201 |
+
$$('.element_save_creditcard').each(function (el) {
|
| 202 |
+
el.show();
|
| 203 |
+
});
|
| 204 |
+
$('ul_payment_form_ewayrapid_saved') && $('ul_payment_form_ewayrapid_saved').show();
|
| 205 |
+
$('ewayrapid_saved_cc_type_cvv_div') && $('ewayrapid_saved_cc_type_cvv_div').show();
|
| 206 |
+
} else {
|
| 207 |
+
$$('.element_save_creditcard').each(function (el) {
|
| 208 |
+
el.hide();
|
| 209 |
+
});
|
| 210 |
+
}
|
| 211 |
+
}
|
| 212 |
+
<?php endif; ?>
|
| 213 |
+
});
|
| 214 |
+
<?php break; ?>
|
| 215 |
+
|
| 216 |
+
<?php case 'LightCheckout': ?>
|
| 217 |
+
document.observe("dom:loaded", function () {
|
| 218 |
+
var ewayPayment = new EwayPayment($('gcheckout-onepage-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 219 |
+
if (typeof checkout.LightcheckoutSubmitOld == "undefined") {
|
| 220 |
+
checkout.LightcheckoutSubmitOld = checkout.LightcheckoutSubmit;
|
| 221 |
+
checkout.LightcheckoutSubmit = ewayPayment.Lightcheckout.LightcheckoutSubmit;
|
| 222 |
+
checkout.getFormData = ewayPayment.Lightcheckout.getFormData;
|
| 223 |
+
}
|
| 224 |
+
});
|
| 225 |
+
<?php break; ?>
|
| 226 |
+
|
| 227 |
+
|
| 228 |
+
<?php case 'FireCheckout': // FireCheckout extension ?>
|
| 229 |
+
document.observe("dom:loaded", function () {
|
| 230 |
+
var ewayPayment = new EwayPayment($('firecheckout-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 231 |
+
if (typeof FireCheckout.prototype.ewayOldSave == "undefined") {
|
| 232 |
+
FireCheckout.prototype.ewayOldSave = FireCheckout.prototype.save;
|
| 233 |
+
FireCheckout.prototype.save = ewayPayment.FireCheckout.savePayment;
|
| 234 |
+
}
|
| 235 |
+
});
|
| 236 |
+
<?php break; ?>
|
| 237 |
+
<?php case 'IWDOnePageCheckout': // FireCheckout extension ?>
|
| 238 |
+
document.observe("dom:loaded", function () {
|
| 239 |
+
var ewayPayment = new EwayPayment($('co-payment-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 240 |
+
if (typeof IWD.OPC.ewayOldSavePayment == "undefined") {
|
| 241 |
+
IWD.OPC.ewayOldSavePayment = IWD.OPC.savePayment;
|
| 242 |
+
IWD.OPC.savePayment = ewayPayment.IWDOnePageCheckout.savePaymentTrans;
|
| 243 |
+
}
|
| 244 |
+
});
|
| 245 |
+
<?php break; ?>
|
| 246 |
+
<?php case 'MultiShippingAddress': // Magento default multi shipping address ?>
|
| 247 |
+
var ewayPayment = new EwayPayment($('multishipping-billing-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 248 |
+
<?php break; ?>
|
| 249 |
+
|
| 250 |
+
<?php default: // Magento default one page checkout ?>
|
| 251 |
+
var ewayPayment = new EwayPayment($('co-payment-form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 252 |
+
Payment.prototype.save = ewayPayment.savePaymentWithTransEncryption;
|
| 253 |
+
|
| 254 |
+
if (typeof (ewayPayment.ewaysavedOldOrder) == "undefined") {
|
| 255 |
+
ewayPayment.ewaysavedOldOrder = Review.prototype.save;
|
| 256 |
+
}
|
| 257 |
+
ewayPayment.paymentUrl = "<?php echo Mage::getUrl('ewayrapid/transparent/build', array('_secure'=>true)); ?>";
|
| 258 |
+
Review.prototype.save = ewayPayment.saveReviewWithEncryptionTrans;
|
| 259 |
+
|
| 260 |
+
document.observe("dom:loaded", function () {
|
| 261 |
+
window.onload = function(){
|
| 262 |
+
// MageWorld One Step Checkout Pro
|
| 263 |
+
if(typeof $MW_Onestepcheckout != 'undefined') {
|
| 264 |
+
|
| 265 |
+
$('payment_form_ewayrapid_notsaved') && $('payment_form_ewayrapid_notsaved').setStyle({'width': '90%'});
|
| 266 |
+
$('payment_form_ewayrapid_saved') && $('payment_form_ewayrapid_saved').setStyle({'width': '90%'});
|
| 267 |
+
$('ul_payment_form_ewayrapid_notsaved') && $('ul_payment_form_ewayrapid_notsaved').setStyle({'margin-left': '-2px'});
|
| 268 |
+
$('ul_payment_form_ewayrapid_saved') && $('ul_payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
|
| 269 |
+
$('payment_form_ewayrapid_saved') && $('payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
|
| 270 |
+
$('ul-eway-saved-div-box') && $('ul-eway-saved-div-box').setStyle({'margin-left': '-2px'});
|
| 271 |
+
|
| 272 |
+
$('ewayrapid_notsaved_expiration') && $('ewayrapid_notsaved_expiration').writeAttribute('style', 'width:103px !important;');
|
| 273 |
+
$('ewayrapid_saved_expiration') && $('ewayrapid_saved_expiration').writeAttribute('style', 'width:103px !important;');
|
| 274 |
+
$('ewayrapid_saved_token') && $('ewayrapid_saved_token').writeAttribute('style', 'width:128px !important;');
|
| 275 |
+
|
| 276 |
+
$('ewayrapid_notsaved_cc_type_cvv_div') && $$('#ewayrapid_notsaved_cc_type_cvv_div div.v-fix')[0].writeAttribute('style', 'width: 35% !important');
|
| 277 |
+
$('ewayrapid_saved_cc_type_cvv_div') && $$('#ewayrapid_saved_cc_type_cvv_div div.v-fix')[0].writeAttribute('style', 'width: 35% !important');
|
| 278 |
+
|
| 279 |
+
$$('#ul_payment_form_ewayrapid_notsaved input[type=text]').each(function (element) {
|
| 280 |
+
element.writeAttribute('style', 'width: 80% !important;');
|
| 281 |
+
});
|
| 282 |
+
|
| 283 |
+
$('ul_payment_form_ewayrapid_saved') && $$('#ul_payment_form_ewayrapid_saved input[type=text]').each(function (element) {
|
| 284 |
+
element.writeAttribute('style', 'width: 80% !important;');
|
| 285 |
+
});
|
| 286 |
+
|
| 287 |
+
$MW_Onestepcheckout('.btn-checkout').die('click');
|
| 288 |
+
$MW_Onestepcheckout('.btn-checkout').live("click",function(e){
|
| 289 |
+
alert('Transparent Redirect is not supported with MageWorld One Step Checkout Pro.');
|
| 290 |
+
return false;
|
| 291 |
+
var ewayPayment = new EwayPayment($('onestep_form'), '<?php echo $_config->getEncryptionKey() ?>');
|
| 292 |
+
ewayPayment.paymentUrl = "<?php echo Mage::getUrl('ewayrapid/transparent/build', array('_secure'=>true)); ?>";
|
| 293 |
+
<?php if($_mageworld && Mage::helper('onestepcheckout')->onlyProductDownloadable()):?>
|
| 294 |
+
var notshipmethod=1;
|
| 295 |
+
<?php else:?>
|
| 296 |
+
var notshipmethod=$MW_Onestepcheckout("input[name=shipping_method]:checked").val();
|
| 297 |
+
<?php endif?>
|
| 298 |
+
ewayPayment.MageWorld.submit(e, notshipmethod, true);
|
| 299 |
+
});
|
| 300 |
+
}
|
| 301 |
+
}
|
| 302 |
+
});
|
| 303 |
+
|
| 304 |
+
<?php endswitch; ?>
|
| 305 |
+
|
| 306 |
+
</script>
|
| 307 |
<?php endif; ?>
|
js/ewayrapid/eWAY_Payment_Rapid31.xml
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<_>
|
| 2 |
+
<form_key>zlEmYI88Nf5v0PME</form_key>
|
| 3 |
+
<name>eWAY_Payment_Rapid31</name>
|
| 4 |
+
<channel>community</channel>
|
| 5 |
+
<version_ids>
|
| 6 |
+
<version_ids>2</version_ids>
|
| 7 |
+
</version_ids>
|
| 8 |
+
<summary>The eWAY payment module - accept credit card payments, save cards, process refunds with eWAY's Rapid 3.1 Payment Gateway.</summary>
|
| 9 |
+
<description>The eWAY Rapid 3.1 payments module - made by eWAY for eWAY merchants:
|
| 10 |
+
|
| 11 |
+
- It's free!
|
| 12 |
+
- Fast and easy to set up and integrate
|
| 13 |
+
- Smash chargebacks with global fraud protection
|
| 14 |
+
- More options for your customers - more payment methods
|
| 15 |
+
- Improve basket conversion with faster checkout features
|
| 16 |
+
- Full Magento back-office integration, including manual orders and refunds
|
| 17 |
+
- Supports eWAY's Sandbox for testing
|
| 18 |
+
- Your customers can save their card details using eWAY's secure servers for faster checkout
|
| 19 |
+
- Get help when and where you need it with 24/7 support
|
| 20 |
+
|
| 21 |
+
Discover more at http://www.eway.com.au - payments made smarter!</description>
|
| 22 |
+
<license>OSL v3.0</license>
|
| 23 |
+
<license_uri/>
|
| 24 |
+
<version>1.3.1</version>
|
| 25 |
+
<stability>stable</stability>
|
| 26 |
+
<notes>Minor fixes:
|
| 27 |
+
|
| 28 |
+
- Fix for stores with custom DB table prefixes
|
| 29 |
+
- Improved recurring initial fee handling
|
| 30 |
+
- Fix for manual payments not submitting for some stores
|
| 31 |
+
- Fix for update token with Direct sometimes failing</notes>
|
| 32 |
+
<authors>
|
| 33 |
+
<name>
|
| 34 |
+
<name>eWAY Payments</name>
|
| 35 |
+
</name>
|
| 36 |
+
<user>
|
| 37 |
+
<user>eWAYPayments</user>
|
| 38 |
+
</user>
|
| 39 |
+
<email>
|
| 40 |
+
<email>partner@eway.com.au</email>
|
| 41 |
+
</email>
|
| 42 |
+
</authors>
|
| 43 |
+
<depends_php_min>5.2.0</depends_php_min>
|
| 44 |
+
<depends_php_max>6.0.0</depends_php_max>
|
| 45 |
+
<depends>
|
| 46 |
+
<package>
|
| 47 |
+
<name>
|
| 48 |
+
<name/>
|
| 49 |
+
</name>
|
| 50 |
+
<channel>
|
| 51 |
+
<channel/>
|
| 52 |
+
</channel>
|
| 53 |
+
<min>
|
| 54 |
+
<min/>
|
| 55 |
+
</min>
|
| 56 |
+
<max>
|
| 57 |
+
<max/>
|
| 58 |
+
</max>
|
| 59 |
+
<files>
|
| 60 |
+
<files> </files>
|
| 61 |
+
</files>
|
| 62 |
+
</package>
|
| 63 |
+
<extension>
|
| 64 |
+
<name>
|
| 65 |
+
<name>Core</name>
|
| 66 |
+
<name>curl</name>
|
| 67 |
+
</name>
|
| 68 |
+
<min>
|
| 69 |
+
<min/>
|
| 70 |
+
<min/>
|
| 71 |
+
</min>
|
| 72 |
+
<max>
|
| 73 |
+
<max/>
|
| 74 |
+
<max/>
|
| 75 |
+
</max>
|
| 76 |
+
</extension>
|
| 77 |
+
</depends>
|
| 78 |
+
<contents>
|
| 79 |
+
<target>
|
| 80 |
+
<target>magelocal</target>
|
| 81 |
+
<target>magecommunity</target>
|
| 82 |
+
<target>magedesign</target>
|
| 83 |
+
<target>magedesign</target>
|
| 84 |
+
<target>mageetc</target>
|
| 85 |
+
<target>magelocale</target>
|
| 86 |
+
<target>mageskin</target>
|
| 87 |
+
<target>mageskin</target>
|
| 88 |
+
<target>mageweb</target>
|
| 89 |
+
<target>magedesign</target>
|
| 90 |
+
<target>magedesign</target>
|
| 91 |
+
</target>
|
| 92 |
+
<path>
|
| 93 |
+
<path/>
|
| 94 |
+
<path>Eway</path>
|
| 95 |
+
<path>adminhtml/default/default/layout/ewayrapid/</path>
|
| 96 |
+
<path>frontend/base/default/layout/ewayrapid</path>
|
| 97 |
+
<path>modules/Eway_Rapid31.xml</path>
|
| 98 |
+
<path>en_US/Eway_Rapid31.csv</path>
|
| 99 |
+
<path>adminhtml/default/default/ewayrapid.css</path>
|
| 100 |
+
<path>frontend/base/default/css/ewayrapid.css</path>
|
| 101 |
+
<path>js/ewayrapid</path>
|
| 102 |
+
<path>adminhtml/default/default/template/ewayrapid</path>
|
| 103 |
+
<path>frontend/base/default/template/ewayrapid</path>
|
| 104 |
+
</path>
|
| 105 |
+
<type>
|
| 106 |
+
<type>file</type>
|
| 107 |
+
<type>dir</type>
|
| 108 |
+
<type>dir</type>
|
| 109 |
+
<type>dir</type>
|
| 110 |
+
<type>file</type>
|
| 111 |
+
<type>file</type>
|
| 112 |
+
<type>file</type>
|
| 113 |
+
<type>file</type>
|
| 114 |
+
<type>dir</type>
|
| 115 |
+
<type>dir</type>
|
| 116 |
+
<type>dir</type>
|
| 117 |
+
</type>
|
| 118 |
+
<include>
|
| 119 |
+
<include/>
|
| 120 |
+
<include/>
|
| 121 |
+
<include/>
|
| 122 |
+
<include/>
|
| 123 |
+
<include/>
|
| 124 |
+
<include/>
|
| 125 |
+
<include/>
|
| 126 |
+
<include/>
|
| 127 |
+
<include/>
|
| 128 |
+
<include/>
|
| 129 |
+
<include/>
|
| 130 |
+
</include>
|
| 131 |
+
<ignore>
|
| 132 |
+
<ignore/>
|
| 133 |
+
<ignore/>
|
| 134 |
+
<ignore/>
|
| 135 |
+
<ignore/>
|
| 136 |
+
<ignore/>
|
| 137 |
+
<ignore/>
|
| 138 |
+
<ignore/>
|
| 139 |
+
<ignore/>
|
| 140 |
+
<ignore/>
|
| 141 |
+
<ignore/>
|
| 142 |
+
<ignore/>
|
| 143 |
+
</ignore>
|
| 144 |
+
</contents>
|
| 145 |
+
</_>
|
js/ewayrapid/ewayrapid.js
CHANGED
|
@@ -1,1012 +1,764 @@
|
|
| 1 |
-
var EwayPayment = Class.create();
|
| 2 |
-
EwayPayment.isEwayRapidMethod = function(method) {
|
| 3 |
-
return ("ewayrapid_saved" === method || "ewayrapid_notsaved" === method);
|
| 4 |
-
};
|
| 5 |
-
EwayPayment.supportCardTypes = ['AE', 'VI', 'MC', 'JCB', 'DC', 'VE', 'ME'];
|
| 6 |
-
EwayPayment.prototype = {
|
| 7 |
-
paymentUrl : null,
|
| 8 |
-
ewayPayment: this,
|
| 9 |
-
initialize: function(form, encryptionKey) {
|
| 10 |
-
if(form) {
|
| 11 |
-
// Init client-side encryption
|
| 12 |
-
if(typeof eCrypt == 'function') {
|
| 13 |
-
form.writeAttribute('data-eway-encrypt-key', encryptionKey);
|
| 14 |
-
eCrypt && eCrypt.init();
|
| 15 |
-
}
|
| 16 |
-
}
|
| 17 |
-
},
|
| 18 |
-
|
| 19 |
-
savePaymentWithEncryption: function() {
|
| 20 |
-
if (checkout.loadWaiting!=false) return;
|
| 21 |
-
var validator = new Validation(this.form);
|
| 22 |
-
if (this.validate() && validator.validate()) {
|
| 23 |
-
checkout.setLoadWaiting('payment');
|
| 24 |
-
var form = $(this.form);
|
| 25 |
-
if($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 26 |
-
form = eCrypt.doEncrypt();
|
| 27 |
-
}
|
| 28 |
-
this.ewayForm = form;
|
| 29 |
-
var request = new Ajax.Request(
|
| 30 |
-
this.saveUrl,
|
| 31 |
-
{
|
| 32 |
-
method:'post',
|
| 33 |
-
onComplete: this.onComplete,
|
| 34 |
-
onSuccess: this.onSave,
|
| 35 |
-
onFailure: checkout.ajaxFailure.bind(checkout),
|
| 36 |
-
parameters: $(form.id).serialize()
|
| 37 |
-
}
|
| 38 |
-
);
|
| 39 |
-
}
|
| 40 |
-
},
|
| 41 |
-
|
| 42 |
-
savePaymentWithTransEncryption: function() {
|
| 43 |
-
if(EwayPayment.isEwayRapidMethod(payment.currentMethod)) {
|
| 44 |
-
if (checkout.loadWaiting != false) return;
|
| 45 |
-
var validator = new Validation(this.form);
|
| 46 |
-
if (this.validate() && validator.validate()) {
|
| 47 |
-
checkout.setLoadWaiting('payment');
|
| 48 |
-
var form = $(this.form);
|
| 49 |
-
var _method = $$("input[name='payment[method]']:checked")[0].getValue();
|
| 50 |
-
var _transparent_method = '';
|
| 51 |
-
|
| 52 |
-
if (_method == 'ewayrapid_notsaved' && $$("input[name='payment[transparent_notsaved]']:checked").length > 0) {
|
| 53 |
-
_transparent_method = $$("input[name='payment[transparent_notsaved]']:checked")[0];
|
| 54 |
-
} else if (_method == 'ewayrapid_saved' && $$("input[name='payment[transparent_saved]']:checked").length > 0) {
|
| 55 |
-
_transparent_method = $$("input[name='payment[transparent_saved]']:checked")[0];
|
| 56 |
-
}
|
| 57 |
-
|
| 58 |
-
if (_transparent_method != '' && $(_transparent_method.id).getValue() == creditcard) {
|
| 59 |
-
if ($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 60 |
-
form = eCrypt.doEncrypt();
|
| 61 |
-
}
|
| 62 |
-
}
|
| 63 |
-
|
| 64 |
-
this.ewayForm = form;
|
| 65 |
-
var request = new Ajax.Request(
|
| 66 |
-
this.saveUrl,
|
| 67 |
-
{
|
| 68 |
-
method: 'post',
|
| 69 |
-
onComplete: this.onComplete,
|
| 70 |
-
onSuccess: this.onSave,
|
| 71 |
-
onFailure: checkout.ajaxFailure.bind(checkout),
|
| 72 |
-
parameters: $(form.id).serialize()
|
| 73 |
-
}
|
| 74 |
-
);
|
| 75 |
-
}
|
| 76 |
-
}
|
| 77 |
-
},
|
| 78 |
-
|
| 79 |
-
saveReviewWithEncryption: function() {
|
| 80 |
-
if (checkout.loadWaiting!=false) return;
|
| 81 |
-
checkout.setLoadWaiting('review');
|
| 82 |
-
//var params = Form.serialize(payment.form);
|
| 83 |
-
var params = payment.ewayForm.serialize();
|
| 84 |
-
if (this.agreementsForm) {
|
| 85 |
-
params += '&'+Form.serialize(this.agreementsForm);
|
| 86 |
-
}
|
| 87 |
-
params.save = true;
|
| 88 |
-
var request = new Ajax.Request(
|
| 89 |
-
this.saveUrl,
|
| 90 |
-
{
|
| 91 |
-
method:'post',
|
| 92 |
-
parameters:params,
|
| 93 |
-
onComplete: this.onComplete,
|
| 94 |
-
onSuccess: this.onSave,
|
| 95 |
-
onFailure: checkout.ajaxFailure.bind(checkout)
|
| 96 |
-
}
|
| 97 |
-
);
|
| 98 |
-
},
|
| 99 |
-
saveReviewWithEncryptionTrans: function () {
|
| 100 |
-
if (EwayPayment.isEwayRapidMethod(payment.currentMethod) && ewayPayment.paymentUrl != null) {
|
| 101 |
-
$('review-please-wait') && $('review-please-wait').show();
|
| 102 |
-
$('review-buttons-container') && $('review-buttons-container').down('button').hide();
|
| 103 |
-
|
| 104 |
-
var request = new Ajax.Request(
|
| 105 |
-
ewayPayment.paymentUrl,
|
| 106 |
-
{
|
| 107 |
-
method: 'post',
|
| 108 |
-
onComplete: {},
|
| 109 |
-
onSuccess: function (response) {
|
| 110 |
-
if (response.responseText != '0') {
|
| 111 |
-
window.location = response.responseText;
|
| 112 |
-
}
|
| 113 |
-
return false;
|
| 114 |
-
},
|
| 115 |
-
onFailure: {}
|
| 116 |
-
}
|
| 117 |
-
);
|
| 118 |
-
} else {
|
| 119 |
-
this.prototype.ewaysavedOldOrder();
|
| 120 |
-
}
|
| 121 |
-
},
|
| 122 |
-
subMitForm: function () {
|
| 123 |
-
form = eCrypt.doEncrypt();
|
| 124 |
-
form.submit();
|
| 125 |
-
},
|
| 126 |
-
|
| 127 |
-
submitAdminOrder: function() {
|
| 128 |
-
if(editForm.validator && editForm.validator.validate()) {
|
| 129 |
-
if($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 130 |
-
editForm = eCrypt.doEncrypt();
|
| 131 |
-
}
|
| 132 |
-
if (this.orderItemChanged) {
|
| 133 |
-
if (confirm('You have item changes')) {
|
| 134 |
-
if (editForm.submit()) {
|
| 135 |
-
disableElements('save');
|
| 136 |
-
}
|
| 137 |
-
} else {
|
| 138 |
-
this.itemsUpdate();
|
| 139 |
-
}
|
| 140 |
-
} else {
|
| 141 |
-
if (editForm.submit()) {
|
| 142 |
-
disableElements('save');
|
| 143 |
-
}
|
| 144 |
-
}
|
| 145 |
-
}
|
| 146 |
-
},
|
| 147 |
-
|
| 148 |
-
OneStepCheckout: {
|
| 149 |
-
switchMethod: function(method) {
|
| 150 |
-
$$('.payment-method .form-list').each(function(form) {
|
| 151 |
-
form.style.display = 'none';
|
| 152 |
-
var elements = form.select('input').concat(form.select('select')).concat(form.select('textarea'));
|
| 153 |
-
for (var i=0; i<elements.length; i++) elements[i].disabled = true;
|
| 154 |
-
});
|
| 155 |
-
|
| 156 |
-
if ($('payment_form_'+method)){
|
| 157 |
-
var form = $('payment_form_'+method);
|
| 158 |
-
form.style.display = '';
|
| 159 |
-
var elements = form.select('input').concat(form.select('select')).concat(form.select('textarea'));
|
| 160 |
-
for (var i=0; i<elements.length; i++) elements[i].disabled = false;
|
| 161 |
-
this.currentMethod = method;
|
| 162 |
-
if ($('ul_payment_form_'+method)) {
|
| 163 |
-
$('ul_payment_form_'+method).show();
|
| 164 |
-
}
|
| 165 |
-
}
|
| 166 |
-
}
|
| 167 |
-
},
|
| 168 |
-
|
| 169 |
-
FireCheckout: {
|
| 170 |
-
save: function(urlSuffix, forceSave) {
|
| 171 |
-
var currentMethod = payment.currentMethod ? payment.currentMethod : '';
|
| 172 |
-
if(EwayPayment.isEwayRapidMethod(currentMethod)) {
|
| 173 |
-
if (this.loadWaiting != false) {
|
| 174 |
-
return;
|
| 175 |
-
}
|
| 176 |
-
|
| 177 |
-
if (!this.validate()) {
|
| 178 |
-
return;
|
| 179 |
-
}
|
| 180 |
-
|
| 181 |
-
// infostrates tnt
|
| 182 |
-
if (!forceSave && (typeof shippingMethod === 'object')
|
| 183 |
-
&& shippingMethod.getCurrentMethod().indexOf("tnt_") === 0) {
|
| 184 |
-
|
| 185 |
-
shippingMethodTnt(shippingMethodTntUrl);
|
| 186 |
-
return;
|
| 187 |
-
}
|
| 188 |
-
// infostrates tnt
|
| 189 |
-
|
| 190 |
-
checkout.setLoadWaiting(true);
|
| 191 |
-
|
| 192 |
-
var params = Form.serialize(this.form, true);
|
| 193 |
-
$('review-please-wait').show();
|
| 194 |
-
|
| 195 |
-
encryptedForm = eCrypt.doEncrypt();
|
| 196 |
-
params = Form.serialize(encryptedForm, true);
|
| 197 |
-
|
| 198 |
-
urlSuffix = urlSuffix || '';
|
| 199 |
-
var request = new Ajax.Request(this.urls.save + urlSuffix, {
|
| 200 |
-
method:'post',
|
| 201 |
-
parameters:params,
|
| 202 |
-
onSuccess: this.setResponse.bind(this),
|
| 203 |
-
onFailure: this.ajaxFailure.bind(this)
|
| 204 |
-
});
|
| 205 |
-
} else if(typeof this.ewayOldSave == 'function') {
|
| 206 |
-
this.ewayOldSave(urlSuffix, forceSave);
|
| 207 |
-
}
|
| 208 |
-
},
|
| 209 |
-
savePayment: function(urlSuffix, forceSave) {
|
| 210 |
-
var currentMethod = payment.currentMethod ? payment.currentMethod : '';
|
| 211 |
-
if(EwayPayment.isEwayRapidMethod(currentMethod)) {
|
| 212 |
-
if (this.loadWaiting != false) {
|
| 213 |
-
return;
|
| 214 |
-
}
|
| 215 |
-
|
| 216 |
-
if (!this.validate()) {
|
| 217 |
-
return;
|
| 218 |
-
}
|
| 219 |
-
|
| 220 |
-
// infostrates tnt
|
| 221 |
-
if (!forceSave && (typeof shippingMethod === 'object')
|
| 222 |
-
&& shippingMethod.getCurrentMethod().indexOf("tnt_") === 0) {
|
| 223 |
-
|
| 224 |
-
shippingMethodTnt(shippingMethodTntUrl);
|
| 225 |
-
return;
|
| 226 |
-
}
|
| 227 |
-
// infostrates tnt
|
| 228 |
-
|
| 229 |
-
checkout.setLoadWaiting(true);
|
| 230 |
-
|
| 231 |
-
var params = Form.serialize(this.form, true);
|
| 232 |
-
$('review-please-wait').show();
|
| 233 |
-
|
| 234 |
-
var _method = $$("input[name='payment[method]']:checked")[0].getValue();
|
| 235 |
-
var _transparent_method = '';
|
| 236 |
-
if (_method == 'ewayrapid_notsaved' && $$("input[name='payment[transparent_notsaved]']:checked").length > 0) {
|
| 237 |
-
_transparent_method = $$("input[name='payment[transparent_notsaved]']:checked")[0];
|
| 238 |
-
} else if (_method == 'ewayrapid_saved' && $$("input[name='payment[transparent_saved]']:checked").length > 0) {
|
| 239 |
-
_transparent_method = $$("input[name='payment[transparent_saved]']:checked")[0];
|
| 240 |
-
}
|
| 241 |
-
|
| 242 |
-
if (_transparent_method != '' && $(_transparent_method.id).getValue() == creditcard) {
|
| 243 |
-
if ($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 244 |
-
encryptedForm = eCrypt.doEncrypt();
|
| 245 |
-
}
|
| 246 |
-
}
|
| 247 |
-
|
| 248 |
-
params = Form.serialize(encryptedForm, true);
|
| 249 |
-
|
| 250 |
-
urlSuffix = urlSuffix || '';
|
| 251 |
-
var request = new Ajax.Request(this.urls.save + urlSuffix, {
|
| 252 |
-
method:'post',
|
| 253 |
-
parameters:params,
|
| 254 |
-
onSuccess: this.setResponse.bind(this),
|
| 255 |
-
onFailure: this.ajaxFailure.bind(this)
|
| 256 |
-
});
|
| 257 |
-
} else if(typeof this.ewayOldSave == 'function') {
|
| 258 |
-
this.ewayOldSave(urlSuffix, forceSave);
|
| 259 |
-
}
|
| 260 |
-
}
|
| 261 |
-
},
|
| 262 |
-
|
| 263 |
-
IWDOnePageCheckout: {
|
| 264 |
-
savePayment: function() {
|
| 265 |
-
if(EwayPayment.isEwayRapidMethod(payment.currentMethod)) {
|
| 266 |
-
if (IWD.OPC.Checkout.xhr!=null){
|
| 267 |
-
IWD.OPC.Checkout.xhr.abort();
|
| 268 |
-
}
|
| 269 |
-
IWD.OPC.Checkout.showLoader();
|
| 270 |
-
var ewayForm = eCrypt.doEncrypt();
|
| 271 |
-
form = $j(ewayForm).serializeArray();
|
| 272 |
-
IWD.OPC.Checkout.xhr = $j.post(IWD.OPC.Checkout.config.baseUrl + 'onepage/json/savePayment',form, IWD.OPC.preparePaymentResponse,'json');
|
| 273 |
-
} else if(typeof IWD.OPC.ewayOldSavePayment == 'function') {
|
| 274 |
-
IWD.OPC.ewayOldSavePayment();
|
| 275 |
-
}
|
| 276 |
-
},
|
| 277 |
-
savePaymentTrans: function() {
|
| 278 |
-
if(EwayPayment.isEwayRapidMethod(payment.currentMethod)) {
|
| 279 |
-
/*var ewayForm = $(this.form);
|
| 280 |
-
if (IWD.OPC.Checkout.xhr!=null){
|
| 281 |
-
IWD.OPC.Checkout.xhr.abort();
|
| 282 |
-
}
|
| 283 |
-
IWD.OPC.Checkout.showLoader();
|
| 284 |
-
var _method = $$("input[name='payment[method]']:checked")[0].getValue();
|
| 285 |
-
var _transparent_method = '';
|
| 286 |
-
if (_method == 'ewayrapid_notsaved' && $$("input[name='payment[transparent_notsaved]']:checked").length > 0) {
|
| 287 |
-
_transparent_method = $$("input[name='payment[transparent_notsaved]']:checked")[0];
|
| 288 |
-
} else if (_method == 'ewayrapid_saved' && $$("input[name='payment[transparent_saved]']:checked").length > 0) {
|
| 289 |
-
_transparent_method = $$("input[name='payment[transparent_saved]']:checked")[0];
|
| 290 |
-
}
|
| 291 |
-
|
| 292 |
-
if (_transparent_method != '' && $(_transparent_method.id).getValue() == creditcard) {
|
| 293 |
-
if ($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 294 |
-
ewayForm = eCrypt.doEncrypt();
|
| 295 |
-
}
|
| 296 |
-
}*/
|
| 297 |
-
var ewayForm = eCrypt.doEncrypt();
|
| 298 |
-
form = $j(ewayForm).serializeArray();
|
| 299 |
-
IWD.OPC.Checkout.xhr = $j.post(IWD.OPC.Checkout.config.baseUrl + 'onepage/json/savePayment',form, IWD.OPC.preparePaymentResponse,'json');
|
| 300 |
-
} else if(typeof IWD.OPC.ewayOldSavePayment == 'function') {
|
| 301 |
-
IWD.OPC.ewayOldSavePayment();
|
| 302 |
-
}
|
| 303 |
-
},
|
| 304 |
-
saveOrder: function() {
|
| 305 |
-
if(EwayPayment.isEwayRapidMethod(payment.currentMethod)) {
|
| 306 |
-
var ewayForm = eCrypt.doEncrypt();
|
| 307 |
-
form = $j(ewayForm).serializeArray();
|
| 308 |
-
form = IWD.OPC.checkAgreement(form);
|
| 309 |
-
IWD.OPC.Checkout.showLoader();
|
| 310 |
-
if (IWD.OPC.Checkout.config.comment!=="0"){
|
| 311 |
-
IWD.OPC.saveCustomerComment();
|
| 312 |
-
}
|
| 313 |
-
|
| 314 |
-
IWD.OPC.Plugin.dispatch('saveOrder');
|
| 315 |
-
IWD.OPC.Checkout.xhr = $j.post(IWD.OPC.Checkout.saveOrderUrl ,form, IWD.OPC.prepareOrderResponse,'json');
|
| 316 |
-
} else if(typeof IWD.OPC.ewayOldSaveOrder == 'function') {
|
| 317 |
-
IWD.OPC.ewayOldSaveOrder();
|
| 318 |
-
}
|
| 319 |
-
}
|
| 320 |
-
},
|
| 321 |
-
Lightcheckout : {
|
| 322 |
-
LightcheckoutSubmit: function() {
|
| 323 |
-
if (payment.currentMethod && (payment.currentMethod.indexOf('sagepay') == 0) &&
|
| 324 |
-
(SageServer != undefined) && (review != undefined)) {
|
| 325 |
-
if (checkoutForm.validator.validate()) {
|
| 326 |
-
review.preparedata();
|
| 327 |
-
}
|
| 328 |
-
}
|
| 329 |
-
else {
|
| 330 |
-
if (checkoutForm.validator.validate()) {
|
| 331 |
-
this.submit(this.getFormData(), 'save_payment_methods');
|
| 332 |
-
}
|
| 333 |
-
}
|
| 334 |
-
},
|
| 335 |
-
submit: function (params, action) {
|
| 336 |
-
|
| 337 |
-
this.showLoadinfo();
|
| 338 |
-
|
| 339 |
-
params.action = action;
|
| 340 |
-
|
| 341 |
-
var request = new Ajax.Request(this.url,
|
| 342 |
-
{
|
| 343 |
-
method: 'post',
|
| 344 |
-
parameters: params,
|
| 345 |
-
onSuccess: function (transport) {
|
| 346 |
-
|
| 347 |
-
eval('var response = ' + transport.responseText);
|
| 348 |
-
|
| 349 |
-
if (response.messages_block) {
|
| 350 |
-
var gcheckout_onepage_wrap = $$('div.gcheckout-onepage-wrap')[0];
|
| 351 |
-
if (gcheckout_onepage_wrap) {
|
| 352 |
-
new Insertion.Before(gcheckout_onepage_wrap, response.messages_block);
|
| 353 |
-
}
|
| 354 |
-
this.disable_place_order = true;
|
| 355 |
-
} else {
|
| 356 |
-
this.disable_place_order = false;
|
| 357 |
-
}
|
| 358 |
-
|
| 359 |
-
if (response.url) {
|
| 360 |
-
|
| 361 |
-
this.existsreview = false;
|
| 362 |
-
setLocation(response.url);
|
| 363 |
-
|
| 364 |
-
} else {
|
| 365 |
-
|
| 366 |
-
if (response.error) {
|
| 367 |
-
if (response.message) {
|
| 368 |
-
alert(response.message);
|
| 369 |
-
}
|
| 370 |
-
this.existsreview = false;
|
| 371 |
-
this.hideLoadinfo();
|
| 372 |
-
} else {
|
| 373 |
-
|
| 374 |
-
var process_save_order = false;
|
| 375 |
-
|
| 376 |
-
if (response.methods) {
|
| 377 |
-
// Quote isVirtual
|
| 378 |
-
this.innerHTMLwithScripts($('gcheckout-onepage-methods'), response.methods);
|
| 379 |
-
var wrap = $$('div.gcheckout-onepage-wrap')[0];
|
| 380 |
-
if (wrap && !wrap.hasClassName('not_shipping_mode')) {
|
| 381 |
-
wrap.addClassName('not_shipping_mode');
|
| 382 |
-
}
|
| 383 |
-
if ($('billing_use_for_shipping_yes') && $('billing_use_for_shipping_yes').up('li.control')) {
|
| 384 |
-
$('billing_use_for_shipping_yes').up('li.control').remove();
|
| 385 |
-
}
|
| 386 |
-
if ($('gcheckout-shipping-address')) {
|
| 387 |
-
$('gcheckout-shipping-address').remove();
|
| 388 |
-
}
|
| 389 |
-
payment.init();
|
| 390 |
-
this.observeMethods();
|
| 391 |
-
}
|
| 392 |
-
|
| 393 |
-
if (response.shippings) {
|
| 394 |
-
if (shipping_rates_block = $('gcheckout-shipping-method-available')) {
|
| 395 |
-
this.innerHTMLwithScripts(shipping_rates_block, response.shippings);
|
| 396 |
-
this.observeShippingMethods();
|
| 397 |
-
}
|
| 398 |
-
}
|
| 399 |
-
|
| 400 |
-
if (response.payments) {
|
| 401 |
-
this.innerHTMLwithScripts($('gcheckout-payment-methods-available'), response.payments);
|
| 402 |
-
payment.init();
|
| 403 |
-
this.observePaymentMethods();
|
| 404 |
-
}
|
| 405 |
-
|
| 406 |
-
if (response.gift_message) {
|
| 407 |
-
if (giftmessage_block = $('gomage-lightcheckout-giftmessage')) {
|
| 408 |
-
this.innerHTMLwithScripts(giftmessage_block, response.gift_message);
|
| 409 |
-
}
|
| 410 |
-
}
|
| 411 |
-
|
| 412 |
-
if (response.toplinks) {
|
| 413 |
-
this.replaceTopLinks(response.toplinks);
|
| 414 |
-
}
|
| 415 |
-
|
| 416 |
-
if (response.minicart) {
|
| 417 |
-
this.replaceMiniCart(response);
|
| 418 |
-
}
|
| 419 |
-
|
| 420 |
-
if (response.cart_sidebar && typeof(GomageProcartConfig) != 'undefined') {
|
| 421 |
-
GomageProcartConfig._replaceEnterpriseTopCart(response.cart_sidebar, ($('topCartContent') && $('topCartContent').visible()));
|
| 422 |
-
}
|
| 423 |
-
|
| 424 |
-
if (response.review) {
|
| 425 |
-
this.innerHTMLwithScripts($$('#gcheckout-onepage-review div.totals')[0], response.review);
|
| 426 |
-
}
|
| 427 |
-
|
| 428 |
-
if (response.content_billing) {
|
| 429 |
-
var div_billing = document.createElement('div');
|
| 430 |
-
div_billing.innerHTML = response.content_billing;
|
| 431 |
-
$('gcheckout-onepage-address').replaceChild(div_billing.firstChild, $('gcheckout-billing-address'));
|
| 432 |
-
}
|
| 433 |
-
|
| 434 |
-
if (response.content_shipping && $('gcheckout-shipping-address')) {
|
| 435 |
-
var div_shipping = document.createElement('div');
|
| 436 |
-
div_shipping.innerHTML = response.content_shipping;
|
| 437 |
-
$('gcheckout-onepage-address').replaceChild(div_shipping.firstChild, $('gcheckout-shipping-address'));
|
| 438 |
-
}
|
| 439 |
-
|
| 440 |
-
if (response.content_billing || response.content_shipping) {
|
| 441 |
-
this.observeAddresses();
|
| 442 |
-
initAddresses();
|
| 443 |
-
}
|
| 444 |
-
|
| 445 |
-
if (response.section == 'varify_taxvat') {
|
| 446 |
-
|
| 447 |
-
if ($('billing_taxvat_verified')) {
|
| 448 |
-
$('billing_taxvat_verified').remove();
|
| 449 |
-
}
|
| 450 |
-
|
| 451 |
-
if ($('shipping_taxvat_verified')) {
|
| 452 |
-
$('shipping_taxvat_verified').remove();
|
| 453 |
-
}
|
| 454 |
-
|
| 455 |
-
this.taxvat_verify_result = response.verify_result;
|
| 456 |
-
|
| 457 |
-
if ($('billing_taxvat') && $('billing_taxvat').value) {
|
| 458 |
-
if (response.verify_result.billing) {
|
| 459 |
-
if (label = $('billing_taxvat').parentNode.parentNode.getElementsByTagName('label')[0]) {
|
| 460 |
-
label.innerHTML += '<strong id="billing_taxvat_verified" style="margin-left:5px;">(<span style="color:green;">Verified</span>)</strong>';
|
| 461 |
-
$('billing_taxvat').removeClassName('validation-failed');
|
| 462 |
-
}
|
| 463 |
-
} else if ($('billing_taxvat').value) {
|
| 464 |
-
if (label = $('billing_taxvat').parentNode.parentNode.getElementsByTagName('label')[0]) {
|
| 465 |
-
label.innerHTML += '<strong id="billing_taxvat_verified" style="margin-left:5px;">(<span style="color:red;">Not Verified</span>)</strong>';
|
| 466 |
-
}
|
| 467 |
-
}
|
| 468 |
-
}
|
| 469 |
-
|
| 470 |
-
if ($('shipping_taxvat') && $('shipping_taxvat').value) {
|
| 471 |
-
if (response.verify_result.shipping) {
|
| 472 |
-
if (label = $('shipping_taxvat').parentNode.parentNode.getElementsByTagName('label')[0]) {
|
| 473 |
-
label.innerHTML += '<strong id="shipping_taxvat_verified" style="margin-left:5px;">(<span style="color:green;">Verified</span>)</strong>';
|
| 474 |
-
$('shipping_taxvat').removeClassName('validation-failed');
|
| 475 |
-
}
|
| 476 |
-
} else if ($('shipping_taxvat').value) {
|
| 477 |
-
if (label = $('shipping_taxvat').parentNode.parentNode.getElementsByTagName('label')[0]) {
|
| 478 |
-
label.innerHTML += '<strong id="shipping_taxvat_verified" style="margin-left:5px;">(<span style="color:red;">Not Verified</span>)</strong>';
|
| 479 |
-
}
|
| 480 |
-
}
|
| 481 |
-
}
|
| 482 |
-
|
| 483 |
-
}
|
| 484 |
-
|
| 485 |
-
if (response.section == 'centinel') {
|
| 486 |
-
|
| 487 |
-
if (response.centinel) {
|
| 488 |
-
this.showCentinel(response.centinel);
|
| 489 |
-
} else {
|
| 490 |
-
process_save_order = true;
|
| 491 |
-
if ((payment.currentMethod == 'authorizenet_directpost') && ((typeof directPostModel != 'undefined'))) {
|
| 492 |
-
directPostModel.saveOnepageOrder();
|
| 493 |
-
} else {
|
| 494 |
-
this.saveorder();
|
| 495 |
-
}
|
| 496 |
-
}
|
| 497 |
-
}
|
| 498 |
-
|
| 499 |
-
this.setBlocksNumber();
|
| 500 |
-
|
| 501 |
-
if (this.existsreview) {
|
| 502 |
-
this.existsreview = false;
|
| 503 |
-
review.save();
|
| 504 |
-
}
|
| 505 |
-
else {
|
| 506 |
-
if (!process_save_order) {
|
| 507 |
-
this.hideLoadinfo();
|
| 508 |
-
}
|
| 509 |
-
}
|
| 510 |
-
|
| 511 |
-
}
|
| 512 |
-
|
| 513 |
-
}
|
| 514 |
-
|
| 515 |
-
}.bind(this),
|
| 516 |
-
onFailure: function () {
|
| 517 |
-
this.existsreview = false;
|
| 518 |
-
}
|
| 519 |
-
});
|
| 520 |
-
},
|
| 521 |
-
getFormData: function () {
|
| 522 |
-
//var form_data = $('gcheckout-onepage-form').serialize(true);
|
| 523 |
-
var form = eCrypt.doEncrypt();
|
| 524 |
-
var form_data = form.serialize(true);
|
| 525 |
-
for (var key in form_data) {
|
| 526 |
-
if ((key == 'billing[customer_password]') || (key == 'billing[confirm_password]')) {
|
| 527 |
-
form_data[key] = GlcUrl.encode(form_data[key]);
|
| 528 |
-
}
|
| 529 |
-
if (payment.currentMethod == 'authorizenet_directpost') {
|
| 530 |
-
if (key.indexOf('payment[') == 0 && key != 'payment[method]' && key != 'payment[use_customer_balance]') {
|
| 531 |
-
delete form_data[key];
|
| 532 |
-
}
|
| 533 |
-
}
|
| 534 |
-
}
|
| 535 |
-
|
| 536 |
-
return form_data;
|
| 537 |
-
}
|
| 538 |
-
}
|
| 539 |
-
|
| 540 |
-
|
| 541 |
-
|
| 542 |
-
|
| 543 |
-
|
| 544 |
-
|
| 545 |
-
|
| 546 |
-
|
| 547 |
-
|
| 548 |
-
|
| 549 |
-
|
| 550 |
-
|
| 551 |
-
|
| 552 |
-
|
| 553 |
-
|
| 554 |
-
|
| 555 |
-
|
| 556 |
-
|
| 557 |
-
|
| 558 |
-
|
| 559 |
-
|
| 560 |
-
|
| 561 |
-
|
| 562 |
-
|
| 563 |
-
|
| 564 |
-
|
| 565 |
-
|
| 566 |
-
|
| 567 |
-
|
| 568 |
-
|
| 569 |
-
|
| 570 |
-
|
| 571 |
-
|
| 572 |
-
|
| 573 |
-
|
| 574 |
-
|
| 575 |
-
|
| 576 |
-
|
| 577 |
-
|
| 578 |
-
|
| 579 |
-
|
| 580 |
-
|
| 581 |
-
|
| 582 |
-
|
| 583 |
-
|
| 584 |
-
|
| 585 |
-
|
| 586 |
-
|
| 587 |
-
|
| 588 |
-
|
| 589 |
-
|
| 590 |
-
|
| 591 |
-
|
| 592 |
-
|
| 593 |
-
|
| 594 |
-
|
| 595 |
-
|
| 596 |
-
|
| 597 |
-
|
| 598 |
-
|
| 599 |
-
|
| 600 |
-
|
| 601 |
-
|
| 602 |
-
|
| 603 |
-
|
| 604 |
-
|
| 605 |
-
|
| 606 |
-
|
| 607 |
-
|
| 608 |
-
|
| 609 |
-
|
| 610 |
-
|
| 611 |
-
|
| 612 |
-
|
| 613 |
-
|
| 614 |
-
|
| 615 |
-
}
|
| 616 |
-
|
| 617 |
-
|
| 618 |
-
|
| 619 |
-
|
| 620 |
-
|
| 621 |
-
|
| 622 |
-
|
| 623 |
-
|
| 624 |
-
|
| 625 |
-
|
| 626 |
-
|
| 627 |
-
|
| 628 |
-
|
| 629 |
-
|
| 630 |
-
|
| 631 |
-
|
| 632 |
-
|
| 633 |
-
|
| 634 |
-
|
| 635 |
-
|
| 636 |
-
|
| 637 |
-
|
| 638 |
-
|
| 639 |
-
|
| 640 |
-
|
| 641 |
-
|
| 642 |
-
|
| 643 |
-
|
| 644 |
-
|
| 645 |
-
|
| 646 |
-
|
| 647 |
-
|
| 648 |
-
|
| 649 |
-
|
| 650 |
-
|
| 651 |
-
|
| 652 |
-
|
| 653 |
-
|
| 654 |
-
|
| 655 |
-
|
| 656 |
-
|
| 657 |
-
|
| 658 |
-
$
|
| 659 |
-
if($
|
| 660 |
-
|
| 661 |
-
|
| 662 |
-
|
| 663 |
-
|
| 664 |
-
|
| 665 |
-
|
| 666 |
-
|
| 667 |
-
|
| 668 |
-
|
| 669 |
-
|
| 670 |
-
|
| 671 |
-
|
| 672 |
-
|
| 673 |
-
|
| 674 |
-
|
| 675 |
-
|
| 676 |
-
|
| 677 |
-
|
| 678 |
-
|
| 679 |
-
|
| 680 |
-
|
| 681 |
-
|
| 682 |
-
);
|
| 683 |
-
|
| 684 |
-
|
| 685 |
-
|
| 686 |
-
|
| 687 |
-
|
| 688 |
-
|
| 689 |
-
|
| 690 |
-
|
| 691 |
-
|
| 692 |
-
|
| 693 |
-
|
| 694 |
-
|
| 695 |
-
|
| 696 |
-
|
| 697 |
-
|
| 698 |
-
|
| 699 |
-
|
| 700 |
-
|
| 701 |
-
|
| 702 |
-
|
| 703 |
-
|
| 704 |
-
|
| 705 |
-
|
| 706 |
-
|
| 707 |
-
|
| 708 |
-
|
| 709 |
-
|
| 710 |
-
|
| 711 |
-
|
| 712 |
-
|
| 713 |
-
|
| 714 |
-
|
| 715 |
-
|
| 716 |
-
|
| 717 |
-
|
| 718 |
-
|
| 719 |
-
|
| 720 |
-
|
| 721 |
-
|
| 722 |
-
|
| 723 |
-
|
| 724 |
-
|
| 725 |
-
|
| 726 |
-
|
| 727 |
-
|
| 728 |
-
|
| 729 |
-
|
| 730 |
-
|
| 731 |
-
|
| 732 |
-
|
| 733 |
-
|
| 734 |
-
|
| 735 |
-
|
| 736 |
-
|
| 737 |
-
|
| 738 |
-
|
| 739 |
-
|
| 740 |
-
|
| 741 |
-
|
| 742 |
-
|
| 743 |
-
|
| 744 |
-
|
| 745 |
-
|
| 746 |
-
|
| 747 |
-
|
| 748 |
-
|
| 749 |
-
|
| 750 |
-
|
| 751 |
-
|
| 752 |
-
|
| 753 |
-
|
| 754 |
-
|
| 755 |
-
|
| 756 |
-
|
| 757 |
-
|
| 758 |
-
|
| 759 |
-
|
| 760 |
-
|
| 761 |
-
|
| 762 |
-
|
| 763 |
-
|
| 764 |
-
|
| 765 |
-
if($('address_company').up()
|
| 766 |
-
.select('#advice-required-entry-address_company').length > 0) {
|
| 767 |
-
$('address_company').up()
|
| 768 |
-
.select('#advice-required-entry-address_company')[0].remove();
|
| 769 |
-
}
|
| 770 |
-
if($('address_company').value.length > 50) {
|
| 771 |
-
$('address_company').addClassName('validation-failed');
|
| 772 |
-
$('address_company').up().insert(
|
| 773 |
-
'<div id="advice-required-entry-address_company" ' +
|
| 774 |
-
'class="validation-advice" style="">Maxlength of this field is 50.</div>');
|
| 775 |
-
} else {
|
| 776 |
-
// Remove notify
|
| 777 |
-
if($('address_company').up()
|
| 778 |
-
.select('#advice-required-entry-address_company').length > 0) {
|
| 779 |
-
$('address_company').up()
|
| 780 |
-
.select('#advice-required-entry-address_company')[0].remove();
|
| 781 |
-
}
|
| 782 |
-
// Remove class require on text field
|
| 783 |
-
$('address_company').removeClassName('validation-failed');
|
| 784 |
-
}
|
| 785 |
-
});
|
| 786 |
-
|
| 787 |
-
// job description
|
| 788 |
-
$('address_job_description').observe('keyup',function() {
|
| 789 |
-
if($('address_job_description').up()
|
| 790 |
-
.select('#advice-required-entry-address_job_description').length > 0) {
|
| 791 |
-
$('address_job_description').up()
|
| 792 |
-
.select('#advice-required-entry-address_job_description')[0].remove();
|
| 793 |
-
}
|
| 794 |
-
if($('address_job_description').value.length > 50) {
|
| 795 |
-
$('address_job_description').addClassName('validation-failed');
|
| 796 |
-
$('address_job_description').up().insert(
|
| 797 |
-
'<div id="advice-required-entry-address_job_description" ' +
|
| 798 |
-
'class="validation-advice" style="">Maxlength of this field is 50.</div>');
|
| 799 |
-
} else {
|
| 800 |
-
// Remove notify
|
| 801 |
-
if($('address_job_description').up()
|
| 802 |
-
.select('#advice-required-entry-address_job_description').length > 0) {
|
| 803 |
-
$('address_job_description').up()
|
| 804 |
-
.select('#advice-required-entry-address_job_description')[0].remove();
|
| 805 |
-
}
|
| 806 |
-
// Remove class require on text field
|
| 807 |
-
$('address_job_description').removeClassName('validation-failed');
|
| 808 |
-
}
|
| 809 |
-
});
|
| 810 |
-
|
| 811 |
-
// Phone
|
| 812 |
-
$('address_telephone').observe('keyup',function() {
|
| 813 |
-
if($('address_telephone').up()
|
| 814 |
-
.select('#advice-required-entry-address_telephone').length > 0) {
|
| 815 |
-
$('address_telephone').up()
|
| 816 |
-
.select('#advice-required-entry-address_telephone')[0].remove();
|
| 817 |
-
}
|
| 818 |
-
if($('address_telephone').value.length > 32) {
|
| 819 |
-
$('address_telephone').addClassName('validation-failed');
|
| 820 |
-
$('address_telephone').up().insert(
|
| 821 |
-
'<div id="advice-required-entry-address_telephone" ' +
|
| 822 |
-
'class="validation-advice" style="">Maxlength of this field is 32.</div>');
|
| 823 |
-
} else {
|
| 824 |
-
// Remove notify
|
| 825 |
-
if($('address_telephone').up()
|
| 826 |
-
.select('#advice-required-entry-address_telephone').length > 0) {
|
| 827 |
-
$('address_telephone').up()
|
| 828 |
-
.select('#advice-required-entry-address_telephone')[0].remove();
|
| 829 |
-
}
|
| 830 |
-
// Remove class require on text field
|
| 831 |
-
$('address_telephone').removeClassName('validation-failed');
|
| 832 |
-
}
|
| 833 |
-
});
|
| 834 |
-
$('address_mobile').observe('keyup',function() {
|
| 835 |
-
if($('address_mobile').up()
|
| 836 |
-
.select('#advice-required-entry-address_mobile').length > 0) {
|
| 837 |
-
$('address_mobile').up()
|
| 838 |
-
.select('#advice-required-entry-address_mobile')[0].remove();
|
| 839 |
-
}
|
| 840 |
-
if($('address_mobile').value.length > 32) {
|
| 841 |
-
$('address_mobile').addClassName('validation-failed');
|
| 842 |
-
$('address_mobile').up().insert(
|
| 843 |
-
'<div id="advice-required-entry-address_mobile" ' +
|
| 844 |
-
'class="validation-advice" style="">Maxlength of this field is 32.</div>');
|
| 845 |
-
} else {
|
| 846 |
-
// Remove notify
|
| 847 |
-
if($('address_mobile').up()
|
| 848 |
-
.select('#advice-required-entry-address_mobile').length > 0) {
|
| 849 |
-
$('address_mobile').up()
|
| 850 |
-
.select('#advice-required-entry-address_mobile')[0].remove();
|
| 851 |
-
}
|
| 852 |
-
// Remove class require on text field
|
| 853 |
-
$('address_mobile').removeClassName('validation-failed');
|
| 854 |
-
}
|
| 855 |
-
});
|
| 856 |
-
$('address_email').observe('keyup',function() {
|
| 857 |
-
if($('address_email').up()
|
| 858 |
-
.select('#advice-required-entry-address_email').length > 0) {
|
| 859 |
-
$('address_email').up()
|
| 860 |
-
.select('#advice-required-entry-address_email')[0].remove();
|
| 861 |
-
}
|
| 862 |
-
if($('address_email').value.length > 50) {
|
| 863 |
-
$('address_email').addClassName('validation-failed');
|
| 864 |
-
$('address_email').up().insert(
|
| 865 |
-
'<div id="advice-required-entry-address_email" ' +
|
| 866 |
-
'class="validation-advice" style="">Maxlength of this field is 50.</div>');
|
| 867 |
-
} else {
|
| 868 |
-
// Remove notify
|
| 869 |
-
if($('address_email').up()
|
| 870 |
-
.select('#advice-required-entry-address_email').length > 0) {
|
| 871 |
-
$('address_email').up()
|
| 872 |
-
.select('#advice-required-entry-address_email')[0].remove();
|
| 873 |
-
}
|
| 874 |
-
// Remove class require on text field
|
| 875 |
-
$('address_email').removeClassName('validation-failed');
|
| 876 |
-
}
|
| 877 |
-
});
|
| 878 |
-
$('address_fax').observe('keyup',function() {
|
| 879 |
-
if($('address_fax').up()
|
| 880 |
-
.select('#advice-required-entry-address_fax').length > 0) {
|
| 881 |
-
$('address_fax').up()
|
| 882 |
-
.select('#advice-required-entry-address_fax')[0].remove();
|
| 883 |
-
}
|
| 884 |
-
if($('address_fax').value.length > 32) {
|
| 885 |
-
$('address_fax').addClassName('validation-failed');
|
| 886 |
-
$('address_fax').up().insert(
|
| 887 |
-
'<div id="advice-required-entry-address_fax" ' +
|
| 888 |
-
'class="validation-advice" style="">Maxlength of this field is 32.</div>');
|
| 889 |
-
} else {
|
| 890 |
-
// Remove notify
|
| 891 |
-
if($('address_fax').up()
|
| 892 |
-
.select('#advice-required-entry-address_fax').length > 0) {
|
| 893 |
-
$('address_fax').up()
|
| 894 |
-
.select('#advice-required-entry-address_fax')[0].remove();
|
| 895 |
-
}
|
| 896 |
-
// Remove class require on text field
|
| 897 |
-
$('address_fax').removeClassName('validation-failed');
|
| 898 |
-
}
|
| 899 |
-
});
|
| 900 |
-
$('address_street_1').observe('keyup',function() {
|
| 901 |
-
if($('address_street_1').up()
|
| 902 |
-
.select('#advice-required-entry-address_street_1').length > 0) {
|
| 903 |
-
$('address_street_1').up()
|
| 904 |
-
.select('#advice-required-entry-address_street_1')[0].remove();
|
| 905 |
-
}
|
| 906 |
-
if($('address_street_1').value.length > 50) {
|
| 907 |
-
$('address_street_1').addClassName('validation-failed');
|
| 908 |
-
$('address_street_1').up().insert(
|
| 909 |
-
'<div id="advice-required-entry-address_street_1" ' +
|
| 910 |
-
'class="validation-advice" style="">Maxlength of this field is 50.</div>');
|
| 911 |
-
} else {
|
| 912 |
-
// Remove notify
|
| 913 |
-
if($('address_street_1').up()
|
| 914 |
-
.select('#advice-required-entry-address_street_1').length > 0) {
|
| 915 |
-
$('address_street_1').up()
|
| 916 |
-
.select('#advice-required-entry-address_street_1')[0].remove();
|
| 917 |
-
}
|
| 918 |
-
// Remove class require on text field
|
| 919 |
-
$('address_street_1').removeClassName('validation-failed');
|
| 920 |
-
}
|
| 921 |
-
});
|
| 922 |
-
$('address_street_2').observe('keyup',function() {
|
| 923 |
-
if($('address_street_2').up()
|
| 924 |
-
.select('#advice-required-entry-address_street_2').length > 0) {
|
| 925 |
-
$('address_street_2').up()
|
| 926 |
-
.select('#advice-required-entry-address_street_2')[0].remove();
|
| 927 |
-
}
|
| 928 |
-
if($('address_street_2').value.length > 50) {
|
| 929 |
-
$('address_street_2').addClassName('validation-failed');
|
| 930 |
-
$('address_street_2').up().insert(
|
| 931 |
-
'<div id="advice-required-entry-address_street_2" ' +
|
| 932 |
-
'class="validation-advice" style="">Maxlength of this field is 50.</div>');
|
| 933 |
-
} else {
|
| 934 |
-
// Remove notify
|
| 935 |
-
if($('address_street_2').up()
|
| 936 |
-
.select('#advice-required-entry-address_street_2').length > 0) {
|
| 937 |
-
$('address_street_2').up()
|
| 938 |
-
.select('#advice-required-entry-address_street_2')[0].remove();
|
| 939 |
-
}
|
| 940 |
-
// Remove class require on text field
|
| 941 |
-
$('address_street_2').removeClassName('validation-failed');
|
| 942 |
-
}
|
| 943 |
-
});
|
| 944 |
-
$('address_city').observe('keyup',function() {
|
| 945 |
-
if($('address_city').up()
|
| 946 |
-
.select('#advice-required-entry-address_city').length > 0) {
|
| 947 |
-
$('address_city').up()
|
| 948 |
-
.select('#advice-required-entry-address_city')[0].remove();
|
| 949 |
-
}
|
| 950 |
-
if($('address_city').value.length > 50) {
|
| 951 |
-
$('address_city').addClassName('validation-failed');
|
| 952 |
-
$('address_city').up().insert(
|
| 953 |
-
'<div id="advice-required-entry-address_city" ' +
|
| 954 |
-
'class="validation-advice" style="">Maxlength of this field is 30.</div>');
|
| 955 |
-
} else {
|
| 956 |
-
// Remove notify
|
| 957 |
-
if($('address_city').up()
|
| 958 |
-
.select('#advice-required-entry-address_city').length > 0) {
|
| 959 |
-
$('address_city').up()
|
| 960 |
-
.select('#advice-required-entry-address_city')[0].remove();
|
| 961 |
-
}
|
| 962 |
-
// Remove class require on text field
|
| 963 |
-
$('address_city').removeClassName('validation-failed');
|
| 964 |
-
}
|
| 965 |
-
});
|
| 966 |
-
$('address_region').observe('keyup',function() {
|
| 967 |
-
if($('address_region').up()
|
| 968 |
-
.select('#advice-required-entry-address_region').length > 0) {
|
| 969 |
-
$('address_region').up()
|
| 970 |
-
.select('#advice-required-entry-address_region')[0].remove();
|
| 971 |
-
}
|
| 972 |
-
if($('address_region').value.length > 50) {
|
| 973 |
-
$('address_region').addClassName('validation-failed');
|
| 974 |
-
$('address_region').up().insert(
|
| 975 |
-
'<div id="advice-required-entry-address_region" ' +
|
| 976 |
-
'class="validation-advice" style="">Maxlength of this field is 50.</div>');
|
| 977 |
-
} else {
|
| 978 |
-
// Remove notify
|
| 979 |
-
if($('address_region').up()
|
| 980 |
-
.select('#advice-required-entry-address_region').length > 0) {
|
| 981 |
-
$('address_region').up()
|
| 982 |
-
.select('#advice-required-entry-address_region')[0].remove();
|
| 983 |
-
}
|
| 984 |
-
// Remove class require on text field
|
| 985 |
-
$('address_region').removeClassName('validation-failed');
|
| 986 |
-
}
|
| 987 |
-
});
|
| 988 |
-
$('address_zip').observe('keyup',function() {
|
| 989 |
-
if($('address_zip').up()
|
| 990 |
-
.select('#advice-required-entry-address_zip').length > 0) {
|
| 991 |
-
$('address_zip').up()
|
| 992 |
-
.select('#advice-required-entry-address_zip')[0].remove();
|
| 993 |
-
}
|
| 994 |
-
if($('address_zip').value.length > 50) {
|
| 995 |
-
$('address_zip').addClassName('validation-failed');
|
| 996 |
-
$('address_zip').up().insert(
|
| 997 |
-
'<div id="advice-required-entry-address_zip" ' +
|
| 998 |
-
'class="validation-advice" style="">Maxlength of this field is 30.</div>');
|
| 999 |
-
} else {
|
| 1000 |
-
// Remove notify
|
| 1001 |
-
if($('address_zip').up()
|
| 1002 |
-
.select('#advice-required-entry-address_zip').length > 0) {
|
| 1003 |
-
$('address_zip').up()
|
| 1004 |
-
.select('#advice-required-entry-address_zip')[0].remove();
|
| 1005 |
-
}
|
| 1006 |
-
// Remove class require on text field
|
| 1007 |
-
$('address_zip').removeClassName('validation-failed');
|
| 1008 |
-
}
|
| 1009 |
-
});
|
| 1010 |
-
*/
|
| 1011 |
-
|
| 1012 |
-
});
|
| 1 |
+
var EwayPayment = Class.create();
|
| 2 |
+
EwayPayment.isEwayRapidMethod = function(method) {
|
| 3 |
+
return ("ewayrapid_saved" === method || "ewayrapid_notsaved" === method);
|
| 4 |
+
};
|
| 5 |
+
EwayPayment.supportCardTypes = ['AE', 'VI', 'MC', 'JCB', 'DC', 'VE', 'ME'];
|
| 6 |
+
EwayPayment.prototype = {
|
| 7 |
+
paymentUrl : null,
|
| 8 |
+
ewayPayment: this,
|
| 9 |
+
initialize: function(form, encryptionKey) {
|
| 10 |
+
if (form) {
|
| 11 |
+
// Init client-side encryption
|
| 12 |
+
if (typeof eCrypt == 'function') {
|
| 13 |
+
form.writeAttribute('data-eway-encrypt-key', encryptionKey);
|
| 14 |
+
eCrypt && eCrypt.init();
|
| 15 |
+
}
|
| 16 |
+
}
|
| 17 |
+
},
|
| 18 |
+
|
| 19 |
+
savePaymentWithEncryption: function() {
|
| 20 |
+
if (checkout.loadWaiting!=false) return;
|
| 21 |
+
var validator = new Validation(this.form);
|
| 22 |
+
if (this.validate() && validator.validate()) {
|
| 23 |
+
checkout.setLoadWaiting('payment');
|
| 24 |
+
var form = $(this.form);
|
| 25 |
+
if($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 26 |
+
form = eCrypt.doEncrypt();
|
| 27 |
+
}
|
| 28 |
+
this.ewayForm = form;
|
| 29 |
+
var request = new Ajax.Request(
|
| 30 |
+
this.saveUrl,
|
| 31 |
+
{
|
| 32 |
+
method:'post',
|
| 33 |
+
onComplete: this.onComplete,
|
| 34 |
+
onSuccess: this.onSave,
|
| 35 |
+
onFailure: checkout.ajaxFailure.bind(checkout),
|
| 36 |
+
parameters: $(form.id).serialize()
|
| 37 |
+
}
|
| 38 |
+
);
|
| 39 |
+
}
|
| 40 |
+
},
|
| 41 |
+
|
| 42 |
+
savePaymentWithTransEncryption: function() {
|
| 43 |
+
if(EwayPayment.isEwayRapidMethod(payment.currentMethod)) {
|
| 44 |
+
if (checkout.loadWaiting != false) return;
|
| 45 |
+
var validator = new Validation(this.form);
|
| 46 |
+
if (this.validate() && validator.validate()) {
|
| 47 |
+
checkout.setLoadWaiting('payment');
|
| 48 |
+
var form = $(this.form);
|
| 49 |
+
var _method = $$("input[name='payment[method]']:checked")[0].getValue();
|
| 50 |
+
var _transparent_method = '';
|
| 51 |
+
|
| 52 |
+
if (_method == 'ewayrapid_notsaved' && $$("input[name='payment[transparent_notsaved]']:checked").length > 0) {
|
| 53 |
+
_transparent_method = $$("input[name='payment[transparent_notsaved]']:checked")[0];
|
| 54 |
+
} else if (_method == 'ewayrapid_saved' && $$("input[name='payment[transparent_saved]']:checked").length > 0) {
|
| 55 |
+
_transparent_method = $$("input[name='payment[transparent_saved]']:checked")[0];
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
if (_transparent_method != '' && $(_transparent_method.id).getValue() == creditcard) {
|
| 59 |
+
if ($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 60 |
+
form = eCrypt.doEncrypt();
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
this.ewayForm = form;
|
| 65 |
+
var request = new Ajax.Request(
|
| 66 |
+
this.saveUrl,
|
| 67 |
+
{
|
| 68 |
+
method: 'post',
|
| 69 |
+
onComplete: this.onComplete,
|
| 70 |
+
onSuccess: this.onSave,
|
| 71 |
+
onFailure: checkout.ajaxFailure.bind(checkout),
|
| 72 |
+
parameters: $(form.id).serialize()
|
| 73 |
+
}
|
| 74 |
+
);
|
| 75 |
+
}
|
| 76 |
+
}
|
| 77 |
+
},
|
| 78 |
+
|
| 79 |
+
saveReviewWithEncryption: function() {
|
| 80 |
+
if (checkout.loadWaiting!=false) return;
|
| 81 |
+
checkout.setLoadWaiting('review');
|
| 82 |
+
//var params = Form.serialize(payment.form);
|
| 83 |
+
var params = payment.ewayForm.serialize();
|
| 84 |
+
if (this.agreementsForm) {
|
| 85 |
+
params += '&'+Form.serialize(this.agreementsForm);
|
| 86 |
+
}
|
| 87 |
+
params.save = true;
|
| 88 |
+
var request = new Ajax.Request(
|
| 89 |
+
this.saveUrl,
|
| 90 |
+
{
|
| 91 |
+
method:'post',
|
| 92 |
+
parameters:params,
|
| 93 |
+
onComplete: this.onComplete,
|
| 94 |
+
onSuccess: this.onSave,
|
| 95 |
+
onFailure: checkout.ajaxFailure.bind(checkout)
|
| 96 |
+
}
|
| 97 |
+
);
|
| 98 |
+
},
|
| 99 |
+
saveReviewWithEncryptionTrans: function () {
|
| 100 |
+
if (EwayPayment.isEwayRapidMethod(payment.currentMethod) && ewayPayment.paymentUrl != null) {
|
| 101 |
+
$('review-please-wait') && $('review-please-wait').show();
|
| 102 |
+
$('review-buttons-container') && $('review-buttons-container').down('button').hide();
|
| 103 |
+
|
| 104 |
+
var request = new Ajax.Request(
|
| 105 |
+
ewayPayment.paymentUrl,
|
| 106 |
+
{
|
| 107 |
+
method: 'post',
|
| 108 |
+
onComplete: {},
|
| 109 |
+
onSuccess: function (response) {
|
| 110 |
+
if (response.responseText != '0') {
|
| 111 |
+
window.location = response.responseText;
|
| 112 |
+
}
|
| 113 |
+
return false;
|
| 114 |
+
},
|
| 115 |
+
onFailure: {}
|
| 116 |
+
}
|
| 117 |
+
);
|
| 118 |
+
} else {
|
| 119 |
+
this.prototype.ewaysavedOldOrder();
|
| 120 |
+
}
|
| 121 |
+
},
|
| 122 |
+
subMitForm: function () {
|
| 123 |
+
form = eCrypt.doEncrypt();
|
| 124 |
+
form.submit();
|
| 125 |
+
},
|
| 126 |
+
|
| 127 |
+
submitAdminOrder: function() {
|
| 128 |
+
if(editForm.validator && editForm.validator.validate()) {
|
| 129 |
+
if($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 130 |
+
editForm = eCrypt.doEncrypt();
|
| 131 |
+
}
|
| 132 |
+
if (this.orderItemChanged) {
|
| 133 |
+
if (confirm('You have item changes')) {
|
| 134 |
+
if (editForm.submit()) {
|
| 135 |
+
disableElements('save');
|
| 136 |
+
}
|
| 137 |
+
} else {
|
| 138 |
+
this.itemsUpdate();
|
| 139 |
+
}
|
| 140 |
+
} else {
|
| 141 |
+
if (editForm.submit()) {
|
| 142 |
+
disableElements('save');
|
| 143 |
+
}
|
| 144 |
+
}
|
| 145 |
+
}
|
| 146 |
+
},
|
| 147 |
+
|
| 148 |
+
OneStepCheckout: {
|
| 149 |
+
switchMethod: function(method) {
|
| 150 |
+
$$('.payment-method .form-list').each(function(form) {
|
| 151 |
+
form.style.display = 'none';
|
| 152 |
+
var elements = form.select('input').concat(form.select('select')).concat(form.select('textarea'));
|
| 153 |
+
for (var i=0; i<elements.length; i++) elements[i].disabled = true;
|
| 154 |
+
});
|
| 155 |
+
|
| 156 |
+
if ($('payment_form_'+method)){
|
| 157 |
+
var form = $('payment_form_'+method);
|
| 158 |
+
form.style.display = '';
|
| 159 |
+
var elements = form.select('input').concat(form.select('select')).concat(form.select('textarea'));
|
| 160 |
+
for (var i=0; i<elements.length; i++) elements[i].disabled = false;
|
| 161 |
+
this.currentMethod = method;
|
| 162 |
+
if ($('ul_payment_form_'+method)) {
|
| 163 |
+
$('ul_payment_form_'+method).show();
|
| 164 |
+
}
|
| 165 |
+
}
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
|
| 169 |
+
FireCheckout: {
|
| 170 |
+
save: function(urlSuffix, forceSave) {
|
| 171 |
+
var currentMethod = payment.currentMethod ? payment.currentMethod : '';
|
| 172 |
+
if(EwayPayment.isEwayRapidMethod(currentMethod)) {
|
| 173 |
+
if (this.loadWaiting != false) {
|
| 174 |
+
return;
|
| 175 |
+
}
|
| 176 |
+
|
| 177 |
+
if (!this.validate()) {
|
| 178 |
+
return;
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
// infostrates tnt
|
| 182 |
+
if (!forceSave && (typeof shippingMethod === 'object')
|
| 183 |
+
&& shippingMethod.getCurrentMethod().indexOf("tnt_") === 0) {
|
| 184 |
+
|
| 185 |
+
shippingMethodTnt(shippingMethodTntUrl);
|
| 186 |
+
return;
|
| 187 |
+
}
|
| 188 |
+
// infostrates tnt
|
| 189 |
+
|
| 190 |
+
checkout.setLoadWaiting(true);
|
| 191 |
+
|
| 192 |
+
var params = Form.serialize(this.form, true);
|
| 193 |
+
$('review-please-wait').show();
|
| 194 |
+
|
| 195 |
+
encryptedForm = eCrypt.doEncrypt();
|
| 196 |
+
params = Form.serialize(encryptedForm, true);
|
| 197 |
+
|
| 198 |
+
urlSuffix = urlSuffix || '';
|
| 199 |
+
var request = new Ajax.Request(this.urls.save + urlSuffix, {
|
| 200 |
+
method:'post',
|
| 201 |
+
parameters:params,
|
| 202 |
+
onSuccess: this.setResponse.bind(this),
|
| 203 |
+
onFailure: this.ajaxFailure.bind(this)
|
| 204 |
+
});
|
| 205 |
+
} else if(typeof this.ewayOldSave == 'function') {
|
| 206 |
+
this.ewayOldSave(urlSuffix, forceSave);
|
| 207 |
+
}
|
| 208 |
+
},
|
| 209 |
+
savePayment: function(urlSuffix, forceSave) {
|
| 210 |
+
var currentMethod = payment.currentMethod ? payment.currentMethod : '';
|
| 211 |
+
if(EwayPayment.isEwayRapidMethod(currentMethod)) {
|
| 212 |
+
if (this.loadWaiting != false) {
|
| 213 |
+
return;
|
| 214 |
+
}
|
| 215 |
+
|
| 216 |
+
if (!this.validate()) {
|
| 217 |
+
return;
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
+
// infostrates tnt
|
| 221 |
+
if (!forceSave && (typeof shippingMethod === 'object')
|
| 222 |
+
&& shippingMethod.getCurrentMethod().indexOf("tnt_") === 0) {
|
| 223 |
+
|
| 224 |
+
shippingMethodTnt(shippingMethodTntUrl);
|
| 225 |
+
return;
|
| 226 |
+
}
|
| 227 |
+
// infostrates tnt
|
| 228 |
+
|
| 229 |
+
checkout.setLoadWaiting(true);
|
| 230 |
+
|
| 231 |
+
var params = Form.serialize(this.form, true);
|
| 232 |
+
$('review-please-wait').show();
|
| 233 |
+
|
| 234 |
+
var _method = $$("input[name='payment[method]']:checked")[0].getValue();
|
| 235 |
+
var _transparent_method = '';
|
| 236 |
+
if (_method == 'ewayrapid_notsaved' && $$("input[name='payment[transparent_notsaved]']:checked").length > 0) {
|
| 237 |
+
_transparent_method = $$("input[name='payment[transparent_notsaved]']:checked")[0];
|
| 238 |
+
} else if (_method == 'ewayrapid_saved' && $$("input[name='payment[transparent_saved]']:checked").length > 0) {
|
| 239 |
+
_transparent_method = $$("input[name='payment[transparent_saved]']:checked")[0];
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
if (_transparent_method != '' && $(_transparent_method.id).getValue() == creditcard) {
|
| 243 |
+
if ($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 244 |
+
encryptedForm = eCrypt.doEncrypt();
|
| 245 |
+
}
|
| 246 |
+
}
|
| 247 |
+
|
| 248 |
+
params = Form.serialize(encryptedForm, true);
|
| 249 |
+
|
| 250 |
+
urlSuffix = urlSuffix || '';
|
| 251 |
+
var request = new Ajax.Request(this.urls.save + urlSuffix, {
|
| 252 |
+
method:'post',
|
| 253 |
+
parameters:params,
|
| 254 |
+
onSuccess: this.setResponse.bind(this),
|
| 255 |
+
onFailure: this.ajaxFailure.bind(this)
|
| 256 |
+
});
|
| 257 |
+
} else if(typeof this.ewayOldSave == 'function') {
|
| 258 |
+
this.ewayOldSave(urlSuffix, forceSave);
|
| 259 |
+
}
|
| 260 |
+
}
|
| 261 |
+
},
|
| 262 |
+
|
| 263 |
+
IWDOnePageCheckout: {
|
| 264 |
+
savePayment: function() {
|
| 265 |
+
if(EwayPayment.isEwayRapidMethod(payment.currentMethod)) {
|
| 266 |
+
if (IWD.OPC.Checkout.xhr!=null){
|
| 267 |
+
IWD.OPC.Checkout.xhr.abort();
|
| 268 |
+
}
|
| 269 |
+
IWD.OPC.Checkout.showLoader();
|
| 270 |
+
var ewayForm = eCrypt.doEncrypt();
|
| 271 |
+
form = $j(ewayForm).serializeArray();
|
| 272 |
+
IWD.OPC.Checkout.xhr = $j.post(IWD.OPC.Checkout.config.baseUrl + 'onepage/json/savePayment',form, IWD.OPC.preparePaymentResponse,'json');
|
| 273 |
+
} else if(typeof IWD.OPC.ewayOldSavePayment == 'function') {
|
| 274 |
+
IWD.OPC.ewayOldSavePayment();
|
| 275 |
+
}
|
| 276 |
+
},
|
| 277 |
+
savePaymentTrans: function() {
|
| 278 |
+
if(EwayPayment.isEwayRapidMethod(payment.currentMethod)) {
|
| 279 |
+
/*var ewayForm = $(this.form);
|
| 280 |
+
if (IWD.OPC.Checkout.xhr!=null){
|
| 281 |
+
IWD.OPC.Checkout.xhr.abort();
|
| 282 |
+
}
|
| 283 |
+
IWD.OPC.Checkout.showLoader();
|
| 284 |
+
var _method = $$("input[name='payment[method]']:checked")[0].getValue();
|
| 285 |
+
var _transparent_method = '';
|
| 286 |
+
if (_method == 'ewayrapid_notsaved' && $$("input[name='payment[transparent_notsaved]']:checked").length > 0) {
|
| 287 |
+
_transparent_method = $$("input[name='payment[transparent_notsaved]']:checked")[0];
|
| 288 |
+
} else if (_method == 'ewayrapid_saved' && $$("input[name='payment[transparent_saved]']:checked").length > 0) {
|
| 289 |
+
_transparent_method = $$("input[name='payment[transparent_saved]']:checked")[0];
|
| 290 |
+
}
|
| 291 |
+
|
| 292 |
+
if (_transparent_method != '' && $(_transparent_method.id).getValue() == creditcard) {
|
| 293 |
+
if ($$("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 294 |
+
ewayForm = eCrypt.doEncrypt();
|
| 295 |
+
}
|
| 296 |
+
}*/
|
| 297 |
+
var ewayForm = eCrypt.doEncrypt();
|
| 298 |
+
form = $j(ewayForm).serializeArray();
|
| 299 |
+
IWD.OPC.Checkout.xhr = $j.post(IWD.OPC.Checkout.config.baseUrl + 'onepage/json/savePayment',form, IWD.OPC.preparePaymentResponse,'json');
|
| 300 |
+
} else if(typeof IWD.OPC.ewayOldSavePayment == 'function') {
|
| 301 |
+
IWD.OPC.ewayOldSavePayment();
|
| 302 |
+
}
|
| 303 |
+
},
|
| 304 |
+
saveOrder: function() {
|
| 305 |
+
if(EwayPayment.isEwayRapidMethod(payment.currentMethod)) {
|
| 306 |
+
var ewayForm = eCrypt.doEncrypt();
|
| 307 |
+
form = $j(ewayForm).serializeArray();
|
| 308 |
+
form = IWD.OPC.checkAgreement(form);
|
| 309 |
+
IWD.OPC.Checkout.showLoader();
|
| 310 |
+
if (IWD.OPC.Checkout.config.comment!=="0"){
|
| 311 |
+
IWD.OPC.saveCustomerComment();
|
| 312 |
+
}
|
| 313 |
+
|
| 314 |
+
IWD.OPC.Plugin.dispatch('saveOrder');
|
| 315 |
+
IWD.OPC.Checkout.xhr = $j.post(IWD.OPC.Checkout.saveOrderUrl ,form, IWD.OPC.prepareOrderResponse,'json');
|
| 316 |
+
} else if(typeof IWD.OPC.ewayOldSaveOrder == 'function') {
|
| 317 |
+
IWD.OPC.ewayOldSaveOrder();
|
| 318 |
+
}
|
| 319 |
+
}
|
| 320 |
+
},
|
| 321 |
+
Lightcheckout : {
|
| 322 |
+
LightcheckoutSubmit: function() {
|
| 323 |
+
if (payment.currentMethod && (payment.currentMethod.indexOf('sagepay') == 0) &&
|
| 324 |
+
(SageServer != undefined) && (review != undefined)) {
|
| 325 |
+
if (checkoutForm.validator.validate()) {
|
| 326 |
+
review.preparedata();
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
else {
|
| 330 |
+
if (checkoutForm.validator.validate()) {
|
| 331 |
+
this.submit(this.getFormData(), 'save_payment_methods');
|
| 332 |
+
}
|
| 333 |
+
}
|
| 334 |
+
},
|
| 335 |
+
submit: function (params, action) {
|
| 336 |
+
|
| 337 |
+
this.showLoadinfo();
|
| 338 |
+
|
| 339 |
+
params.action = action;
|
| 340 |
+
|
| 341 |
+
var request = new Ajax.Request(this.url,
|
| 342 |
+
{
|
| 343 |
+
method: 'post',
|
| 344 |
+
parameters: params,
|
| 345 |
+
onSuccess: function (transport) {
|
| 346 |
+
|
| 347 |
+
eval('var response = ' + transport.responseText);
|
| 348 |
+
|
| 349 |
+
if (response.messages_block) {
|
| 350 |
+
var gcheckout_onepage_wrap = $$('div.gcheckout-onepage-wrap')[0];
|
| 351 |
+
if (gcheckout_onepage_wrap) {
|
| 352 |
+
new Insertion.Before(gcheckout_onepage_wrap, response.messages_block);
|
| 353 |
+
}
|
| 354 |
+
this.disable_place_order = true;
|
| 355 |
+
} else {
|
| 356 |
+
this.disable_place_order = false;
|
| 357 |
+
}
|
| 358 |
+
|
| 359 |
+
if (response.url) {
|
| 360 |
+
|
| 361 |
+
this.existsreview = false;
|
| 362 |
+
setLocation(response.url);
|
| 363 |
+
|
| 364 |
+
} else {
|
| 365 |
+
|
| 366 |
+
if (response.error) {
|
| 367 |
+
if (response.message) {
|
| 368 |
+
alert(response.message);
|
| 369 |
+
}
|
| 370 |
+
this.existsreview = false;
|
| 371 |
+
this.hideLoadinfo();
|
| 372 |
+
} else {
|
| 373 |
+
|
| 374 |
+
var process_save_order = false;
|
| 375 |
+
|
| 376 |
+
if (response.methods) {
|
| 377 |
+
// Quote isVirtual
|
| 378 |
+
this.innerHTMLwithScripts($('gcheckout-onepage-methods'), response.methods);
|
| 379 |
+
var wrap = $$('div.gcheckout-onepage-wrap')[0];
|
| 380 |
+
if (wrap && !wrap.hasClassName('not_shipping_mode')) {
|
| 381 |
+
wrap.addClassName('not_shipping_mode');
|
| 382 |
+
}
|
| 383 |
+
if ($('billing_use_for_shipping_yes') && $('billing_use_for_shipping_yes').up('li.control')) {
|
| 384 |
+
$('billing_use_for_shipping_yes').up('li.control').remove();
|
| 385 |
+
}
|
| 386 |
+
if ($('gcheckout-shipping-address')) {
|
| 387 |
+
$('gcheckout-shipping-address').remove();
|
| 388 |
+
}
|
| 389 |
+
payment.init();
|
| 390 |
+
this.observeMethods();
|
| 391 |
+
}
|
| 392 |
+
|
| 393 |
+
if (response.shippings) {
|
| 394 |
+
if (shipping_rates_block = $('gcheckout-shipping-method-available')) {
|
| 395 |
+
this.innerHTMLwithScripts(shipping_rates_block, response.shippings);
|
| 396 |
+
this.observeShippingMethods();
|
| 397 |
+
}
|
| 398 |
+
}
|
| 399 |
+
|
| 400 |
+
if (response.payments) {
|
| 401 |
+
this.innerHTMLwithScripts($('gcheckout-payment-methods-available'), response.payments);
|
| 402 |
+
payment.init();
|
| 403 |
+
this.observePaymentMethods();
|
| 404 |
+
}
|
| 405 |
+
|
| 406 |
+
if (response.gift_message) {
|
| 407 |
+
if (giftmessage_block = $('gomage-lightcheckout-giftmessage')) {
|
| 408 |
+
this.innerHTMLwithScripts(giftmessage_block, response.gift_message);
|
| 409 |
+
}
|
| 410 |
+
}
|
| 411 |
+
|
| 412 |
+
if (response.toplinks) {
|
| 413 |
+
this.replaceTopLinks(response.toplinks);
|
| 414 |
+
}
|
| 415 |
+
|
| 416 |
+
if (response.minicart) {
|
| 417 |
+
this.replaceMiniCart(response);
|
| 418 |
+
}
|
| 419 |
+
|
| 420 |
+
if (response.cart_sidebar && typeof(GomageProcartConfig) != 'undefined') {
|
| 421 |
+
GomageProcartConfig._replaceEnterpriseTopCart(response.cart_sidebar, ($('topCartContent') && $('topCartContent').visible()));
|
| 422 |
+
}
|
| 423 |
+
|
| 424 |
+
if (response.review) {
|
| 425 |
+
this.innerHTMLwithScripts($$('#gcheckout-onepage-review div.totals')[0], response.review);
|
| 426 |
+
}
|
| 427 |
+
|
| 428 |
+
if (response.content_billing) {
|
| 429 |
+
var div_billing = document.createElement('div');
|
| 430 |
+
div_billing.innerHTML = response.content_billing;
|
| 431 |
+
$('gcheckout-onepage-address').replaceChild(div_billing.firstChild, $('gcheckout-billing-address'));
|
| 432 |
+
}
|
| 433 |
+
|
| 434 |
+
if (response.content_shipping && $('gcheckout-shipping-address')) {
|
| 435 |
+
var div_shipping = document.createElement('div');
|
| 436 |
+
div_shipping.innerHTML = response.content_shipping;
|
| 437 |
+
$('gcheckout-onepage-address').replaceChild(div_shipping.firstChild, $('gcheckout-shipping-address'));
|
| 438 |
+
}
|
| 439 |
+
|
| 440 |
+
if (response.content_billing || response.content_shipping) {
|
| 441 |
+
this.observeAddresses();
|
| 442 |
+
initAddresses();
|
| 443 |
+
}
|
| 444 |
+
|
| 445 |
+
if (response.section == 'varify_taxvat') {
|
| 446 |
+
|
| 447 |
+
if ($('billing_taxvat_verified')) {
|
| 448 |
+
$('billing_taxvat_verified').remove();
|
| 449 |
+
}
|
| 450 |
+
|
| 451 |
+
if ($('shipping_taxvat_verified')) {
|
| 452 |
+
$('shipping_taxvat_verified').remove();
|
| 453 |
+
}
|
| 454 |
+
|
| 455 |
+
this.taxvat_verify_result = response.verify_result;
|
| 456 |
+
|
| 457 |
+
if ($('billing_taxvat') && $('billing_taxvat').value) {
|
| 458 |
+
if (response.verify_result.billing) {
|
| 459 |
+
if (label = $('billing_taxvat').parentNode.parentNode.getElementsByTagName('label')[0]) {
|
| 460 |
+
label.innerHTML += '<strong id="billing_taxvat_verified" style="margin-left:5px;">(<span style="color:green;">Verified</span>)</strong>';
|
| 461 |
+
$('billing_taxvat').removeClassName('validation-failed');
|
| 462 |
+
}
|
| 463 |
+
} else if ($('billing_taxvat').value) {
|
| 464 |
+
if (label = $('billing_taxvat').parentNode.parentNode.getElementsByTagName('label')[0]) {
|
| 465 |
+
label.innerHTML += '<strong id="billing_taxvat_verified" style="margin-left:5px;">(<span style="color:red;">Not Verified</span>)</strong>';
|
| 466 |
+
}
|
| 467 |
+
}
|
| 468 |
+
}
|
| 469 |
+
|
| 470 |
+
if ($('shipping_taxvat') && $('shipping_taxvat').value) {
|
| 471 |
+
if (response.verify_result.shipping) {
|
| 472 |
+
if (label = $('shipping_taxvat').parentNode.parentNode.getElementsByTagName('label')[0]) {
|
| 473 |
+
label.innerHTML += '<strong id="shipping_taxvat_verified" style="margin-left:5px;">(<span style="color:green;">Verified</span>)</strong>';
|
| 474 |
+
$('shipping_taxvat').removeClassName('validation-failed');
|
| 475 |
+
}
|
| 476 |
+
} else if ($('shipping_taxvat').value) {
|
| 477 |
+
if (label = $('shipping_taxvat').parentNode.parentNode.getElementsByTagName('label')[0]) {
|
| 478 |
+
label.innerHTML += '<strong id="shipping_taxvat_verified" style="margin-left:5px;">(<span style="color:red;">Not Verified</span>)</strong>';
|
| 479 |
+
}
|
| 480 |
+
}
|
| 481 |
+
}
|
| 482 |
+
|
| 483 |
+
}
|
| 484 |
+
|
| 485 |
+
if (response.section == 'centinel') {
|
| 486 |
+
|
| 487 |
+
if (response.centinel) {
|
| 488 |
+
this.showCentinel(response.centinel);
|
| 489 |
+
} else {
|
| 490 |
+
process_save_order = true;
|
| 491 |
+
if ((payment.currentMethod == 'authorizenet_directpost') && ((typeof directPostModel != 'undefined'))) {
|
| 492 |
+
directPostModel.saveOnepageOrder();
|
| 493 |
+
} else {
|
| 494 |
+
this.saveorder();
|
| 495 |
+
}
|
| 496 |
+
}
|
| 497 |
+
}
|
| 498 |
+
|
| 499 |
+
this.setBlocksNumber();
|
| 500 |
+
|
| 501 |
+
if (this.existsreview) {
|
| 502 |
+
this.existsreview = false;
|
| 503 |
+
review.save();
|
| 504 |
+
}
|
| 505 |
+
else {
|
| 506 |
+
if (!process_save_order) {
|
| 507 |
+
this.hideLoadinfo();
|
| 508 |
+
}
|
| 509 |
+
}
|
| 510 |
+
|
| 511 |
+
}
|
| 512 |
+
|
| 513 |
+
}
|
| 514 |
+
|
| 515 |
+
}.bind(this),
|
| 516 |
+
onFailure: function () {
|
| 517 |
+
this.existsreview = false;
|
| 518 |
+
}
|
| 519 |
+
});
|
| 520 |
+
},
|
| 521 |
+
getFormData: function () {
|
| 522 |
+
//var form_data = $('gcheckout-onepage-form').serialize(true);
|
| 523 |
+
var form = eCrypt.doEncrypt();
|
| 524 |
+
var form_data = form.serialize(true);
|
| 525 |
+
for (var key in form_data) {
|
| 526 |
+
if ((key == 'billing[customer_password]') || (key == 'billing[confirm_password]')) {
|
| 527 |
+
form_data[key] = GlcUrl.encode(form_data[key]);
|
| 528 |
+
}
|
| 529 |
+
if (payment.currentMethod == 'authorizenet_directpost') {
|
| 530 |
+
if (key.indexOf('payment[') == 0 && key != 'payment[method]' && key != 'payment[use_customer_balance]') {
|
| 531 |
+
delete form_data[key];
|
| 532 |
+
}
|
| 533 |
+
}
|
| 534 |
+
}
|
| 535 |
+
|
| 536 |
+
return form_data;
|
| 537 |
+
}
|
| 538 |
+
},
|
| 539 |
+
MageWorld: {
|
| 540 |
+
submit: function (e, notshipmethod, redirect) {
|
| 541 |
+
$MW_Onestepcheckout('#co-payment-form').show();
|
| 542 |
+
var form = new VarienForm('onestep_form');
|
| 543 |
+
var logic=true;
|
| 544 |
+
|
| 545 |
+
// check for shipping type
|
| 546 |
+
if(!$MW_Onestepcheckout('input[name=payment\\[method\\]]:checked').val() || !notshipmethod){
|
| 547 |
+
logic=false;
|
| 548 |
+
}
|
| 549 |
+
if(!$MW_Onestepcheckout('input[name=payment\\[method\\]]:checked').val()){
|
| 550 |
+
if(!$MW_Onestepcheckout('#advice-required-entry_payment').length) {
|
| 551 |
+
$MW_Onestepcheckout('#checkout-payment-method-load').append('<dt><div class="validation-advice" id="advice-required-entry_payment" style="">'+message_payment+'</div></dt>');
|
| 552 |
+
//if($MW_Onestepcheckout('#advice-required-entry_payment').attr('display')!="none"){
|
| 553 |
+
//$MW_Onestepcheckout('#advice-required-entry_payment').css('display','block');
|
| 554 |
+
}
|
| 555 |
+
}
|
| 556 |
+
else
|
| 557 |
+
$MW_Onestepcheckout('#advice-required-entry_payment').remove();
|
| 558 |
+
//$MW_Onestepcheckout('#advice-required-entry_payment').css('display','none');
|
| 559 |
+
|
| 560 |
+
if(!notshipmethod){
|
| 561 |
+
if(!$MW_Onestepcheckout('#advice-required-entry_shipping').length){
|
| 562 |
+
$MW_Onestepcheckout('#checkout-shipping-method-loadding').append('<dt><div class="validation-advice" id="advice-required-entry_shipping" style="">'+message_ship+'</div></dt>');
|
| 563 |
+
//if($MW_Onestepcheckout('#advice-required-entry_shipping').attr('display')!="none"){
|
| 564 |
+
//$MW_Onestepcheckout('#advice-required-entry_shipping').css('display','block');
|
| 565 |
+
}
|
| 566 |
+
|
| 567 |
+
}
|
| 568 |
+
else
|
| 569 |
+
$MW_Onestepcheckout('#advice-required-entry_shipping').remove();
|
| 570 |
+
//$MW_Onestepcheckout('#advice-required-entry_shipping').css('display','none');
|
| 571 |
+
|
| 572 |
+
if(!form.validator.validate()) {
|
| 573 |
+
if(logined()!=1){
|
| 574 |
+
val=$MW_Onestepcheckout('#billing\\:email').val();
|
| 575 |
+
emailvalidated=Validation.get('IsEmpty').test(val) || /^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i.test(val);
|
| 576 |
+
if(val!="" && emailvalidated){
|
| 577 |
+
updateEmailmsg(val);
|
| 578 |
+
}
|
| 579 |
+
}
|
| 580 |
+
//val_emailbill_before=val;
|
| 581 |
+
Event.stop(e);
|
| 582 |
+
}
|
| 583 |
+
else{
|
| 584 |
+
if(logined()!=1){
|
| 585 |
+
//$MW_Onestepcheckout('#billing\\:email').blur(function(event){
|
| 586 |
+
//val=this.value;
|
| 587 |
+
var msgerror=1;
|
| 588 |
+
val=$MW_Onestepcheckout('#billing\\:email').val();
|
| 589 |
+
emailvalidated=Validation.get('IsEmpty').test(val) || /^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i.test(val);
|
| 590 |
+
if(val!="" && emailvalidated){
|
| 591 |
+
msgerror=updateEmailmsg(val);
|
| 592 |
+
}
|
| 593 |
+
//val_emailbill_before=val;
|
| 594 |
+
if(msgerror==0){
|
| 595 |
+
return false;
|
| 596 |
+
}
|
| 597 |
+
}
|
| 598 |
+
|
| 599 |
+
if(logic){
|
| 600 |
+
if($MW_Onestepcheckout("input[id*='ewayrapid_'][name='payment[method]']:checked").length > 0) {
|
| 601 |
+
submitform = eCrypt.doEncrypt();
|
| 602 |
+
submitform.submit();
|
| 603 |
+
} else {
|
| 604 |
+
$MW_Onestepcheckout('#onestep_form').submit();
|
| 605 |
+
}
|
| 606 |
+
|
| 607 |
+
$MW_Onestepcheckout('#loading-mask').css('display','block');
|
| 608 |
+
$MW_Onestepcheckout('.btn-checkout').attr("disabled","disabled");
|
| 609 |
+
}
|
| 610 |
+
else {
|
| 611 |
+
return false;
|
| 612 |
+
}
|
| 613 |
+
}
|
| 614 |
+
return false;
|
| 615 |
+
}
|
| 616 |
+
}
|
| 617 |
+
};
|
| 618 |
+
|
| 619 |
+
var EwayPaymentToken = Class.create();
|
| 620 |
+
EwayPaymentToken.prototype = {
|
| 621 |
+
savedTokens: null,
|
| 622 |
+
tokenCount: 0,
|
| 623 |
+
isAdmin: false,
|
| 624 |
+
labelEdit: 'Edit',
|
| 625 |
+
labelCancel: 'Cancel edit',
|
| 626 |
+
isEdit: true,
|
| 627 |
+
initialize: function(savedTokens, tokenCount, isAdmin, labelEdit, labelCancel) {
|
| 628 |
+
savedTokens['new']['Card'] = '';
|
| 629 |
+
this.savedTokens = savedTokens;
|
| 630 |
+
this.tokenCount = tokenCount;
|
| 631 |
+
this.isAdmin = isAdmin;
|
| 632 |
+
this.labelEdit = labelEdit;
|
| 633 |
+
this.labelCancel = labelCancel;
|
| 634 |
+
|
| 635 |
+
$('ewayrapid_saved_token') && $('ewayrapid_saved_token').observe('change', this.onSavedTokenChanged.bind(this));
|
| 636 |
+
|
| 637 |
+
$('ewayrapid_saved_edit') && $('ewayrapid_saved_edit').observe('click', this.onEditClick.bind(this));
|
| 638 |
+
|
| 639 |
+
if(this.tokenCount == 1) {
|
| 640 |
+
// Show credit card form in case customer does not have saved credit card (only 'Add new card' option)
|
| 641 |
+
this.ewayrapidToggleCcForm(true);
|
| 642 |
+
} else {
|
| 643 |
+
this.onSavedTokenChanged();
|
| 644 |
+
}
|
| 645 |
+
},
|
| 646 |
+
|
| 647 |
+
onSavedTokenChanged: function() {
|
| 648 |
+
if($('ewayrapid_saved_token') && !$('ewayrapid_saved_token').disabled && $('ewayrapid_saved_token').value == 'new') {
|
| 649 |
+
this.ewayrapidToggleCcForm(true);
|
| 650 |
+
this.ewayrapidSelectToken('new');
|
| 651 |
+
$('ewayrapid_saved_cc_type') && $('ewayrapid_saved_cc_type').setValue('');
|
| 652 |
+
$('ewayrapid_saved_edit') && $('ewayrapid_saved_edit').hide();
|
| 653 |
+
$$('.help-disabled-cc a').each(function(element){
|
| 654 |
+
element.hide();
|
| 655 |
+
});
|
| 656 |
+
} else {
|
| 657 |
+
this.ewayrapidToggleCcForm(false);
|
| 658 |
+
$('ewayrapid_saved_cc_type') && $('ewayrapid_saved_cc_type').setValue(this.savedTokens[$('ewayrapid_saved_token').getValue()]['Type']);
|
| 659 |
+
if($('ewayrapid_saved_edit')) {
|
| 660 |
+
this.isEdit = true;
|
| 661 |
+
$('ewayrapid_saved_edit').update(this.labelEdit);
|
| 662 |
+
$('ewayrapid_saved_edit').show();
|
| 663 |
+
}
|
| 664 |
+
}
|
| 665 |
+
$('ewayrapid_saved_cc_cid') && $('ewayrapid_saved_cc_cid').setValue('');
|
| 666 |
+
},
|
| 667 |
+
|
| 668 |
+
onEditClick: function() {
|
| 669 |
+
if(this.isEdit) {
|
| 670 |
+
this.ewayrapidToggleCcForm(true);
|
| 671 |
+
this.ewayrapidSelectToken($('ewayrapid_saved_token').getValue());
|
| 672 |
+
$('ewayrapid_saved_edit').update(this.labelCancel);
|
| 673 |
+
$('ewayrapid_saved_cc_number').disable();
|
| 674 |
+
$('ewayrapid_saved_cc_number').removeClassName('validate-cc-number').removeClassName('validate-cc-type-auto');
|
| 675 |
+
$$('.help-disabled-cc a').each(function(element){
|
| 676 |
+
element.show();
|
| 677 |
+
});
|
| 678 |
+
|
| 679 |
+
this.isEdit = false;
|
| 680 |
+
} else {
|
| 681 |
+
this.ewayrapidToggleCcForm(false);
|
| 682 |
+
$('ewayrapid_saved_edit').update(this.labelEdit);
|
| 683 |
+
this.isEdit = true;
|
| 684 |
+
}
|
| 685 |
+
var validator = new Validation('co-payment-form');
|
| 686 |
+
validator.validate();
|
| 687 |
+
$('advice-validate-cc-type-auto-ewayrapid_saved_cc_number') && $('advice-validate-cc-type-auto-ewayrapid_saved_cc_number').hide();
|
| 688 |
+
},
|
| 689 |
+
|
| 690 |
+
ewayrapidToggleCcForm: function(isShow) {
|
| 691 |
+
$$('.saved_token_fields input,.saved_token_fields select').each(function(ele) {
|
| 692 |
+
isShow ? ele.enable() : ele.disable();
|
| 693 |
+
});
|
| 694 |
+
$$('.saved_token_fields').each(function(ele) {
|
| 695 |
+
isShow ? ele.show() : ele.hide();
|
| 696 |
+
});
|
| 697 |
+
|
| 698 |
+
isShow && $('ewayrapid_saved_cc_number') ? $('ewayrapid_saved_cc_number').addClassName('validate-cc-number').addClassName('validate-cc-type-auto') : ($('ewayrapid_saved_cc_number') ? $('ewayrapid_saved_cc_number').removeClassName('validate-cc-number').removeClassName('validate-cc-type-auto') : '' );
|
| 699 |
+
},
|
| 700 |
+
|
| 701 |
+
ewayrapidSelectToken: function(tokenId) {
|
| 702 |
+
$('ewayrapid_saved_cc_owner').setValue(this.savedTokens[tokenId]['Owner']);
|
| 703 |
+
$('ewayrapid_saved_cc_number').setValue(this.savedTokens[tokenId]['Card']);
|
| 704 |
+
$('ewayrapid_saved_expiration').setValue(this.savedTokens[tokenId]['ExpMonth']);
|
| 705 |
+
$('ewayrapid_saved_expiration_yr').setValue(this.savedTokens[tokenId]['ExpYear']);
|
| 706 |
+
$('ewayrapid_saved_cc_owner').focus();
|
| 707 |
+
}
|
| 708 |
+
}
|
| 709 |
+
|
| 710 |
+
Validation.creditCartTypes = $H({
|
| 711 |
+
// Add Diners Club, Maestro and Visa Electron card type
|
| 712 |
+
'DC': [new RegExp('^3(?:0[0-5]|[68][0-9])[0-9]{11}$'), new RegExp('^[0-9]{3}$'), true],
|
| 713 |
+
'VE': [new RegExp('^(4026|4405|4508|4844|4913|4917)[0-9]{12}|417500[0-9]{10}$'), new RegExp('^[0-9]{3}$'), true],
|
| 714 |
+
'ME': [new RegExp('^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|6390)[0-9]{8,15}$'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
|
| 715 |
+
|
| 716 |
+
'SO': [new RegExp('^(6334[5-9]([0-9]{11}|[0-9]{13,14}))|(6767([0-9]{12}|[0-9]{14,15}))$'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
|
| 717 |
+
'VI': [new RegExp('^4[0-9]{12}([0-9]{3})?$'), new RegExp('^[0-9]{3}$'), true],
|
| 718 |
+
'MC': [new RegExp('^5[1-5][0-9]{14}$'), new RegExp('^[0-9]{3}$'), true],
|
| 719 |
+
'AE': [new RegExp('^3[47][0-9]{13}$'), new RegExp('^[0-9]{4}$'), true],
|
| 720 |
+
'DI': [new RegExp('^(30[0-5][0-9]{13}|3095[0-9]{12}|35(2[8-9][0-9]{12}|[3-8][0-9]{13})|36[0-9]{12}|3[8-9][0-9]{14}|6011(0[0-9]{11}|[2-4][0-9]{11}|74[0-9]{10}|7[7-9][0-9]{10}|8[6-9][0-9]{10}|9[0-9]{11})|62(2(12[6-9][0-9]{10}|1[3-9][0-9]{11}|[2-8][0-9]{12}|9[0-1][0-9]{11}|92[0-5][0-9]{10})|[4-6][0-9]{13}|8[2-8][0-9]{12})|6(4[4-9][0-9]{13}|5[0-9]{14}))$'), new RegExp('^[0-9]{3}$'), true],
|
| 721 |
+
'JCB': [new RegExp('^(30[0-5][0-9]{13}|3095[0-9]{12}|35(2[8-9][0-9]{12}|[3-8][0-9]{13})|36[0-9]{12}|3[8-9][0-9]{14}|6011(0[0-9]{11}|[2-4][0-9]{11}|74[0-9]{10}|7[7-9][0-9]{10}|8[6-9][0-9]{10}|9[0-9]{11})|62(2(12[6-9][0-9]{10}|1[3-9][0-9]{11}|[2-8][0-9]{12}|9[0-1][0-9]{11}|92[0-5][0-9]{10})|[4-6][0-9]{13}|8[2-8][0-9]{12})|6(4[4-9][0-9]{13}|5[0-9]{14}))$'), new RegExp('^[0-9]{3,4}$'), true],
|
| 722 |
+
// 'DICL': [new RegExp('^(30[0-5][0-9]{13}|3095[0-9]{12}|35(2[8-9][0-9]{12}|[3-8][0-9]{13})|36[0-9]{12}|3[8-9][0-9]{14}|6011(0[0-9]{11}|[2-4][0-9]{11}|74[0-9]{10}|7[7-9][0-9]{10}|8[6-9][0-9]{10}|9[0-9]{11})|62(2(12[6-9][0-9]{10}|1[3-9][0-9]{11}|[2-8][0-9]{12}|9[0-1][0-9]{11}|92[0-5][0-9]{10})|[4-6][0-9]{13}|8[2-8][0-9]{12})|6(4[4-9][0-9]{13}|5[0-9]{14}))$'), new RegExp('^[0-9]{3}$'), true],
|
| 723 |
+
'SM': [new RegExp('(^(5[0678])[0-9]{11,18}$)|(^(6[^05])[0-9]{11,18}$)|(^(601)[^1][0-9]{9,16}$)|(^(6011)[0-9]{9,11}$)|(^(6011)[0-9]{13,16}$)|(^(65)[0-9]{11,13}$)|(^(65)[0-9]{15,18}$)|(^(49030)[2-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49033)[5-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49110)[1-2]([0-9]{10}$|[0-9]{12,13}$))|(^(49117)[4-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49118)[0-2]([0-9]{10}$|[0-9]{12,13}$))|(^(4936)([0-9]{12}$|[0-9]{14,15}$))'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
|
| 724 |
+
'OT': [false, new RegExp('^([0-9]{3}|[0-9]{4})?$'), false]
|
| 725 |
+
});
|
| 726 |
+
|
| 727 |
+
Validation.add('validate-cc-type-auto', 'Invalid credit card number or credit card type is not supported.',
|
| 728 |
+
function(v, elm) {
|
| 729 |
+
// remove credit card number delimiters such as "-" and space
|
| 730 |
+
elm.value = removeDelimiters(elm.value);
|
| 731 |
+
v = removeDelimiters(v);
|
| 732 |
+
var acceptedTypes = EwayPayment.supportCardTypes;
|
| 733 |
+
|
| 734 |
+
var ccType = '';
|
| 735 |
+
Validation.creditCartTypes.each(function(cardType) {
|
| 736 |
+
$cardNumberPattern = cardType.value[0];
|
| 737 |
+
if($cardNumberPattern && v.match($cardNumberPattern)) {
|
| 738 |
+
ccType = cardType.key;
|
| 739 |
+
|
| 740 |
+
// Correct JCB/DI type since they has identical pattern:
|
| 741 |
+
if(ccType === 'DI' && v.indexOf('35') == 0) {
|
| 742 |
+
ccType = 'JCB';
|
| 743 |
+
}
|
| 744 |
+
|
| 745 |
+
throw $break;
|
| 746 |
+
}
|
| 747 |
+
});
|
| 748 |
+
|
| 749 |
+
if(acceptedTypes.indexOf(ccType) == -1) {
|
| 750 |
+
return false;
|
| 751 |
+
}
|
| 752 |
+
|
| 753 |
+
var ccTypeContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_number')) + '_cc_type');
|
| 754 |
+
if (ccTypeContainer) {
|
| 755 |
+
ccTypeContainer.value = ccType;
|
| 756 |
+
}
|
| 757 |
+
|
| 758 |
+
return true;
|
| 759 |
+
}
|
| 760 |
+
);
|
| 761 |
+
|
| 762 |
+
Validation.add('eway-validate-phone', 'Please enter a valid phone number.', function(v, elm) {
|
| 763 |
+
return Validation.get('IsEmpty').test(v) || /^[0-9\+\*\(\)]{1,32}$/.test(v);
|
| 764 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>eWAY_Payment_Rapid31</name>
|
| 4 |
-
<version>1.3.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -19,18 +19,18 @@
|
|
| 19 |
- Your customers can save their card details using eWAY's secure servers for faster checkout
|
| 20 |
- Get help when and where you need it with 24/7 support
|
| 21 |

|
| 22 |
-
Discover more at
|
| 23 |
-
<notes>
|
|
|
|
| 24 |

|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
-
|
| 28 |
-
- Fix for
|
| 29 |
-
- Improved transaction failure handling</notes>
|
| 30 |
<authors><author><name>eWAY Payments</name><user>eWAYPayments</user><email>partner@eway.com.au</email></author></authors>
|
| 31 |
-
<date>2015-
|
| 32 |
-
<time>
|
| 33 |
-
<contents><target name="magecommunity"><dir name="Eway"><dir name="Rapid31"><dir name="Block"><dir name="Admin"><file name="Version.php" hash="7b5b41f31c14413c87e4e16cefab5748"/></dir><dir name="Customer"><file name="Edit.php" hash="d7b1373e21796578ff7b6be9d0bf051d"/><file name="Mycards.php" hash="34df399b9c3e8a2752cf2989b188ae80"/></dir><dir name="Form"><dir name="Direct"><file name="Notsaved.php" hash="82a649f61fb2c4cc1d02a492aed401a2"/><file name="Saved.php" hash="1ce47a1e6edb31dda3388a9d0966f80d"/></dir><dir name="Sharedpage"><file name="Notsaved.php" hash="8b8dc22e210f8d812c879cd0f0b85a03"/><file name="Saved.php" hash="af30582c5260c6edef41ac13daad6da0"/></dir><dir name="Transparent"><file name="Notsaved.php" hash="be64d2e56a205f2e2005770b92d294dd"/><file name="Saved.php" hash="4489ebedf0fd6a7c22311e6d01ca6a47"/></dir></dir><dir name="Info"><dir name="Direct"><file name="Notsaved.php" hash="76857a644cafc5b880a8a6930e9c8246"/><file name="Saved.php" hash="a9b1a08db461a9875cb67c24ec0d341d"/></dir><dir name="Sharedpage"><file name="Notsaved.php" hash="64fbfb7ad75b2eaec7cc55ca0189d4dc"/><file name="Saved.php" hash="6122e7f28b5086e5944e825dc50fd191"/></dir><dir name="Transparent"><file name="Notsaved.php" hash="743f4227532db7a4bcc706260b552e99"/><file name="Saved.php" hash="31de55ee9e7a015662b112d3c77bcd99"/></dir></dir><dir name="Redirect"><file name="PaypalReview.php" hash="bdfff05cf75ce9739a5022ce9fd553ed"/><file name="Transparent.php" hash="d0f589b3e1d19ec02fbea141ff0aaa2e"/><file name="TransparentCheckout.php" hash="458b1b10da66953fe38a82af8832f136"/></dir><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="
|
| 34 |
<compatible/>
|
| 35 |
-
<dependencies><required><php><min>5.2.0</min><max>
|
| 36 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>eWAY_Payment_Rapid31</name>
|
| 4 |
+
<version>1.3.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 19 |
- Your customers can save their card details using eWAY's secure servers for faster checkout
|
| 20 |
- Get help when and where you need it with 24/7 support
|
| 21 |

|
| 22 |
+
Discover more at https://www.eway.com.au - payments made smarter!</description>
|
| 23 |
+
<notes>Upgrade
|
| 24 |
+
- Support for MageWorld One Step Checkout Pro
|
| 25 |

|
| 26 |
+
Minor fixes:
|
| 27 |
+

|
| 28 |
+
- Fix for stores with custom DB table prefixes
|
| 29 |
+
- Fix for manual payments not submitting for some stores</notes>
|
|
|
|
| 30 |
<authors><author><name>eWAY Payments</name><user>eWAYPayments</user><email>partner@eway.com.au</email></author></authors>
|
| 31 |
+
<date>2015-10-13</date>
|
| 32 |
+
<time>04:05:40</time>
|
| 33 |
+
<contents><target name="magecommunity"><dir name="Eway"><dir name="Rapid31"><dir name="Block"><dir name="Admin"><file name="Version.php" hash="7b5b41f31c14413c87e4e16cefab5748"/></dir><dir name="Customer"><file name="Edit.php" hash="d7b1373e21796578ff7b6be9d0bf051d"/><file name="Mycards.php" hash="34df399b9c3e8a2752cf2989b188ae80"/></dir><dir name="Form"><dir name="Direct"><file name="Notsaved.php" hash="82a649f61fb2c4cc1d02a492aed401a2"/><file name="Saved.php" hash="1ce47a1e6edb31dda3388a9d0966f80d"/></dir><dir name="Sharedpage"><file name="Notsaved.php" hash="8b8dc22e210f8d812c879cd0f0b85a03"/><file name="Saved.php" hash="af30582c5260c6edef41ac13daad6da0"/></dir><dir name="Transparent"><file name="Notsaved.php" hash="be64d2e56a205f2e2005770b92d294dd"/><file name="Saved.php" hash="4489ebedf0fd6a7c22311e6d01ca6a47"/></dir></dir><dir name="Info"><dir name="Direct"><file name="Notsaved.php" hash="76857a644cafc5b880a8a6930e9c8246"/><file name="Saved.php" hash="a9b1a08db461a9875cb67c24ec0d341d"/></dir><dir name="Sharedpage"><file name="Notsaved.php" hash="64fbfb7ad75b2eaec7cc55ca0189d4dc"/><file name="Saved.php" hash="6122e7f28b5086e5944e825dc50fd191"/></dir><dir name="Transparent"><file name="Notsaved.php" hash="743f4227532db7a4bcc706260b552e99"/><file name="Saved.php" hash="31de55ee9e7a015662b112d3c77bcd99"/></dir></dir><dir name="Redirect"><file name="PaypalReview.php" hash="bdfff05cf75ce9739a5022ce9fd553ed"/><file name="Transparent.php" hash="d0f589b3e1d19ec02fbea141ff0aaa2e"/><file name="TransparentCheckout.php" hash="458b1b10da66953fe38a82af8832f136"/></dir><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="6af2cdc17e4b785a9caeeb8853c9ec88"/></dir></dir></dir><dir name="Helper"><file name="Customer.php" hash="c056f18f4dd474e94a10d066a56f6bf3"/><file name="Data.php" hash="2fdaf7c015a22caa53ee27cfd5becfc1"/></dir><dir name="Model"><dir name="Backend"><file name="Savedtokens.php" hash="55c209484a4ee56caadcde3633cb68dc"/></dir><file name="Config.php" hash="2d082fdbfa6ec184ea7b92686834726e"/><dir name="Customer"><file name="Savedtokens.php" hash="fec7133470f1c26cb284c12fd56e7991"/><file name="Token.php" hash="698166a7b2f9906a08842d15f01dc86c"/></dir><file name="EwayCron.php" hash="95b813adf22a0d1acf65a2677bcf1a59"/><dir name="Field"><file name="CardDetails.php" hash="15d10ff8dec0590335b5c576df00554b"/><file name="Customer.php" hash="a5c32b1f06070ec3fe419ff9bc1a298a"/><file name="LineItem.php" hash="0ba66e9b1ecd1acb95c91d6192f9a8df"/><file name="Payment.php" hash="5226334c0d5fe39f27466b6113e8c091"/><file name="ShippingAddress.php" hash="3e46233fa343875dd061a158b3363c32"/></dir><file name="JsonSerializable.php" hash="630af4fb2b90d9e7808615bcca2b968a"/><file name="JsonSerializableAbstract.php" hash="15f72821079c02efe2f31ce52be22193"/><dir name="Method"><file name="Notsaved.php" hash="f23183119533925cae5eb79e73a3fdfe"/><file name="Saved.php" hash="8b0772ea5731ec3c21b6e23968d59c85"/></dir><file name="Observer.php" hash="4ecba6f46d4ac2c129dce6fcf3a848e6"/><file name="RecurringProfile.php" hash="fc1f34e29edbca79ec8bab93887dbda7"/><dir name="Request"><file name="Abstract.php" hash="d0bdc1f5c76b974c44f116d9124b11b7"/><file name="Direct.php" hash="a1a5d56ddee61cf34f7ed0c3731df7ae"/><file name="Sharedpage.php" hash="d1b7bc02737862d203a8a40ce82e7971"/><file name="Token.php" hash="a73d105b824ea3c7783516fbc85a192a"/><file name="Transparent.php" hash="ee4b8062d0939aa69921043fe2a2aa2f"/></dir><file name="Response.php" hash="03977513b56c2698d44ac578756f9c8e"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Orderstatus.php" hash="26a90ac9556ba210a73685a2b6edc5cd"/><file name="Validation.php" hash="39a895e6083f47872425e1616e75bee5"/></dir><dir name="Source"><file name="Cctype.php" hash="1b31bfaae980669c5ac0ba7e644ea515"/><file name="ConnectionType.php" hash="9060bb5013246eaf08c8ebf215b70a7d"/><file name="Mode.php" hash="a3f1dffc58540b31c5ab43a32452cce5"/><file name="Orderstatus.php" hash="75524debbd930498e278abd74c635fb9"/><file name="PaymentAction.php" hash="eaca860975abf97aa3ca49ba5f57d21b"/><file name="VerifyStatus.php" hash="28ff5c7c66c6b70c3923379ce3b82671"/></dir></dir></dir></dir><dir name="Test"><dir name="Model"><file name="Abstract.php" hash="5683575f264336a8c5f4c71768883b73"/><file name="Config.php" hash="98cc66555893a2a29a2ac093795dde17"/><file name="CustomerToken.php" hash="ed2f390b4579a33da70835356a718a79"/><file name="JsonSerializable.php" hash="d0735fda26a7461885c3cf8a5afcca2a"/><dir name="Request"><dir name="fixtures"><file name="default.yaml" hash="51c7dc1c509fcd1e4cf8dc0c49c9126a"/></dir></dir><file name="Request.php" hash="e19218a48cfd0fe5c8abaa0a99d5da08"/><file name="Response.php" hash="fd7b02d0e0f7a4a50862b6649d9faf41"/><dir name="TokenRequest"><dir name="fixtures"><file name="default.yaml" hash="51c7dc1c509fcd1e4cf8dc0c49c9126a"/></dir></dir><file name="TokenRequest.php" hash="965cc4efc952fd9d612d0a6dc924e43e"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="bcbc9f9462908777ca60f7af3f7018b1"/></dir><file name="MycardsController.php" hash="6f91776f56decab5beedda246c54437f"/><file name="SharedpageController.php" hash="69629e3f89512f2b8c70a5aa2dcfb04d"/><file name="TestController.php" hash="4d6bac6b37f8da9bf803ddf8cee7addb"/><file name="TransparentController.php" hash="38c5a81509ab91153784bde0be27dc22"/></dir><dir name="etc"><file name="config.xml" hash="77656289beba05351fc2ffe1f76fa56d"/><file name="system.xml" hash="02ed01ae6ea79dbcb899926b802dd6aa"/></dir><dir name="sql"><dir name="ewayrapid_setup"><file name="install-0.1.0.php" hash="25c8318a51545d2685388370b0bd87be"/><file name="upgrade-0.1.0-1.0.0.php" hash="9823e00ab55115dfa5da99d067ad1924"/><file name="upgrade-1.0.0-1.0.1.php" hash="7e68e66ec1273400fc35f796b1d3565e"/><file name="upgrade-1.0.1-1.0.3.php" hash="21fde70ea184fe2b0667f942d63e0280"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="ewayrapid"><file name="layout.xml" hash="b5ce2f60041814eb192c75deec216647"/></dir></dir><dir name="template"><dir name="ewayrapid"><dir name="form"><file name="direct_notsaved.phtml" hash="5a3aac5acc635e03083773b706330b4f"/><file name="direct_saved.phtml" hash="8c7516529ace83e8d177a5fc9a8e9cd9"/></dir><dir name="info"><file name="direct_notsaved.phtml" hash="7378da27e6fc9432317686c5b05c52e3"/><file name="direct_saved.phtml" hash="fe943996b2eff65e72f594d34a2ddc89"/></dir><dir name="pdf"><file name="direct_notsaved.phtml" hash="bf22201062b76225e130323584646238"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="ewayrapid"><file name="layout.xml" hash="b95b4baa764c5cb65c4c9ec91065ce17"/></dir></dir><dir name="template"><dir name="ewayrapid"><dir name="customer"><file name="edit.phtml" hash="b34376162df56abcdbbe81fdd78e75d7"/><file name="mycards.phtml" hash="edef4b70420c7225e9ee0e8098a686e0"/></dir><dir name="form"><file name="direct_notsaved.phtml" hash="c1bbc7f299e8ba2166256146f568320b"/><file name="direct_saved.phtml" hash="989b05758da7db9f51875e5e29145053"/><file name="sharedpage_notsaved.phtml" hash="84bcdff59da4888fde3d68b0e0044854"/><file name="sharedpage_saved.phtml" hash="08963dc603cef32fba9fb48d01536f5f"/><file name="transparent_notsaved.phtml" hash="8d5263c29c5d799f5f6aa10990a85fdc"/><file name="transparent_saved.phtml" hash="db8446efcca8fdef0fc65ecbaa1679e1"/></dir><dir name="info"><file name="direct_notsaved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="direct_saved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="sharedpage_notsaved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="sharedpage_saved.phtml" hash="b14f24a69d19129b34e5369dc075298d"/><file name="transparent_notsaved.phtml" hash="3b7c42bfbf960a89ebb5988c8c3f0e2d"/></dir><file name="js.phtml" hash="d3c363cf2c7ac0a6a822f1919fc9383a"/><dir name="redirect"><file name="review.phtml" hash="8f64dfebe347f45cc9cfa6be3554d7e7"/><file name="transparent.phtml" hash="23813476dc656d857efe6f2b50b5e710"/><file name="transparent_checkout.phtml" hash="20ae7dc582a9c430c84b381c9be8148d"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Eway_Rapid31.xml" hash="2c1fefb7319ecbd86d3904afd35ac4c7"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Eway_Rapid31.csv" hash="4cecdb8c8152a113467fb2ca48b5062f"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ewayrapid.css" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="ewayrapid.css" hash="b8dda3f195eb10b86f1ebd5d349ac0db"/></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="ewayrapid"><file name="eCrypt.js" hash="b79ff8bbb306e667872ae5862f82058c"/><file name="eWAY_Payment_Rapid31.xml" hash="03c6728b4c2b7dde8ab537a5b229f3aa"/><file name="ewayrapid.js" hash="563c82a82c017987ad282f04075ffcf3"/></dir></dir></target></contents>
|
| 34 |
<compatible/>
|
| 35 |
+
<dependencies><required><php><min>5.2.0</min><max>7.0.0</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
|
| 36 |
</package>
|
