Cardsave_Cardsaveonlinepayments - Version 1.8.0

Version Notes

SERVER_PULL delivery method implemented.

Download this release

Release Info

Developer Magento Core Team
Extension Cardsave_Cardsaveonlinepayments
Version 1.8.0
Comparing to
See all releases


Code changes from version 1.7.2 to 1.8.0

app/code/local/Cardsave/Cardsaveonlinepayments/Model/Direct.php CHANGED
@@ -398,7 +398,6 @@ class Cardsave_Cardsaveonlinepayments_Model_Direct extends Mage_Payment_Model_Me
398
 
399
  $szMerchantID = $this->getConfigData('merchantid');
400
  $szPassword = $this->getConfigData('password');
401
- $szCallbackURL = Mage::getUrl('cardsaveonlinepayments/payment/callbackhostedpayment');
402
  $szPreSharedKey = $this->getConfigData('presharedkey');
403
  $hmHashMethod = $this->getConfigData('hashmethod');
404
  $boCV2Mandatory = 'false';
@@ -408,9 +407,23 @@ class Cardsave_Cardsaveonlinepayments_Model_Direct extends Mage_Payment_Model_Me
408
  $boStateMandatory = 'false';
409
  $boCountryMandatory = 'false';
410
  $rdmResultdeliveryMethod = $this->getConfigData('resultdeliverymethod');
411
- $szServerResultURL = Mage::getUrl('cardsaveonlinepayments/payment/serverresult');
412
- // set to always true to display the result on the Hosted Payment Form
413
- $boPaymentFormDisplaysResult = 'true';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
414
 
415
  $order = $payment->getOrder();
416
  $billingAddress = $order->getBillingAddress();
398
 
399
  $szMerchantID = $this->getConfigData('merchantid');
400
  $szPassword = $this->getConfigData('password');
 
401
  $szPreSharedKey = $this->getConfigData('presharedkey');
402
  $hmHashMethod = $this->getConfigData('hashmethod');
403
  $boCV2Mandatory = 'false';
407
  $boStateMandatory = 'false';
408
  $boCountryMandatory = 'false';
409
  $rdmResultdeliveryMethod = $this->getConfigData('resultdeliverymethod');
410
+ $szServerResultURL = '';
411
+ $boPaymentFormDisplaysResult = '';
412
+
413
+ switch($rdmResultdeliveryMethod)
414
+ {
415
+ case Cardsave_Cardsaveonlinepayments_Model_Source_ResultDeliveryMethod::RESULT_DELIVERY_METHOD_POST:
416
+ $szCallbackURL = Mage::getUrl('cardsaveonlinepayments/payment/callbackhostedpayment');
417
+ break;
418
+ case Cardsave_Cardsaveonlinepayments_Model_Source_ResultDeliveryMethod::RESULT_DELIVERY_METHOD_SERVER:
419
+ $szCallbackURL = Mage::getUrl('cardsaveonlinepayments/payment/callbackhostedpayment');
420
+ $szServerResultURL = Mage::getUrl('cardsaveonlinepayments/payment/serverresult');
421
+ $boPaymentFormDisplaysResult = 'true';
422
+ break;
423
+ case Cardsave_Cardsaveonlinepayments_Model_Source_ResultDeliveryMethod::RESULT_DELIVERY_METHOD_SERVER_PULL:
424
+ $szCallbackURL = Mage::getUrl('cardsaveonlinepayments/payment/serverpullresult');
425
+ break;
426
+ }
427
 
428
  $order = $payment->getOrder();
429
  $billingAddress = $order->getBillingAddress();
app/code/local/Cardsave/Cardsaveonlinepayments/Model/Source/ResultDeliveryMethod.php CHANGED
@@ -5,6 +5,7 @@ class Cardsave_Cardsaveonlinepayments_Model_Source_ResultDeliveryMethod
5
  // public enum for the payment types
6
  const RESULT_DELIVERY_METHOD_POST = 'POST';
7
  const RESULT_DELIVERY_METHOD_SERVER = 'SERVER';
 
8
 
9
  public function toOptionArray()
10
  {
@@ -18,6 +19,10 @@ class Cardsave_Cardsaveonlinepayments_Model_Source_ResultDeliveryMethod
18
  'value' => self::RESULT_DELIVERY_METHOD_SERVER,
19
  'label' => Mage::helper('cardsaveonlinepayments')->__('Server')
20
  ),
 
 
 
 
21
  );
22
  }
23
  }
5
  // public enum for the payment types
6
  const RESULT_DELIVERY_METHOD_POST = 'POST';
7
  const RESULT_DELIVERY_METHOD_SERVER = 'SERVER';
8
+ const RESULT_DELIVERY_METHOD_SERVER_PULL = "SERVER_PULL";
9
 
10
  public function toOptionArray()
11
  {
19
  'value' => self::RESULT_DELIVERY_METHOD_SERVER,
20
  'label' => Mage::helper('cardsaveonlinepayments')->__('Server')
21
  ),
22
+ array(
23
+ 'value' => self::RESULT_DELIVERY_METHOD_SERVER_PULL,
24
+ 'label' => Mage::helper('cardsaveonlinepayments')->__('Server Pull')
25
+ )
26
  );
27
  }
28
  }
app/code/local/Cardsave/Cardsaveonlinepayments/Model/Tpg/GlobalErrors.php CHANGED
@@ -20,5 +20,17 @@ class Cardsave_Cardsaveonlinepayments_Model_Tpg_GlobalErrors
20
 
21
  // failure - occurred during the processing of the data in the callback from the 3D Secure Authentication page
22
  const ERROR_7655 = "3D Secure payment was not successfull and checkout was cancelled.<br/>Please check your credit card details and try again.";
 
 
 
 
 
 
 
 
 
 
 
 
23
  }
24
  ?>
20
 
21
  // failure - occurred during the processing of the data in the callback from the 3D Secure Authentication page
22
  const ERROR_7655 = "3D Secure payment was not successfull and checkout was cancelled.<br/>Please check your credit card details and try again.";
23
+
24
+ // failure - server pull result related error: no URL variable present in the payment form to merchant webshop redirection
25
+ const ERROR_309 ="ERROR 309: Missing parameters.";
26
+
27
+ // failure - server pull result related error: OrderID or CrossReference is missing from the URL variable list
28
+ const ERROR_304 = "ERROR 304: The payment was rejected for a SECURITY reason: the incoming payment data was tampered with.";
29
+
30
+ // faulire - server pull result related error: Magento web request to the hosted PaymentFormHandler failed while trying to retrieve the transaction details using the CrossReference
31
+ const ERROR_329 = "ERROR 329: Error happened while trying to validate the transaction result.";
32
+
33
+ // failure - server pull result related error: empty response due to invalid CrossReference
34
+ const ERROR_381 = "ERROR 381: Invalid transaction details.";
35
  }
36
  ?>
app/code/local/Cardsave/Cardsaveonlinepayments/Model/Tpg/PaymentFormHelper.php CHANGED
@@ -442,6 +442,69 @@
442
  return $boMatch;
443
  }
444
 
445
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
446
  }
447
  ?>
442
  return $boMatch;
443
  }
444
 
445
+ /**
446
+ * Convert a URL string to a name value array collection
447
+ *
448
+ * @param unknown_type $szInputVariableString
449
+ * @return unknown
450
+ */
451
+ public static function getVariableCollectionFromString($szInputVariableString)
452
+ {
453
+ $arVariableCollection = array();
454
+
455
+ $arURLVariableArray = explode('&', $szInputVariableString);
456
+ for($nCount = 0; $nCount < sizeof($arURLVariableArray); $nCount++)
457
+ {
458
+ $szNameValue = $arURLVariableArray[$nCount];
459
+ $arNameValue = explode('=', $szNameValue);
460
+ if(sizeof($arNameValue) == 1)
461
+ {
462
+ $arVariableCollection[$arNameValue[0]] = '';
463
+ }
464
+ else
465
+ {
466
+ $arVariableCollection[$arNameValue[0]] = $arNameValue[1];
467
+ }
468
+ }
469
+
470
+ return ($arVariableCollection);
471
+ }
472
+
473
+ /**
474
+ * Hash validator mechanism for the SERVER and SERVER_PULL methods
475
+ *
476
+ * @param unknown_type $formVariables
477
+ * @param unknown_type $szPassword
478
+ * @param unknown_type $hmHashMethod
479
+ * @param unknown_type $szPreSharedKey
480
+ */
481
+ public static function compareServerHashDigest($formVariables, $szPassword, $hmHashMethod, $szPreSharedKey)
482
+ {
483
+ $boMatch = false;
484
+ $szHashDigest = isset($formVariables['HashDigest']) ? $formVariables['HashDigest'] : false;
485
+ $szMerchantID = isset($formVariables['MerchantID']) ? $formVariables['MerchantID'] : false;
486
+ $szCrossReference = isset($formVariables['CrossReference']) ? $formVariables['CrossReference'] : false;
487
+ $szOrderID = isset($formVariables['OrderID']) ? $formVariables['OrderID'] : false;
488
+
489
+ $szStringBeforeHash = 'MerchantID='.$szMerchantID.'&'.
490
+ 'Password='.$szPassword.'&'.
491
+ 'CrossReference='.$szCrossReference.'&'.
492
+ 'OrderID='.$szOrderID;
493
+
494
+ if ($hmHashMethod == Cardsave_Cardsaveonlinepayments_Model_Source_HashMethod::HASH_METHOD_MD5 ||
495
+ $hmHashMethod == Cardsave_Cardsaveonlinepayments_Model_Source_HashMethod::HASH_METHOD_SHA1)
496
+ {
497
+ $szStringBeforeHash = 'PreSharedKey='.$szPreSharedKey.'&'.$szStringBeforeHash;
498
+ }
499
+
500
+ $szCalculatedHashDigest = self::_hashCalculator($hmHashMethod, $szPreSharedKey, $szStringBeforeHash);
501
+
502
+ if(strtoupper($szHashDigest) === strtoupper($szCalculatedHashDigest))
503
+ {
504
+ $boMatch = true;
505
+ }
506
+
507
+ return $boMatch;
508
+ }
509
  }
510
  ?>
app/code/local/Cardsave/Cardsaveonlinepayments/controllers/PaymentController.php CHANGED
@@ -285,6 +285,144 @@ class Cardsave_Cardsaveonlinepayments_PaymentController extends Mage_Core_Contro
285
  }
286
  }
287
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  /**
289
  * Action logic for handling the result set from the Transparent Redirect page
290
  *
285
  }
286
  }
287
 
288
+ /*
289
+ * Action logic to handle the SERVER_PUSH web request to the PaymentFormResultHandler.ashx to get the transaction result details
290
+ */
291
+ public function serverpullresultAction()
292
+ {
293
+ $boError = false;
294
+ $nStartIndex = false;
295
+ //
296
+ $szHashDigest = false;
297
+ $szMerchantID = false;
298
+ $szCrossReference = false;
299
+ $szOrderID = false;
300
+ //
301
+ $nErrorNumber = false;
302
+ $szErrorMessage = false;
303
+ $model = Mage::getModel('cardsaveonlinepayments/direct');
304
+ $checkout = Mage::getSingleton('checkout/type_onepage');
305
+ $szServerPullURL = $model->getConfigData('serverpullresultactionurl');
306
+ $szMerchantID = $model->getConfigData('merchantid');
307
+ $szPassword = $model->getConfigData('password');
308
+ $hmHashMethod = $model->getConfigData('hashmethod');
309
+ $szPreSharedKey = $model->getConfigData('presharedkey');
310
+ $szURLVariableString = $this->getRequest()->getRequestUri();
311
+ $nStartIndex = strpos($szURLVariableString, "?");
312
+
313
+ if(!is_int($nStartIndex))
314
+ {
315
+ $szErrorMessage = Cardsave_Cardsaveonlinepayments_Model_Tpg_GlobalErrors::ERROR_309;
316
+ Mage::log(Cardsave_Cardsaveonlinepayments_Model_Tpg_GlobalErrors::ERROR_309." Request URI: ".$szURLVariableString);
317
+ }
318
+ else
319
+ {
320
+ $szURLVariableString = substr($szURLVariableString, $nStartIndex + 1);
321
+ $arFormVariables = CSV_PaymentFormHelper::getVariableCollectionFromString($szURLVariableString);
322
+
323
+ if(!CSV_PaymentFormHelper::compareServerHashDigest($arFormVariables, $szPassword, $hmHashMethod, $szPreSharedKey))
324
+ {
325
+ // report an error message
326
+ $szErrorMessage = Cardsave_Cardsaveonlinepayments_Model_Tpg_GlobalErrors::ERROR_304;
327
+ }
328
+ else
329
+ {
330
+ $szOrderID = $arFormVariables["OrderID"];
331
+ $szCrossReference = $arFormVariables["CrossReference"];
332
+ $szPostFields = "MerchantID=".$szMerchantID."&Password=".$szPassword."&CrossReference=".$szCrossReference;
333
+
334
+ $cCurl = curl_init();
335
+ curl_setopt($cCurl, CURLOPT_URL, $szServerPullURL);
336
+ curl_setopt($cCurl, CURLOPT_POST, true);
337
+ curl_setopt($cCurl, CURLOPT_POSTFIELDS, $szPostFields);
338
+ curl_setopt($cCurl, CURLOPT_RETURNTRANSFER, 1);
339
+ curl_setopt($cCurl, CURLOPT_ENCODING, "UTF-8");
340
+ curl_setopt($cCurl, CURLOPT_SSL_VERIFYPEER, false);
341
+ curl_setopt($cCurl, CURLOPT_SSL_VERIFYHOST, false);
342
+
343
+ $response = curl_exec($cCurl);
344
+ $nErrorNumber = curl_errno($cCurl);
345
+ $szErrorMessage = curl_error($cCurl);
346
+ curl_close($cCurl);
347
+
348
+ if(is_int($nErrorNumber) &&
349
+ $nErrorNumber > 0)
350
+ {
351
+ Mage::log("Error happened while trying to retrieve the transaction result details for a SERVER_PULL method for CrossReference: ".$szCrossReference.". Error code: ".$nErrorNumber.", message: ".$szErrorMessage);
352
+ // suppress the message and use customer friendly instead
353
+ $szErrorMessage = Cardsave_Cardsaveonlinepayments_Model_Tpg_GlobalErrors::ERROR_329." Message: ".$szErrorMessage;
354
+ }
355
+ else
356
+ {
357
+ // synchronize of the Magento backend with the transcation result
358
+ try
359
+ {
360
+ // get the response items
361
+ $responseItems = CSV_PaymentFormHelper::getVariableCollectionFromString($response);
362
+
363
+ $szStatusCode = $responseItems["StatusCode"];
364
+ $szMessage = $responseItems["Message"];
365
+ $transactionResult = $responseItems["TransactionResult"];
366
+
367
+ if($szStatusCode !== '0')
368
+ {
369
+ $szErrorMessage = Cardsave_Cardsaveonlinepayments_Model_Tpg_GlobalErrors::ERROR_381;
370
+ $szErrorMessage .= " Message: ".$szMessage;
371
+ }
372
+ else
373
+ {
374
+ // URL decode the transaction result variable and get the transaction result sub variables
375
+ $transactionResult = urldecode($transactionResult);
376
+ $transactionResult = CSV_PaymentFormHelper::getVariableCollectionFromString($transactionResult);
377
+ // create the order item in the Magento backend
378
+ $szStatusCode = isset($transactionResult["StatusCode"]) ? $transactionResult["StatusCode"] : false;
379
+ $szMessage = isset($transactionResult["Message"]) ? $transactionResult["Message"] : false;
380
+ $szPreviousStatusCode = $szStatusCode;
381
+ $szPreviousMessage = $szMessage;
382
+
383
+ $checkout->saveOrderAfterRedirectedPaymentAction(true,
384
+ $szStatusCode,
385
+ $szMessage,
386
+ $szPreviousStatusCode,
387
+ $szPreviousMessage,
388
+ $szOrderID);
389
+ }
390
+ }
391
+ catch(Exception $exc)
392
+ {
393
+ $boError = true;
394
+ $szErrorMessage = $exc->getMessage();
395
+ Mage::logException($exc);
396
+ }
397
+ }
398
+ }
399
+ }
400
+
401
+ if($szErrorMessage)
402
+ {
403
+ Mage::getSingleton('core/session')->addError($szErrorMessage);
404
+ $this->_redirect('checkout/onepage/failure');
405
+ }
406
+ else
407
+ {
408
+ $order = Mage::getModel('sales/order');
409
+
410
+ // set the quote as inactive after back from paypal
411
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
412
+
413
+ // send confirmation email to customer
414
+ $order->load(Mage::getSingleton('checkout/session')->getLastOrderId());
415
+
416
+ if($order->getId())
417
+ {
418
+ $order->sendNewOrderEmail();
419
+ }
420
+
421
+ Mage::getSingleton('core/session')->addSuccess('Payment Processor Response: '.$szMessage);
422
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
423
+ }
424
+ }
425
+
426
  /**
427
  * Action logic for handling the result set from the Transparent Redirect page
428
  *
app/code/local/Cardsave/Cardsaveonlinepayments/etc/config.xml CHANGED
@@ -83,9 +83,10 @@
83
  <title>CardSave</title>
84
  <hashmethod>sha1</hashmethod>
85
  <paymentprocessordomain>cardsaveonlinepayments.com</paymentprocessordomain>
86
- <paymentprocessorport>4430</paymentprocessorport>
87
  <hostedpaymentactionurl>https://mms.cardsaveonlinepayments.com/Pages/PublicPages/PaymentForm.aspx</hostedpaymentactionurl>
88
  <transparentredirectactionurl>https://mms.cardsaveonlinepayments.com/Pages/PublicPages/TransparentRedirect.aspx</transparentredirectactionurl>
 
89
  <payment_action>capture</payment_action>
90
  <mode>direct</mode>
91
  <cv2mandatory>1</cv2mandatory>
83
  <title>CardSave</title>
84
  <hashmethod>sha1</hashmethod>
85
  <paymentprocessordomain>cardsaveonlinepayments.com</paymentprocessordomain>
86
+ <paymentprocessorport>443</paymentprocessorport>
87
  <hostedpaymentactionurl>https://mms.cardsaveonlinepayments.com/Pages/PublicPages/PaymentForm.aspx</hostedpaymentactionurl>
88
  <transparentredirectactionurl>https://mms.cardsaveonlinepayments.com/Pages/PublicPages/TransparentRedirect.aspx</transparentredirectactionurl>
89
+ <serverpullresultactionurl>https://mms.cardsaveonlinepayments.com/Pages/PublicPages/PaymentFormResultHandler.ashx</serverpullresultactionurl>
90
  <payment_action>capture</payment_action>
91
  <mode>direct</mode>
92
  <cv2mandatory>1</cv2mandatory>
app/code/local/Cardsave/Cardsaveonlinepayments/etc/system.xml CHANGED
@@ -136,6 +136,14 @@
136
  <show_in_website>1</show_in_website>
137
  <show_in_store>0</show_in_store>
138
  </transparentredirectactionurl>
 
 
 
 
 
 
 
 
139
  <cv2mandatory>
140
  <label>CV2 Mandatory <![CDATA[<span style="color:Red;font-weight:bold;font-size:12px;">(ON FORM ONLY)</span>]]></label>
141
  <sort_order>140</sort_order>
136
  <show_in_website>1</show_in_website>
137
  <show_in_store>0</show_in_store>
138
  </transparentredirectactionurl>
139
+ <serverpullresultactionurl>
140
+ <label>Server Pull Result Action URL</label>
141
+ <frontend_type>label</frontend_type>
142
+ <sort_order>133</sort_order>
143
+ <show_in_default>1</show_in_default>
144
+ <show_in_website>1</show_in_website>
145
+ <show_in_store>0</show_in_store>
146
+ </serverpullresultactionurl>
147
  <cv2mandatory>
148
  <label>CV2 Mandatory <![CDATA[<span style="color:Red;font-weight:bold;font-size:12px;">(ON FORM ONLY)</span>]]></label>
149
  <sort_order>140</sort_order>
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Cardsave_Cardsaveonlinepayments</name>
4
- <version>1.7.2</version>
5
  <stability>stable</stability>
6
  <license>OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>CardSave Payment Extension</summary>
10
  <description>Magento payment extension for the CardSave payment gateway. This extension fully supports the processing of 3D secure (Verified By Visa and Mastercard SecureCode) transactions. It also supports all of the integration methods provided by Iridium.</description>
11
- <notes>ServerResult action exception message included in the Message response variable</notes>
12
  <authors><author><name>CardSave Support</name><user>auto-converted</user><email>integrationsupport@cardsaveonlinepayments.com</email></author></authors>
13
- <date>2010-08-04</date>
14
- <time>15:42:17</time>
15
- <contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="cardsaveonlinepayments"><file name="form.phtml" hash="2b0b8a72c9f4a6d2ab9f0ea020c8f2ed"/><file name="info.phtml" hash="ebd858f4a39de4384d82214268df5e18"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="cardsaveonlinepayments"><file name="form.phtml" hash="206c8703ef4d160dfc6c739c128ab47b"/><file name="info.phtml" hash="086176ae3d7bef055c87029fb96a3933"/></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="Cardsave"><dir name="Cardsaveonlinepayments"><dir name="Block"><file name="Error.php" hash="660d3cbde48910ef271df9e05130a6d7"/><file name="Form.php" hash="ea5b3817c9607a94f4685d53d0b18569"/><file name="Info.php" hash="57a4bfec1a1c769de063be2b922f4a97"/><file name="Redirect.php" hash="b5a1f7af807dc9a41ec5b9db5c74e87e"/><file name="Threedsecure.php" hash="3b3cb2347316ad91dfb4ff53a58f623f"/></dir><dir name="controllers"><file name="PaymentController.php" hash="c50bdf83d52e22c9a19b21f86e277e5b"/></dir><dir name="etc"><file name="config.xml" hash="afa8160f9973a3de03be08521c304ef7"/><file name="system.xml" hash="f5c0d07410e819d0a174f8445d4cff6e"/></dir><dir name="Helper"><file name="Data.php" hash="e024ec0479d1e8e7efcf4751b05194d6"/></dir><dir name="Model"><file name="Direct.php" hash="5dbe5367f9e30cc096814ef57c356ad2"/><file name="Request.php" hash="370f028086d13ae1df470e93a67dea66"/><dir name="Source"><file name="HashMethod.php" hash="997928579b69d21ae9eebec698c715c6"/><file name="OrderStatus.php" hash="4c44f8ba1652f20d934aa200ed4c8d00"/><file name="PaymentAction.php" hash="fa94be37c18bbb2f6301bdad1db3698d"/><file name="PaymentMode.php" hash="ea8af602bd09d54a123af64bc4b680d0"/><file name="ResultDeliveryMethod.php" hash="cd9f3e997b9a5a1ba2abed8ed11534a7"/></dir><dir name="Tpg"><file name="GlobalErrors.php" hash="fc971555973a0c9eaf73701d4f976a6a"/><file name="ISOCountries.php" hash="78dc558da68ca9a6ef44898a3980ecf2"/><file name="ISOCurrencies.php" hash="a32bc47b2d9896c293ecdcbf847144f9"/><file name="PaymentFormHelper.php" hash="2f7fb5ce0d2f74f0955d8e1a8e98b9b3"/><dir name="ThePaymentGateway"><file name="PaymentSystem.php" hash="e4d4df170c21b7e3571b3ba1205ca979"/><file name="SOAP.php" hash="a0e5474dce51dc90ba4d37b5de3cdd84"/><file name="TPG_Common.php" hash="d86997c977cfd55b8ab577a514ab149c"/></dir></dir></dir></dir><dir name="Checkout"><dir name="Block"><dir name="Onepage"><dir name="Payment"><file name="Methods.php" hash="695d628564f6e1e0c85e3821699e6b45"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="9dbd58b6b32491d65e5c7d5850aa3420"/></dir><dir name="Model"><dir name="Type"><file name="Onepage.php" hash="651262752fd172df050151a4a916a72b"/></dir></dir></dir><dir name="Sales"><dir name="etc"><file name="config.xml" hash="21fea9901bfaed9c0964aa91817af05c"/></dir><dir name="Model"><file name="Order.php" hash="9ffa9e06b0d5d8d2d810ab50017e81fa"/><dir name="Order"><file name="Invoice.php" hash="e7e1e003f4e8c0540ff8e9ad0465a6cb"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="images"><file name="cardsave_online.jpg" hash="abb239c81edb9ae8df8cf891e914e2aa"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cardsave_All.xml" hash="e1d59fd8c4d4b5d87607f43fecf47e59"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies/>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Cardsave_Cardsaveonlinepayments</name>
4
+ <version>1.8.0</version>
5
  <stability>stable</stability>
6
  <license>OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>CardSave Payment Extension</summary>
10
  <description>Magento payment extension for the CardSave payment gateway. This extension fully supports the processing of 3D secure (Verified By Visa and Mastercard SecureCode) transactions. It also supports all of the integration methods provided by Iridium.</description>
11
+ <notes>SERVER_PULL delivery method implemented.</notes>
12
  <authors><author><name>CardSave Support</name><user>auto-converted</user><email>integrationsupport@cardsaveonlinepayments.com</email></author></authors>
13
+ <date>2010-08-19</date>
14
+ <time>15:08:45</time>
15
+ <contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="cardsaveonlinepayments"><file name="form.phtml" hash="2b0b8a72c9f4a6d2ab9f0ea020c8f2ed"/><file name="info.phtml" hash="ebd858f4a39de4384d82214268df5e18"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="cardsaveonlinepayments"><file name="form.phtml" hash="206c8703ef4d160dfc6c739c128ab47b"/><file name="info.phtml" hash="086176ae3d7bef055c87029fb96a3933"/></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="Cardsave"><dir name="Cardsaveonlinepayments"><dir name="Block"><file name="Error.php" hash="660d3cbde48910ef271df9e05130a6d7"/><file name="Form.php" hash="ea5b3817c9607a94f4685d53d0b18569"/><file name="Info.php" hash="57a4bfec1a1c769de063be2b922f4a97"/><file name="Redirect.php" hash="b5a1f7af807dc9a41ec5b9db5c74e87e"/><file name="Threedsecure.php" hash="3b3cb2347316ad91dfb4ff53a58f623f"/></dir><dir name="controllers"><file name="PaymentController.php" hash="ff2f3aedb65290f4d4c3cbe0060d39ec"/></dir><dir name="etc"><file name="config.xml" hash="3a790abe482ed4c6c986a8f70dbba712"/><file name="system.xml" hash="03db876eb229bef071b08fe738059366"/></dir><dir name="Helper"><file name="Data.php" hash="e024ec0479d1e8e7efcf4751b05194d6"/></dir><dir name="Model"><file name="Direct.php" hash="6f231f62071011977aa17baab3d27695"/><file name="Request.php" hash="370f028086d13ae1df470e93a67dea66"/><dir name="Source"><file name="HashMethod.php" hash="997928579b69d21ae9eebec698c715c6"/><file name="OrderStatus.php" hash="4c44f8ba1652f20d934aa200ed4c8d00"/><file name="PaymentAction.php" hash="fa94be37c18bbb2f6301bdad1db3698d"/><file name="PaymentMode.php" hash="ea8af602bd09d54a123af64bc4b680d0"/><file name="ResultDeliveryMethod.php" hash="577f80d5aae25fe63fb270b07c85b5a3"/></dir><dir name="Tpg"><file name="GlobalErrors.php" hash="5414b74695fa49e51668df62ee18dd6e"/><file name="ISOCountries.php" hash="78dc558da68ca9a6ef44898a3980ecf2"/><file name="ISOCurrencies.php" hash="a32bc47b2d9896c293ecdcbf847144f9"/><file name="PaymentFormHelper.php" hash="cf1f99eb416612b7a9eab786a0d8940b"/><dir name="ThePaymentGateway"><file name="PaymentSystem.php" hash="e4d4df170c21b7e3571b3ba1205ca979"/><file name="SOAP.php" hash="a0e5474dce51dc90ba4d37b5de3cdd84"/><file name="TPG_Common.php" hash="d86997c977cfd55b8ab577a514ab149c"/></dir></dir></dir></dir><dir name="Checkout"><dir name="Block"><dir name="Onepage"><dir name="Payment"><file name="Methods.php" hash="695d628564f6e1e0c85e3821699e6b45"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="9dbd58b6b32491d65e5c7d5850aa3420"/></dir><dir name="Model"><dir name="Type"><file name="Onepage.php" hash="651262752fd172df050151a4a916a72b"/></dir></dir></dir><dir name="Sales"><dir name="etc"><file name="config.xml" hash="21fea9901bfaed9c0964aa91817af05c"/></dir><dir name="Model"><file name="Order.php" hash="9ffa9e06b0d5d8d2d810ab50017e81fa"/><dir name="Order"><file name="Invoice.php" hash="e7e1e003f4e8c0540ff8e9ad0465a6cb"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="images"><file name="cardsave_online.jpg" hash="abb239c81edb9ae8df8cf891e914e2aa"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cardsave_All.xml" hash="e1d59fd8c4d4b5d87607f43fecf47e59"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies/>
18
  </package>