Datacash - Version 1.2.1

Version Notes

Version 1.2.1

Download this release

Release Info

Developer DataCash
Extension Datacash
Version 1.2.1
Comparing to
See all releases


Code changes from version 1.0.1 to 1.2.1

Files changed (31) hide show
  1. app/code/community/DataCash/Dpg/Block/Form/Api.php +21 -0
  2. app/code/community/DataCash/Dpg/Block/Form/Iframe.php +21 -0
  3. app/code/community/DataCash/Dpg/Block/Iframe/Start.php +22 -0
  4. app/code/community/DataCash/Dpg/Helper/Data.php +16 -0
  5. app/code/community/DataCash/Dpg/Model/Api/Abstract.php +261 -0
  6. app/code/community/DataCash/Dpg/Model/Api/Direct.php +23 -9
  7. app/code/community/DataCash/Dpg/Model/Api/Hcc.php +29 -7
  8. app/code/community/DataCash/Dpg/Model/Code.php +6 -4
  9. app/code/community/DataCash/Dpg/Model/Config.php +35 -8
  10. app/code/community/DataCash/Dpg/Model/Datacash/Request.php +146 -1
  11. app/code/community/DataCash/Dpg/Model/Datacash/Response.php +18 -0
  12. app/code/community/DataCash/Dpg/Model/Method/Abstract.php +185 -9
  13. app/code/community/DataCash/Dpg/Model/Method/Api.php +163 -37
  14. app/code/community/DataCash/Dpg/Model/Method/Apiprereg.php +9 -0
  15. app/code/community/DataCash/Dpg/Model/Method/Hcc.php +58 -11
  16. app/code/community/DataCash/Dpg/Model/Method/Hosted/Abstract.php +0 -25
  17. app/code/community/DataCash/Dpg/Model/Method/Hps.php +9 -0
  18. app/code/community/DataCash/Dpg/Model/Resource/Setup.php +6 -0
  19. app/code/community/DataCash/Dpg/Model/Resource/Tokencard.php +8 -0
  20. app/code/community/DataCash/Dpg/Model/Resource/Tokencard/Collection.php +31 -0
  21. app/code/community/DataCash/Dpg/Model/Service/Abstract.php +3 -0
  22. app/code/community/DataCash/Dpg/Model/Source/GatewayMode.php +41 -0
  23. app/code/community/DataCash/Dpg/Model/Source/RsgServiceTypes.php +45 -0
  24. app/code/community/DataCash/Dpg/Model/Tokencard.php +46 -0
  25. app/code/community/DataCash/Dpg/etc/config.xml +99 -42
  26. app/code/community/DataCash/Dpg/etc/system.xml +1411 -363
  27. app/code/community/DataCash/Dpg/sql/datacash_dpg_setup/mysql4-upgrade-1.0.1-1.1.0.php +50 -0
  28. app/design/frontend/base/default/template/datacash/form/cc.phtml +161 -92
  29. app/design/frontend/base/default/template/datacash/iframe/form.phtml +108 -17
  30. app/locale/en_GB/DataCash_Dpg.csv +653 -0
  31. package.xml +6 -8
app/code/community/DataCash/Dpg/Block/Form/Api.php CHANGED
@@ -52,5 +52,26 @@ class DataCash_Dpg_Block_Form_Api extends Mage_Payment_Block_Form_Cc
52
  {
53
  return Mage::getSingleton('dpg/config');
54
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  }
56
 
52
  {
53
  return Mage::getSingleton('dpg/config');
54
  }
55
+
56
+ public function canUseTokens()
57
+ {
58
+ $config = Mage::getSingleton('dpg/config');
59
+ return Mage::getSingleton('customer/session')->isLoggedIn() && $config->getIsAllowedTokenizer($this->getMethodCode());
60
+ }
61
+
62
+ public function getSessionTokens()
63
+ {
64
+ $session = Mage::getSingleton('checkout/session');
65
+
66
+ if ($session && $session->getQuote() && $session->getQuote()->getCustomer()) {
67
+ $customer = $session->getQuote()->getCustomer();
68
+
69
+ return Mage::getModel('dpg/tokencard')
70
+ ->getCollection()
71
+ ->addCustomerFilter($customer)
72
+ ->addMethodFilter($this->getMethodCode());
73
+ }
74
+ return null;
75
+ }
76
  }
77
 
app/code/community/DataCash/Dpg/Block/Form/Iframe.php CHANGED
@@ -31,4 +31,25 @@ class DataCash_Dpg_Block_Form_Iframe extends Mage_Payment_Block_Form
31
  {
32
  return true;
33
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  }
31
  {
32
  return true;
33
  }
34
+
35
+ public function canUseTokens()
36
+ {
37
+ $config = Mage::getSingleton('dpg/config');
38
+ return Mage::getSingleton('customer/session')->isLoggedIn() && $config->getIsAllowedTokenizer($this->getMethodCode());
39
+ }
40
+
41
+ public function getSessionTokens()
42
+ {
43
+ $session = Mage::getSingleton('checkout/session');
44
+
45
+ if ($session && $session->getQuote() && $session->getQuote()->getCustomer()) {
46
+ $customer = $session->getQuote()->getCustomer();
47
+
48
+ return Mage::getModel('dpg/tokencard')
49
+ ->getCollection()
50
+ ->addCustomerFilter($customer)
51
+ ->addMethodFilter($this->getMethodCode());
52
+ }
53
+ return null;
54
+ }
55
  }
app/code/community/DataCash/Dpg/Block/Iframe/Start.php CHANGED
@@ -41,12 +41,34 @@ class Datacash_Dpg_Block_Iframe_Start extends Mage_Core_Block_Template
41
  protected function _toHtml()
42
  {
43
  $method = $this->getRequest()->getParam('method');
 
 
 
44
  if (!in_array($method, array('hcc', 'hps'))) {
45
  Mage::throwException('Method "' . $method . '" is not supported by iframe.');
46
  }
47
  $session = Mage::getSingleton('checkout/session');
48
 
 
 
 
 
 
 
 
 
 
 
 
49
  $methodInfo = Mage::getModel('dpg/method_' . $this->getRequest()->getParam('method'));
 
 
 
 
 
 
 
 
50
  $methodInfo->initSession($session->getQuote());
51
  $session->getQuote()->save();
52
  $dataCashSession = $session->getData('datacash_' .$method . '_session');
41
  protected function _toHtml()
42
  {
43
  $method = $this->getRequest()->getParam('method');
44
+ $tokencardId = $this->getRequest()->getParam('id');
45
+ $rememberCard = $this->getRequest()->getParam('remember');
46
+
47
  if (!in_array($method, array('hcc', 'hps'))) {
48
  Mage::throwException('Method "' . $method . '" is not supported by iframe.');
49
  }
50
  $session = Mage::getSingleton('checkout/session');
51
 
52
+ // Are we using any tokens?
53
+ $tokencard = null;
54
+ $customer = $session->getQuote()->getCustomer();
55
+ if ($customer && $tokencardId && is_numeric($tokencardId)) {
56
+ $tokencard = Mage::getModel('dpg/tokencard')
57
+ ->getCollection()
58
+ ->addCustomerFilter($customer)
59
+ ->addIdFilter($tokencardId)
60
+ ->getFirstItem();
61
+ }
62
+
63
  $methodInfo = Mage::getModel('dpg/method_' . $this->getRequest()->getParam('method'));
64
+
65
+ if ($tokencard && is_object($tokencard)) {
66
+ $methodInfo->setToken($tokencard);
67
+ }
68
+
69
+ // Save the card for later use?
70
+ $methodInfo->setSaveToken($rememberCard == "1");
71
+
72
  $methodInfo->initSession($session->getQuote());
73
  $session->getQuote()->save();
74
  $dataCashSession = $session->getData('datacash_' .$method . '_session');
app/code/community/DataCash/Dpg/Helper/Data.php CHANGED
@@ -37,6 +37,22 @@
37
  */
38
  class DataCash_Dpg_Helper_Data extends Mage_Core_Helper_Abstract
39
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
  /**
42
  * Return a label for the supplied key
37
  */
38
  class DataCash_Dpg_Helper_Data extends Mage_Core_Helper_Abstract
39
  {
40
+ protected $_status_prefix = "status_";
41
+
42
+ /**
43
+ * Tries to get a user-friently version from translartion by status code
44
+ * returns False when it does not find it.
45
+ *
46
+ * @var $status string
47
+ */
48
+ public function getUserFriendlyStatus($status)
49
+ {
50
+ $translated = $this->__($this->_status_prefix.$status);
51
+ if ($translated == $status) {
52
+ return false;
53
+ }
54
+ return $translated;
55
+ }
56
 
57
  /**
58
  * Return a label for the supplied key
app/code/community/DataCash/Dpg/Model/Api/Abstract.php CHANGED
@@ -85,6 +85,14 @@ abstract class DataCash_Dpg_Model_Api_Abstract extends Varien_Object
85
 
86
  }
87
 
 
 
 
 
 
 
 
 
88
  /**
89
  * Return the method name
90
  *
@@ -92,6 +100,24 @@ abstract class DataCash_Dpg_Model_Api_Abstract extends Varien_Object
92
  * @author Alistair Stead
93
  **/
94
  abstract function getMethod();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
 
96
  /**
97
  * Call the DataCash API to make a refund request
@@ -125,6 +151,21 @@ abstract class DataCash_Dpg_Model_Api_Abstract extends Varien_Object
125
  $this->call($request);
126
  }
127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  /**
129
  * Call the DataCash API to make a Cancel request
130
  *
@@ -262,6 +303,226 @@ abstract class DataCash_Dpg_Model_Api_Abstract extends Varien_Object
262
  }
263
  }
264
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  /**
266
  * Call the DataCash API to make a 3D auth request
267
  *
85
 
86
  }
87
 
88
+ /**
89
+ * Get a unique-ish order number
90
+ */
91
+ public function getUniqueOrderNumber()
92
+ {
93
+ return $this->getOrderNumber().' - '.time();
94
+ }
95
+
96
  /**
97
  * Return the method name
98
  *
100
  * @author Alistair Stead
101
  **/
102
  abstract function getMethod();
103
+
104
+ /**
105
+ * Get info about transaction
106
+ * @var $ref string
107
+ */
108
+ public function queryTxn($ref)
109
+ {
110
+ $request = $this->getRequest()
111
+ ->addTransaction()
112
+ ->addHistoricTxn(
113
+ 'query',
114
+ $ref,
115
+ null,
116
+ 'hps',
117
+ null
118
+ );
119
+ $this->call($request);
120
+ }
121
 
122
  /**
123
  * Call the DataCash API to make a refund request
151
  $this->call($request);
152
  }
153
 
154
+ /**
155
+ * Call the DataCash API to ACCEPT/DENY a payment review
156
+ *
157
+ * @return void
158
+ * @author Kristjan Heinaste <kristjan@ontapgroup.com>
159
+ **/
160
+ public function callReview($action)
161
+ {
162
+ $request = $this->getRequest()
163
+ ->addTransaction()
164
+ ->addHistoricTxn($action, $this->getDataCashReference(), $this->getAuthCode());
165
+
166
+ $this->call($request);
167
+ }
168
+
169
  /**
170
  * Call the DataCash API to make a Cancel request
171
  *
303
  }
304
  }
305
 
306
+ public function addFraudScreening()
307
+ {
308
+ if (!$this->getUseFraudScreening()) {
309
+ return;
310
+ }
311
+
312
+ $policy = $this->getFraudScreeningPolicy();
313
+ $req = $this->getRequest();
314
+
315
+ $req->setupRsg($this->getConfig()->getFraudScreeningMode($this->getMethod()));
316
+
317
+ $this->customerRsgDataToRequest($policy['customer'], $req);
318
+ $this->billingRsgDataToRequest($policy['billing'], $req);
319
+ $this->shippingRsgDataToRequest($policy['shipping'], $req);
320
+ $this->paymentRsgDataToRequest($policy['payment'], $req);
321
+ $this->orderRsgDataToRequest($policy['order'], $req);
322
+ $this->itemRsgDataToRequest($policy['item'], $req);
323
+ }
324
+
325
+ /* @return void */
326
+ private function shippingRsgDataToRequest($policy, $request)
327
+ {
328
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
329
+ $shippingAddress = $quote->getShippingAddress();
330
+
331
+ $map = array(
332
+ 'first_name' => $shippingAddress->getFirstname(),
333
+ 'surname' => $shippingAddress->getLastname(),
334
+ 'address_line1' => $shippingAddress->getStreet(1),
335
+ 'address_line2' => $shippingAddress->getStreet(2),
336
+ 'city' => $shippingAddress->getCity(),
337
+ 'state_province' => $shippingAddress->getRegionCode(),
338
+ 'zip_code' => $shippingAddress->getPostcode(),
339
+ 'country' => $shippingAddress->getCountryId(),
340
+ );
341
+
342
+ $rsgData = array();
343
+ foreach($policy as $field => $is_enabled) {
344
+ if (!isset($map[$field]) || $is_enabled != "1") {
345
+ continue;
346
+ }
347
+ $rsgData[$field] = $map[$field];
348
+ }
349
+ $request->setRsgShipping($rsgData);
350
+ }
351
+
352
+ /* @return void */
353
+ private function itemRsgDataToRequest($policy, $request)
354
+ {
355
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
356
+ $cartItems = $quote->getAllVisibleItems();
357
+
358
+ $map = array();
359
+
360
+ foreach ($cartItems as $item) {
361
+ $itemData = array();
362
+ foreach($policy as $field => $is_enabled) {
363
+ if ($is_enabled != "1") {
364
+ continue;
365
+ }
366
+ $value = null;
367
+ switch($field) {
368
+ case 'product_code':
369
+ $value = $item->getProduct()->getSku();
370
+ break;
371
+ case 'product_description':
372
+ $value = $item->getProduct()->getDescription();
373
+ break;
374
+ case 'product_category':
375
+ $product = $item->getProduct();
376
+ $parent = $item->getParentItem();
377
+ if ($parent) {
378
+ $product = $parent->getProduct();
379
+ }
380
+ $categoryIds = $product->getCategoryIds();
381
+ $values = array();
382
+ foreach ($categoryIds as $categoryId) {
383
+ $values[] = Mage::getModel('catalog/category')->load($categoryId)->getName();
384
+ }
385
+ $value = implode(',', $values);
386
+ break;
387
+ case 'order_quantity':
388
+ $value = (int)$item->getQty();
389
+ break;
390
+ case 'unit_price':
391
+ $value = intval(floatval($item->getPrice()) * 100);
392
+ break;
393
+
394
+ }
395
+ $itemData[$field] = $value;
396
+ }
397
+ $map[] = $itemData;
398
+ }
399
+ $request->setRsgItems($map);
400
+ }
401
+
402
+ /* @return void */
403
+ private function orderRsgDataToRequest($policy, $request)
404
+ {
405
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
406
+ $totals = $quote->getTotals();
407
+ $timezone = Mage::app()->getStore()->getConfig('general/locale/timezone');
408
+
409
+ $map = array(
410
+ //'time_zone' => (string)$timezone,
411
+ 'discount_value' => isset($totals["discount"]) ? intval(floatval($totals["discount"]->getValue()) * 100) : 0,
412
+ );
413
+
414
+ $rsgData = array();
415
+ foreach($policy as $field => $is_enabled) {
416
+ if (!isset($map[$field]) || $is_enabled != "1") {
417
+ continue;
418
+ }
419
+ $rsgData[$field] = $map[$field];
420
+ }
421
+ $request->setRsgOrder($rsgData);
422
+ }
423
+
424
+ /* @return void */
425
+ private function paymentRsgDataToRequest($policy, $request)
426
+ {
427
+ $map = array(
428
+ 'payment_method' => 'CC' // TODO: double check
429
+ );
430
+
431
+ /*$rsgData = array();
432
+ foreach($policy as $field => $is_enabled) {
433
+ if (!isset($map[$field]) || $is_enabled != "1") {
434
+ continue;
435
+ }
436
+ $rsgData[$field] = $map[$field];
437
+ }*/
438
+ $request->setRsgPayment($map);
439
+ }
440
+
441
+ /* @return void */
442
+ private function customerRsgDataToRequest($policy, $request)
443
+ {
444
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
445
+
446
+ $map = array(
447
+ 'ip_address' => $_SERVER['REMOTE_ADDR'],
448
+ );
449
+
450
+ if (Mage::getSingleton('customer/session')->isLoggedIn()) {
451
+ // Customer details
452
+ $customer = Mage::getSingleton('customer/session')->getCustomer();
453
+ $addressId = $customer->getDefaultBilling();
454
+
455
+ $map = array_merge($map, array(
456
+ 'first_name' => $customer->getFirstname(),
457
+ 'surname' => $customer->getLastname(),
458
+ 'user_id' => $customer->getId(),
459
+ 'email_address' => $customer->getEmail(),
460
+ ));
461
+
462
+ if ($addressId) {
463
+ $address = Mage::getModel('customer/address')->load($addressId);
464
+ $map = array_merge($map, array(
465
+ 'address_line1' => $address->getStreet(1),
466
+ 'address_line2' => $address->getStreet(2),
467
+ 'city' => $address->getCity(),
468
+ 'state_province' => $address->getRegionCode(),
469
+ 'zip_code' => $address->getPostcode(),
470
+ 'country' => $address->getCountryId(),
471
+ 'telephone' => $address->getTelephone(),
472
+ ));
473
+ }
474
+ } else {
475
+ // Guest details
476
+ $billingAddress = $quote->getBillingAddress();
477
+ $map = array_merge($map, array(
478
+ 'email_address' => $billingAddress->getEmail(),
479
+ 'first_name' => $billingAddress->getFirstname(),
480
+ 'surname' => $billingAddress->getLastname(),
481
+ 'address_line1' => $billingAddress->getStreet(1),
482
+ 'address_line2' => $billingAddress->getStreet(2),
483
+ 'city' => $billingAddress->getCity(),
484
+ 'state_province' => $billingAddress->getRegionCode(),
485
+ 'zip_code' => $billingAddress->getPostcode(),
486
+ 'country' => $billingAddress->getCountryId(),
487
+ ));
488
+ }
489
+
490
+ $rsgData = array();
491
+ foreach($policy as $field => $is_enabled) {
492
+ if (!isset($map[$field]) || $is_enabled != "1") {
493
+ continue;
494
+ }
495
+ $rsgData[$field] = $map[$field];
496
+ }
497
+ $request->setRsgCustomer($rsgData);
498
+ }
499
+
500
+ /* @return void */
501
+ private function billingRsgDataToRequest($policy, $request)
502
+ {
503
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
504
+ $billingAddress = $quote->getBillingAddress();
505
+
506
+ $map = array(
507
+ 'name' => "{$billingAddress->getFirstname()} {$billingAddress->getLastname()}",
508
+ 'address_line1' => $billingAddress->getStreet(1),
509
+ 'address_line2' => $billingAddress->getStreet(2),
510
+ 'city' => $billingAddress->getCity(),
511
+ 'state_province' => $billingAddress->getRegionCode(),
512
+ 'zip_code' => $billingAddress->getPostcode(),
513
+ 'country' => $billingAddress->getCountryId(),
514
+ );
515
+
516
+ $rsgData = array();
517
+ foreach($policy as $field => $is_enabled) {
518
+ if (!isset($map[$field]) || $is_enabled != "1") {
519
+ continue;
520
+ }
521
+ $rsgData[$field] = $map[$field];
522
+ }
523
+ $request->setRsgBilling($rsgData);
524
+ }
525
+
526
  /**
527
  * Call the DataCash API to make a 3D auth request
528
  *
app/code/community/DataCash/Dpg/Model/Api/Direct.php CHANGED
@@ -77,22 +77,34 @@ class DataCash_Dpg_Model_Api_Direct extends DataCash_Dpg_Model_Api_Abstract
77
  if (!in_array($transactionMethod, array('auth', 'pre'))) {
78
  throw new Exception('Card transaction type not recognised');
79
  }
80
-
 
 
81
  $request = $this->getRequest()
82
  ->addTransaction()
83
  ->addCardTxn($transactionMethod)
84
- ->addTxnDetails($this->getOrderNumber(), $this->getAmount(), $this->getCurrency(), 'ecomm');
85
 
86
  if ($this->getMpiReference()) {
87
  $request->addCardDetails($this->getMpiReference());
88
  } else {
89
  $cardRef = $this->getDataCashCardReference();
90
- $request->addCard(
91
- $this->getCreditCardNumber(),
92
- $this->getCreditCardExpirationDate(),
93
- $this->getMaestroSoloIssueDate(),
94
- $this->getMaestroSoloIssueNumber()
95
- );
 
 
 
 
 
 
 
 
 
 
96
  }
97
 
98
  $this->_addLineItems();
@@ -100,7 +112,7 @@ class DataCash_Dpg_Model_Api_Direct extends DataCash_Dpg_Model_Api_Abstract
100
 
101
  $this->_addT3m(array(
102
  'previousOrders' => $this->getPreviousOrders(),
103
- 'orderNumber' => $this->getOrderNumber(),
104
  'orderItems' => $this->getOrderItems(),
105
  'forename' => $this->getForename(),
106
  'surname' => $this->getSurname(),
@@ -111,6 +123,8 @@ class DataCash_Dpg_Model_Api_Direct extends DataCash_Dpg_Model_Api_Abstract
111
  'shippingAddress' => $this->getShippingAddress()
112
  ));
113
 
 
 
114
  $this->call($request);
115
  }
116
 
77
  if (!in_array($transactionMethod, array('auth', 'pre'))) {
78
  throw new Exception('Card transaction type not recognised');
79
  }
80
+
81
+ $orderNumber = $this->getUniqueOrderNumber();
82
+
83
  $request = $this->getRequest()
84
  ->addTransaction()
85
  ->addCardTxn($transactionMethod)
86
+ ->addTxnDetails($orderNumber, $this->getAmount(), $this->getCurrency(), 'ecomm');
87
 
88
  if ($this->getMpiReference()) {
89
  $request->addCardDetails($this->getMpiReference());
90
  } else {
91
  $cardRef = $this->getDataCashCardReference();
92
+
93
+ if ($this->getToken()) {
94
+ $request->addTokencard(
95
+ $this->getToken()->getToken(),
96
+ $this->getToken()->getExpiryDate(),
97
+ $this->getMaestroSoloIssueDate(),
98
+ $this->getMaestroSoloIssueNumber()
99
+ );
100
+ } else {
101
+ $request->addCard(
102
+ $this->getCreditCardNumber(),
103
+ $this->getCreditCardExpirationDate(),
104
+ $this->getMaestroSoloIssueDate(),
105
+ $this->getMaestroSoloIssueNumber()
106
+ );
107
+ }
108
  }
109
 
110
  $this->_addLineItems();
112
 
113
  $this->_addT3m(array(
114
  'previousOrders' => $this->getPreviousOrders(),
115
+ 'orderNumber' => $orderNumber,
116
  'orderItems' => $this->getOrderItems(),
117
  'forename' => $this->getForename(),
118
  'surname' => $this->getSurname(),
123
  'shippingAddress' => $this->getShippingAddress()
124
  ));
125
 
126
+ $this->addFraudScreening();
127
+
128
  $this->call($request);
129
  }
130
 
app/code/community/DataCash/Dpg/Model/Api/Hcc.php CHANGED
@@ -46,7 +46,17 @@ class DataCash_Dpg_Model_Api_Hcc extends DataCash_Dpg_Model_Api_Abstract
46
  {
47
  return 'datacash_hcc';
48
  }
49
-
 
 
 
 
 
 
 
 
 
 
50
  /**
51
  * setUpHccSession
52
  * Prepares request for a Datacash HCC session setup request
@@ -59,7 +69,11 @@ class DataCash_Dpg_Model_Api_Hcc extends DataCash_Dpg_Model_Api_Abstract
59
  ->addTransaction()
60
  ->addTxnDetails($this->getOrderNumber(), $this->getAmount(), $this->getCurrency())
61
  ->addHpsTxn($this->getPageSetId(),'setup', $this->getReturnUrl(), $this->getExpiryUrl(), 'hcc');
62
-
 
 
 
 
63
  $this->call($request);
64
  }
65
 
@@ -94,6 +108,7 @@ class DataCash_Dpg_Model_Api_Hcc extends DataCash_Dpg_Model_Api_Abstract
94
  $this->_addLineItems();
95
  $this->_addCv2Avs();
96
  // $this->_addRed();
 
97
 
98
  $this->call($request);
99
  }
@@ -129,6 +144,7 @@ class DataCash_Dpg_Model_Api_Hcc extends DataCash_Dpg_Model_Api_Abstract
129
  $this->_addLineItems();
130
  $this->_addCv2Avs();
131
  // $this->_addRed();
 
132
 
133
  $this->call($request);
134
  }
@@ -167,16 +183,21 @@ class DataCash_Dpg_Model_Api_Hcc extends DataCash_Dpg_Model_Api_Abstract
167
  **/
168
  public function call3DLookup()
169
  {
170
- $mpiMerchantReference = $this->getOrderNumber() . '-' . time();
171
-
172
- if ($this->getIsUseCcv()) {
 
 
 
 
 
173
  $paymentAction = $this->getConfig()->getPaymentAction($this->getMethod());
174
  if ($paymentAction == Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE) {
175
  $this->callPre(self::ADD_THREED_SECURE_SECTION);
176
  } elseif ($paymentAction == Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE) {
177
  $this->callAuth(self::ADD_THREED_SECURE_SECTION);
178
  }
179
- } else {
180
  $request = $this->getRequest()
181
  ->addTransaction()
182
  ->addTxnDetails($mpiMerchantReference, $this->getAmount(), $this->getCurrency())
@@ -184,8 +205,9 @@ class DataCash_Dpg_Model_Api_Hcc extends DataCash_Dpg_Model_Api_Abstract
184
  ->addCardDetails($this->getDataCashCardReference(), 'from_hps', 'MpiTxn');
185
 
186
  $this->_add3DSecure();
 
187
 
188
  $this->call($request);
189
- }
190
  }
191
  }
46
  {
47
  return 'datacash_hcc';
48
  }
49
+
50
+ private function useToken()
51
+ {
52
+ return $this->getToken() && $this->getToken()->getId();
53
+ }
54
+
55
+ private function getTokenString()
56
+ {
57
+ return $this->getToken()->getToken();
58
+ }
59
+
60
  /**
61
  * setUpHccSession
62
  * Prepares request for a Datacash HCC session setup request
69
  ->addTransaction()
70
  ->addTxnDetails($this->getOrderNumber(), $this->getAmount(), $this->getCurrency())
71
  ->addHpsTxn($this->getPageSetId(),'setup', $this->getReturnUrl(), $this->getExpiryUrl(), 'hcc');
72
+
73
+ if ($this->useToken()) {
74
+ $request->addToken($this->getTokenString());
75
+ }
76
+
77
  $this->call($request);
78
  }
79
 
108
  $this->_addLineItems();
109
  $this->_addCv2Avs();
110
  // $this->_addRed();
111
+ $this->addFraudScreening();
112
 
113
  $this->call($request);
114
  }
144
  $this->_addLineItems();
145
  $this->_addCv2Avs();
146
  // $this->_addRed();
147
+ $this->addFraudScreening();
148
 
149
  $this->call($request);
150
  }
183
  **/
184
  public function call3DLookup()
185
  {
186
+ //
187
+ // XXX: isUseCcv will always be true in HCC
188
+ // (all out-commented code in this method)
189
+ //
190
+
191
+ //$mpiMerchantReference = $this->getOrderNumber() . '-' . time();
192
+
193
+ //if ($this->getIsUseCcv()) {
194
  $paymentAction = $this->getConfig()->getPaymentAction($this->getMethod());
195
  if ($paymentAction == Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE) {
196
  $this->callPre(self::ADD_THREED_SECURE_SECTION);
197
  } elseif ($paymentAction == Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE) {
198
  $this->callAuth(self::ADD_THREED_SECURE_SECTION);
199
  }
200
+ /*} else {
201
  $request = $this->getRequest()
202
  ->addTransaction()
203
  ->addTxnDetails($mpiMerchantReference, $this->getAmount(), $this->getCurrency())
205
  ->addCardDetails($this->getDataCashCardReference(), 'from_hps', 'MpiTxn');
206
 
207
  $this->_add3DSecure();
208
+ $this->addFraudScreening();
209
 
210
  $this->call($request);
211
+ }*/
212
  }
213
  }
app/code/community/DataCash/Dpg/Model/Code.php CHANGED
@@ -28,10 +28,13 @@
28
 
29
  class DataCash_Dpg_Model_Code
30
  {
 
31
  const SUCCESS = 1;
32
  const SOCKET_WRITE_ERROR = 2;
33
- const FRAUD = 1105;
34
-
 
 
35
 
36
  /**
37
  * undocumented class variable
@@ -41,10 +44,9 @@ class DataCash_Dpg_Model_Code
41
  protected $_errors = array(
42
  self::SUCCESS => 'Transaction accepted and logged.',
43
  self::SOCKET_WRITE_ERROR => 'Communication was interrupted.',
44
- self::FRAUD => 'The transaction referenced was both referred by the acquiring bank, and challanged by the Retail Decisions (ReD) Service.'
45
  );
46
 
47
-
48
  /**
49
  * undocumented function
50
  *
28
 
29
  class DataCash_Dpg_Model_Code
30
  {
31
+ /* Statuses */
32
  const SUCCESS = 1;
33
  const SOCKET_WRITE_ERROR = 2;
34
+ const FRAUD = 1126;
35
+ const REVIEW = 1127;
36
+ const PAYMENT_REVIEW_ACCEPT = 'accept_review';
37
+ const PAYMENT_REVIEW_DENY = 'deny_review';
38
 
39
  /**
40
  * undocumented class variable
44
  protected $_errors = array(
45
  self::SUCCESS => 'Transaction accepted and logged.',
46
  self::SOCKET_WRITE_ERROR => 'Communication was interrupted.',
47
+ self::FRAUD => 'The transaction referenced was both referred by the acquiring bank, and challenged by the Retail Decisions (ReD) Service.'
48
  );
49
 
 
50
  /**
51
  * undocumented function
52
  *
app/code/community/DataCash/Dpg/Model/Config.php CHANGED
@@ -98,11 +98,8 @@ class DataCash_Dpg_Model_Config extends Varien_Object
98
  **/
99
  public function isMethodSandboxed($method)
100
  {
101
- if (Mage::getStoreConfigFlag("payment/{$method}/sandbox", $this->getStoreId()))
102
- {
103
- return true;
104
- }
105
- return false;
106
  }
107
 
108
  /**
@@ -114,9 +111,13 @@ class DataCash_Dpg_Model_Config extends Varien_Object
114
  **/
115
  public function getEndpoint($method)
116
  {
117
- return $this->isMethodSandboxed($method)?
118
- $this->_getStoreSetting($method, 'testing_endpoint'):
119
- $this->_getStoreSetting($method, 'live_endpoint');
 
 
 
 
120
  }
121
 
122
  /**
@@ -144,6 +145,9 @@ class DataCash_Dpg_Model_Config extends Varien_Object
144
  **/
145
  public function isLineItemsEnabled($method)
146
  {
 
 
 
147
  if (Mage::getStoreConfigFlag("payment/{$method}/line_items_enabled", $this->getStoreId()))
148
  {
149
  return true;
@@ -251,6 +255,29 @@ class DataCash_Dpg_Model_Config extends Varien_Object
251
  return false;
252
  }
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  public function getIsAllowedT3m($method = 'datacash_api')
255
  {
256
  if (Mage::getStoreConfigFlag("payment/{$method}/allow_t3m", $this->getStoreId()))
98
  **/
99
  public function isMethodSandboxed($method)
100
  {
101
+ $option = (int)Mage::getStoreConfig("payment/{$method}/sandbox", $this->getStoreId());
102
+ return in_array($option, array(1, 2));
 
 
 
103
  }
104
 
105
  /**
111
  **/
112
  public function getEndpoint($method)
113
  {
114
+ $option = (int)Mage::getStoreConfig("payment/{$method}/sandbox", $this->getStoreId());
115
+ $endpoints = array(
116
+ $this->_getStoreSetting($method, 'live_endpoint'),
117
+ $this->_getStoreSetting($method, 'testing_endpoint'), // test mode 1
118
+ $this->_getStoreSetting($method, 'accreditation_endpoint'), // test mode 2
119
+ );
120
+ return $endpoints[$option];
121
  }
122
 
123
  /**
145
  **/
146
  public function isLineItemsEnabled($method)
147
  {
148
+ if ($method == "datacash_api") { // XXX: make it more elegant
149
+ return false;
150
+ }
151
  if (Mage::getStoreConfigFlag("payment/{$method}/line_items_enabled", $this->getStoreId()))
152
  {
153
  return true;
255
  return false;
256
  }
257
 
258
+ public function getIsAllowedFraudScreening($method = 'datacash_api')
259
+ {
260
+ if (Mage::getStoreConfigFlag("payment/{$method}/allow_fraud_screening", $this->getStoreId()))
261
+ {
262
+ return true;
263
+ }
264
+ return false;
265
+ }
266
+
267
+ public function getFraudScreeningMode($method = 'datacash_api')
268
+ {
269
+ return Mage::getStoreConfig("payment/{$method}/rsg_service_mode", $this->getStoreId());
270
+ }
271
+
272
+ public function getIsAllowedTokenizer($method = 'datacash_api')
273
+ {
274
+ if (Mage::getStoreConfigFlag("payment/{$method}/allow_tokenizer", $this->getStoreId()))
275
+ {
276
+ return true;
277
+ }
278
+ return false;
279
+ }
280
+
281
  public function getIsAllowedT3m($method = 'datacash_api')
282
  {
283
  if (Mage::getStoreConfigFlag("payment/{$method}/allow_t3m", $this->getStoreId()))
app/code/community/DataCash/Dpg/Model/Datacash/Request.php CHANGED
@@ -28,6 +28,8 @@
28
 
29
  class DataCash_Dpg_Model_Datacash_Request extends Varien_Object
30
  {
 
 
31
  /**
32
  * Internal member variable that will hold the XML request
33
  *
@@ -45,11 +47,127 @@ class DataCash_Dpg_Model_Datacash_Request extends Varien_Object
45
  {
46
  if (is_null($xmlElement)) {
47
  $xmlElement = new Varien_Simplexml_Element('<Request></Request>');
 
48
  }
49
  $this->_request = $xmlElement;
50
 
51
  return $this;
52
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
  /**
55
  * Add the Authentication section of the request
@@ -408,6 +526,33 @@ class DataCash_Dpg_Model_Datacash_Request extends Varien_Object
408
 
409
  return $this;
410
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
411
 
412
  /**
413
  * Add HPS details to the request
@@ -853,7 +998,7 @@ class DataCash_Dpg_Model_Datacash_Request extends Varien_Object
853
  {
854
  switch(strtolower($type)){
855
  case 'api':
856
- $transactionTypes = array('fulfill', 'txn_refund', 'cancel', 'authorize_referr', 'al_request');
857
  break;
858
  case '3d':
859
  $transactionTypes = array('threedsecure_validate_authentication', 'threedsecure_authorization_request');
28
 
29
  class DataCash_Dpg_Model_Datacash_Request extends Varien_Object
30
  {
31
+ const XML_VERSION = '2';
32
+
33
  /**
34
  * Internal member variable that will hold the XML request
35
  *
47
  {
48
  if (is_null($xmlElement)) {
49
  $xmlElement = new Varien_Simplexml_Element('<Request></Request>');
50
+ $xmlElement->addAttribute('version', self::XML_VERSION);
51
  }
52
  $this->_request = $xmlElement;
53
 
54
  return $this;
55
  }
56
+
57
+ public function addToken($token)
58
+ {
59
+ if (!$this->getRequest()->Transaction) {
60
+ throw new UnexpectedValueException('Parent node does not exist Transcation');
61
+ }
62
+ if (!$this->getRequest()->Transaction->HpsTxn) {
63
+ throw new UnexpectedValueException('Parent node does not exist HpsTxn');
64
+ }
65
+
66
+ $txn = $this->getRequest()->Transaction->HpsTxn;
67
+ $txn->addChild("cvv_only", "1");
68
+
69
+ $card = $txn->addChild("Card");
70
+ $pan = $card->addChild("pan", $token);
71
+ $pan->addAttribute('type', "hps_token");
72
+
73
+ return $this;
74
+ }
75
+
76
+ public function setupRsg($serviceMode="1")
77
+ {
78
+ if (!$this->getRequest()->Transaction) {
79
+ throw new UnexpectedValueException('Parent node does not exist Transaction');
80
+ }
81
+ if (!$this->getRequest()->Transaction->TxnDetails) {
82
+ throw new UnexpectedValueException('Parent node does not exist Transaction->TxnDetails');
83
+ }
84
+
85
+ $rsg = $this->getRequest()->Transaction->TxnDetails->addChild('Risk');
86
+ $action = $rsg->addChild("Action");
87
+ $action->addAttribute("service", $serviceMode);
88
+ $mercantConfiguration = $action->addChild('MerchantConfiguration');
89
+ $customerDetails = $action->addChild("CustomerDetails");
90
+ $orderDetails = $customerDetails->addChild("OrderDetails");
91
+ }
92
+
93
+ public function setRsgItems($data)
94
+ {
95
+ $orderDetails = $this->getRequest()->Transaction->TxnDetails->Risk->Action->CustomerDetails->OrderDetails;
96
+ $lineItems = $orderDetails->addChild("LineItems");
97
+ foreach($data as $item_data) {
98
+ if (sizeof(array_keys($item_data)) == 0) {
99
+ continue;
100
+ }
101
+ $item = $lineItems->addChild("Item");
102
+ foreach($item_data as $key => $value) {
103
+ $item->addChild($key, $value);
104
+ }
105
+ }
106
+ }
107
+
108
+ public function setRsgOrder($data)
109
+ {
110
+ $orderDetails = $this->getRequest()->Transaction->TxnDetails->Risk->Action->CustomerDetails->OrderDetails;
111
+ foreach($data as $key => $value) {
112
+ $orderDetails->addChild($key, $value);
113
+ }
114
+ }
115
+
116
+ public function setRsgBilling($data)
117
+ {
118
+ $orderDetails = $this->getRequest()->Transaction->TxnDetails->Risk->Action->CustomerDetails->OrderDetails;
119
+ $billingDetails = $orderDetails->addChild("BillingDetails");
120
+
121
+ foreach($data as $key => $value) {
122
+ $billingDetails->addChild($key, $value);
123
+ }
124
+ }
125
+
126
+ public function setRsgShipping($data)
127
+ {
128
+ $customerDetails = $this->getRequest()->Transaction->TxnDetails->Risk->Action->CustomerDetails;
129
+ $shippingDetails = $customerDetails->addChild("ShippingDetails");
130
+
131
+ foreach($data as $key => $value) {
132
+ $shippingDetails->addChild($key, $value);
133
+ }
134
+ }
135
+
136
+ public function setRsgCustomer($data)
137
+ {
138
+ $customerDetails = $this->getRequest()->Transaction->TxnDetails->Risk->Action->CustomerDetails;
139
+
140
+ $riskDetails = $customerDetails->addChild("RiskDetails");
141
+ foreach(array('ip_address', 'user_id', 'email_address') as $key) {
142
+ if (isset($data[$key])) {
143
+ $riskDetails->addChild($key, $data[$key]);
144
+ }
145
+ }
146
+
147
+ $personalDetails = $customerDetails->addChild("PersonalDetails");
148
+ foreach(array('first_name', 'surname', 'telephone') as $key) {
149
+ if (isset($data[$key])) {
150
+ $personalDetails->addChild($key, $data[$key]);
151
+ }
152
+ }
153
+
154
+ $addressDetails = $customerDetails->addChild("AddressDetails");
155
+ foreach(array('address_line1', 'address_line2', 'city', 'state_province', 'country', 'zip_code') as $key) {
156
+ if (isset($data[$key])) {
157
+ $addressDetails->addChild($key, $data[$key]);
158
+ }
159
+ }
160
+ }
161
+
162
+ public function setRsgPayment($data)
163
+ {
164
+ $customerDetails = $this->getRequest()->Transaction->TxnDetails->Risk->Action->CustomerDetails;
165
+ $paymentDetails = $customerDetails->addChild("PaymentDetails");
166
+
167
+ foreach($data as $key => $value) {
168
+ $paymentDetails->addChild($key, $value);
169
+ }
170
+ }
171
 
172
  /**
173
  * Add the Authentication section of the request
526
 
527
  return $this;
528
  }
529
+
530
+ /**
531
+ * Basically the same as addCard just instead of card add a token
532
+ */
533
+ public function addTokencard($token, $expiryDate, $startDate = null, $issueNumber = null)
534
+ {
535
+ if (!$this->getRequest()->Transaction->CardTxn) {
536
+ throw new UnexpectedValueException('Parent node does not exist');
537
+ }
538
+ $card = $this->getRequest()->Transaction->CardTxn->addChild('Card');
539
+
540
+ // Required values
541
+ $pan = $card->addChild('pan', $token);
542
+ $pan->addAttribute('type', 'token');
543
+
544
+ $card->addChild('expirydate', $expiryDate);
545
+
546
+ // Mandatory values for some cards
547
+ if (!is_null($startDate)) {
548
+ $card->addChild('startdate', $startDate);
549
+ }
550
+ if (!is_null($issueNumber)) {
551
+ $card->addChild('issuenumber', $issueNumber);
552
+ }
553
+
554
+ return $this;
555
+ }
556
 
557
  /**
558
  * Add HPS details to the request
998
  {
999
  switch(strtolower($type)){
1000
  case 'api':
1001
+ $transactionTypes = array('fulfill', 'txn_refund', 'cancel', 'authorize_referr', 'al_request', 'accept_review');
1002
  break;
1003
  case '3d':
1004
  $transactionTypes = array('threedsecure_validate_authentication', 'threedsecure_authorization_request');
app/code/community/DataCash/Dpg/Model/Datacash/Response.php CHANGED
@@ -43,6 +43,11 @@ class DataCash_Dpg_Model_Datacash_Response extends Varien_Object
43
  return false;
44
  }
45
 
 
 
 
 
 
46
  /**
47
  * Was the transaction judged to be fraudulent
48
  *
@@ -132,4 +137,17 @@ class DataCash_Dpg_Model_Datacash_Response extends Varien_Object
132
  }
133
  return $t3m;
134
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  }
43
  return false;
44
  }
45
 
46
+ public function isMarkedForReview()
47
+ {
48
+ return $this->getStatus() == DataCash_Dpg_Model_Code::REVIEW;
49
+ }
50
+
51
  /**
52
  * Was the transaction judged to be fraudulent
53
  *
137
  }
138
  return $t3m;
139
  }
140
+
141
+ /**
142
+ * Get Token string
143
+ * @return string
144
+ * @author Kristjan Heinaste <kristjan@ontapgroup.com>
145
+ */
146
+ public function getToken()
147
+ {
148
+ $cardTxn = $this->getData('CardTxn');
149
+
150
+ return (isset($cardTxn['token'])) ? (string)$cardTxn['token'] : null;
151
+ }
152
+
153
  }
app/code/community/DataCash/Dpg/Model/Method/Abstract.php CHANGED
@@ -38,6 +38,7 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
38
  protected $_api;
39
 
40
  protected $_config;
 
41
 
42
  /**
43
  *
@@ -50,6 +51,21 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
50
  return $this;
51
  }
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  /**
54
  * getMethodAuthoriseStartUrl
55
  * @return string url for placeform action for redirection to Datacash
@@ -79,6 +95,15 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
79
  return (bool) $configData;
80
  }
81
 
 
 
 
 
 
 
 
 
 
82
  /**
83
  *
84
  * Gets Extended policy from config.
@@ -113,6 +138,60 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
113
  return $extendedPolicy;
114
  }
115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  public function setApi($value)
117
  {
118
  $this->_api = $value;
@@ -199,14 +278,12 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
199
  *
200
  * @param Mage_Sales_Model_Order_Payment $payment
201
  * @return bool
202
- * @author Alistair Stead
203
  */
204
  public function acceptPayment(Mage_Payment_Model_Info $payment)
205
  {
206
- // Add method body (Phase 2 requirement)
207
  parent::acceptPayment($payment);
208
-
209
- return $this;
210
  }
211
 
212
  /**
@@ -214,16 +291,81 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
214
  *
215
  * @param Mage_Sales_Model_Order_Payment $payment
216
  * @return bool
217
- * @author Alistair Stead
218
  */
219
  public function denyPayment(Mage_Payment_Model_Info $payment)
220
  {
221
- // Add method body (Phase 2 requirement)
222
  parent::denyPayment($payment);
223
-
224
- return $this;
225
  }
226
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  /**
228
  * Fetch transaction details info
229
  *
@@ -466,7 +608,11 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
466
  }
467
  }
468
  if ($response->isFraud()) {
469
- $payment->setIsFraudDetected();
 
 
 
 
470
  }
471
  $datacashReferenceMap = array(
472
  'datacash_reference',
@@ -480,6 +626,11 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
480
  }
481
  }
482
 
 
 
 
 
 
483
  }
484
 
485
  protected function _getCentinelValidator($service)
@@ -494,4 +645,29 @@ abstract class DataCash_Dpg_Model_Method_Abstract extends Mage_Payment_Model_Met
494
 
495
  return $validator;
496
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
497
  }
38
  protected $_api;
39
 
40
  protected $_config;
41
+ protected $_token = null;
42
 
43
  /**
44
  *
51
  return $this;
52
  }
53
 
54
+ /**
55
+ * Add token to instance variable
56
+ * @param $token DataCash_Dpg_Model_Tokencard
57
+ */
58
+ public function setToken(DataCash_Dpg_Model_Tokencard $token)
59
+ {
60
+ $this->_token = $token;
61
+ return $this;
62
+ }
63
+
64
+ public function getToken()
65
+ {
66
+ return $this->_token;
67
+ }
68
+
69
  /**
70
  * getMethodAuthoriseStartUrl
71
  * @return string url for placeform action for redirection to Datacash
95
  return (bool) $configData;
96
  }
97
 
98
+ public function hasFraudScreening()
99
+ {
100
+ $configData = $this->getConfigData('allow_fraud_screening');
101
+ if(is_null($configData) || $configData=='0'){
102
+ return false;
103
+ }
104
+ return (bool) $configData;
105
+ }
106
+
107
  /**
108
  *
109
  * Gets Extended policy from config.
138
  return $extendedPolicy;
139
  }
140
 
141
+ protected function _fraudPolicy()
142
+ {
143
+ $fraudPolicy = array(
144
+ 'customer' => array(
145
+ 'first_name' => $this->getConfigData('rsg_data_customer_first_name'),
146
+ 'surname' => $this->getConfigData('rsg_data_customer_surname'),
147
+ 'ip_address' => $this->getConfigData('rsg_data_customer_ip_address'),
148
+ 'email_address' => $this->getConfigData('rsg_data_customer_email_address'),
149
+ 'user_id' => $this->getConfigData('rsg_data_customer_user_id'),
150
+ 'telephone' => $this->getConfigData('rsg_data_customer_telephone'),
151
+ 'address_line1' => $this->getConfigData('rsg_data_customer_address_line1'),
152
+ 'address_line2' => $this->getConfigData('rsg_data_customer_address_line2'),
153
+ 'city' => $this->getConfigData('rsg_data_customer_city'),
154
+ 'state_province'=> $this->getConfigData('rsg_data_customer_state_province'),
155
+ 'country' => $this->getConfigData('rsg_data_customer_country'),
156
+ 'zip_code' => $this->getConfigData('rsg_data_customer_zip_code'),
157
+ ),
158
+ 'shipping' => array(
159
+ 'first_name' => $this->getConfigData('rsg_data_shipping_first_name'),
160
+ 'surname' => $this->getConfigData('rsg_data_shipping_surname'),
161
+ 'address_line1' => $this->getConfigData('rsg_data_shipping_address_line1'),
162
+ 'address_line2' => $this->getConfigData('rsg_data_shipping_address_line2'),
163
+ 'city' => $this->getConfigData('rsg_data_shipping_city'),
164
+ 'state_province'=> $this->getConfigData('rsg_data_shipping_state_province'),
165
+ 'country' => $this->getConfigData('rsg_data_shipping_country'),
166
+ 'zip_code' => $this->getConfigData('rsg_data_shipping_zip_code'),
167
+ ),
168
+ 'payment' => array(
169
+ 'payment_method'=> $this->getConfigData('rsg_data_payment_payment_method'),
170
+ ),
171
+ 'order' => array(
172
+ 'time_zone' => $this->getConfigData('rsg_data_order_time_zone'),
173
+ 'discount_value'=> $this->getConfigData('rsg_data_order_discount_value'),
174
+ ),
175
+ 'item' => array(
176
+ 'product_code' => $this->getConfigData('rsg_data_item_product_code'),
177
+ 'product_description'=> $this->getConfigData('rsg_data_item_product_description'),
178
+ 'product_category'=> $this->getConfigData('rsg_data_item_product_category'),
179
+ 'order_quantity'=> $this->getConfigData('rsg_data_item_order_quantity'),
180
+ 'unit_price' => $this->getConfigData('rsg_data_item_unit_price'),
181
+ ),
182
+ 'billing' => array(
183
+ 'name' => $this->getConfigData('rsg_data_billing_name'),
184
+ 'address_line1' => $this->getConfigData('rsg_data_billing_address_line1'),
185
+ 'address_line2' => $this->getConfigData('rsg_data_billing_address_line2'),
186
+ 'city' => $this->getConfigData('rsg_data_billing_city'),
187
+ 'state_province'=> $this->getConfigData('rsg_data_billing_state_province'),
188
+ 'country' => $this->getConfigData('rsg_data_billing_country'),
189
+ 'zip_code' => $this->getConfigData('rsg_data_billing_zip_code'),
190
+ ),
191
+ );
192
+ return $fraudPolicy;
193
+ }
194
+
195
  public function setApi($value)
196
  {
197
  $this->_api = $value;
278
  *
279
  * @param Mage_Sales_Model_Order_Payment $payment
280
  * @return bool
281
+ * @author Alistair Stead & Kristjan Heinaste
282
  */
283
  public function acceptPayment(Mage_Payment_Model_Info $payment)
284
  {
 
285
  parent::acceptPayment($payment);
286
+ return $this->_reviewPayment($payment, DataCash_Dpg_Model_Code::PAYMENT_REVIEW_ACCEPT);
 
287
  }
288
 
289
  /**
291
  *
292
  * @param Mage_Sales_Model_Order_Payment $payment
293
  * @return bool
294
+ * @author Alistair Stead & Kristjan Heinaste
295
  */
296
  public function denyPayment(Mage_Payment_Model_Info $payment)
297
  {
 
298
  parent::denyPayment($payment);
299
+ return $this->_reviewPayment($payment, DataCash_Dpg_Model_Code::PAYMENT_REVIEW_DENY);
 
300
  }
301
 
302
+ /**
303
+ * Generic payment review processor
304
+ *
305
+ * @author Kristjan Heinaste <kristjan@ontapgroup.com>
306
+ */
307
+ public function _reviewPayment(Mage_Payment_Model_Info $payment, $action)
308
+ {
309
+ //
310
+ // XXX: When denied we leave it as is - no DC API support
311
+ //
312
+ if ($action == DataCash_Dpg_Model_Code::PAYMENT_REVIEW_DENY) {
313
+ return true;
314
+ }
315
+
316
+ $this->_initApi();
317
+
318
+ $this->_mapRequestDataToApi($payment, null);
319
+
320
+ try {
321
+ $this->_api->callReview($action);
322
+ } catch (Exception $e) {
323
+ Mage::throwException($e->getMessage());
324
+ }
325
+ // Process the response
326
+ $response = $this->_api->getResponse();
327
+ if ($response->isSuccessful()) {
328
+ $responseMap = array(
329
+ 'cc_approval' => 'HistoricTxn/authcode',
330
+ 'cc_trans_id' => 'datacash_reference',
331
+ 'cc_status' => 'status',
332
+ 'cc_status_description' => 'reason',
333
+ );
334
+ foreach ($responseMap as $paymentKey => $responseKey) {
335
+ if ($value = $response->getData($responseKey)) {
336
+ $payment->setData($paymentKey, $value);
337
+ }
338
+ }
339
+ $responseTransactionInfoMap = array(
340
+ 'CardTxn' => 'CardTxn',
341
+ 'datacash_reference' => 'datacash_refrence',
342
+ 'mode' => 'mode',
343
+ 'reason' => 'reason',
344
+ 'status' => 'status',
345
+ 'time' => 'time',
346
+ 'authcode' => 'HistoricTxn/authcode',
347
+ );
348
+ foreach ($responseTransactionInfoMap as $paymentKey => $responseKey) {
349
+ if ($value = $response->getData($responseKey)) {
350
+ $payment->setTransactionAdditionalInfo($paymentKey, $value);
351
+ }
352
+ }
353
+
354
+ //
355
+ // XXX: This section depends on $action
356
+ // but because DC does not support deny action yet, we leave this as is.
357
+ //
358
+ $payment->setTransactionId($response->getDatacashReference())
359
+ ->setShouldCloseParentTransaction(true)
360
+ ->setIsTransactionClosed(true)
361
+ ->setIsTransactionApproved(true);
362
+ } else {
363
+ Mage::throwException($response->getReason());
364
+ }
365
+
366
+ return true;
367
+ }
368
+
369
  /**
370
  * Fetch transaction details info
371
  *
608
  }
609
  }
610
  if ($response->isFraud()) {
611
+ $payment->setIsTransactionPending(true);
612
+ $payment->setIsFraudDetected(true);
613
+ }
614
+ if ($response->isMarkedForReview()) {
615
+ $payment->setIsTransactionPending(true);
616
  }
617
  $datacashReferenceMap = array(
618
  'datacash_reference',
626
  }
627
  }
628
 
629
+ $session = $this->_getDataCashSession();
630
+ $saveToken = $session->getData($this->getCode().'_save_token');
631
+ if ($saveToken) {
632
+ Mage::getModel('dpg/tokencard')->tokenizeResponse($payment, $response);
633
+ }
634
  }
635
 
636
  protected function _getCentinelValidator($service)
645
 
646
  return $validator;
647
  }
648
+
649
+ /**
650
+ * Set the data cash session storage
651
+ *
652
+ * @param Varien_Object $value
653
+ */
654
+ public function setDataCashSession($value)
655
+ {
656
+ $this->_dataCashSession = $value;
657
+
658
+ return $this;
659
+ }
660
+
661
+ /**
662
+ * Get the DataCash session storage.
663
+ *
664
+ * @return Varien_Object
665
+ */
666
+ protected function _getDataCashSession()
667
+ {
668
+ if ($this->_dataCashSession === null) {
669
+ $this->_dataCashSession = Mage::getSingleton('checkout/session');
670
+ }
671
+ return $this->_dataCashSession;
672
+ }
673
  }
app/code/community/DataCash/Dpg/Model/Method/Api.php CHANGED
@@ -54,17 +54,47 @@ class DataCash_Dpg_Model_Method_Api extends DataCash_Dpg_Model_Method_Abstract
54
  protected $_canManageRecurringProfiles = true;
55
  protected $_canCancelInvoice = false;
56
 
 
 
 
 
 
 
 
57
  public function assignData($data)
58
  {
59
  parent::assignData($data);
60
  $info = $this->getInfoInstance();
61
  $info->setAdditionalData($data->getCcTransId());
62
  $info->setCcTransId($data->getCcTransId());
 
 
 
 
 
63
  return $this;
64
  }
65
-
66
- public function reviewPayment($payment)
 
67
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  }
69
 
70
  protected $_t3mRecommendation = null;
@@ -84,6 +114,10 @@ class DataCash_Dpg_Model_Method_Api extends DataCash_Dpg_Model_Method_Abstract
84
  $this->_mapRequestDataToApi($payment, $amount);
85
  $order = $payment->getOrder();
86
  try {
 
 
 
 
87
  $this->_api->callPre();
88
  $t3mResponse = $this->_api->getResponse()->t3MToMappedArray(array(
89
  't3m_score' => 'score',
@@ -95,11 +129,12 @@ class DataCash_Dpg_Model_Method_Api extends DataCash_Dpg_Model_Method_Abstract
95
 
96
  // Process the response
97
  $response = $this->_api->getResponse();
98
- if ($response->isSuccessful()) {
99
  // Map data to the payment
100
  $this->_mapResponseToPayment($response, $payment);
101
  } else {
102
- Mage::throwException($response->getReason());
 
103
  }
104
 
105
  if ($this->getConfig()->getIsAllowedT3m()) {
@@ -177,6 +212,10 @@ class DataCash_Dpg_Model_Method_Api extends DataCash_Dpg_Model_Method_Abstract
177
  throw new Exception('This card has not been authorized for this amount');
178
  } else {
179
  try {
 
 
 
 
180
  $this->_api->callAuth();
181
  } catch (Exception $e) {
182
  Mage::throwException($e->getMessage());
@@ -185,44 +224,16 @@ class DataCash_Dpg_Model_Method_Api extends DataCash_Dpg_Model_Method_Abstract
185
 
186
  // Process the response
187
  $response = $this->_api->getResponse();
188
- if ($response->isSuccessful()) {
189
  $this->_mapResponseToPayment($response, $payment);
190
  } else {
191
- Mage::throwException($response->getReason());
 
192
  }
193
 
194
  return $this;
195
  }
196
 
197
- /**
198
- * Attempt to accept a pending payment
199
- *
200
- * @param Mage_Sales_Model_Order_Payment $payment
201
- * @return bool
202
- */
203
- public function acceptPayment(Mage_Payment_Model_Info $payment)
204
- {
205
- $tid = $payment->getLastTransId();
206
- $inv;
207
- foreach ($payment->getOrder()->getInvoiceCollection() as $invoice) {
208
- if ($invoice->getTransactionId() == $tid) {
209
- $invoice->load($invoice->getId()); // to make sure all data will properly load (maybe not required)
210
- $inv = $invoice;
211
- break;
212
- }
213
- }
214
- if ($this->getConfig()->getIsAllowedT3m()) {
215
- $this->_t3mRecommendation = 'Release';
216
- }
217
- $this->_initApi();
218
- //$payment->capture($inv);
219
- $inv->capture();
220
- $inv->save();
221
- $payment->getOrder()->save();
222
- //$this->capture($payment, $inv->getBaseGrandTotal());
223
- parent::acceptPayment($payment, $payment->getGrandTotal());
224
- }
225
-
226
  /**
227
  * Overload the parent validation method
228
  *
@@ -238,8 +249,104 @@ class DataCash_Dpg_Model_Method_Api extends DataCash_Dpg_Model_Method_Abstract
238
  if (isset($_SERVER['MAGE_TEST'])) {
239
  return $this;
240
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
 
242
- parent::validate();
 
 
 
 
 
 
 
 
 
 
 
 
243
  return $this;
244
  }
245
 
@@ -333,6 +440,23 @@ class DataCash_Dpg_Model_Method_Api extends DataCash_Dpg_Model_Method_Abstract
333
  parent::_mapRequestDataToApi($payment, $amount);
334
  $order = $payment->getOrder();
335
  $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
336
  // Set the object properties required to make the API call
337
  $this->_api
338
  ->setCreditCardNumber($payment->getCcNumber())
@@ -343,7 +467,9 @@ class DataCash_Dpg_Model_Method_Api extends DataCash_Dpg_Model_Method_Abstract
343
  )
344
  )
345
  ->setCreditCardCvv2($payment->getCcCid())
346
- ->setMaestroSoloIssueNumber($payment->getCcSsIssue());
 
 
347
  // Add the additional SM card details
348
  if ($payment->getCcSsStartMonth() && $payment->getCcSsStartYear()) {
349
  $this->_api->setMaestroSoloIssueDate(
54
  protected $_canManageRecurringProfiles = true;
55
  protected $_canCancelInvoice = false;
56
 
57
+ public function getVerificationRegEx()
58
+ {
59
+ $verificationExpList = parent::getVerificationRegEx();
60
+ $verificationExpList['DIN'] = '/^[0-9]{3}$/'; //Diners Club
61
+ return $verificationExpList;
62
+ }
63
+
64
  public function assignData($data)
65
  {
66
  parent::assignData($data);
67
  $info = $this->getInfoInstance();
68
  $info->setAdditionalData($data->getCcTransId());
69
  $info->setCcTransId($data->getCcTransId());
70
+ $info->setData('additional_information', array(
71
+ 'tokencard' => $data->getCcTokencard(),
72
+ 'remember_card' => $data->getCcRememberCard() == "1",
73
+ ));
74
+
75
  return $this;
76
  }
77
+
78
+ // TODO: refactor to generic
79
+ public function getTxnData($txn_id)
80
  {
81
+ $this->_api = Mage::getModel('dpg/api_direct');
82
+
83
+ $this->_api->setMerchantId($this->_getApiMerchantId());
84
+ $this->_api->setMerchantPassword($this->_getApiPassword());
85
+
86
+ $this->_api->setIsSandboxed($this->getConfig()->isMethodSandboxed($this->getCode()));
87
+
88
+ $this->_api->queryTxn($txn_id);
89
+
90
+ $response = $this->_api->getResponse();
91
+
92
+ if ($response->isSuccessful()) {
93
+ return $response;
94
+ } else {
95
+ $message = Mage::helper('dpg')->getUserFriendlyStatus($response->getStatus());
96
+ throw new Mage_Payment_Model_Info_Exception($message ? $message : $response->getReason());
97
+ }
98
  }
99
 
100
  protected $_t3mRecommendation = null;
114
  $this->_mapRequestDataToApi($payment, $amount);
115
  $order = $payment->getOrder();
116
  try {
117
+ if ($this->hasFraudScreening()) {
118
+ $this->_api->setUseFraudScreening(true);
119
+ $this->_api->setFraudScreeningPolicy($this->_fraudPolicy());
120
+ }
121
  $this->_api->callPre();
122
  $t3mResponse = $this->_api->getResponse()->t3MToMappedArray(array(
123
  't3m_score' => 'score',
129
 
130
  // Process the response
131
  $response = $this->_api->getResponse();
132
+ if ($response->isSuccessful() || $response->isMarkedForReview() || $response->isFraud()) {
133
  // Map data to the payment
134
  $this->_mapResponseToPayment($response, $payment);
135
  } else {
136
+ $message = Mage::helper('dpg')->getUserFriendlyStatus($response->getStatus());
137
+ throw new Mage_Payment_Model_Info_Exception($message ? $message : $response->getReason());
138
  }
139
 
140
  if ($this->getConfig()->getIsAllowedT3m()) {
212
  throw new Exception('This card has not been authorized for this amount');
213
  } else {
214
  try {
215
+ if ($this->hasFraudScreening()) {
216
+ $this->_api->setUseFraudScreening(true);
217
+ $this->_api->setFraudScreeningPolicy($this->_fraudPolicy());
218
+ }
219
  $this->_api->callAuth();
220
  } catch (Exception $e) {
221
  Mage::throwException($e->getMessage());
224
 
225
  // Process the response
226
  $response = $this->_api->getResponse();
227
+ if ($response->isSuccessful() || $response->isMarkedForReview() || $response->isFraud()) {
228
  $this->_mapResponseToPayment($response, $payment);
229
  } else {
230
+ $message = Mage::helper('dpg')->getUserFriendlyStatus($response->getStatus());
231
+ throw new Mage_Payment_Model_Info_Exception($message ? $message : $response->getReason());
232
  }
233
 
234
  return $this;
235
  }
236
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
  /**
238
  * Overload the parent validation method
239
  *
249
  if (isset($_SERVER['MAGE_TEST'])) {
250
  return $this;
251
  }
252
+
253
+ // pass the validation when token is used
254
+ if ($this->getConfig()->getIsAllowedTokenizer($this->getCode())) {
255
+ $info = $this->getInfoInstance();
256
+ $additionalInfo = $info->getAdditionalInformation();
257
+ if (isset($additionalInfo['tokencard']) && $additionalInfo['tokencard'] != "0") {
258
+ return $this;
259
+ }
260
+ }
261
+
262
+ $info = $this->getInfoInstance();
263
+ $errorMsg = false;
264
+ $availableTypes = explode(',',$this->getConfigData('cctypes'));
265
+
266
+ $ccNumber = $info->getCcNumber();
267
+
268
+ // remove credit card number delimiters such as "-" and space
269
+ $ccNumber = preg_replace('/[\-\s]+/', '', $ccNumber);
270
+ $info->setCcNumber($ccNumber);
271
+
272
+ $ccType = '';
273
+
274
+ if (in_array($info->getCcType(), $availableTypes)){
275
+ if ($this->validateCcNum($ccNumber)
276
+ // Other credit card type number validation
277
+ || ($this->OtherCcType($info->getCcType()) && $this->validateCcNumOther($ccNumber))) {
278
+
279
+ $ccType = 'OT';
280
+ $ccTypeRegExpList = array(
281
+ //Solo, Switch or Maestro. International safe
282
+ /*
283
+ // Maestro / Solo
284
+ 'SS' => '/^((6759[0-9]{12})|(6334|6767[0-9]{12})|(6334|6767[0-9]{14,15})'
285
+ . '|(5018|5020|5038|6304|6759|6761|6763[0-9]{12,19})|(49[013][1356][0-9]{12})'
286
+ . '|(633[34][0-9]{12})|(633110[0-9]{10})|(564182[0-9]{10}))([0-9]{2,3})?$/',
287
+ */
288
+ // Solo only
289
+ 'SO' => '/(^(6334)[5-9](\d{11}$|\d{13,14}$))|(^(6767)(\d{12}$|\d{14,15}$))/',
290
+ 'SM' => '/(^(5[0678])\d{11,18}$)|(^(6[^05])\d{11,18}$)|(^(601)[^1]\d{9,16}$)|(^(6011)\d{9,11}$)'
291
+ . '|(^(6011)\d{13,16}$)|(^(65)\d{11,13}$)|(^(65)\d{15,18}$)'
292
+ . '|(^(49030)[2-9](\d{10}$|\d{12,13}$))|(^(49033)[5-9](\d{10}$|\d{12,13}$))'
293
+ . '|(^(49110)[1-2](\d{10}$|\d{12,13}$))|(^(49117)[4-9](\d{10}$|\d{12,13}$))'
294
+ . '|(^(49118)[0-2](\d{10}$|\d{12,13}$))|(^(4936)(\d{12}$|\d{14,15}$))/',
295
+ // Visa
296
+ 'VI' => '/^4[0-9]{12}([0-9]{3})?$/',
297
+ // Master Card
298
+ 'MC' => '/^5[1-5][0-9]{14}$/',
299
+ // American Express
300
+ 'AE' => '/^3[47][0-9]{13}$/',
301
+ // Discovery
302
+ 'DI' => '/^6011[0-9]{12}$/',
303
+ // JCB
304
+ 'JCB' => '/^(3[0-9]{15}|(2131|1800)[0-9]{11})$/',
305
+ 'DIN' => '/^3(?:0[0-5]|[68][0-9])[0-9]{11}$/', //Diners Club
306
+ );
307
+
308
+ foreach ($ccTypeRegExpList as $ccTypeMatch=>$ccTypeRegExp) {
309
+ if (preg_match($ccTypeRegExp, $ccNumber)) {
310
+ $ccType = $ccTypeMatch;
311
+ break;
312
+ }
313
+ }
314
+
315
+ if (!$this->OtherCcType($info->getCcType()) && $ccType!=$info->getCcType()) {
316
+ $errorMsg = Mage::helper('payment')->__('Credit card number mismatch with credit card type.');
317
+ }
318
+ }
319
+ else {
320
+ $errorMsg = Mage::helper('payment')->__('Invalid Credit Card Number');
321
+ }
322
+
323
+ }
324
+ else {
325
+ $errorMsg = Mage::helper('payment')->__('Credit card type is not allowed for this payment method.');
326
+ }
327
+
328
+ //validate credit card verification number
329
+ if ($errorMsg === false && $this->hasVerification()) {
330
+ $verifcationRegEx = $this->getVerificationRegEx();
331
+ $regExp = isset($verifcationRegEx[$info->getCcType()]) ? $verifcationRegEx[$info->getCcType()] : '';
332
+ if (!$info->getCcCid() || !$regExp || !preg_match($regExp ,$info->getCcCid())){
333
+ $errorMsg = Mage::helper('payment')->__('Please enter a valid credit card verification number.');
334
+ }
335
+ }
336
 
337
+ if ($ccType != 'SS' && !$this->_validateExpDate($info->getCcExpYear(), $info->getCcExpMonth())) {
338
+ $errorMsg = Mage::helper('payment')->__('Incorrect credit card expiration date.');
339
+ }
340
+
341
+ if($errorMsg){
342
+ Mage::throwException($errorMsg);
343
+ }
344
+
345
+ //This must be after all validation conditions
346
+ if ($this->getIsCentinelValidationEnabled()) {
347
+ $this->getCentinelValidator()->validate($this->getCentinelValidationData());
348
+ }
349
+
350
  return $this;
351
  }
352
 
440
  parent::_mapRequestDataToApi($payment, $amount);
441
  $order = $payment->getOrder();
442
  $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
443
+
444
+ // When using tokens, get the token object
445
+ $tokencard = null;
446
+ $additionalInfo = $payment->getMethodInstance()->getInfoInstance()->getData('additional_information');
447
+ $tokencardId = $additionalInfo['tokencard'];
448
+ if ($customer && $tokencardId && is_numeric($tokencardId)) {
449
+ $tokencard = Mage::getModel('dpg/tokencard')
450
+ ->getCollection()
451
+ ->addCustomerFilter($customer)
452
+ ->addIdFilter($tokencardId)
453
+ ->getFirstItem();
454
+ }
455
+
456
+ // Save the UI state to session for later use
457
+ $session = $this->_getDataCashSession();
458
+ $session->setData($this->_code . '_save_token', $additionalInfo['remember_card']);
459
+
460
  // Set the object properties required to make the API call
461
  $this->_api
462
  ->setCreditCardNumber($payment->getCcNumber())
467
  )
468
  )
469
  ->setCreditCardCvv2($payment->getCcCid())
470
+ ->setMaestroSoloIssueNumber($payment->getCcSsIssue())
471
+ ->setToken($tokencard);
472
+
473
  // Add the additional SM card details
474
  if ($payment->getCcSsStartMonth() && $payment->getCcSsStartYear()) {
475
  $this->_api->setMaestroSoloIssueDate(
app/code/community/DataCash/Dpg/Model/Method/Apiprereg.php CHANGED
@@ -53,6 +53,15 @@ class DataCash_Dpg_Model_Method_Apiprereg extends DataCash_Dpg_Model_Method_Abst
53
  protected $_canManageRecurringProfiles = true;
54
  protected $_canCancelInvoice = false;
55
 
 
 
 
 
 
 
 
 
 
56
  public function assignData($data)
57
  {
58
  parent::assignData($data);
53
  protected $_canManageRecurringProfiles = true;
54
  protected $_canCancelInvoice = false;
55
 
56
+ /**
57
+ * This forces the method to be disabled at all times.
58
+ * This payment method is DEPRICATED
59
+ * the code is here only for backward-availability
60
+ */
61
+ public function isAvailable($quote = null) {
62
+ return false;
63
+ }
64
+
65
  public function assignData($data)
66
  {
67
  parent::assignData($data);
app/code/community/DataCash/Dpg/Model/Method/Hcc.php CHANGED
@@ -81,7 +81,29 @@ class DataCash_Dpg_Model_Method_Hcc
81
  // Set if line items should be transmitted
82
  $this->_api->setIsLineItemsEnabled($this->getConfig()->isLineItemsEnabled($this->getCode()));
83
  }
84
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  /**
86
  * initSession
87
  * Initialise session with DataCash for HCC
@@ -96,13 +118,20 @@ class DataCash_Dpg_Model_Method_Hcc
96
  $returnUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).'checkout/hosted/complete/';
97
 
98
  $this->_initApi();
 
 
 
 
 
 
99
  // Set the object properties required to make the API call
100
  $this->_api->setOrderNumber($orderId)
101
- ->setAmount($quote->getBaseGrandTotal())
102
  ->setCurrency($quote->getBaseCurrencyCode())
103
  ->setReturnUrl($returnUrl)
104
  ->setExpiryUrl($returnUrl)
105
- ->setPageSetId($this->getConfigData('page_set_id'));
 
106
  // Make the API call
107
  try {
108
  $this->_api->setUpHccSession();
@@ -121,6 +150,7 @@ class DataCash_Dpg_Model_Method_Hcc
121
  );
122
  $session = $this->_getDataCashSession();
123
  $session->setData($this->_code . '_session', $datacashSession);
 
124
  } else {
125
  Mage::throwException($response->getReason());
126
  }
@@ -139,7 +169,12 @@ class DataCash_Dpg_Model_Method_Hcc
139
  parent::authorize($payment, $amount);
140
  $this->_initApi();
141
  $this->_mapRequestDataToApi($payment, $amount);
 
142
  try {
 
 
 
 
143
  if ($this->hasVerification() && $this->getIsCentinelValidationEnabled()) {
144
  //if both CCV verification and 3D secure check is turned on, we just have to authorize the previous calls
145
  $validator = $this->getCentinelValidator();
@@ -148,15 +183,16 @@ class DataCash_Dpg_Model_Method_Hcc
148
  $this->_api->callPre();
149
  }
150
  } catch (Exception $e) {
151
- Mage::throwException($e->getMessage());
152
  }
153
  // Process the response
154
  $response = $this->_api->getResponse();
155
- if ($response->isSuccessful()) {
156
  // Map data to the payment
157
  $this->_mapResponseToPayment($response, $payment);
158
  } else {
159
- Mage::throwException($response->getReason());
 
160
  }
161
 
162
  return $this;
@@ -177,18 +213,23 @@ class DataCash_Dpg_Model_Method_Hcc
177
  $authTransaction = $payment->getAuthorizationTransaction();
178
  $this->_initApi();
179
  $this->_mapRequestDataToApi($payment, $amount);
180
-
181
  // If the payment has already been authorized we need to only call fullfill
182
  if ($authTransaction && $payment->getAmountAuthorized() > 0 && $payment->getAmountAuthorized() >= $amount) {
183
  try {
184
  $this->_api->callFulfill();
185
  } catch (Exception $e) {
186
- Mage::throwException($e->getMessage());
187
  }
188
  } else if ($authTransaction && $payment->getAmountAuthorized() > 0 && $payment->getAmountAuthorized() < $amount) {
189
  throw new Exception('This card has not been authorized for this amount');
190
  } else {
191
  try {
 
 
 
 
 
192
  if ($this->hasVerification() && $this->getIsCentinelValidationEnabled()) {
193
  //if both CCV verification and 3D secure check is turned on, we just have to authorize the previous calls
194
  $validator = $this->getCentinelValidator();
@@ -197,16 +238,17 @@ class DataCash_Dpg_Model_Method_Hcc
197
  $this->_api->callAuth();
198
  }
199
  } catch (Exception $e) {
200
- Mage::throwException($e->getMessage());
201
  }
202
  }
203
 
204
  // Process the response
205
  $response = $this->_api->getResponse();
206
- if ($response->isSuccessful()) {
207
  $this->_mapResponseToPayment($response, $payment);
208
  } else {
209
- Mage::throwException($response->getReason());
 
210
  }
211
 
212
  return $this;
@@ -228,6 +270,11 @@ class DataCash_Dpg_Model_Method_Hcc
228
  ->setIsPlaceOrder($this->_isPlaceOrder())
229
  ->setIsUseCcv($this->hasVerification());
230
 
 
 
 
 
 
231
  if ($this->hasAdvancedVerification()) {
232
  $validator->setIsUseExtendedCv2(true)
233
  ->setCv2ExtendedPolicy($this->_extendedPolicy());
81
  // Set if line items should be transmitted
82
  $this->_api->setIsLineItemsEnabled($this->getConfig()->isLineItemsEnabled($this->getCode()));
83
  }
84
+
85
+ // TODO: refactor to generic
86
+ public function getTxnData($txn_id)
87
+ {
88
+ $this->_api = Mage::getModel('dpg/api_hcc');
89
+
90
+ $this->_api->setMerchantId($this->_getApiMerchantId());
91
+ $this->_api->setMerchantPassword($this->_getApiPassword());
92
+
93
+ $this->_api->setIsSandboxed($this->getConfig()->isMethodSandboxed($this->getCode()));
94
+
95
+ $this->_api->queryTxn($txn_id);
96
+
97
+ $response = $this->_api->getResponse();
98
+
99
+ if ($response->isSuccessful()) {
100
+ return $response;
101
+ } else {
102
+ $message = Mage::helper('dpg')->getUserFriendlyStatus($response->getStatus());
103
+ throw new Mage_Payment_Model_Info_Exception($message ? $message : $response->getReason());
104
+ }
105
+ }
106
+
107
  /**
108
  * initSession
109
  * Initialise session with DataCash for HCC
118
  $returnUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).'checkout/hosted/complete/';
119
 
120
  $this->_initApi();
121
+
122
+ $amount = $quote->getBaseGrandTotal();
123
+ if ($amount == 0) {
124
+ $amount = 1;
125
+ }
126
+
127
  // Set the object properties required to make the API call
128
  $this->_api->setOrderNumber($orderId)
129
+ ->setAmount($amount)
130
  ->setCurrency($quote->getBaseCurrencyCode())
131
  ->setReturnUrl($returnUrl)
132
  ->setExpiryUrl($returnUrl)
133
+ ->setPageSetId($this->getConfigData('page_set_id'))
134
+ ->setToken($this->getToken());
135
  // Make the API call
136
  try {
137
  $this->_api->setUpHccSession();
150
  );
151
  $session = $this->_getDataCashSession();
152
  $session->setData($this->_code . '_session', $datacashSession);
153
+ $session->setData($this->_code . '_save_token', $this->getSaveToken());
154
  } else {
155
  Mage::throwException($response->getReason());
156
  }
169
  parent::authorize($payment, $amount);
170
  $this->_initApi();
171
  $this->_mapRequestDataToApi($payment, $amount);
172
+
173
  try {
174
+ if ($this->hasFraudScreening()) {
175
+ $this->_api->setUseFraudScreening(true);
176
+ $this->_api->setFraudScreeningPolicy($this->_fraudPolicy());
177
+ }
178
  if ($this->hasVerification() && $this->getIsCentinelValidationEnabled()) {
179
  //if both CCV verification and 3D secure check is turned on, we just have to authorize the previous calls
180
  $validator = $this->getCentinelValidator();
183
  $this->_api->callPre();
184
  }
185
  } catch (Exception $e) {
186
+ throw new Mage_Payment_Model_Info_Exception($e->getMessage());
187
  }
188
  // Process the response
189
  $response = $this->_api->getResponse();
190
+ if ($response->isSuccessful() || $response->isMarkedForReview() || $response->isFraud()) {
191
  // Map data to the payment
192
  $this->_mapResponseToPayment($response, $payment);
193
  } else {
194
+ $message = Mage::helper('dpg')->getUserFriendlyStatus($response->getStatus());
195
+ throw new Mage_Payment_Model_Info_Exception($message ? $message : $response->getReason());
196
  }
197
 
198
  return $this;
213
  $authTransaction = $payment->getAuthorizationTransaction();
214
  $this->_initApi();
215
  $this->_mapRequestDataToApi($payment, $amount);
216
+
217
  // If the payment has already been authorized we need to only call fullfill
218
  if ($authTransaction && $payment->getAmountAuthorized() > 0 && $payment->getAmountAuthorized() >= $amount) {
219
  try {
220
  $this->_api->callFulfill();
221
  } catch (Exception $e) {
222
+ throw new Mage_Payment_Model_Info_Exception($e->getMessage());
223
  }
224
  } else if ($authTransaction && $payment->getAmountAuthorized() > 0 && $payment->getAmountAuthorized() < $amount) {
225
  throw new Exception('This card has not been authorized for this amount');
226
  } else {
227
  try {
228
+ if ($this->hasFraudScreening()) {
229
+ $this->_api->setUseFraudScreening(true);
230
+ $this->_api->setFraudScreeningPolicy($this->_fraudPolicy());
231
+ }
232
+
233
  if ($this->hasVerification() && $this->getIsCentinelValidationEnabled()) {
234
  //if both CCV verification and 3D secure check is turned on, we just have to authorize the previous calls
235
  $validator = $this->getCentinelValidator();
238
  $this->_api->callAuth();
239
  }
240
  } catch (Exception $e) {
241
+ throw new Mage_Payment_Model_Info_Exception($e->getMessage());
242
  }
243
  }
244
 
245
  // Process the response
246
  $response = $this->_api->getResponse();
247
+ if ($response->isSuccessful() || $response->isMarkedForReview() || $response->isFraud()) {
248
  $this->_mapResponseToPayment($response, $payment);
249
  } else {
250
+ $message = Mage::helper('dpg')->getUserFriendlyStatus($response->getStatus());
251
+ throw new Mage_Payment_Model_Info_Exception($message ? $message : $response->getReason());
252
  }
253
 
254
  return $this;
270
  ->setIsPlaceOrder($this->_isPlaceOrder())
271
  ->setIsUseCcv($this->hasVerification());
272
 
273
+ if ($this->hasFraudScreening()) {
274
+ $validator->setUseFraudScreening(true);
275
+ $validator->setFraudScreeningPolicy($this->_fraudPolicy());
276
+ }
277
+
278
  if ($this->hasAdvancedVerification()) {
279
  $validator->setIsUseExtendedCv2(true)
280
  ->setCv2ExtendedPolicy($this->_extendedPolicy());
app/code/community/DataCash/Dpg/Model/Method/Hosted/Abstract.php CHANGED
@@ -52,31 +52,6 @@ abstract class DataCash_Dpg_Model_Method_Hosted_Abstract
52
  return $this;
53
  }
54
 
55
- /**
56
- * Set the data cash session storage
57
- *
58
- * @param Varien_Object $value
59
- */
60
- public function setDataCashSession($value)
61
- {
62
- $this->_dataCashSession = $value;
63
-
64
- return $this;
65
- }
66
-
67
- /**
68
- * Get the DataCash session storage.
69
- *
70
- * @return Varien_Object
71
- */
72
- protected function _getDataCashSession()
73
- {
74
- if ($this->_dataCashSession === null) {
75
- $this->_dataCashSession = Mage::getSingleton('checkout/session');
76
- }
77
- return $this->_dataCashSession;
78
- }
79
-
80
  /**
81
  * Map data supplied by the request to the API
82
  *
52
  return $this;
53
  }
54
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  /**
56
  * Map data supplied by the request to the API
57
  *
app/code/community/DataCash/Dpg/Model/Method/Hps.php CHANGED
@@ -57,6 +57,15 @@ class DataCash_Dpg_Model_Method_Hps
57
  protected $_canManageRecurringProfiles = false;
58
  protected $_canCancelInvoice = false;
59
 
 
 
 
 
 
 
 
 
 
60
  /**
61
  * Initialize the data required by the API
62
  * @return void
57
  protected $_canManageRecurringProfiles = false;
58
  protected $_canCancelInvoice = false;
59
 
60
+ /**
61
+ * This forces the method to be disabled at all times.
62
+ * This payment method is DEPRICATED
63
+ * the code is here only for backward-availability
64
+ */
65
+ public function isAvailable($quote = null) {
66
+ return false;
67
+ }
68
+
69
  /**
70
  * Initialize the data required by the API
71
  * @return void
app/code/community/DataCash/Dpg/Model/Resource/Setup.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class DataCash_Dpg_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup
4
+ {
5
+
6
+ }
app/code/community/DataCash/Dpg/Model/Resource/Tokencard.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class DataCash_Dpg_Model_Resource_Tokencard extends Mage_Core_Model_Resource_Db_Abstract
3
+ {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('dpg/tokencard', 'id');
7
+ }
8
+ }
app/code/community/DataCash/Dpg/Model/Resource/Tokencard/Collection.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class DataCash_Dpg_Model_Resource_Tokencard_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract {
3
+
4
+ protected function _construct()
5
+ {
6
+ $this->_init('dpg/tokencard');
7
+ }
8
+
9
+ public function addCustomerFilter($customer) {
10
+ if ($customer instanceof Mage_Customer_Model_Customer) {
11
+ $this->addFieldToFilter('customer_id', $customer->getId());
12
+ } elseif (is_numeric($customer)) {
13
+ $this->addFieldToFilter('customer_id', $customer);
14
+ } elseif (is_array($customer)) {
15
+ $this->addFieldToFilter('customer_id', $customer);
16
+ }
17
+ return $this;
18
+ }
19
+
20
+ public function addMethodFilter($method)
21
+ {
22
+ $this->addFieldToFilter('method', $method);
23
+ return $this;
24
+ }
25
+
26
+ public function addIdFilter($tokencardId)
27
+ {
28
+ $this->addFieldToFilter('id', $tokencardId);
29
+ return $this;
30
+ }
31
+ }
app/code/community/DataCash/Dpg/Model/Service/Abstract.php CHANGED
@@ -142,6 +142,9 @@ abstract class DataCash_Dpg_Model_Service_Abstract extends Mage_Centinel_Model_S
142
  )
143
  );
144
 
 
 
 
145
  return $this->_api;
146
  }
147
 
142
  )
143
  );
144
 
145
+ $this->_api->setUseFraudScreening($this->getUseFraudScreening());
146
+ $this->_api->setFraudScreeningPolicy($this->getFraudScreeningPolicy());
147
+
148
  return $this->_api;
149
  }
150
 
app/code/community/DataCash/Dpg/Model/Source/GatewayMode.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * DataCash
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@datacash.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade this module to newer
18
+ * versions in the future. If you wish to customize this module for your
19
+ * needs please refer to http://testserver.datacash.com/software/download.cgi
20
+ * for more information.
21
+ *
22
+ * @author Kristjan Heinaste <kristjan@ontapgroup.com>
23
+ * @package DataCash
24
+ **/
25
+
26
+ class DataCash_Dpg_Model_Source_GatewayMode
27
+ {
28
+ /**
29
+ * @return array
30
+ * @author Kristjan Heinaste <kristjan@ontapgroup.com>
31
+ **/
32
+ public function toOptionArray()
33
+ {
34
+ $options = array(
35
+ array('value' => 0,'label' => 'Live'),
36
+ array('value' => 1,'label' => 'Test'),
37
+ array('value' => 2,'label' => 'Accreditation'),
38
+ );
39
+ return $options;
40
+ }
41
+ }
app/code/community/DataCash/Dpg/Model/Source/RsgServiceTypes.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * DataCash
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@datacash.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade this module to newer
18
+ * versions in the future. If you wish to customize this module for your
19
+ * needs please refer to http://testserver.datacash.com/software/download.cgi
20
+ * for more information.
21
+ *
22
+ * @author Kristjan Heinaste <kristjan@ontapgroup.com>
23
+ * @package DataCash
24
+ **/
25
+
26
+ class DataCash_Dpg_Model_Source_RsgServiceTypes
27
+ {
28
+ /**
29
+ * Return a list of available options for 3DS behaviours
30
+ *
31
+ * @return array
32
+ * @author Kristjan Heinaste <kristjan@ontapgroup.com>
33
+ **/
34
+ public function toOptionArray()
35
+ {
36
+ $options = array(array('value' => 1,
37
+ 'label' => 'Pre-Auth Fraud Checking'),
38
+ array('value' => 2,
39
+ 'label' => 'Post-Auth Fraud Checking')
40
+ );
41
+
42
+
43
+ return $options;
44
+ }
45
+ }
app/code/community/DataCash/Dpg/Model/Tokencard.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class DataCash_Dpg_Model_Tokencard extends Mage_Core_Model_Abstract
3
+ {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('dpg/tokencard');
7
+ }
8
+
9
+ public function getCardDisplay()
10
+ {
11
+ return "{$this->getPan()} {$this->getScheme()}";
12
+ }
13
+
14
+ public function tokenizeResponse(Mage_Sales_Model_Order_Payment $payment, DataCash_Dpg_Model_Datacash_Response $response)
15
+ {
16
+ $customer = $payment->getOrder()->getCustomer();
17
+ if (!$customer || !$customer->getId()) {
18
+ return;
19
+ }
20
+
21
+ $txn_id = $response->getData("datacash_reference");
22
+ $method = $payment->getMethodInstance();
23
+
24
+ $txnData = $method->getTxnData($txn_id);
25
+
26
+ $tokenMap = array(
27
+ 'Card/expirydate' => 'expiry_date',
28
+ 'Card/pan' => 'pan',
29
+ 'Card/scheme' => 'scheme',
30
+ 'Card/token' => 'token',
31
+ 'Card/issuer' => 'issuer',
32
+ 'Card/country' => 'country',
33
+ 'Card/card_category' => 'card_category'
34
+ );
35
+
36
+ $this->setId(null);
37
+ $this->setCustomerId($customer->getId());
38
+ $this->setMethod($method->getCode());
39
+
40
+ foreach($tokenMap as $responseKey => $modelKey) {
41
+ $this->setData($modelKey, $txnData->getData('QueryTxnResult/'.$responseKey));
42
+ }
43
+
44
+ $this->save();
45
+ }
46
+ }
app/code/community/DataCash/Dpg/etc/config.xml CHANGED
@@ -2,10 +2,21 @@
2
  <config>
3
  <modules>
4
  <DataCash_Dpg>
5
- <version>1.0.1</version>
6
  </DataCash_Dpg>
7
  </modules>
8
  <global>
 
 
 
 
 
 
 
 
 
 
 
9
  <events>
10
  <datacash_dpg_t3m_callback>
11
  <observers>
@@ -25,12 +36,20 @@
25
  </Datacash_dpg_after_order_submit>
26
  </observers>
27
  </checkout_submit_all_after>
28
-
29
  </events>
30
  <models>
31
  <dpg>
32
  <class>DataCash_Dpg_Model</class>
 
33
  </dpg>
 
 
 
 
 
 
 
 
34
  </models>
35
  <blocks>
36
  <dpg>
@@ -46,22 +65,8 @@
46
  <datacash_dpg_setup>
47
  <setup>
48
  <module>DataCash_Dpg</module>
49
- <class>DataCash_Dpg_Model_Entity_Setup</class>
50
- <connection>
51
- <use>core_setup</use>
52
- </connection>
53
  </setup>
54
  </datacash_dpg_setup>
55
- <dpg_write>
56
- <connection>
57
- <use>core_write</use>
58
- </connection>
59
- </dpg_write>
60
- <dpg_read>
61
- <connection>
62
- <use>core_read</use>
63
- </connection>
64
- </dpg_read>
65
  </resources>
66
  <datacash>
67
  <transaction>
@@ -133,6 +138,7 @@
133
  <title>DataCash :: Hosted Card Capture</title>
134
  <testing_endpoint>https://testserver.datacash.com/Transaction</testing_endpoint>
135
  <live_endpoint>https://mars.transaction.datacash.com/Transaction</live_endpoint>
 
136
  <active>0</active>
137
  <cctypes>AE,VI,MC,SM</cctypes>
138
  <order_status>pending</order_status>
@@ -140,23 +146,50 @@
140
  <model>dpg/method_hcc</model>
141
  <debug>0</debug>
142
  <sandbox>0</sandbox>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  </datacash_hcc>
144
- <datacash_hps>
145
- <title>DataCash :: Hosted Payment Service</title>
146
- <testing_endpoint>https://testserver.datacash.com/Transaction</testing_endpoint>
147
- <live_endpoint>https://mars.transaction.datacash.com/Transaction</live_endpoint>
148
- <active>0</active>
149
- <cctypes>AE,VI,MC,SM</cctypes>
150
- <order_status>pending</order_status>
151
- <payment_action>auth</payment_action>
152
- <model>dpg/method_hps</model>
153
- <debug>0</debug>
154
- <sandbox>0</sandbox>
155
- </datacash_hps>
156
  <datacash_api>
157
  <title>DataCash :: API</title>
158
  <testing_endpoint>https://testserver.datacash.com/Transaction</testing_endpoint>
159
  <live_endpoint>https://mars.transaction.datacash.com/Transaction</live_endpoint>
 
160
  <active>0</active>
161
  <cctypes>AE,VI,MC,SM</cctypes>
162
  <order_status>pending</order_status>
@@ -165,21 +198,45 @@
165
  <line_items_enabled>0</line_items_enabled>
166
  <debug>0</debug>
167
  <sandbox>0</sandbox>
168
- <t3m_use_ssl_callback>1</t3m_use_ssl_callback>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  </datacash_api>
170
- <datacash_apiprereg>
171
- <title>DataCash :: API (with Pre-Registered Cards)</title>
172
- <testing_endpoint>https://testserver.datacash.com/Transaction</testing_endpoint>
173
- <live_endpoint>https://mars.transaction.datacash.com/Transaction</live_endpoint>
174
- <active>0</active>
175
- <cctypes>AE,VI,MC,SM</cctypes>
176
- <order_status>pending</order_status>
177
- <payment_action>auth</payment_action>
178
- <model>dpg/method_apiprereg</model>
179
- <line_items_enabled>0</line_items_enabled>
180
- <debug>0</debug>
181
- <sandbox>0</sandbox>
182
- </datacash_apiprereg>
183
  </payment>
184
  </default>
185
  </config>
2
  <config>
3
  <modules>
4
  <DataCash_Dpg>
5
+ <version>1.2.1</version>
6
  </DataCash_Dpg>
7
  </modules>
8
  <global>
9
+ <payment>
10
+ <cc>
11
+ <types>
12
+ <DIN>
13
+ <code>DIN</code>
14
+ <name>Diners Club</name>
15
+ <order>55</order>
16
+ </DIN>
17
+ </types>
18
+ </cc>
19
+ </payment>
20
  <events>
21
  <datacash_dpg_t3m_callback>
22
  <observers>
36
  </Datacash_dpg_after_order_submit>
37
  </observers>
38
  </checkout_submit_all_after>
 
39
  </events>
40
  <models>
41
  <dpg>
42
  <class>DataCash_Dpg_Model</class>
43
+ <resourceModel>dpg_resource</resourceModel>
44
  </dpg>
45
+ <dpg_resource>
46
+ <class>DataCash_Dpg_Model_Resource</class>
47
+ <entities>
48
+ <tokencard>
49
+ <table>dpg_tokencard</table>
50
+ </tokencard>
51
+ </entities>
52
+ </dpg_resource>
53
  </models>
54
  <blocks>
55
  <dpg>
65
  <datacash_dpg_setup>
66
  <setup>
67
  <module>DataCash_Dpg</module>
 
 
 
 
68
  </setup>
69
  </datacash_dpg_setup>
 
 
 
 
 
 
 
 
 
 
70
  </resources>
71
  <datacash>
72
  <transaction>
138
  <title>DataCash :: Hosted Card Capture</title>
139
  <testing_endpoint>https://testserver.datacash.com/Transaction</testing_endpoint>
140
  <live_endpoint>https://mars.transaction.datacash.com/Transaction</live_endpoint>
141
+ <accreditation_endpoint>https://accreditation.datacash.com/Transaction/cnp_a</accreditation_endpoint>
142
  <active>0</active>
143
  <cctypes>AE,VI,MC,SM</cctypes>
144
  <order_status>pending</order_status>
146
  <model>dpg/method_hcc</model>
147
  <debug>0</debug>
148
  <sandbox>0</sandbox>
149
+ <allow_fraud_screening>0</allow_fraud_screening>
150
+ <rsg_service_mode>1</rsg_service_mode>
151
+ <rsg_data_customer_first_name>1</rsg_data_customer_first_name>
152
+ <rsg_data_customer_surname>1</rsg_data_customer_surname>
153
+ <rsg_data_customer_ip_address>1</rsg_data_customer_ip_address>
154
+ <rsg_data_customer_email_address>1</rsg_data_customer_email_address>
155
+ <rsg_data_customer_user_id>1</rsg_data_customer_user_id>
156
+ <rsg_data_customer_telephone>1</rsg_data_customer_telephone>
157
+ <rsg_data_customer_address_line1>1</rsg_data_customer_address_line1>
158
+ <rsg_data_customer_address_line2>1</rsg_data_customer_address_line2>
159
+ <rsg_data_customer_city>1</rsg_data_customer_city>
160
+ <rsg_data_customer_state_province>1</rsg_data_customer_state_province>
161
+ <rsg_data_customer_country>1</rsg_data_customer_country>
162
+ <rsg_data_customer_zip_code>1</rsg_data_customer_zip_code>
163
+ <rsg_data_shipping_first_name>1</rsg_data_shipping_first_name>
164
+ <rsg_data_shipping_surname>1</rsg_data_shipping_surname>
165
+ <rsg_data_shipping_address_line1>1</rsg_data_shipping_address_line1>
166
+ <rsg_data_shipping_address_line2>1</rsg_data_shipping_address_line2>
167
+ <rsg_data_shipping_city>1</rsg_data_shipping_city>
168
+ <rsg_data_shipping_state_province>1</rsg_data_shipping_state_province>
169
+ <rsg_data_shipping_country>1</rsg_data_shipping_country>
170
+ <rsg_data_shipping_zip_code>1</rsg_data_shipping_zip_code>
171
+ <rsg_data_shipping_delivery_method>1</rsg_data_shipping_delivery_method>
172
+ <rsg_data_order_time_zone>1</rsg_data_order_time_zone>
173
+ <rsg_data_order_discount_value>1</rsg_data_order_discount_value>
174
+ <rsg_data_item_product_code>1</rsg_data_item_product_code>
175
+ <rsg_data_item_product_description>1</rsg_data_item_product_description>
176
+ <rsg_data_item_product_category>1</rsg_data_item_product_category>
177
+ <rsg_data_item_order_quantity>1</rsg_data_item_order_quantity>
178
+ <rsg_data_item_unit_price>1</rsg_data_item_unit_price>
179
+ <rsg_data_billing_heading>1</rsg_data_billing_heading>
180
+ <rsg_data_billing_name>1</rsg_data_billing_name>
181
+ <rsg_data_billing_address_line1>1</rsg_data_billing_address_line1>
182
+ <rsg_data_billing_address_line2>1</rsg_data_billing_address_line2>
183
+ <rsg_data_billing_city>1</rsg_data_billing_city>
184
+ <rsg_data_billing_state_province>1</rsg_data_billing_state_province>
185
+ <rsg_data_billing_country>1</rsg_data_billing_country>
186
+ <rsg_data_billing_zip_code>1</rsg_data_billing_zip_code>
187
  </datacash_hcc>
 
 
 
 
 
 
 
 
 
 
 
 
188
  <datacash_api>
189
  <title>DataCash :: API</title>
190
  <testing_endpoint>https://testserver.datacash.com/Transaction</testing_endpoint>
191
  <live_endpoint>https://mars.transaction.datacash.com/Transaction</live_endpoint>
192
+ <accreditation_endpoint>https://accreditation.datacash.com/Transaction/cnp_a</accreditation_endpoint>
193
  <active>0</active>
194
  <cctypes>AE,VI,MC,SM</cctypes>
195
  <order_status>pending</order_status>
198
  <line_items_enabled>0</line_items_enabled>
199
  <debug>0</debug>
200
  <sandbox>0</sandbox>
201
+ <allow_fraud_screening>0</allow_fraud_screening>
202
+ <rsg_service_mode>1</rsg_service_mode>
203
+ <rsg_data_customer_first_name>1</rsg_data_customer_first_name>
204
+ <rsg_data_customer_surname>1</rsg_data_customer_surname>
205
+ <rsg_data_customer_ip_address>1</rsg_data_customer_ip_address>
206
+ <rsg_data_customer_email_address>1</rsg_data_customer_email_address>
207
+ <rsg_data_customer_user_id>1</rsg_data_customer_user_id>
208
+ <rsg_data_customer_telephone>1</rsg_data_customer_telephone>
209
+ <rsg_data_customer_address_line1>1</rsg_data_customer_address_line1>
210
+ <rsg_data_customer_address_line2>1</rsg_data_customer_address_line2>
211
+ <rsg_data_customer_city>1</rsg_data_customer_city>
212
+ <rsg_data_customer_state_province>1</rsg_data_customer_state_province>
213
+ <rsg_data_customer_country>1</rsg_data_customer_country>
214
+ <rsg_data_customer_zip_code>1</rsg_data_customer_zip_code>
215
+ <rsg_data_shipping_first_name>1</rsg_data_shipping_first_name>
216
+ <rsg_data_shipping_surname>1</rsg_data_shipping_surname>
217
+ <rsg_data_shipping_address_line1>1</rsg_data_shipping_address_line1>
218
+ <rsg_data_shipping_address_line2>1</rsg_data_shipping_address_line2>
219
+ <rsg_data_shipping_city>1</rsg_data_shipping_city>
220
+ <rsg_data_shipping_state_province>1</rsg_data_shipping_state_province>
221
+ <rsg_data_shipping_country>1</rsg_data_shipping_country>
222
+ <rsg_data_shipping_zip_code>1</rsg_data_shipping_zip_code>
223
+ <rsg_data_shipping_delivery_method>1</rsg_data_shipping_delivery_method>
224
+ <rsg_data_order_time_zone>1</rsg_data_order_time_zone>
225
+ <rsg_data_order_discount_value>1</rsg_data_order_discount_value>
226
+ <rsg_data_item_product_code>1</rsg_data_item_product_code>
227
+ <rsg_data_item_product_description>1</rsg_data_item_product_description>
228
+ <rsg_data_item_product_category>1</rsg_data_item_product_category>
229
+ <rsg_data_item_order_quantity>1</rsg_data_item_order_quantity>
230
+ <rsg_data_item_unit_price>1</rsg_data_item_unit_price>
231
+ <rsg_data_billing_heading>1</rsg_data_billing_heading>
232
+ <rsg_data_billing_name>1</rsg_data_billing_name>
233
+ <rsg_data_billing_address_line1>1</rsg_data_billing_address_line1>
234
+ <rsg_data_billing_address_line2>1</rsg_data_billing_address_line2>
235
+ <rsg_data_billing_city>1</rsg_data_billing_city>
236
+ <rsg_data_billing_state_province>1</rsg_data_billing_state_province>
237
+ <rsg_data_billing_country>1</rsg_data_billing_country>
238
+ <rsg_data_billing_zip_code>1</rsg_data_billing_zip_code>
239
  </datacash_api>
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  </payment>
241
  </default>
242
  </config>
app/code/community/DataCash/Dpg/etc/system.xml CHANGED
@@ -10,7 +10,8 @@
10
  <show_in_website>1</show_in_website>
11
  <show_in_store>1</show_in_store>
12
  </datacash_hint>
13
- <datacash_hps translate="label,comment" module="dpg">
 
14
  <label>DataCash :: Hosted Payment Service</label>
15
  <frontend_type>text</frontend_type>
16
  <sort_order>1000</sort_order>
@@ -141,12 +142,12 @@
141
  <show_in_store>0</show_in_store>
142
  </debug>
143
  <sandbox translate="label">
144
- <label>Test Mode</label>
145
  <comment><![CDATA[
146
- Use the DataCash test server.
147
- ]]></comment>
148
  <frontend_type>select</frontend_type>
149
- <source_model>adminhtml/system_config_source_yesno</source_model>
150
  <sort_order>110</sort_order>
151
  <show_in_default>1</show_in_default>
152
  <show_in_website>1</show_in_website>
@@ -412,7 +413,7 @@
412
  <show_in_store>1</show_in_store>
413
  </use3DSecure>
414
  </fields>
415
- </datacash_hps>
416
  <datacash_hcc translate="label,comment" module="dpg">
417
  <label>DataCash :: Hosted Card Capture</label>
418
  <frontend_type>text</frontend_type>
@@ -531,6 +532,18 @@
531
  <show_in_website>1</show_in_website>
532
  <show_in_store>1</show_in_store>
533
  </page_set_id>
 
 
 
 
 
 
 
 
 
 
 
 
534
  <debug translate="label">
535
  <label>Debug</label>
536
  <comment><![CDATA[
@@ -544,17 +557,17 @@
544
  <show_in_store>1</show_in_store>
545
  </debug>
546
  <sandbox translate="label">
547
- <label>Test Mode</label>
548
  <comment><![CDATA[
549
- Use the DataCash test server.
550
- ]]></comment>
551
  <frontend_type>select</frontend_type>
552
- <source_model>adminhtml/system_config_source_yesno</source_model>
553
  <sort_order>110</sort_order>
554
  <show_in_default>1</show_in_default>
555
  <show_in_website>1</show_in_website>
556
  <show_in_store>0</show_in_store>
557
- </sandbox>
558
  <heading_card_settings translate="label">
559
  <label>Credit Card Settings</label>
560
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
@@ -563,15 +576,6 @@
563
  <show_in_website>1</show_in_website>
564
  <show_in_store>1</show_in_store>
565
  </heading_card_settings>
566
- <useccv translate="label">
567
- <label>Request CV2 Card Security Code</label>
568
- <frontend_type>select</frontend_type>
569
- <source_model>adminhtml/system_config_source_yesno</source_model>
570
- <sort_order>140</sort_order>
571
- <show_in_default>1</show_in_default>
572
- <show_in_website>1</show_in_website>
573
- <show_in_store>0</show_in_store>
574
- </useccv>
575
  <useccv_advanced translate="label">
576
  <label>Use Extended CV2 Policy</label>
577
  <frontend_type>select</frontend_type>
@@ -580,9 +584,6 @@
580
  <show_in_default>1</show_in_default>
581
  <show_in_website>1</show_in_website>
582
  <show_in_store>0</show_in_store>
583
- <depends>
584
- <useccv>1</useccv>
585
- </depends>
586
  </useccv_advanced>
587
  <heading_extpol_cv2policy translate="label">
588
  <label>Extended Policy - CV2</label>
@@ -894,535 +895,1582 @@
894
  <centinel>1</centinel>
895
  </depends>
896
  </threedsecure_behaviour_187>
897
- </fields>
898
- </datacash_hcc>
899
- <datacash_api translate="label,comment" module="dpg">
900
- <label>DataCash :: API</label>
901
- <frontend_type>text</frontend_type>
902
- <sort_order>3000</sort_order>
903
- <show_in_default>1</show_in_default>
904
- <show_in_website>1</show_in_website>
905
- <show_in_store>1</show_in_store>
906
- <fields>
907
- <active translate="label">
908
- <label>Enabled</label>
909
- <frontend_type>select</frontend_type>
910
- <source_model>adminhtml/system_config_source_yesno</source_model>
911
- <sort_order>0</sort_order>
912
- <show_in_default>1</show_in_default>
913
- <show_in_website>1</show_in_website>
914
- <show_in_store>1</show_in_store>
915
- </active>
916
- <title translate="label">
917
- <label>Title</label>
918
- <frontend_type>text</frontend_type>
919
- <sort_order>10</sort_order>
920
- <show_in_default>1</show_in_default>
921
- <show_in_website>1</show_in_website>
922
- <show_in_store>1</show_in_store>
923
- </title>
924
- <order_status translate="label">
925
- <label>New Order Status</label>
926
- <frontend_type>select</frontend_type>
927
- <source_model>adminhtml/system_config_source_order_status</source_model>
928
- <sort_order>20</sort_order>
929
  <show_in_default>1</show_in_default>
930
  <show_in_website>1</show_in_website>
931
- <show_in_store>1</show_in_store>
932
- </order_status>
933
- <payment_action>
934
- <label>Payment Action</label>
935
  <frontend_type>select</frontend_type>
936
- <source_model>dpg/source_authtypes</source_model>
937
- <sort_order>30</sort_order>
938
  <show_in_default>1</show_in_default>
939
  <show_in_website>1</show_in_website>
940
  <show_in_store>0</show_in_store>
941
- </payment_action>
942
- <allowspecific translate="label">
943
- <label>Payment Applicable From</label>
944
  <frontend_type>select</frontend_type>
945
- <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
946
- <sort_order>40</sort_order>
947
- <show_in_default>1</show_in_default>
948
- <show_in_website>1</show_in_website>
949
- <show_in_store>1</show_in_store>
950
- </allowspecific>
951
- <sort_order translate="label">
952
- <label>Sort Order</label>
953
- <frontend_type>text</frontend_type>
954
- <sort_order>45</sort_order>
955
- <show_in_default>1</show_in_default>
956
- <show_in_website>1</show_in_website>
957
- <show_in_store>0</show_in_store>
958
- </sort_order>
959
- <specificcountry translate="label">
960
- <label>Countries Payment Applicable From</label>
961
- <frontend_type>multiselect</frontend_type>
962
- <source_model>adminhtml/system_config_source_country</source_model>
963
- <sort_order>50</sort_order>
964
  <show_in_default>1</show_in_default>
965
  <show_in_website>1</show_in_website>
966
- <show_in_store>1</show_in_store>
967
  <depends>
968
- <allowspecific>1</allowspecific>
969
  </depends>
970
- </specificcountry>
971
- <heading_merchant translate="label">
972
- <label>DataCash Integration</label>
 
 
973
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
974
- <sort_order>60</sort_order>
975
  <show_in_default>1</show_in_default>
976
  <show_in_website>1</show_in_website>
977
- <show_in_store>1</show_in_store>
978
- </heading_merchant>
979
- <merchant_id>
980
- <label>Merchant ID</label>
981
- <comment><![CDATA[
982
- Used when posting data from Magento to DataCash. <br/>
983
- Supplied by DataCash when you setup your account.
984
- ]]></comment>
985
- <frontend_type>text</frontend_type>
986
- <sort_order>70</sort_order>
987
  <show_in_default>1</show_in_default>
988
  <show_in_website>1</show_in_website>
989
- <show_in_store>1</show_in_store>
990
- </merchant_id>
991
- <merchant_password translate="label">
992
- <label>Merchant Key</label>
993
- <comment><![CDATA[
994
- Used when posting data from Magento to DataCash. <br/>
995
- Supplied by DataCash when you setup your account. <br/>
996
- This will be reset every 12 months and will need to be updated.
997
- ]]></comment>
998
- <frontend_type>obscure</frontend_type>
999
- <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
1000
- <sort_order>80</sort_order>
1001
  <show_in_default>1</show_in_default>
1002
  <show_in_website>1</show_in_website>
1003
- <show_in_store>1</show_in_store>
1004
- </merchant_password>
1005
- <allow_t3m>
1006
- <label>Enable DataCash Fraud Services</label>
 
 
 
1007
  <frontend_type>select</frontend_type>
1008
  <source_model>adminhtml/system_config_source_yesno</source_model>
1009
- <sort_order>95</sort_order>
1010
  <show_in_default>1</show_in_default>
1011
  <show_in_website>1</show_in_website>
1012
  <show_in_store>0</show_in_store>
1013
- </allow_t3m>
1014
- <t3m_use_ssl_callback translate="label">
1015
- <label>Use SSL for DataCash Fraud Services callback</label>
1016
- <comment><![CDATA[
1017
- DataCash Fraud Services will respond to a secure url if this option is checked.
1018
- ]]>
1019
- </comment>
1020
  <frontend_type>select</frontend_type>
1021
  <source_model>adminhtml/system_config_source_yesno</source_model>
1022
- <sort_order>96</sort_order>
1023
  <show_in_default>1</show_in_default>
1024
  <show_in_website>1</show_in_website>
1025
  <show_in_store>0</show_in_store>
1026
  <depends>
1027
- <allow_t3m>1</allow_t3m>
1028
- </depends>
1029
- </t3m_use_ssl_callback>
1030
- <line_items_enabled translate="label">
1031
- <label>Send Line Items</label>
1032
- <comment><![CDATA[
1033
- Enabling this will send line item data to DataCash<br/>
1034
- <strong>Will impose limitations for partial fulfilment and refunds</strong>
1035
- ]]></comment>
1036
  <frontend_type>select</frontend_type>
1037
  <source_model>adminhtml/system_config_source_yesno</source_model>
1038
- <sort_order>90</sort_order>
1039
  <show_in_default>1</show_in_default>
1040
  <show_in_website>1</show_in_website>
1041
  <show_in_store>0</show_in_store>
1042
- </line_items_enabled>
1043
- <debug translate="label">
1044
- <label>Debug</label>
1045
- <comment><![CDATA[
1046
- Enable additional log output for payment processes
1047
- ]]></comment>
1048
  <frontend_type>select</frontend_type>
1049
  <source_model>adminhtml/system_config_source_yesno</source_model>
1050
- <sort_order>100</sort_order>
1051
  <show_in_default>1</show_in_default>
1052
  <show_in_website>1</show_in_website>
1053
  <show_in_store>0</show_in_store>
1054
- </debug>
1055
- <sandbox translate="label">
1056
- <label>Test Mode</label>
1057
- <comment><![CDATA[
1058
- Use the DataCash test server.
1059
- ]]></comment>
1060
  <frontend_type>select</frontend_type>
1061
  <source_model>adminhtml/system_config_source_yesno</source_model>
1062
- <sort_order>110</sort_order>
1063
  <show_in_default>1</show_in_default>
1064
  <show_in_website>1</show_in_website>
1065
  <show_in_store>0</show_in_store>
1066
- </sandbox>
1067
- <heading_card_settings translate="label">
1068
- <label>Credit Card Settings</label>
1069
- <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1070
- <sort_order>120</sort_order>
 
 
 
 
1071
  <show_in_default>1</show_in_default>
1072
  <show_in_website>1</show_in_website>
1073
- <show_in_store>1</show_in_store>
1074
- </heading_card_settings>
1075
- <cctypes translate="label">
1076
- <label>Credit Card Types</label>
1077
- <frontend_type>multiselect</frontend_type>
1078
- <source_model>adminhtml/system_config_source_payment_cctype</source_model>
1079
- <sort_order>130</sort_order>
 
 
 
1080
  <show_in_default>1</show_in_default>
1081
  <show_in_website>1</show_in_website>
1082
- <show_in_store>1</show_in_store>
1083
- </cctypes>
1084
- <heading_useccv translate="label">
1085
- <label>CV2</label>
1086
- <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1087
- <sort_order>135</sort_order>
 
 
 
 
1088
  <show_in_default>1</show_in_default>
1089
  <show_in_website>1</show_in_website>
1090
  <show_in_store>0</show_in_store>
1091
- </heading_useccv>
1092
- <useccv translate="label">
1093
- <label>Request CV2 Card Security Code</label>
 
 
 
1094
  <frontend_type>select</frontend_type>
1095
  <source_model>adminhtml/system_config_source_yesno</source_model>
1096
- <sort_order>140</sort_order>
1097
  <show_in_default>1</show_in_default>
1098
  <show_in_website>1</show_in_website>
1099
  <show_in_store>0</show_in_store>
1100
- </useccv>
1101
- <useccv_advanced translate="label">
1102
- <label>Use Extended CV2 Policy</label>
 
 
 
1103
  <frontend_type>select</frontend_type>
1104
  <source_model>adminhtml/system_config_source_yesno</source_model>
1105
- <sort_order>150</sort_order>
1106
  <show_in_default>1</show_in_default>
1107
  <show_in_website>1</show_in_website>
1108
  <show_in_store>0</show_in_store>
1109
  <depends>
1110
- <useccv>1</useccv>
1111
- </depends>
1112
- </useccv_advanced>
1113
- <heading_extpol_cv2policy translate="label">
1114
- <label>Extended Policy - CV2</label>
 
 
1115
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1116
- <sort_order>160</sort_order>
1117
  <show_in_default>1</show_in_default>
1118
  <show_in_website>1</show_in_website>
1119
  <show_in_store>0</show_in_store>
1120
  <depends>
1121
- <useccv_advanced>1</useccv_advanced>
1122
  </depends>
1123
- </heading_extpol_cv2policy>
1124
- <extpol_cv2policy_notprovided translate="label">
1125
- <label>Not provided</label>
1126
  <frontend_type>select</frontend_type>
1127
- <source_model>dpg/source_acceptreject</source_model>
1128
- <sort_order>170</sort_order>
1129
  <show_in_default>1</show_in_default>
1130
  <show_in_website>1</show_in_website>
1131
  <show_in_store>0</show_in_store>
1132
  <depends>
1133
- <useccv_advanced>1</useccv_advanced>
1134
  </depends>
1135
- </extpol_cv2policy_notprovided>
1136
- <extpol_cv2policy_notchecked translate="label">
1137
- <label>Not checked</label>
1138
  <frontend_type>select</frontend_type>
1139
- <source_model>dpg/source_acceptreject</source_model>
1140
- <sort_order>180</sort_order>
1141
  <show_in_default>1</show_in_default>
1142
  <show_in_website>1</show_in_website>
1143
  <show_in_store>0</show_in_store>
1144
  <depends>
1145
- <useccv_advanced>1</useccv_advanced>
1146
  </depends>
1147
- </extpol_cv2policy_notchecked>
1148
- <extpol_cv2policy_matched translate="label">
1149
- <label>Matched</label>
1150
  <frontend_type>select</frontend_type>
1151
- <source_model>dpg/source_acceptreject</source_model>
1152
- <sort_order>190</sort_order>
1153
  <show_in_default>1</show_in_default>
1154
  <show_in_website>1</show_in_website>
1155
  <show_in_store>0</show_in_store>
1156
  <depends>
1157
- <useccv_advanced>1</useccv_advanced>
1158
- </depends>
1159
- </extpol_cv2policy_matched>
1160
- <extpol_cv2policy_notmatched translate="label">
1161
- <label>Not matched</label>
1162
  <frontend_type>select</frontend_type>
1163
- <source_model>dpg/source_acceptreject</source_model>
1164
- <sort_order>200</sort_order>
1165
  <show_in_default>1</show_in_default>
1166
  <show_in_website>1</show_in_website>
1167
  <show_in_store>0</show_in_store>
1168
  <depends>
1169
- <useccv_advanced>1</useccv_advanced>
1170
- </depends>
1171
- </extpol_cv2policy_notmatched>
1172
- <extpol_cv2policy_partialmatch translate="label">
1173
- <label>Partial match</label>
1174
  <frontend_type>select</frontend_type>
1175
- <source_model>dpg/source_acceptreject</source_model>
1176
- <sort_order>210</sort_order>
1177
  <show_in_default>1</show_in_default>
1178
  <show_in_website>1</show_in_website>
1179
  <show_in_store>0</show_in_store>
1180
  <depends>
1181
- <useccv_advanced>1</useccv_advanced>
1182
- </depends>
1183
- </extpol_cv2policy_partialmatch>
1184
- <heading_extpol_postcode translate="label">
1185
- <label>Extended Policy - Postcode</label>
1186
- <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1187
  <sort_order>230</sort_order>
1188
  <show_in_default>1</show_in_default>
1189
  <show_in_website>1</show_in_website>
1190
  <show_in_store>0</show_in_store>
1191
  <depends>
1192
- <useccv_advanced>1</useccv_advanced>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1193
  </depends>
1194
- </heading_extpol_postcode>
1195
- <extpol_postcode_notprovided translate="label">
1196
- <label>Not provided</label>
1197
  <frontend_type>select</frontend_type>
1198
- <source_model>dpg/source_acceptreject</source_model>
1199
- <sort_order>240</sort_order>
1200
  <show_in_default>1</show_in_default>
1201
  <show_in_website>1</show_in_website>
1202
  <show_in_store>0</show_in_store>
1203
  <depends>
1204
- <useccv_advanced>1</useccv_advanced>
1205
  </depends>
1206
- </extpol_postcode_notprovided>
1207
- <extpol_postcode_notchecked translate="label">
1208
- <label>Not checked</label>
1209
  <frontend_type>select</frontend_type>
1210
- <source_model>dpg/source_acceptreject</source_model>
1211
- <sort_order>250</sort_order>
1212
  <show_in_default>1</show_in_default>
1213
  <show_in_website>1</show_in_website>
1214
  <show_in_store>0</show_in_store>
1215
  <depends>
1216
- <useccv_advanced>1</useccv_advanced>
1217
  </depends>
1218
- </extpol_postcode_notchecked>
1219
- <extpol_postcode_matched translate="label">
1220
- <label>Matched</label>
1221
  <frontend_type>select</frontend_type>
1222
- <source_model>dpg/source_acceptreject</source_model>
1223
- <sort_order>260</sort_order>
1224
  <show_in_default>1</show_in_default>
1225
  <show_in_website>1</show_in_website>
1226
  <show_in_store>0</show_in_store>
1227
  <depends>
1228
- <useccv_advanced>1</useccv_advanced>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1229
  </depends>
1230
- </extpol_postcode_matched>
1231
- <extpol_postcode_notmatched translate="label">
1232
- <label>Not matched</label>
1233
  <frontend_type>select</frontend_type>
1234
- <source_model>dpg/source_acceptreject</source_model>
1235
- <sort_order>270</sort_order>
1236
  <show_in_default>1</show_in_default>
1237
  <show_in_website>1</show_in_website>
1238
  <show_in_store>0</show_in_store>
1239
  <depends>
1240
- <useccv_advanced>1</useccv_advanced>
1241
  </depends>
1242
- </extpol_postcode_notmatched>
1243
- <extpol_postcode_partialmatch translate="label">
1244
- <label>Partial match</label>
1245
  <frontend_type>select</frontend_type>
1246
- <source_model>dpg/source_acceptreject</source_model>
1247
- <sort_order>280</sort_order>
1248
  <show_in_default>1</show_in_default>
1249
  <show_in_website>1</show_in_website>
1250
  <show_in_store>0</show_in_store>
1251
  <depends>
1252
- <useccv_advanced>1</useccv_advanced>
1253
  </depends>
1254
- </extpol_postcode_partialmatch>
1255
- <heading_extpol_address translate="label">
1256
- <label>Extended Policy - Address</label>
 
 
1257
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1258
- <sort_order>300</sort_order>
1259
  <show_in_default>1</show_in_default>
1260
  <show_in_website>1</show_in_website>
1261
  <show_in_store>0</show_in_store>
1262
  <depends>
1263
- <useccv_advanced>1</useccv_advanced>
1264
  </depends>
1265
- </heading_extpol_address>
1266
- <extpol_address_notprovided translate="label">
1267
- <label>Not provided</label>
1268
  <frontend_type>select</frontend_type>
1269
- <source_model>dpg/source_acceptreject</source_model>
1270
- <sort_order>310</sort_order>
1271
  <show_in_default>1</show_in_default>
1272
  <show_in_website>1</show_in_website>
1273
  <show_in_store>0</show_in_store>
1274
  <depends>
1275
- <useccv_advanced>1</useccv_advanced>
1276
  </depends>
1277
- </extpol_address_notprovided>
1278
- <extpol_address_notchecked translate="label">
1279
- <label>Not checked</label>
1280
  <frontend_type>select</frontend_type>
1281
- <source_model>dpg/source_acceptreject</source_model>
1282
- <sort_order>320</sort_order>
1283
  <show_in_default>1</show_in_default>
1284
  <show_in_website>1</show_in_website>
1285
  <show_in_store>0</show_in_store>
1286
  <depends>
1287
- <useccv_advanced>1</useccv_advanced>
1288
  </depends>
1289
- </extpol_address_notchecked>
1290
- <extpol_address_matched translate="label">
1291
- <label>Matched</label>
1292
  <frontend_type>select</frontend_type>
1293
- <source_model>dpg/source_acceptreject</source_model>
1294
- <sort_order>330</sort_order>
1295
  <show_in_default>1</show_in_default>
1296
  <show_in_website>1</show_in_website>
1297
  <show_in_store>0</show_in_store>
1298
  <depends>
1299
- <useccv_advanced>1</useccv_advanced>
1300
  </depends>
1301
- </extpol_address_matched>
1302
- <extpol_address_notmatched translate="label">
1303
- <label>Not matched</label>
1304
  <frontend_type>select</frontend_type>
1305
- <source_model>dpg/source_acceptreject</source_model>
1306
- <sort_order>340</sort_order>
1307
  <show_in_default>1</show_in_default>
1308
  <show_in_website>1</show_in_website>
1309
  <show_in_store>0</show_in_store>
1310
  <depends>
1311
- <useccv_advanced>1</useccv_advanced>
1312
  </depends>
1313
- </extpol_address_notmatched>
1314
- <extpol_address_partialmatch translate="label">
1315
- <label>Partial match</label>
1316
  <frontend_type>select</frontend_type>
1317
- <source_model>dpg/source_acceptreject</source_model>
1318
- <sort_order>350</sort_order>
1319
  <show_in_default>1</show_in_default>
1320
  <show_in_website>1</show_in_website>
1321
  <show_in_store>0</show_in_store>
1322
  <depends>
1323
- <useccv_advanced>1</useccv_advanced>
1324
  </depends>
1325
- </extpol_address_partialmatch>
1326
- <heading_3dsecure translate="label">
1327
- <label>3D Secure</label>
 
 
1328
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1329
- <sort_order>400</sort_order>
1330
  <show_in_default>1</show_in_default>
1331
  <show_in_website>1</show_in_website>
1332
- <show_in_store>1</show_in_store>
1333
- </heading_3dsecure>
1334
- <centinel translate="label">
1335
- <label>3D Secure Card Validation</label>
 
 
 
1336
  <frontend_type>select</frontend_type>
1337
  <source_model>adminhtml/system_config_source_yesno</source_model>
1338
- <sort_order>410</sort_order>
1339
  <show_in_default>1</show_in_default>
1340
  <show_in_website>1</show_in_website>
1341
- <show_in_store>1</show_in_store>
1342
- </centinel>
1343
- <heading_3dsecure_behaviours translate="label">
1344
- <label>3-D Secure Behaviours</label>
1345
- <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1346
- <sort_order>420</sort_order>
 
 
 
 
1347
  <show_in_default>1</show_in_default>
1348
  <show_in_website>1</show_in_website>
1349
- <show_in_store>1</show_in_store>
1350
  <depends>
1351
- <centinel>1</centinel>
1352
- </depends>
1353
- </heading_3dsecure_behaviours>
1354
- <threedsecure_behaviour_159 translate="label">
1355
- <label>DPG Response 159 - No VERes from DS</label>
1356
- <comment><![CDATA[
1357
- If DataCash does not receive a response from the <br />
1358
- Directory Service, the card cannot be validated as <br />
1359
- participating in 3-D Secure. In these circumstances <br />
1360
- please choose how you would like to continue.
1361
- ]]></comment>
1362
  <frontend_type>select</frontend_type>
1363
- <source_model>dpg/source_threedstypes</source_model>
1364
- <sort_order>430</sort_order>
1365
  <show_in_default>1</show_in_default>
1366
  <show_in_website>1</show_in_website>
1367
- <show_in_store>1</show_in_store>
1368
  <depends>
1369
- <centinel>1</centinel>
1370
- </depends>
1371
- </threedsecure_behaviour_159>
1372
- <threedsecure_behaviour_160 translate="label">
1373
- <label>DPG Response 160 - Invalid VERes from DS</label>
1374
- <comment><![CDATA[
1375
- If DataCash does receive a response from the Directory Service <br />
1376
- but it is invalid, it is not possible to ascertain if the <br />
1377
- card is participating in 3-D Secure. In these circumstances <br />
1378
- please choose how you would like to continue.
1379
- ]]></comment>
1380
  <frontend_type>select</frontend_type>
1381
- <source_model>dpg/source_threedstypes</source_model>
1382
- <sort_order>440</sort_order>
1383
  <show_in_default>1</show_in_default>
1384
  <show_in_website>1</show_in_website>
1385
- <show_in_store>1</show_in_store>
1386
  <depends>
1387
- <centinel>1</centinel>
1388
- </depends>
1389
- </threedsecure_behaviour_160>
1390
- <threedsecure_behaviour_173 translate="label">
1391
- <label>DPG Response 173 - Card not Enrolled in Cache</label>
1392
- <comment><![CDATA[
1393
- Card is not in cache so no 3-D Secure Enrollment Check Request is submitted. <br />
1394
- In these circumstances please choose how you would like to continue.
1395
- ]]></comment>
1396
  <frontend_type>select</frontend_type>
1397
- <source_model>dpg/source_threedstypes</source_model>
1398
- <sort_order>450</sort_order>
1399
  <show_in_default>1</show_in_default>
1400
  <show_in_website>1</show_in_website>
1401
- <show_in_store>1</show_in_store>
1402
  <depends>
1403
- <centinel>1</centinel>
1404
- </depends>
1405
- </threedsecure_behaviour_173>
1406
- <threedsecure_behaviour_187 translate="label">
1407
- <label>DPG Response 187 - Unable to Verify</label>
1408
- <comment><![CDATA[
1409
- If DataCash is not able to communicate with the Directory Service <br />
1410
- there is no way of establishing if the card is participating in 3-D Secure. <br />
1411
- In these circumstances please choose how you would like to continue.
1412
- ]]></comment>
1413
  <frontend_type>select</frontend_type>
1414
- <source_model>dpg/source_threedstypes</source_model>
1415
- <sort_order>460</sort_order>
1416
  <show_in_default>1</show_in_default>
1417
  <show_in_website>1</show_in_website>
1418
- <show_in_store>1</show_in_store>
1419
  <depends>
1420
- <centinel>1</centinel>
1421
- </depends>
1422
- </threedsecure_behaviour_187>
 
 
 
 
 
 
 
 
 
 
 
 
 
1423
  </fields>
1424
  </datacash_api>
1425
- <datacash_apiprereg translate="label,comment" module="dpg">
 
1426
  <label>DataCash :: API (with pre-registered cards)</label>
1427
  <frontend_type>text</frontend_type>
1428
  <sort_order>4000</sort_order>
@@ -1554,17 +2602,17 @@
1554
  <show_in_store>0</show_in_store>
1555
  </debug>
1556
  <sandbox translate="label">
1557
- <label>Test Mode</label>
1558
  <comment><![CDATA[
1559
- Use the DataCash test server.
1560
- ]]></comment>
1561
  <frontend_type>select</frontend_type>
1562
- <source_model>adminhtml/system_config_source_yesno</source_model>
1563
  <sort_order>110</sort_order>
1564
  <show_in_default>1</show_in_default>
1565
  <show_in_website>1</show_in_website>
1566
  <show_in_store>0</show_in_store>
1567
- </sandbox>
1568
  <heading_card_settings translate="label">
1569
  <label>Credit Card Settings</label>
1570
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
@@ -1922,7 +2970,7 @@
1922
  </depends>
1923
  </threedsecure_behaviour_187>
1924
  </fields>
1925
- </datacash_apiprereg>
1926
  </groups>
1927
  </payment>
1928
  </sections>
10
  <show_in_website>1</show_in_website>
11
  <show_in_store>1</show_in_store>
12
  </datacash_hint>
13
+ <!-- HPS is depricated -->
14
+ <!--<datacash_hps translate="label,comment" module="dpg">
15
  <label>DataCash :: Hosted Payment Service</label>
16
  <frontend_type>text</frontend_type>
17
  <sort_order>1000</sort_order>
142
  <show_in_store>0</show_in_store>
143
  </debug>
144
  <sandbox translate="label">
145
+ <label>Gateway Mode</label>
146
  <comment><![CDATA[
147
+ Choose service mode.
148
+ ]]></comment>
149
  <frontend_type>select</frontend_type>
150
+ <source_model>dpg/source_gatewayMode</source_model>
151
  <sort_order>110</sort_order>
152
  <show_in_default>1</show_in_default>
153
  <show_in_website>1</show_in_website>
413
  <show_in_store>1</show_in_store>
414
  </use3DSecure>
415
  </fields>
416
+ </datacash_hps>-->
417
  <datacash_hcc translate="label,comment" module="dpg">
418
  <label>DataCash :: Hosted Card Capture</label>
419
  <frontend_type>text</frontend_type>
532
  <show_in_website>1</show_in_website>
533
  <show_in_store>1</show_in_store>
534
  </page_set_id>
535
+ <allow_tokenizer>
536
+ <label>Enable DataCash Tokenised Cards</label>
537
+ <comment><![CDATA[
538
+ This allows the users to save and re-use saved cards.
539
+ ]]></comment>
540
+ <frontend_type>select</frontend_type>
541
+ <source_model>adminhtml/system_config_source_yesno</source_model>
542
+ <sort_order>97</sort_order>
543
+ <show_in_default>1</show_in_default>
544
+ <show_in_website>1</show_in_website>
545
+ <show_in_store>0</show_in_store>
546
+ </allow_tokenizer>
547
  <debug translate="label">
548
  <label>Debug</label>
549
  <comment><![CDATA[
557
  <show_in_store>1</show_in_store>
558
  </debug>
559
  <sandbox translate="label">
560
+ <label>Gateway Mode</label>
561
  <comment><![CDATA[
562
+ Choose service mode.
563
+ ]]></comment>
564
  <frontend_type>select</frontend_type>
565
+ <source_model>dpg/source_gatewayMode</source_model>
566
  <sort_order>110</sort_order>
567
  <show_in_default>1</show_in_default>
568
  <show_in_website>1</show_in_website>
569
  <show_in_store>0</show_in_store>
570
+ </sandbox>
571
  <heading_card_settings translate="label">
572
  <label>Credit Card Settings</label>
573
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
576
  <show_in_website>1</show_in_website>
577
  <show_in_store>1</show_in_store>
578
  </heading_card_settings>
 
 
 
 
 
 
 
 
 
579
  <useccv_advanced translate="label">
580
  <label>Use Extended CV2 Policy</label>
581
  <frontend_type>select</frontend_type>
584
  <show_in_default>1</show_in_default>
585
  <show_in_website>1</show_in_website>
586
  <show_in_store>0</show_in_store>
 
 
 
587
  </useccv_advanced>
588
  <heading_extpol_cv2policy translate="label">
589
  <label>Extended Policy - CV2</label>
895
  <centinel>1</centinel>
896
  </depends>
897
  </threedsecure_behaviour_187>
898
+
899
+ <rsg_heading translate="label">
900
+ <label>Fraud screening</label>
901
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
902
+ <sort_order>499</sort_order>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
903
  <show_in_default>1</show_in_default>
904
  <show_in_website>1</show_in_website>
905
+ <show_in_store>0</show_in_store>
906
+ </rsg_heading>
907
+ <allow_fraud_screening>
908
+ <label>Enable DataCash Fraud Services</label>
909
  <frontend_type>select</frontend_type>
910
+ <source_model>adminhtml/system_config_source_yesno</source_model>
911
+ <sort_order>500</sort_order>
912
  <show_in_default>1</show_in_default>
913
  <show_in_website>1</show_in_website>
914
  <show_in_store>0</show_in_store>
915
+ </allow_fraud_screening>
916
+ <rsg_service_mode translate="label">
917
+ <label>Fraud Screening Mode</label>
918
  <frontend_type>select</frontend_type>
919
+ <source_model>dpg/source_rsgServiceTypes</source_model>
920
+ <sort_order>510</sort_order>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
921
  <show_in_default>1</show_in_default>
922
  <show_in_website>1</show_in_website>
923
+ <show_in_store>0</show_in_store>
924
  <depends>
925
+ <allow_fraud_screening>1</allow_fraud_screening>
926
  </depends>
927
+ </rsg_service_mode>
928
+
929
+ <!-- CUSTOMER -->
930
+ <rsg_data_customer_heading translate="label">
931
+ <label>Customer data to screening</label>
932
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
933
+ <sort_order>520</sort_order>
934
  <show_in_default>1</show_in_default>
935
  <show_in_website>1</show_in_website>
936
+ <show_in_store>0</show_in_store>
937
+ <depends>
938
+ <allow_fraud_screening>1</allow_fraud_screening>
939
+ </depends>
940
+ </rsg_data_customer_heading>
941
+ <rsg_data_customer_first_name translate="label">
942
+ <label>First Name</label>
943
+ <frontend_type>select</frontend_type>
944
+ <source_model>adminhtml/system_config_source_yesno</source_model>
945
+ <sort_order>530</sort_order>
946
  <show_in_default>1</show_in_default>
947
  <show_in_website>1</show_in_website>
948
+ <show_in_store>0</show_in_store>
949
+ <depends>
950
+ <allow_fraud_screening>1</allow_fraud_screening>
951
+ </depends>
952
+ </rsg_data_customer_first_name>
953
+ <rsg_data_customer_surname translate="label">
954
+ <label>Surname</label>
955
+ <frontend_type>select</frontend_type>
956
+ <source_model>adminhtml/system_config_source_yesno</source_model>
957
+ <sort_order>540</sort_order>
 
 
958
  <show_in_default>1</show_in_default>
959
  <show_in_website>1</show_in_website>
960
+ <show_in_store>0</show_in_store>
961
+ <depends>
962
+ <allow_fraud_screening>1</allow_fraud_screening>
963
+ </depends>
964
+ </rsg_data_customer_surname>
965
+ <rsg_data_customer_ip_address>
966
+ <label>IP address</label>
967
  <frontend_type>select</frontend_type>
968
  <source_model>adminhtml/system_config_source_yesno</source_model>
969
+ <sort_order>550</sort_order>
970
  <show_in_default>1</show_in_default>
971
  <show_in_website>1</show_in_website>
972
  <show_in_store>0</show_in_store>
973
+ <depends>
974
+ <allow_fraud_screening>1</allow_fraud_screening>
975
+ </depends>
976
+ </rsg_data_customer_ip_address>
977
+ <rsg_data_customer_user_id>
978
+ <label>Customer ID</label>
 
979
  <frontend_type>select</frontend_type>
980
  <source_model>adminhtml/system_config_source_yesno</source_model>
981
+ <sort_order>560</sort_order>
982
  <show_in_default>1</show_in_default>
983
  <show_in_website>1</show_in_website>
984
  <show_in_store>0</show_in_store>
985
  <depends>
986
+ <allow_fraud_screening>1</allow_fraud_screening>
987
+ </depends>
988
+ </rsg_data_customer_user_id>
989
+ <rsg_data_customer_email_address>
990
+ <label>Customer Email</label>
 
 
 
 
991
  <frontend_type>select</frontend_type>
992
  <source_model>adminhtml/system_config_source_yesno</source_model>
993
+ <sort_order>565</sort_order>
994
  <show_in_default>1</show_in_default>
995
  <show_in_website>1</show_in_website>
996
  <show_in_store>0</show_in_store>
997
+ <depends>
998
+ <allow_fraud_screening>1</allow_fraud_screening>
999
+ </depends>
1000
+ </rsg_data_customer_email_address>
1001
+ <rsg_data_customer_telephone>
1002
+ <label>Telephone</label>
1003
  <frontend_type>select</frontend_type>
1004
  <source_model>adminhtml/system_config_source_yesno</source_model>
1005
+ <sort_order>570</sort_order>
1006
  <show_in_default>1</show_in_default>
1007
  <show_in_website>1</show_in_website>
1008
  <show_in_store>0</show_in_store>
1009
+ <depends>
1010
+ <allow_fraud_screening>1</allow_fraud_screening>
1011
+ </depends>
1012
+ </rsg_data_customer_telephone>
1013
+ <rsg_data_customer_address_line1>
1014
+ <label>Address line 1</label>
1015
  <frontend_type>select</frontend_type>
1016
  <source_model>adminhtml/system_config_source_yesno</source_model>
1017
+ <sort_order>580</sort_order>
1018
  <show_in_default>1</show_in_default>
1019
  <show_in_website>1</show_in_website>
1020
  <show_in_store>0</show_in_store>
1021
+ <depends>
1022
+ <allow_fraud_screening>1</allow_fraud_screening>
1023
+ </depends>
1024
+ </rsg_data_customer_address_line1>
1025
+ <rsg_data_customer_address_line2>
1026
+ <label>Address line 2</label>
1027
+ <frontend_type>select</frontend_type>
1028
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1029
+ <sort_order>590</sort_order>
1030
  <show_in_default>1</show_in_default>
1031
  <show_in_website>1</show_in_website>
1032
+ <show_in_store>0</show_in_store>
1033
+ <depends>
1034
+ <allow_fraud_screening>1</allow_fraud_screening>
1035
+ </depends>
1036
+ </rsg_data_customer_address_line2>
1037
+ <rsg_data_customer_city>
1038
+ <label>City</label>
1039
+ <frontend_type>select</frontend_type>
1040
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1041
+ <sort_order>600</sort_order>
1042
  <show_in_default>1</show_in_default>
1043
  <show_in_website>1</show_in_website>
1044
+ <show_in_store>0</show_in_store>
1045
+ <depends>
1046
+ <allow_fraud_screening>1</allow_fraud_screening>
1047
+ </depends>
1048
+ </rsg_data_customer_city>
1049
+ <rsg_data_customer_state_province>
1050
+ <label>State/Province</label>
1051
+ <frontend_type>select</frontend_type>
1052
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1053
+ <sort_order>610</sort_order>
1054
  <show_in_default>1</show_in_default>
1055
  <show_in_website>1</show_in_website>
1056
  <show_in_store>0</show_in_store>
1057
+ <depends>
1058
+ <allow_fraud_screening>1</allow_fraud_screening>
1059
+ </depends>
1060
+ </rsg_data_customer_state_province>
1061
+ <rsg_data_customer_country>
1062
+ <label>Country</label>
1063
  <frontend_type>select</frontend_type>
1064
  <source_model>adminhtml/system_config_source_yesno</source_model>
1065
+ <sort_order>620</sort_order>
1066
  <show_in_default>1</show_in_default>
1067
  <show_in_website>1</show_in_website>
1068
  <show_in_store>0</show_in_store>
1069
+ <depends>
1070
+ <allow_fraud_screening>1</allow_fraud_screening>
1071
+ </depends>
1072
+ </rsg_data_customer_country>
1073
+ <rsg_data_customer_zip_code>
1074
+ <label>Zip code</label>
1075
  <frontend_type>select</frontend_type>
1076
  <source_model>adminhtml/system_config_source_yesno</source_model>
1077
+ <sort_order>630</sort_order>
1078
  <show_in_default>1</show_in_default>
1079
  <show_in_website>1</show_in_website>
1080
  <show_in_store>0</show_in_store>
1081
  <depends>
1082
+ <allow_fraud_screening>1</allow_fraud_screening>
1083
+ </depends>
1084
+ </rsg_data_customer_zip_code>
1085
+
1086
+ <!-- SHIPPING -->
1087
+ <rsg_data_shipping_heading translate="label">
1088
+ <label>Shipping data to screening</label>
1089
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1090
+ <sort_order>640</sort_order>
1091
  <show_in_default>1</show_in_default>
1092
  <show_in_website>1</show_in_website>
1093
  <show_in_store>0</show_in_store>
1094
  <depends>
1095
+ <allow_fraud_screening>1</allow_fraud_screening>
1096
  </depends>
1097
+ </rsg_data_shipping_heading>
1098
+ <rsg_data_shipping_first_name translate="label">
1099
+ <label>Title</label>
1100
  <frontend_type>select</frontend_type>
1101
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1102
+ <sort_order>650</sort_order>
1103
  <show_in_default>1</show_in_default>
1104
  <show_in_website>1</show_in_website>
1105
  <show_in_store>0</show_in_store>
1106
  <depends>
1107
+ <allow_fraud_screening>1</allow_fraud_screening>
1108
  </depends>
1109
+ </rsg_data_shipping_first_name>
1110
+ <rsg_data_shipping_surname translate="label">
1111
+ <label>Surname</label>
1112
  <frontend_type>select</frontend_type>
1113
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1114
+ <sort_order>660</sort_order>
1115
  <show_in_default>1</show_in_default>
1116
  <show_in_website>1</show_in_website>
1117
  <show_in_store>0</show_in_store>
1118
  <depends>
1119
+ <allow_fraud_screening>1</allow_fraud_screening>
1120
  </depends>
1121
+ </rsg_data_shipping_surname>
1122
+ <rsg_data_shipping_address_line1>
1123
+ <label>Address line 1</label>
1124
  <frontend_type>select</frontend_type>
1125
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1126
+ <sort_order>670</sort_order>
1127
  <show_in_default>1</show_in_default>
1128
  <show_in_website>1</show_in_website>
1129
  <show_in_store>0</show_in_store>
1130
  <depends>
1131
+ <allow_fraud_screening>1</allow_fraud_screening>
1132
+ </depends>
1133
+ </rsg_data_shipping_address_line1>
1134
+ <rsg_data_shipping_address_line2>
1135
+ <label>Address line 2</label>
1136
  <frontend_type>select</frontend_type>
1137
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1138
+ <sort_order>680</sort_order>
1139
  <show_in_default>1</show_in_default>
1140
  <show_in_website>1</show_in_website>
1141
  <show_in_store>0</show_in_store>
1142
  <depends>
1143
+ <allow_fraud_screening>1</allow_fraud_screening>
1144
+ </depends>
1145
+ </rsg_data_shipping_address_line2>
1146
+ <rsg_data_shipping_city>
1147
+ <label>City</label>
1148
  <frontend_type>select</frontend_type>
1149
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1150
+ <sort_order>690</sort_order>
1151
  <show_in_default>1</show_in_default>
1152
  <show_in_website>1</show_in_website>
1153
  <show_in_store>0</show_in_store>
1154
  <depends>
1155
+ <allow_fraud_screening>1</allow_fraud_screening>
1156
+ </depends>
1157
+ </rsg_data_shipping_city>
1158
+ <rsg_data_shipping_state_province>
1159
+ <label>State/Province</label>
1160
+ <frontend_type>select</frontend_type>
1161
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1162
+ <sort_order>700</sort_order>
1163
+ <show_in_default>1</show_in_default>
1164
+ <show_in_website>1</show_in_website>
1165
+ <show_in_store>0</show_in_store>
1166
+ <depends>
1167
+ <allow_fraud_screening>1</allow_fraud_screening>
1168
+ </depends>
1169
+ </rsg_data_shipping_state_province>
1170
+ <rsg_data_shipping_country>
1171
+ <label>Country</label>
1172
+ <frontend_type>select</frontend_type>
1173
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1174
+ <sort_order>710</sort_order>
1175
+ <show_in_default>1</show_in_default>
1176
+ <show_in_website>1</show_in_website>
1177
+ <show_in_store>0</show_in_store>
1178
+ <depends>
1179
+ <allow_fraud_screening>1</allow_fraud_screening>
1180
+ </depends>
1181
+ </rsg_data_shipping_country>
1182
+ <rsg_data_shipping_zip_code>
1183
+ <label>Zip code</label>
1184
+ <frontend_type>select</frontend_type>
1185
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1186
+ <sort_order>720</sort_order>
1187
+ <show_in_default>1</show_in_default>
1188
+ <show_in_website>1</show_in_website>
1189
+ <show_in_store>0</show_in_store>
1190
+ <depends>
1191
+ <allow_fraud_screening>1</allow_fraud_screening>
1192
+ </depends>
1193
+ </rsg_data_shipping_zip_code>
1194
+ <rsg_data_shipping_delivery_method>
1195
+ <label>Delivery Method</label>
1196
+ <frontend_type>select</frontend_type>
1197
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1198
+ <sort_order>730</sort_order>
1199
+ <show_in_default>1</show_in_default>
1200
+ <show_in_website>1</show_in_website>
1201
+ <show_in_store>0</show_in_store>
1202
+ <depends>
1203
+ <allow_fraud_screening>1</allow_fraud_screening>
1204
+ </depends>
1205
+ </rsg_data_shipping_delivery_method>
1206
+
1207
+ <!-- ORDER -->
1208
+ <rsg_data_order_heading translate="label">
1209
+ <label>Order data to screening</label>
1210
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1211
+ <sort_order>760</sort_order>
1212
+ <show_in_default>1</show_in_default>
1213
+ <show_in_website>1</show_in_website>
1214
+ <show_in_store>0</show_in_store>
1215
+ <depends>
1216
+ <allow_fraud_screening>1</allow_fraud_screening>
1217
+ </depends>
1218
+ </rsg_data_order_heading>
1219
+ <rsg_data_order_time_zone translate="label">
1220
+ <label>Time Zone</label>
1221
+ <frontend_type>select</frontend_type>
1222
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1223
+ <sort_order>770</sort_order>
1224
+ <show_in_default>1</show_in_default>
1225
+ <show_in_website>1</show_in_website>
1226
+ <show_in_store>0</show_in_store>
1227
+ <depends>
1228
+ <allow_fraud_screening>1</allow_fraud_screening>
1229
+ </depends>
1230
+ </rsg_data_order_time_zone>
1231
+ <rsg_data_order_discount_value translate="label">
1232
+ <label>Discount value</label>
1233
+ <frontend_type>select</frontend_type>
1234
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1235
+ <sort_order>780</sort_order>
1236
+ <show_in_default>1</show_in_default>
1237
+ <show_in_website>1</show_in_website>
1238
+ <show_in_store>0</show_in_store>
1239
+ <depends>
1240
+ <allow_fraud_screening>1</allow_fraud_screening>
1241
+ </depends>
1242
+ </rsg_data_order_discount_value>
1243
+
1244
+ <!-- LINE ITEM -->
1245
+ <rsg_data_item_heading translate="label">
1246
+ <label>Line item data to screening</label>
1247
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1248
+ <sort_order>790</sort_order>
1249
+ <show_in_default>1</show_in_default>
1250
+ <show_in_website>1</show_in_website>
1251
+ <show_in_store>0</show_in_store>
1252
+ <depends>
1253
+ <allow_fraud_screening>1</allow_fraud_screening>
1254
+ </depends>
1255
+ </rsg_data_item_heading>
1256
+ <rsg_data_item_product_code translate="label">
1257
+ <label>SKU</label>
1258
+ <frontend_type>select</frontend_type>
1259
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1260
+ <sort_order>800</sort_order>
1261
+ <show_in_default>1</show_in_default>
1262
+ <show_in_website>1</show_in_website>
1263
+ <show_in_store>0</show_in_store>
1264
+ <depends>
1265
+ <allow_fraud_screening>1</allow_fraud_screening>
1266
+ </depends>
1267
+ </rsg_data_item_product_code>
1268
+ <rsg_data_item_product_description translate="label">
1269
+ <label>Description</label>
1270
+ <frontend_type>select</frontend_type>
1271
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1272
+ <sort_order>810</sort_order>
1273
+ <show_in_default>1</show_in_default>
1274
+ <show_in_website>1</show_in_website>
1275
+ <show_in_store>0</show_in_store>
1276
+ <depends>
1277
+ <allow_fraud_screening>1</allow_fraud_screening>
1278
+ </depends>
1279
+ </rsg_data_item_product_description>
1280
+ <rsg_data_item_product_category translate="label">
1281
+ <label>Category</label>
1282
+ <frontend_type>select</frontend_type>
1283
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1284
+ <sort_order>820</sort_order>
1285
+ <show_in_default>1</show_in_default>
1286
+ <show_in_website>1</show_in_website>
1287
+ <show_in_store>0</show_in_store>
1288
+ <depends>
1289
+ <allow_fraud_screening>1</allow_fraud_screening>
1290
+ </depends>
1291
+ </rsg_data_item_product_category>
1292
+ <rsg_data_item_order_quantity translate="label">
1293
+ <label>Order quantity</label>
1294
+ <frontend_type>select</frontend_type>
1295
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1296
+ <sort_order>830</sort_order>
1297
+ <show_in_default>1</show_in_default>
1298
+ <show_in_website>1</show_in_website>
1299
+ <show_in_store>0</show_in_store>
1300
+ <depends>
1301
+ <allow_fraud_screening>1</allow_fraud_screening>
1302
+ </depends>
1303
+ </rsg_data_item_order_quantity>
1304
+ <rsg_data_item_unit_price translate="label">
1305
+ <label>Unit price</label>
1306
+ <frontend_type>select</frontend_type>
1307
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1308
+ <sort_order>840</sort_order>
1309
+ <show_in_default>1</show_in_default>
1310
+ <show_in_website>1</show_in_website>
1311
+ <show_in_store>0</show_in_store>
1312
+ <depends>
1313
+ <allow_fraud_screening>1</allow_fraud_screening>
1314
+ </depends>
1315
+ </rsg_data_item_unit_price>
1316
+
1317
+ <!-- BILLING -->
1318
+ <rsg_data_billing_heading translate="label">
1319
+ <label>Billing data to screening</label>
1320
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1321
+ <sort_order>850</sort_order>
1322
+ <show_in_default>1</show_in_default>
1323
+ <show_in_website>1</show_in_website>
1324
+ <show_in_store>0</show_in_store>
1325
+ <depends>
1326
+ <allow_fraud_screening>1</allow_fraud_screening>
1327
+ </depends>
1328
+ </rsg_data_billing_heading>
1329
+ <rsg_data_billing_name translate="label">
1330
+ <label>Title</label>
1331
+ <frontend_type>select</frontend_type>
1332
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1333
+ <sort_order>860</sort_order>
1334
+ <show_in_default>1</show_in_default>
1335
+ <show_in_website>1</show_in_website>
1336
+ <show_in_store>0</show_in_store>
1337
+ <depends>
1338
+ <allow_fraud_screening>1</allow_fraud_screening>
1339
+ </depends>
1340
+ </rsg_data_billing_name>
1341
+ <rsg_data_billing_address_line1>
1342
+ <label>Address line 1</label>
1343
+ <frontend_type>select</frontend_type>
1344
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1345
+ <sort_order>870</sort_order>
1346
+ <show_in_default>1</show_in_default>
1347
+ <show_in_website>1</show_in_website>
1348
+ <show_in_store>0</show_in_store>
1349
+ <depends>
1350
+ <allow_fraud_screening>1</allow_fraud_screening>
1351
+ </depends>
1352
+ </rsg_data_billing_address_line1>
1353
+ <rsg_data_billing_address_line2>
1354
+ <label>Address line 2</label>
1355
+ <frontend_type>select</frontend_type>
1356
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1357
+ <sort_order>880</sort_order>
1358
+ <show_in_default>1</show_in_default>
1359
+ <show_in_website>1</show_in_website>
1360
+ <show_in_store>0</show_in_store>
1361
+ <depends>
1362
+ <allow_fraud_screening>1</allow_fraud_screening>
1363
+ </depends>
1364
+ </rsg_data_billing_address_line2>
1365
+ <rsg_data_billing_city>
1366
+ <label>City</label>
1367
+ <frontend_type>select</frontend_type>
1368
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1369
+ <sort_order>890</sort_order>
1370
+ <show_in_default>1</show_in_default>
1371
+ <show_in_website>1</show_in_website>
1372
+ <show_in_store>0</show_in_store>
1373
+ <depends>
1374
+ <allow_fraud_screening>1</allow_fraud_screening>
1375
+ </depends>
1376
+ </rsg_data_billing_city>
1377
+ <rsg_data_billing_state_province>
1378
+ <label>State/Province</label>
1379
+ <frontend_type>select</frontend_type>
1380
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1381
+ <sort_order>900</sort_order>
1382
+ <show_in_default>1</show_in_default>
1383
+ <show_in_website>1</show_in_website>
1384
+ <show_in_store>0</show_in_store>
1385
+ <depends>
1386
+ <allow_fraud_screening>1</allow_fraud_screening>
1387
+ </depends>
1388
+ </rsg_data_billing_state_province>
1389
+ <rsg_data_billing_country>
1390
+ <label>Country</label>
1391
+ <frontend_type>select</frontend_type>
1392
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1393
+ <sort_order>910</sort_order>
1394
+ <show_in_default>1</show_in_default>
1395
+ <show_in_website>1</show_in_website>
1396
+ <show_in_store>0</show_in_store>
1397
+ <depends>
1398
+ <allow_fraud_screening>1</allow_fraud_screening>
1399
+ </depends>
1400
+ </rsg_data_billing_country>
1401
+ <rsg_data_billing_zip_code>
1402
+ <label>Zip code</label>
1403
+ <frontend_type>select</frontend_type>
1404
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1405
+ <sort_order>920</sort_order>
1406
+ <show_in_default>1</show_in_default>
1407
+ <show_in_website>1</show_in_website>
1408
+ <show_in_store>0</show_in_store>
1409
+ <depends>
1410
+ <allow_fraud_screening>1</allow_fraud_screening>
1411
+ </depends>
1412
+ </rsg_data_billing_zip_code>
1413
+ </fields>
1414
+ </datacash_hcc>
1415
+ <datacash_api translate="label,comment" module="dpg">
1416
+ <label>DataCash :: API</label>
1417
+ <frontend_type>text</frontend_type>
1418
+ <sort_order>3000</sort_order>
1419
+ <show_in_default>1</show_in_default>
1420
+ <show_in_website>1</show_in_website>
1421
+ <show_in_store>1</show_in_store>
1422
+ <fields>
1423
+ <active translate="label">
1424
+ <label>Enabled</label>
1425
+ <frontend_type>select</frontend_type>
1426
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1427
+ <sort_order>0</sort_order>
1428
+ <show_in_default>1</show_in_default>
1429
+ <show_in_website>1</show_in_website>
1430
+ <show_in_store>1</show_in_store>
1431
+ </active>
1432
+ <title translate="label">
1433
+ <label>Title</label>
1434
+ <frontend_type>text</frontend_type>
1435
+ <sort_order>10</sort_order>
1436
+ <show_in_default>1</show_in_default>
1437
+ <show_in_website>1</show_in_website>
1438
+ <show_in_store>1</show_in_store>
1439
+ </title>
1440
+ <order_status translate="label">
1441
+ <label>New Order Status</label>
1442
+ <frontend_type>select</frontend_type>
1443
+ <source_model>adminhtml/system_config_source_order_status</source_model>
1444
+ <sort_order>20</sort_order>
1445
+ <show_in_default>1</show_in_default>
1446
+ <show_in_website>1</show_in_website>
1447
+ <show_in_store>1</show_in_store>
1448
+ </order_status>
1449
+ <payment_action>
1450
+ <label>Payment Action</label>
1451
+ <frontend_type>select</frontend_type>
1452
+ <source_model>dpg/source_authtypes</source_model>
1453
+ <sort_order>30</sort_order>
1454
+ <show_in_default>1</show_in_default>
1455
+ <show_in_website>1</show_in_website>
1456
+ <show_in_store>0</show_in_store>
1457
+ </payment_action>
1458
+ <allowspecific translate="label">
1459
+ <label>Payment Applicable From</label>
1460
+ <frontend_type>select</frontend_type>
1461
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
1462
+ <sort_order>40</sort_order>
1463
+ <show_in_default>1</show_in_default>
1464
+ <show_in_website>1</show_in_website>
1465
+ <show_in_store>1</show_in_store>
1466
+ </allowspecific>
1467
+ <sort_order translate="label">
1468
+ <label>Sort Order</label>
1469
+ <frontend_type>text</frontend_type>
1470
+ <sort_order>45</sort_order>
1471
+ <show_in_default>1</show_in_default>
1472
+ <show_in_website>1</show_in_website>
1473
+ <show_in_store>0</show_in_store>
1474
+ </sort_order>
1475
+ <specificcountry translate="label">
1476
+ <label>Countries Payment Applicable From</label>
1477
+ <frontend_type>multiselect</frontend_type>
1478
+ <source_model>adminhtml/system_config_source_country</source_model>
1479
+ <sort_order>50</sort_order>
1480
+ <show_in_default>1</show_in_default>
1481
+ <show_in_website>1</show_in_website>
1482
+ <show_in_store>1</show_in_store>
1483
+ <depends>
1484
+ <allowspecific>1</allowspecific>
1485
+ </depends>
1486
+ </specificcountry>
1487
+ <heading_merchant translate="label">
1488
+ <label>DataCash Integration</label>
1489
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1490
+ <sort_order>60</sort_order>
1491
+ <show_in_default>1</show_in_default>
1492
+ <show_in_website>1</show_in_website>
1493
+ <show_in_store>1</show_in_store>
1494
+ </heading_merchant>
1495
+ <merchant_id>
1496
+ <label>Merchant ID</label>
1497
+ <comment><![CDATA[
1498
+ Used when posting data from Magento to DataCash. <br/>
1499
+ Supplied by DataCash when you setup your account.
1500
+ ]]></comment>
1501
+ <frontend_type>text</frontend_type>
1502
+ <sort_order>70</sort_order>
1503
+ <show_in_default>1</show_in_default>
1504
+ <show_in_website>1</show_in_website>
1505
+ <show_in_store>1</show_in_store>
1506
+ </merchant_id>
1507
+ <merchant_password translate="label">
1508
+ <label>Merchant Key</label>
1509
+ <comment><![CDATA[
1510
+ Used when posting data from Magento to DataCash. <br/>
1511
+ Supplied by DataCash when you setup your account. <br/>
1512
+ This will be reset every 12 months and will need to be updated.
1513
+ ]]></comment>
1514
+ <frontend_type>obscure</frontend_type>
1515
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
1516
+ <sort_order>80</sort_order>
1517
+ <show_in_default>1</show_in_default>
1518
+ <show_in_website>1</show_in_website>
1519
+ <show_in_store>1</show_in_store>
1520
+ </merchant_password>
1521
+ <!-- T3M is depricated in favor of RSG -->
1522
+ <!--
1523
+ <allow_t3m>
1524
+ <label>Enable DataCash Fraud Services</label>
1525
+ <frontend_type>select</frontend_type>
1526
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1527
+ <sort_order>95</sort_order>
1528
+ <show_in_default>1</show_in_default>
1529
+ <show_in_website>1</show_in_website>
1530
+ <show_in_store>0</show_in_store>
1531
+ </allow_t3m>
1532
+ <t3m_use_ssl_callback translate="label">
1533
+ <label>Use SSL for DataCash Fraud Services callback</label>
1534
+ <comment><![CDATA[
1535
+ DataCash Fraud Services will respond to a secure url if this option is checked.
1536
+ ]]>
1537
+ </comment>
1538
+ <frontend_type>select</frontend_type>
1539
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1540
+ <sort_order>96</sort_order>
1541
+ <show_in_default>1</show_in_default>
1542
+ <show_in_website>1</show_in_website>
1543
+ <show_in_store>0</show_in_store>
1544
+ <depends>
1545
+ <allow_t3m>1</allow_t3m>
1546
+ </depends>
1547
+ </t3m_use_ssl_callback>
1548
+ -->
1549
+ <!--<line_items_enabled translate="label">
1550
+ <label>Send Line Items</label>
1551
+ <comment><![CDATA[
1552
+ Enabling this will send line item data to DataCash<br/>
1553
+ <strong>Will impose limitations for partial fulfilment and refunds</strong>
1554
+ ]]></comment>
1555
+ <frontend_type>select</frontend_type>
1556
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1557
+ <sort_order>90</sort_order>
1558
+ <show_in_default>1</show_in_default>
1559
+ <show_in_website>1</show_in_website>
1560
+ <show_in_store>0</show_in_store>
1561
+ </line_items_enabled>-->
1562
+ <allow_tokenizer>
1563
+ <label>Enable DataCash Tokenised Cards</label>
1564
+ <comment><![CDATA[
1565
+ This allows the users to save and re-use saved cards.
1566
+ ]]></comment>
1567
+ <frontend_type>select</frontend_type>
1568
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1569
+ <sort_order>97</sort_order>
1570
+ <show_in_default>1</show_in_default>
1571
+ <show_in_website>1</show_in_website>
1572
+ <show_in_store>0</show_in_store>
1573
+ </allow_tokenizer>
1574
+ <debug translate="label">
1575
+ <label>Debug</label>
1576
+ <comment><![CDATA[
1577
+ Enable additional log output for payment processes
1578
+ ]]></comment>
1579
+ <frontend_type>select</frontend_type>
1580
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1581
+ <sort_order>100</sort_order>
1582
+ <show_in_default>1</show_in_default>
1583
+ <show_in_website>1</show_in_website>
1584
+ <show_in_store>0</show_in_store>
1585
+ </debug>
1586
+ <sandbox translate="label">
1587
+ <label>Gateway Mode</label>
1588
+ <comment><![CDATA[
1589
+ Choose service mode.
1590
+ ]]></comment>
1591
+ <frontend_type>select</frontend_type>
1592
+ <source_model>dpg/source_gatewayMode</source_model>
1593
+ <sort_order>110</sort_order>
1594
+ <show_in_default>1</show_in_default>
1595
+ <show_in_website>1</show_in_website>
1596
+ <show_in_store>0</show_in_store>
1597
+ </sandbox>
1598
+ <heading_card_settings translate="label">
1599
+ <label>Credit Card Settings</label>
1600
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1601
+ <sort_order>120</sort_order>
1602
+ <show_in_default>1</show_in_default>
1603
+ <show_in_website>1</show_in_website>
1604
+ <show_in_store>1</show_in_store>
1605
+ </heading_card_settings>
1606
+ <cctypes translate="label">
1607
+ <label>Credit Card Types</label>
1608
+ <frontend_type>multiselect</frontend_type>
1609
+ <source_model>adminhtml/system_config_source_payment_cctype</source_model>
1610
+ <sort_order>130</sort_order>
1611
+ <show_in_default>1</show_in_default>
1612
+ <show_in_website>1</show_in_website>
1613
+ <show_in_store>1</show_in_store>
1614
+ </cctypes>
1615
+ <heading_useccv translate="label">
1616
+ <label>CV2</label>
1617
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1618
+ <sort_order>135</sort_order>
1619
+ <show_in_default>1</show_in_default>
1620
+ <show_in_website>1</show_in_website>
1621
+ <show_in_store>0</show_in_store>
1622
+ </heading_useccv>
1623
+ <useccv translate="label">
1624
+ <label>Request CV2 Card Security Code</label>
1625
+ <frontend_type>select</frontend_type>
1626
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1627
+ <sort_order>140</sort_order>
1628
+ <show_in_default>1</show_in_default>
1629
+ <show_in_website>1</show_in_website>
1630
+ <show_in_store>0</show_in_store>
1631
+ </useccv>
1632
+ <useccv_advanced translate="label">
1633
+ <label>Use Extended CV2 Policy</label>
1634
+ <frontend_type>select</frontend_type>
1635
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1636
+ <sort_order>150</sort_order>
1637
+ <show_in_default>1</show_in_default>
1638
+ <show_in_website>1</show_in_website>
1639
+ <show_in_store>0</show_in_store>
1640
+ <depends>
1641
+ <useccv>1</useccv>
1642
+ </depends>
1643
+ </useccv_advanced>
1644
+ <heading_extpol_cv2policy translate="label">
1645
+ <label>Extended Policy - CV2</label>
1646
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1647
+ <sort_order>160</sort_order>
1648
+ <show_in_default>1</show_in_default>
1649
+ <show_in_website>1</show_in_website>
1650
+ <show_in_store>0</show_in_store>
1651
+ <depends>
1652
+ <useccv_advanced>1</useccv_advanced>
1653
+ </depends>
1654
+ </heading_extpol_cv2policy>
1655
+ <extpol_cv2policy_notprovided translate="label">
1656
+ <label>Not provided</label>
1657
+ <frontend_type>select</frontend_type>
1658
+ <source_model>dpg/source_acceptreject</source_model>
1659
+ <sort_order>170</sort_order>
1660
+ <show_in_default>1</show_in_default>
1661
+ <show_in_website>1</show_in_website>
1662
+ <show_in_store>0</show_in_store>
1663
+ <depends>
1664
+ <useccv_advanced>1</useccv_advanced>
1665
+ </depends>
1666
+ </extpol_cv2policy_notprovided>
1667
+ <extpol_cv2policy_notchecked translate="label">
1668
+ <label>Not checked</label>
1669
+ <frontend_type>select</frontend_type>
1670
+ <source_model>dpg/source_acceptreject</source_model>
1671
+ <sort_order>180</sort_order>
1672
+ <show_in_default>1</show_in_default>
1673
+ <show_in_website>1</show_in_website>
1674
+ <show_in_store>0</show_in_store>
1675
+ <depends>
1676
+ <useccv_advanced>1</useccv_advanced>
1677
+ </depends>
1678
+ </extpol_cv2policy_notchecked>
1679
+ <extpol_cv2policy_matched translate="label">
1680
+ <label>Matched</label>
1681
+ <frontend_type>select</frontend_type>
1682
+ <source_model>dpg/source_acceptreject</source_model>
1683
+ <sort_order>190</sort_order>
1684
+ <show_in_default>1</show_in_default>
1685
+ <show_in_website>1</show_in_website>
1686
+ <show_in_store>0</show_in_store>
1687
+ <depends>
1688
+ <useccv_advanced>1</useccv_advanced>
1689
+ </depends>
1690
+ </extpol_cv2policy_matched>
1691
+ <extpol_cv2policy_notmatched translate="label">
1692
+ <label>Not matched</label>
1693
+ <frontend_type>select</frontend_type>
1694
+ <source_model>dpg/source_acceptreject</source_model>
1695
+ <sort_order>200</sort_order>
1696
+ <show_in_default>1</show_in_default>
1697
+ <show_in_website>1</show_in_website>
1698
+ <show_in_store>0</show_in_store>
1699
+ <depends>
1700
+ <useccv_advanced>1</useccv_advanced>
1701
+ </depends>
1702
+ </extpol_cv2policy_notmatched>
1703
+ <extpol_cv2policy_partialmatch translate="label">
1704
+ <label>Partial match</label>
1705
+ <frontend_type>select</frontend_type>
1706
+ <source_model>dpg/source_acceptreject</source_model>
1707
+ <sort_order>210</sort_order>
1708
+ <show_in_default>1</show_in_default>
1709
+ <show_in_website>1</show_in_website>
1710
+ <show_in_store>0</show_in_store>
1711
+ <depends>
1712
+ <useccv_advanced>1</useccv_advanced>
1713
+ </depends>
1714
+ </extpol_cv2policy_partialmatch>
1715
+ <heading_extpol_postcode translate="label">
1716
+ <label>Extended Policy - Postcode</label>
1717
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1718
  <sort_order>230</sort_order>
1719
  <show_in_default>1</show_in_default>
1720
  <show_in_website>1</show_in_website>
1721
  <show_in_store>0</show_in_store>
1722
  <depends>
1723
+ <useccv_advanced>1</useccv_advanced>
1724
+ </depends>
1725
+ </heading_extpol_postcode>
1726
+ <extpol_postcode_notprovided translate="label">
1727
+ <label>Not provided</label>
1728
+ <frontend_type>select</frontend_type>
1729
+ <source_model>dpg/source_acceptreject</source_model>
1730
+ <sort_order>240</sort_order>
1731
+ <show_in_default>1</show_in_default>
1732
+ <show_in_website>1</show_in_website>
1733
+ <show_in_store>0</show_in_store>
1734
+ <depends>
1735
+ <useccv_advanced>1</useccv_advanced>
1736
+ </depends>
1737
+ </extpol_postcode_notprovided>
1738
+ <extpol_postcode_notchecked translate="label">
1739
+ <label>Not checked</label>
1740
+ <frontend_type>select</frontend_type>
1741
+ <source_model>dpg/source_acceptreject</source_model>
1742
+ <sort_order>250</sort_order>
1743
+ <show_in_default>1</show_in_default>
1744
+ <show_in_website>1</show_in_website>
1745
+ <show_in_store>0</show_in_store>
1746
+ <depends>
1747
+ <useccv_advanced>1</useccv_advanced>
1748
+ </depends>
1749
+ </extpol_postcode_notchecked>
1750
+ <extpol_postcode_matched translate="label">
1751
+ <label>Matched</label>
1752
+ <frontend_type>select</frontend_type>
1753
+ <source_model>dpg/source_acceptreject</source_model>
1754
+ <sort_order>260</sort_order>
1755
+ <show_in_default>1</show_in_default>
1756
+ <show_in_website>1</show_in_website>
1757
+ <show_in_store>0</show_in_store>
1758
+ <depends>
1759
+ <useccv_advanced>1</useccv_advanced>
1760
+ </depends>
1761
+ </extpol_postcode_matched>
1762
+ <extpol_postcode_notmatched translate="label">
1763
+ <label>Not matched</label>
1764
+ <frontend_type>select</frontend_type>
1765
+ <source_model>dpg/source_acceptreject</source_model>
1766
+ <sort_order>270</sort_order>
1767
+ <show_in_default>1</show_in_default>
1768
+ <show_in_website>1</show_in_website>
1769
+ <show_in_store>0</show_in_store>
1770
+ <depends>
1771
+ <useccv_advanced>1</useccv_advanced>
1772
+ </depends>
1773
+ </extpol_postcode_notmatched>
1774
+ <extpol_postcode_partialmatch translate="label">
1775
+ <label>Partial match</label>
1776
+ <frontend_type>select</frontend_type>
1777
+ <source_model>dpg/source_acceptreject</source_model>
1778
+ <sort_order>280</sort_order>
1779
+ <show_in_default>1</show_in_default>
1780
+ <show_in_website>1</show_in_website>
1781
+ <show_in_store>0</show_in_store>
1782
+ <depends>
1783
+ <useccv_advanced>1</useccv_advanced>
1784
+ </depends>
1785
+ </extpol_postcode_partialmatch>
1786
+ <heading_extpol_address translate="label">
1787
+ <label>Extended Policy - Address</label>
1788
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1789
+ <sort_order>300</sort_order>
1790
+ <show_in_default>1</show_in_default>
1791
+ <show_in_website>1</show_in_website>
1792
+ <show_in_store>0</show_in_store>
1793
+ <depends>
1794
+ <useccv_advanced>1</useccv_advanced>
1795
+ </depends>
1796
+ </heading_extpol_address>
1797
+ <extpol_address_notprovided translate="label">
1798
+ <label>Not provided</label>
1799
+ <frontend_type>select</frontend_type>
1800
+ <source_model>dpg/source_acceptreject</source_model>
1801
+ <sort_order>310</sort_order>
1802
+ <show_in_default>1</show_in_default>
1803
+ <show_in_website>1</show_in_website>
1804
+ <show_in_store>0</show_in_store>
1805
+ <depends>
1806
+ <useccv_advanced>1</useccv_advanced>
1807
+ </depends>
1808
+ </extpol_address_notprovided>
1809
+ <extpol_address_notchecked translate="label">
1810
+ <label>Not checked</label>
1811
+ <frontend_type>select</frontend_type>
1812
+ <source_model>dpg/source_acceptreject</source_model>
1813
+ <sort_order>320</sort_order>
1814
+ <show_in_default>1</show_in_default>
1815
+ <show_in_website>1</show_in_website>
1816
+ <show_in_store>0</show_in_store>
1817
+ <depends>
1818
+ <useccv_advanced>1</useccv_advanced>
1819
+ </depends>
1820
+ </extpol_address_notchecked>
1821
+ <extpol_address_matched translate="label">
1822
+ <label>Matched</label>
1823
+ <frontend_type>select</frontend_type>
1824
+ <source_model>dpg/source_acceptreject</source_model>
1825
+ <sort_order>330</sort_order>
1826
+ <show_in_default>1</show_in_default>
1827
+ <show_in_website>1</show_in_website>
1828
+ <show_in_store>0</show_in_store>
1829
+ <depends>
1830
+ <useccv_advanced>1</useccv_advanced>
1831
+ </depends>
1832
+ </extpol_address_matched>
1833
+ <extpol_address_notmatched translate="label">
1834
+ <label>Not matched</label>
1835
+ <frontend_type>select</frontend_type>
1836
+ <source_model>dpg/source_acceptreject</source_model>
1837
+ <sort_order>340</sort_order>
1838
+ <show_in_default>1</show_in_default>
1839
+ <show_in_website>1</show_in_website>
1840
+ <show_in_store>0</show_in_store>
1841
+ <depends>
1842
+ <useccv_advanced>1</useccv_advanced>
1843
+ </depends>
1844
+ </extpol_address_notmatched>
1845
+ <extpol_address_partialmatch translate="label">
1846
+ <label>Partial match</label>
1847
+ <frontend_type>select</frontend_type>
1848
+ <source_model>dpg/source_acceptreject</source_model>
1849
+ <sort_order>350</sort_order>
1850
+ <show_in_default>1</show_in_default>
1851
+ <show_in_website>1</show_in_website>
1852
+ <show_in_store>0</show_in_store>
1853
+ <depends>
1854
+ <useccv_advanced>1</useccv_advanced>
1855
+ </depends>
1856
+ </extpol_address_partialmatch>
1857
+ <heading_3dsecure translate="label">
1858
+ <label>3D Secure</label>
1859
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1860
+ <sort_order>400</sort_order>
1861
+ <show_in_default>1</show_in_default>
1862
+ <show_in_website>1</show_in_website>
1863
+ <show_in_store>1</show_in_store>
1864
+ </heading_3dsecure>
1865
+ <centinel translate="label">
1866
+ <label>3D Secure Card Validation</label>
1867
+ <frontend_type>select</frontend_type>
1868
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1869
+ <sort_order>410</sort_order>
1870
+ <show_in_default>1</show_in_default>
1871
+ <show_in_website>1</show_in_website>
1872
+ <show_in_store>1</show_in_store>
1873
+ </centinel>
1874
+ <heading_3dsecure_behaviours translate="label">
1875
+ <label>3-D Secure Behaviours</label>
1876
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1877
+ <sort_order>420</sort_order>
1878
+ <show_in_default>1</show_in_default>
1879
+ <show_in_website>1</show_in_website>
1880
+ <show_in_store>1</show_in_store>
1881
+ <depends>
1882
+ <centinel>1</centinel>
1883
+ </depends>
1884
+ </heading_3dsecure_behaviours>
1885
+ <threedsecure_behaviour_159 translate="label">
1886
+ <label>DPG Response 159 - No VERes from DS</label>
1887
+ <comment><![CDATA[
1888
+ If DataCash does not receive a response from the <br />
1889
+ Directory Service, the card cannot be validated as <br />
1890
+ participating in 3-D Secure. In these circumstances <br />
1891
+ please choose how you would like to continue.
1892
+ ]]></comment>
1893
+ <frontend_type>select</frontend_type>
1894
+ <source_model>dpg/source_threedstypes</source_model>
1895
+ <sort_order>430</sort_order>
1896
+ <show_in_default>1</show_in_default>
1897
+ <show_in_website>1</show_in_website>
1898
+ <show_in_store>1</show_in_store>
1899
+ <depends>
1900
+ <centinel>1</centinel>
1901
+ </depends>
1902
+ </threedsecure_behaviour_159>
1903
+ <threedsecure_behaviour_160 translate="label">
1904
+ <label>DPG Response 160 - Invalid VERes from DS</label>
1905
+ <comment><![CDATA[
1906
+ If DataCash does receive a response from the Directory Service <br />
1907
+ but it is invalid, it is not possible to ascertain if the <br />
1908
+ card is participating in 3-D Secure. In these circumstances <br />
1909
+ please choose how you would like to continue.
1910
+ ]]></comment>
1911
+ <frontend_type>select</frontend_type>
1912
+ <source_model>dpg/source_threedstypes</source_model>
1913
+ <sort_order>440</sort_order>
1914
+ <show_in_default>1</show_in_default>
1915
+ <show_in_website>1</show_in_website>
1916
+ <show_in_store>1</show_in_store>
1917
+ <depends>
1918
+ <centinel>1</centinel>
1919
+ </depends>
1920
+ </threedsecure_behaviour_160>
1921
+ <threedsecure_behaviour_173 translate="label">
1922
+ <label>DPG Response 173 - Card not Enrolled in Cache</label>
1923
+ <comment><![CDATA[
1924
+ Card is not in cache so no 3-D Secure Enrollment Check Request is submitted. <br />
1925
+ In these circumstances please choose how you would like to continue.
1926
+ ]]></comment>
1927
+ <frontend_type>select</frontend_type>
1928
+ <source_model>dpg/source_threedstypes</source_model>
1929
+ <sort_order>450</sort_order>
1930
+ <show_in_default>1</show_in_default>
1931
+ <show_in_website>1</show_in_website>
1932
+ <show_in_store>1</show_in_store>
1933
+ <depends>
1934
+ <centinel>1</centinel>
1935
+ </depends>
1936
+ </threedsecure_behaviour_173>
1937
+ <threedsecure_behaviour_187 translate="label">
1938
+ <label>DPG Response 187 - Unable to Verify</label>
1939
+ <comment><![CDATA[
1940
+ If DataCash is not able to communicate with the Directory Service <br />
1941
+ there is no way of establishing if the card is participating in 3-D Secure. <br />
1942
+ In these circumstances please choose how you would like to continue.
1943
+ ]]></comment>
1944
+ <frontend_type>select</frontend_type>
1945
+ <source_model>dpg/source_threedstypes</source_model>
1946
+ <sort_order>460</sort_order>
1947
+ <show_in_default>1</show_in_default>
1948
+ <show_in_website>1</show_in_website>
1949
+ <show_in_store>1</show_in_store>
1950
+ <depends>
1951
+ <centinel>1</centinel>
1952
+ </depends>
1953
+ </threedsecure_behaviour_187>
1954
+
1955
+ <rsg_heading translate="label">
1956
+ <label>Fraud screening</label>
1957
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1958
+ <sort_order>499</sort_order>
1959
+ <show_in_default>1</show_in_default>
1960
+ <show_in_website>1</show_in_website>
1961
+ <show_in_store>0</show_in_store>
1962
+ </rsg_heading>
1963
+ <allow_fraud_screening>
1964
+ <label>Enable DataCash Fraud Services</label>
1965
+ <frontend_type>select</frontend_type>
1966
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1967
+ <sort_order>500</sort_order>
1968
+ <show_in_default>1</show_in_default>
1969
+ <show_in_website>1</show_in_website>
1970
+ <show_in_store>0</show_in_store>
1971
+ </allow_fraud_screening>
1972
+ <rsg_service_mode translate="label">
1973
+ <label>Fraud Screening Mode</label>
1974
+ <frontend_type>select</frontend_type>
1975
+ <source_model>dpg/source_rsgServiceTypes</source_model>
1976
+ <sort_order>510</sort_order>
1977
+ <show_in_default>1</show_in_default>
1978
+ <show_in_website>1</show_in_website>
1979
+ <show_in_store>0</show_in_store>
1980
+ <depends>
1981
+ <allow_fraud_screening>1</allow_fraud_screening>
1982
+ </depends>
1983
+ </rsg_service_mode>
1984
+
1985
+ <!-- CUSTOMER -->
1986
+ <rsg_data_customer_heading translate="label">
1987
+ <label>Customer data to screening</label>
1988
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
1989
+ <sort_order>520</sort_order>
1990
+ <show_in_default>1</show_in_default>
1991
+ <show_in_website>1</show_in_website>
1992
+ <show_in_store>0</show_in_store>
1993
+ <depends>
1994
+ <allow_fraud_screening>1</allow_fraud_screening>
1995
+ </depends>
1996
+ </rsg_data_customer_heading>
1997
+ <rsg_data_customer_first_name translate="label">
1998
+ <label>First Name</label>
1999
+ <frontend_type>select</frontend_type>
2000
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2001
+ <sort_order>530</sort_order>
2002
+ <show_in_default>1</show_in_default>
2003
+ <show_in_website>1</show_in_website>
2004
+ <show_in_store>0</show_in_store>
2005
+ <depends>
2006
+ <allow_fraud_screening>1</allow_fraud_screening>
2007
+ </depends>
2008
+ </rsg_data_customer_first_name>
2009
+ <rsg_data_customer_surname translate="label">
2010
+ <label>Surname</label>
2011
+ <frontend_type>select</frontend_type>
2012
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2013
+ <sort_order>540</sort_order>
2014
+ <show_in_default>1</show_in_default>
2015
+ <show_in_website>1</show_in_website>
2016
+ <show_in_store>0</show_in_store>
2017
+ <depends>
2018
+ <allow_fraud_screening>1</allow_fraud_screening>
2019
+ </depends>
2020
+ </rsg_data_customer_surname>
2021
+ <rsg_data_customer_ip_address>
2022
+ <label>IP address</label>
2023
+ <frontend_type>select</frontend_type>
2024
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2025
+ <sort_order>550</sort_order>
2026
+ <show_in_default>1</show_in_default>
2027
+ <show_in_website>1</show_in_website>
2028
+ <show_in_store>0</show_in_store>
2029
+ <depends>
2030
+ <allow_fraud_screening>1</allow_fraud_screening>
2031
+ </depends>
2032
+ </rsg_data_customer_ip_address>
2033
+ <rsg_data_customer_email_address>
2034
+ <label>Customer Email</label>
2035
+ <frontend_type>select</frontend_type>
2036
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2037
+ <sort_order>555</sort_order>
2038
+ <show_in_default>1</show_in_default>
2039
+ <show_in_website>1</show_in_website>
2040
+ <show_in_store>0</show_in_store>
2041
+ <depends>
2042
+ <allow_fraud_screening>1</allow_fraud_screening>
2043
+ </depends>
2044
+ </rsg_data_customer_email_address>
2045
+ <rsg_data_customer_user_id>
2046
+ <label>Customer ID</label>
2047
+ <frontend_type>select</frontend_type>
2048
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2049
+ <sort_order>560</sort_order>
2050
+ <show_in_default>1</show_in_default>
2051
+ <show_in_website>1</show_in_website>
2052
+ <show_in_store>0</show_in_store>
2053
+ <depends>
2054
+ <allow_fraud_screening>1</allow_fraud_screening>
2055
+ </depends>
2056
+ </rsg_data_customer_user_id>
2057
+ <rsg_data_customer_telephone>
2058
+ <label>Telephone</label>
2059
+ <frontend_type>select</frontend_type>
2060
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2061
+ <sort_order>570</sort_order>
2062
+ <show_in_default>1</show_in_default>
2063
+ <show_in_website>1</show_in_website>
2064
+ <show_in_store>0</show_in_store>
2065
+ <depends>
2066
+ <allow_fraud_screening>1</allow_fraud_screening>
2067
+ </depends>
2068
+ </rsg_data_customer_telephone>
2069
+ <rsg_data_customer_address_line1>
2070
+ <label>Address line 1</label>
2071
+ <frontend_type>select</frontend_type>
2072
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2073
+ <sort_order>580</sort_order>
2074
+ <show_in_default>1</show_in_default>
2075
+ <show_in_website>1</show_in_website>
2076
+ <show_in_store>0</show_in_store>
2077
+ <depends>
2078
+ <allow_fraud_screening>1</allow_fraud_screening>
2079
+ </depends>
2080
+ </rsg_data_customer_address_line1>
2081
+ <rsg_data_customer_address_line2>
2082
+ <label>Address line 2</label>
2083
+ <frontend_type>select</frontend_type>
2084
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2085
+ <sort_order>590</sort_order>
2086
+ <show_in_default>1</show_in_default>
2087
+ <show_in_website>1</show_in_website>
2088
+ <show_in_store>0</show_in_store>
2089
+ <depends>
2090
+ <allow_fraud_screening>1</allow_fraud_screening>
2091
+ </depends>
2092
+ </rsg_data_customer_address_line2>
2093
+ <rsg_data_customer_city>
2094
+ <label>City</label>
2095
+ <frontend_type>select</frontend_type>
2096
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2097
+ <sort_order>600</sort_order>
2098
+ <show_in_default>1</show_in_default>
2099
+ <show_in_website>1</show_in_website>
2100
+ <show_in_store>0</show_in_store>
2101
+ <depends>
2102
+ <allow_fraud_screening>1</allow_fraud_screening>
2103
+ </depends>
2104
+ </rsg_data_customer_city>
2105
+ <rsg_data_customer_state_province>
2106
+ <label>State/Province</label>
2107
+ <frontend_type>select</frontend_type>
2108
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2109
+ <sort_order>610</sort_order>
2110
+ <show_in_default>1</show_in_default>
2111
+ <show_in_website>1</show_in_website>
2112
+ <show_in_store>0</show_in_store>
2113
+ <depends>
2114
+ <allow_fraud_screening>1</allow_fraud_screening>
2115
+ </depends>
2116
+ </rsg_data_customer_state_province>
2117
+ <rsg_data_customer_country>
2118
+ <label>Country</label>
2119
+ <frontend_type>select</frontend_type>
2120
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2121
+ <sort_order>620</sort_order>
2122
+ <show_in_default>1</show_in_default>
2123
+ <show_in_website>1</show_in_website>
2124
+ <show_in_store>0</show_in_store>
2125
+ <depends>
2126
+ <allow_fraud_screening>1</allow_fraud_screening>
2127
+ </depends>
2128
+ </rsg_data_customer_country>
2129
+ <rsg_data_customer_zip_code>
2130
+ <label>Zip code</label>
2131
+ <frontend_type>select</frontend_type>
2132
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2133
+ <sort_order>630</sort_order>
2134
+ <show_in_default>1</show_in_default>
2135
+ <show_in_website>1</show_in_website>
2136
+ <show_in_store>0</show_in_store>
2137
+ <depends>
2138
+ <allow_fraud_screening>1</allow_fraud_screening>
2139
+ </depends>
2140
+ </rsg_data_customer_zip_code>
2141
+
2142
+ <!-- SHIPPING -->
2143
+ <rsg_data_shipping_heading translate="label">
2144
+ <label>Shipping data to screening</label>
2145
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
2146
+ <sort_order>640</sort_order>
2147
+ <show_in_default>1</show_in_default>
2148
+ <show_in_website>1</show_in_website>
2149
+ <show_in_store>0</show_in_store>
2150
+ <depends>
2151
+ <allow_fraud_screening>1</allow_fraud_screening>
2152
  </depends>
2153
+ </rsg_data_shipping_heading>
2154
+ <rsg_data_shipping_first_name translate="label">
2155
+ <label>Title</label>
2156
  <frontend_type>select</frontend_type>
2157
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2158
+ <sort_order>650</sort_order>
2159
  <show_in_default>1</show_in_default>
2160
  <show_in_website>1</show_in_website>
2161
  <show_in_store>0</show_in_store>
2162
  <depends>
2163
+ <allow_fraud_screening>1</allow_fraud_screening>
2164
  </depends>
2165
+ </rsg_data_shipping_first_name>
2166
+ <rsg_data_shipping_surname translate="label">
2167
+ <label>Surname</label>
2168
  <frontend_type>select</frontend_type>
2169
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2170
+ <sort_order>660</sort_order>
2171
  <show_in_default>1</show_in_default>
2172
  <show_in_website>1</show_in_website>
2173
  <show_in_store>0</show_in_store>
2174
  <depends>
2175
+ <allow_fraud_screening>1</allow_fraud_screening>
2176
  </depends>
2177
+ </rsg_data_shipping_surname>
2178
+ <rsg_data_shipping_address_line1>
2179
+ <label>Address line 1</label>
2180
  <frontend_type>select</frontend_type>
2181
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2182
+ <sort_order>670</sort_order>
2183
  <show_in_default>1</show_in_default>
2184
  <show_in_website>1</show_in_website>
2185
  <show_in_store>0</show_in_store>
2186
  <depends>
2187
+ <allow_fraud_screening>1</allow_fraud_screening>
2188
+ </depends>
2189
+ </rsg_data_shipping_address_line1>
2190
+ <rsg_data_shipping_address_line2>
2191
+ <label>Address line 2</label>
2192
+ <frontend_type>select</frontend_type>
2193
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2194
+ <sort_order>680</sort_order>
2195
+ <show_in_default>1</show_in_default>
2196
+ <show_in_website>1</show_in_website>
2197
+ <show_in_store>0</show_in_store>
2198
+ <depends>
2199
+ <allow_fraud_screening>1</allow_fraud_screening>
2200
+ </depends>
2201
+ </rsg_data_shipping_address_line2>
2202
+ <rsg_data_shipping_city>
2203
+ <label>City</label>
2204
+ <frontend_type>select</frontend_type>
2205
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2206
+ <sort_order>690</sort_order>
2207
+ <show_in_default>1</show_in_default>
2208
+ <show_in_website>1</show_in_website>
2209
+ <show_in_store>0</show_in_store>
2210
+ <depends>
2211
+ <allow_fraud_screening>1</allow_fraud_screening>
2212
+ </depends>
2213
+ </rsg_data_shipping_city>
2214
+ <rsg_data_shipping_state_province>
2215
+ <label>State/Province</label>
2216
+ <frontend_type>select</frontend_type>
2217
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2218
+ <sort_order>700</sort_order>
2219
+ <show_in_default>1</show_in_default>
2220
+ <show_in_website>1</show_in_website>
2221
+ <show_in_store>0</show_in_store>
2222
+ <depends>
2223
+ <allow_fraud_screening>1</allow_fraud_screening>
2224
+ </depends>
2225
+ </rsg_data_shipping_state_province>
2226
+ <rsg_data_shipping_country>
2227
+ <label>Country</label>
2228
+ <frontend_type>select</frontend_type>
2229
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2230
+ <sort_order>710</sort_order>
2231
+ <show_in_default>1</show_in_default>
2232
+ <show_in_website>1</show_in_website>
2233
+ <show_in_store>0</show_in_store>
2234
+ <depends>
2235
+ <allow_fraud_screening>1</allow_fraud_screening>
2236
+ </depends>
2237
+ </rsg_data_shipping_country>
2238
+ <rsg_data_shipping_zip_code>
2239
+ <label>Zip code</label>
2240
+ <frontend_type>select</frontend_type>
2241
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2242
+ <sort_order>720</sort_order>
2243
+ <show_in_default>1</show_in_default>
2244
+ <show_in_website>1</show_in_website>
2245
+ <show_in_store>0</show_in_store>
2246
+ <depends>
2247
+ <allow_fraud_screening>1</allow_fraud_screening>
2248
+ </depends>
2249
+ </rsg_data_shipping_zip_code>
2250
+ <rsg_data_shipping_delivery_method>
2251
+ <label>Delivery Method</label>
2252
+ <frontend_type>select</frontend_type>
2253
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2254
+ <sort_order>730</sort_order>
2255
+ <show_in_default>1</show_in_default>
2256
+ <show_in_website>1</show_in_website>
2257
+ <show_in_store>0</show_in_store>
2258
+ <depends>
2259
+ <allow_fraud_screening>1</allow_fraud_screening>
2260
+ </depends>
2261
+ </rsg_data_shipping_delivery_method>
2262
+
2263
+ <!-- ORDER -->
2264
+ <rsg_data_order_heading translate="label">
2265
+ <label>Order data to screening</label>
2266
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
2267
+ <sort_order>760</sort_order>
2268
+ <show_in_default>1</show_in_default>
2269
+ <show_in_website>1</show_in_website>
2270
+ <show_in_store>0</show_in_store>
2271
+ <depends>
2272
+ <allow_fraud_screening>1</allow_fraud_screening>
2273
  </depends>
2274
+ </rsg_data_order_heading>
2275
+ <rsg_data_order_time_zone translate="label">
2276
+ <label>Time Zone</label>
2277
  <frontend_type>select</frontend_type>
2278
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2279
+ <sort_order>770</sort_order>
2280
  <show_in_default>1</show_in_default>
2281
  <show_in_website>1</show_in_website>
2282
  <show_in_store>0</show_in_store>
2283
  <depends>
2284
+ <allow_fraud_screening>1</allow_fraud_screening>
2285
  </depends>
2286
+ </rsg_data_order_time_zone>
2287
+ <rsg_data_order_discount_value translate="label">
2288
+ <label>Discount value</label>
2289
  <frontend_type>select</frontend_type>
2290
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2291
+ <sort_order>780</sort_order>
2292
  <show_in_default>1</show_in_default>
2293
  <show_in_website>1</show_in_website>
2294
  <show_in_store>0</show_in_store>
2295
  <depends>
2296
+ <allow_fraud_screening>1</allow_fraud_screening>
2297
  </depends>
2298
+ </rsg_data_order_discount_value>
2299
+
2300
+ <!-- LINE ITEM -->
2301
+ <rsg_data_item_heading translate="label">
2302
+ <label>Line item data to screening</label>
2303
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
2304
+ <sort_order>790</sort_order>
2305
  <show_in_default>1</show_in_default>
2306
  <show_in_website>1</show_in_website>
2307
  <show_in_store>0</show_in_store>
2308
  <depends>
2309
+ <allow_fraud_screening>1</allow_fraud_screening>
2310
  </depends>
2311
+ </rsg_data_item_heading>
2312
+ <rsg_data_item_product_code translate="label">
2313
+ <label>SKU</label>
2314
  <frontend_type>select</frontend_type>
2315
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2316
+ <sort_order>800</sort_order>
2317
  <show_in_default>1</show_in_default>
2318
  <show_in_website>1</show_in_website>
2319
  <show_in_store>0</show_in_store>
2320
  <depends>
2321
+ <allow_fraud_screening>1</allow_fraud_screening>
2322
  </depends>
2323
+ </rsg_data_item_product_code>
2324
+ <rsg_data_item_product_description translate="label">
2325
+ <label>Description</label>
2326
  <frontend_type>select</frontend_type>
2327
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2328
+ <sort_order>810</sort_order>
2329
  <show_in_default>1</show_in_default>
2330
  <show_in_website>1</show_in_website>
2331
  <show_in_store>0</show_in_store>
2332
  <depends>
2333
+ <allow_fraud_screening>1</allow_fraud_screening>
2334
  </depends>
2335
+ </rsg_data_item_product_description>
2336
+ <rsg_data_item_product_category translate="label">
2337
+ <label>Category</label>
2338
  <frontend_type>select</frontend_type>
2339
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2340
+ <sort_order>820</sort_order>
2341
  <show_in_default>1</show_in_default>
2342
  <show_in_website>1</show_in_website>
2343
  <show_in_store>0</show_in_store>
2344
  <depends>
2345
+ <allow_fraud_screening>1</allow_fraud_screening>
2346
  </depends>
2347
+ </rsg_data_item_product_category>
2348
+ <rsg_data_item_order_quantity translate="label">
2349
+ <label>Order quantity</label>
2350
  <frontend_type>select</frontend_type>
2351
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2352
+ <sort_order>830</sort_order>
2353
  <show_in_default>1</show_in_default>
2354
  <show_in_website>1</show_in_website>
2355
  <show_in_store>0</show_in_store>
2356
  <depends>
2357
+ <allow_fraud_screening>1</allow_fraud_screening>
2358
  </depends>
2359
+ </rsg_data_item_order_quantity>
2360
+ <rsg_data_item_unit_price translate="label">
2361
+ <label>Unit price</label>
2362
  <frontend_type>select</frontend_type>
2363
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2364
+ <sort_order>840</sort_order>
2365
  <show_in_default>1</show_in_default>
2366
  <show_in_website>1</show_in_website>
2367
  <show_in_store>0</show_in_store>
2368
  <depends>
2369
+ <allow_fraud_screening>1</allow_fraud_screening>
2370
  </depends>
2371
+ </rsg_data_item_unit_price>
2372
+
2373
+ <!-- BILLING -->
2374
+ <rsg_data_billing_heading translate="label">
2375
+ <label>Billing data to screening</label>
2376
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
2377
+ <sort_order>850</sort_order>
2378
  <show_in_default>1</show_in_default>
2379
  <show_in_website>1</show_in_website>
2380
+ <show_in_store>0</show_in_store>
2381
+ <depends>
2382
+ <allow_fraud_screening>1</allow_fraud_screening>
2383
+ </depends>
2384
+ </rsg_data_billing_heading>
2385
+ <rsg_data_billing_name translate="label">
2386
+ <label>Title</label>
2387
  <frontend_type>select</frontend_type>
2388
  <source_model>adminhtml/system_config_source_yesno</source_model>
2389
+ <sort_order>860</sort_order>
2390
  <show_in_default>1</show_in_default>
2391
  <show_in_website>1</show_in_website>
2392
+ <show_in_store>0</show_in_store>
2393
+ <depends>
2394
+ <allow_fraud_screening>1</allow_fraud_screening>
2395
+ </depends>
2396
+ </rsg_data_billing_name>
2397
+ <rsg_data_billing_address_line1>
2398
+ <label>Address line 1</label>
2399
+ <frontend_type>select</frontend_type>
2400
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2401
+ <sort_order>870</sort_order>
2402
  <show_in_default>1</show_in_default>
2403
  <show_in_website>1</show_in_website>
2404
+ <show_in_store>0</show_in_store>
2405
  <depends>
2406
+ <allow_fraud_screening>1</allow_fraud_screening>
2407
+ </depends>
2408
+ </rsg_data_billing_address_line1>
2409
+ <rsg_data_billing_address_line2>
2410
+ <label>Address line 2</label>
 
 
 
 
 
 
2411
  <frontend_type>select</frontend_type>
2412
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2413
+ <sort_order>880</sort_order>
2414
  <show_in_default>1</show_in_default>
2415
  <show_in_website>1</show_in_website>
2416
+ <show_in_store>0</show_in_store>
2417
  <depends>
2418
+ <allow_fraud_screening>1</allow_fraud_screening>
2419
+ </depends>
2420
+ </rsg_data_billing_address_line2>
2421
+ <rsg_data_billing_city>
2422
+ <label>City</label>
 
 
 
 
 
 
2423
  <frontend_type>select</frontend_type>
2424
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2425
+ <sort_order>890</sort_order>
2426
  <show_in_default>1</show_in_default>
2427
  <show_in_website>1</show_in_website>
2428
+ <show_in_store>0</show_in_store>
2429
  <depends>
2430
+ <allow_fraud_screening>1</allow_fraud_screening>
2431
+ </depends>
2432
+ </rsg_data_billing_city>
2433
+ <rsg_data_billing_state_province>
2434
+ <label>State/Province</label>
 
 
 
 
2435
  <frontend_type>select</frontend_type>
2436
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2437
+ <sort_order>900</sort_order>
2438
  <show_in_default>1</show_in_default>
2439
  <show_in_website>1</show_in_website>
2440
+ <show_in_store>0</show_in_store>
2441
  <depends>
2442
+ <allow_fraud_screening>1</allow_fraud_screening>
2443
+ </depends>
2444
+ </rsg_data_billing_state_province>
2445
+ <rsg_data_billing_country>
2446
+ <label>Country</label>
 
 
 
 
 
2447
  <frontend_type>select</frontend_type>
2448
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2449
+ <sort_order>910</sort_order>
2450
  <show_in_default>1</show_in_default>
2451
  <show_in_website>1</show_in_website>
2452
+ <show_in_store>0</show_in_store>
2453
  <depends>
2454
+ <allow_fraud_screening>1</allow_fraud_screening>
2455
+ </depends>
2456
+ </rsg_data_billing_country>
2457
+ <rsg_data_billing_zip_code>
2458
+ <label>Zip code</label>
2459
+ <frontend_type>select</frontend_type>
2460
+ <source_model>adminhtml/system_config_source_yesno</source_model>
2461
+ <sort_order>920</sort_order>
2462
+ <show_in_default>1</show_in_default>
2463
+ <show_in_website>1</show_in_website>
2464
+ <show_in_store>0</show_in_store>
2465
+ <depends>
2466
+ <allow_fraud_screening>1</allow_fraud_screening>
2467
+ </depends>
2468
+ </rsg_data_billing_zip_code>
2469
+
2470
  </fields>
2471
  </datacash_api>
2472
+ <!-- API Prereg is DEPRICATED -->
2473
+ <!--<datacash_apiprereg translate="label,comment" module="dpg">
2474
  <label>DataCash :: API (with pre-registered cards)</label>
2475
  <frontend_type>text</frontend_type>
2476
  <sort_order>4000</sort_order>
2602
  <show_in_store>0</show_in_store>
2603
  </debug>
2604
  <sandbox translate="label">
2605
+ <label>Gateway Mode</label>
2606
  <comment><![CDATA[
2607
+ Choose service mode.
2608
+ ]]></comment>
2609
  <frontend_type>select</frontend_type>
2610
+ <source_model>dpg/source_gatewayMode</source_model>
2611
  <sort_order>110</sort_order>
2612
  <show_in_default>1</show_in_default>
2613
  <show_in_website>1</show_in_website>
2614
  <show_in_store>0</show_in_store>
2615
+ </sandbox>
2616
  <heading_card_settings translate="label">
2617
  <label>Credit Card Settings</label>
2618
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
2970
  </depends>
2971
  </threedsecure_behaviour_187>
2972
  </fields>
2973
+ </datacash_apiprereg>-->
2974
  </groups>
2975
  </payment>
2976
  </sections>
app/code/community/DataCash/Dpg/sql/datacash_dpg_setup/mysql4-upgrade-1.0.1-1.1.0.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * DataCash
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@datacash.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade this module to newer
18
+ * versions in the future. If you wish to customize this module for your
19
+ * needs please refer to http://testserver.datacash.com/software/download.cgi
20
+ * for more information.
21
+ *
22
+ * @author Alistair Stead
23
+ * @version $Id$
24
+ * @copyright DataCash, 11 April, 2011
25
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @package DataCash
27
+ **/
28
+
29
+ $installer = $this;
30
+ $installer->startSetup();
31
+
32
+ $installer->run("
33
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('dpg_tokencard')}` (
34
+ `id` int(10) unsigned NOT NULL auto_increment,
35
+ `customer_id` int(10) unsigned NOT NULL,
36
+ `token` varchar(40),
37
+ `status` varchar(15),
38
+ `scheme` varchar(60),
39
+ `pan` varchar(24),
40
+ `country` varchar(3),
41
+ `expiry_date` varchar(5),
42
+ `issuer` varchar(128),
43
+ `card_category` varchar(24),
44
+ `method` varchar(128),
45
+ `is_default` tinyint(1) unsigned NOT NULL default '0',
46
+ PRIMARY KEY (`id`)
47
+ ) ENGINE=MYISAM DEFAULT CHARSET=utf8;
48
+ ");
49
+
50
+ $installer->endSetup();
app/design/frontend/base/default/template/datacash/form/cc.phtml CHANGED
@@ -25,6 +25,7 @@
25
  */
26
  ?>
27
  <?php $_code=$this->getMethodCode() ?>
 
28
  <ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
29
  <?php /*
30
  <li>
@@ -35,117 +36,185 @@
35
  </li>
36
  */ ?>
37
 
38
- <?php if($this->getConfig()->getIsAllowedStoredCards()): ?>
39
- <li>
40
- <label for="<?php echo $_code ?>_cc_trans_id" class="required"><em>*</em><?php echo $this->__('Stored Credit Card') ?></label>
41
- <select id="<?php echo $_code ?>_cc_trans_id" name="payment[cc_trans_id]" class="required-entry validate-cc-trans-id-select">
42
- <option value="new">Use New Card</option>
43
- <?php $existing_cards = $this->getExistingCards(); ?>
44
- <?php foreach ($existing_cards as $c) : ?>
45
- <option value="<?php echo $c->getCcTransId() ?>">**** **** **** <?php echo $c->getCcLast4() ?></option>
46
- <?php endforeach ?>
47
- </select>
48
- </li>
49
- <?php endif; ?>
50
- <li>
51
- <label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
52
- <div class="input-box">
53
- <select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry validate-cc-type-select">
54
- <option value=""><?php echo $this->__('--Please Select--')?></option>
55
- <?php $_ccType = $this->getInfoData('cc_type') ?>
56
- <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
57
- <option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
58
- <?php endforeach ?>
59
- </select>
60
- </div>
61
- </li>
62
  <li>
63
- <label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
64
- <div class="input-box">
65
- <input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-number validate-cc-type" value="" />
66
- </div>
67
- </li>
68
- <li id="<?php echo $_code ?>_cc_type_exp_div">
69
- <label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
70
- <div class="input-box">
71
- <div class="v-fix">
72
- <select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
73
- <?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
74
- <?php foreach ($this->getCcMonths() as $k=>$v): ?>
75
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
76
- <?php endforeach ?>
77
- </select>
78
- </div>
79
- <div class="v-fix">
80
- <?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
81
- <select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
82
- <?php foreach ($this->getCcYears() as $k=>$v): ?>
83
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
84
- <?php endforeach ?>
85
  </select>
86
  </div>
87
- </div>
88
- </li>
89
- <?php echo $this->getChildHtml() ?>
90
- <?php if($this->hasVerification()): ?>
91
- <li id="<?php echo $_code ?>_cc_type_cvv_div">
92
- <label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
93
- <div class="input-box">
94
- <div class="v-fix">
95
- <input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry validate-cc-cvn" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
96
  </div>
97
- <a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
98
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  </li>
100
- <?php endif; ?>
101
-
102
- <?php if ($this->hasSsCardType()): ?>
103
- <li id="<?php echo $_code ?>_cc_type_ss_div">
104
  <ul class="inner-form">
105
- <li class="form-alt"><label for="<?php echo $_code ?>_cc_issue" class="required"><em>*</em><?php echo $this->__('Switch/Solo/Maestro Only') ?></label></li>
106
- <li>
107
- <label for="<?php echo $_code ?>_cc_issue"><?php echo $this->__('Issue Number') ?>:</label>
108
- <span class="input-box">
109
- <input type="text" title="<?php echo $this->__('Issue Number') ?>" class="input-text validate-cc-ukss cvv" id="<?php echo $_code ?>_cc_issue" name="payment[cc_ss_issue]" value="" />
110
- </span>
 
 
 
 
 
111
  </li>
112
-
113
- <li>
114
- <label for="<?php echo $_code ?>_start_month"><?php echo $this->__('Start Date') ?>:</label>
 
 
 
 
 
 
 
115
  <div class="input-box">
116
  <div class="v-fix">
117
- <select id="<?php echo $_code ?>_start_month" name="payment[cc_ss_start_month]" class="validate-cc-ukss month">
 
118
  <?php foreach ($this->getCcMonths() as $k=>$v): ?>
119
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_month')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
120
  <?php endforeach ?>
121
  </select>
122
  </div>
123
  <div class="v-fix">
124
- <select id="<?php echo $_code ?>_start_year" name="payment[cc_ss_start_year]" class="validate-cc-ukss year">
125
- <?php foreach ($this->getSsStartYears() as $k=>$v): ?>
126
- <option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_year')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
 
127
  <?php endforeach ?>
128
  </select>
129
  </div>
130
  </div>
131
  </li>
132
- <li class="adv-container">&nbsp;</li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  </ul>
134
- <script type="text/javascript">
135
- //<![CDATA[
136
- var SSChecked<?php echo $_code ?> = function() {
137
- var elm = $('<?php echo $_code ?>_cc_type');
138
- if (['SS','SM','SO'].indexOf(elm.value) != -1) {
139
- $('<?php echo $_code ?>_cc_type_ss_div').show();
140
- } else {
141
- $('<?php echo $_code ?>_cc_type_ss_div').hide();
142
- }
143
- };
144
-
145
- Event.observe($('<?php echo $_code ?>_cc_type'), 'change', SSChecked<?php echo $_code ?>);
146
- SSChecked<?php echo $_code ?>();
147
- //]]>
148
- </script>
149
  </li>
150
- <?php endif; ?>
151
  </ul>
25
  */
26
  ?>
27
  <?php $_code=$this->getMethodCode() ?>
28
+
29
  <ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
30
  <?php /*
31
  <li>
36
  </li>
37
  */ ?>
38
 
39
+ <?php if ($this->canUseTokens()): ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  <li>
41
+ <ul class="inner-form">
42
+
43
+ <li>
44
+ <label for="id_<?php echo $_code ?>_card_select" class="required"><em>*</em><?php echo $this->__('Stored Credit Card') ?></label>
45
+ <div class="input-box">
46
+ <select id="id_<?php echo $_code ?>_card_select" name="payment[cc_tokencard]" class="required-entry">
47
+ <option value="0">&lt;<?php echo $this->__('create a new card')?>&gt;</option>
48
+ <?php foreach($this->getSessionTokens() as $card): ?>
49
+ <option value="<?php echo $card->getId() ?>"<?php echo $card->getIsDefault() ? ' selected="selected"' : '' ?>><?php echo $card->getCardDisplay() ?> <?php echo (string)$card->getCardType() ?></option>
50
+ <?php endforeach ?>
 
 
 
 
 
 
 
 
 
 
 
 
51
  </select>
52
  </div>
53
+ </li>
54
+
55
+ <li id="id_<?php echo $_code ?>_remember_this_card_block" style="display:none;">
56
+ <label for="id_<?php echo $_code ?>_remember_this_card">Remember this card?</label>
57
+ <div class="input-box">
58
+ <input id="id_<?php echo $_code ?>_remember_this_card" name="payment[cc_remember_card]" type="checkbox" value="1" />
 
 
 
59
  </div>
60
+ </li>
61
+
62
+ <script type="text/javascript">
63
+ //<![CDATA[
64
+ var idCardSelect = 'id_<?php echo $_code ?>_card_select';
65
+ var idRememberThisCardBlock = 'id_<?php echo $_code ?>_remember_this_card_block';
66
+ var rememberThisCard = 'id_<?php echo $_code ?>_remember_this_card';
67
+ var tokenCardSelect = 'id_<?php echo $_code ?>_tokencard_select';
68
+
69
+ $(idCardSelect).observe('change', function(){
70
+ toggleRememberCard(this.getValue());
71
+ toggleCardForm(this.getValue());
72
+ });
73
+
74
+ toggleRememberCard($(idCardSelect).getValue());
75
+ toggleCardForm($(idCardSelect).getValue());
76
+
77
+ function toggleCardForm(value){
78
+ if (value == "0") {
79
+ $('id_<?php echo $_code ?>_cc_type_row').show();
80
+ $('id_<?php echo $_code ?>_cc_number_row').show();
81
+ $('<?php echo $_code ?>_cc_type_exp_div').show();
82
+ <?php if($this->hasVerification()): ?>
83
+ $('<?php echo $_code ?>_cc_cid').addClassName('validate-cc-cvn');
84
+ <?php endif ?>
85
+ } else {
86
+ $('id_<?php echo $_code ?>_cc_type_row').hide();
87
+ $('id_<?php echo $_code ?>_cc_number_row').hide();
88
+ $('<?php echo $_code ?>_cc_type_exp_div').hide();
89
+ <?php if($this->hasVerification()): ?>
90
+ $('<?php echo $_code ?>_cc_cid').removeClassName('validate-cc-cvn');
91
+ <?php endif ?>
92
+ }
93
+ }
94
+
95
+ function toggleRememberCard(value){
96
+ if (value == "0") {
97
+ $(idRememberThisCardBlock).show();
98
+ $(rememberThisCard).checked = true;
99
+ } else {
100
+ $(idRememberThisCardBlock).hide();
101
+ $(rememberThisCard).checked = false;
102
+ }
103
+ }
104
+ //]]>
105
+ </script>
106
  </li>
107
+ <?php endif ?>
108
+
109
+ <li id="payment_form_<?php echo $_code ?>_form">
 
110
  <ul class="inner-form">
111
+ <li id="id_<?php echo $_code ?>_cc_type_row">
112
+ <label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
113
+ <div class="input-box">
114
+ <select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry validate-cc-type-select">
115
+ <option value=""><?php echo $this->__('--Please Select--')?></option>
116
+ <?php $_ccType = $this->getInfoData('cc_type') ?>
117
+ <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
118
+ <option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
119
+ <?php endforeach ?>
120
+ </select>
121
+ </div>
122
  </li>
123
+
124
+ <li id="id_<?php echo $_code ?>_cc_number_row">
125
+ <label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
126
+ <div class="input-box">
127
+ <input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-number validate-cc-type" value="" />
128
+ </div>
129
+ </li>
130
+
131
+ <li id="<?php echo $_code ?>_cc_type_exp_div">
132
+ <label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
133
  <div class="input-box">
134
  <div class="v-fix">
135
+ <select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
136
+ <?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
137
  <?php foreach ($this->getCcMonths() as $k=>$v): ?>
138
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
139
  <?php endforeach ?>
140
  </select>
141
  </div>
142
  <div class="v-fix">
143
+ <?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
144
+ <select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
145
+ <?php foreach ($this->getCcYears() as $k=>$v): ?>
146
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
147
  <?php endforeach ?>
148
  </select>
149
  </div>
150
  </div>
151
  </li>
152
+
153
+ <?php echo $this->getChildHtml() ?>
154
+
155
+ <?php if($this->hasVerification()): ?>
156
+ <li>
157
+ <label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
158
+ <div class="input-box">
159
+ <div class="v-fix">
160
+ <input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry validate-cc-cvn" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
161
+ </div>
162
+ <a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
163
+ </div>
164
+ </li>
165
+ <?php endif; ?>
166
+
167
+ <?php if ($this->hasSsCardType()): ?>
168
+ <li id="<?php echo $_code ?>_cc_type_ss_div">
169
+ <ul class="inner-form">
170
+ <li class="form-alt"><label for="<?php echo $_code ?>_cc_issue" class="required"><em>*</em><?php echo $this->__('Switch/Solo/Maestro Only') ?></label></li>
171
+ <li>
172
+ <label for="<?php echo $_code ?>_cc_issue"><?php echo $this->__('Issue Number') ?>:</label>
173
+ <span class="input-box">
174
+ <input type="text" title="<?php echo $this->__('Issue Number') ?>" class="input-text validate-cc-ukss cvv" id="<?php echo $_code ?>_cc_issue" name="payment[cc_ss_issue]" value="" />
175
+ </span>
176
+ </li>
177
+
178
+ <li>
179
+ <label for="<?php echo $_code ?>_start_month"><?php echo $this->__('Start Date') ?>:</label>
180
+ <div class="input-box">
181
+ <div class="v-fix">
182
+ <select id="<?php echo $_code ?>_start_month" name="payment[cc_ss_start_month]" class="validate-cc-ukss month">
183
+ <?php foreach ($this->getCcMonths() as $k=>$v): ?>
184
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_month')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
185
+ <?php endforeach ?>
186
+ </select>
187
+ </div>
188
+ <div class="v-fix">
189
+ <select id="<?php echo $_code ?>_start_year" name="payment[cc_ss_start_year]" class="validate-cc-ukss year">
190
+ <?php foreach ($this->getSsStartYears() as $k=>$v): ?>
191
+ <option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_year')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
192
+ <?php endforeach ?>
193
+ </select>
194
+ </div>
195
+ </div>
196
+ </li>
197
+ <li class="adv-container">&nbsp;</li>
198
+ </ul>
199
+ <script type="text/javascript">
200
+ //<![CDATA[
201
+ Validation.creditCartTypes.set('DC', [new RegExp('^3(?:0[0-5]|[68][0-9])[0-9]{11}$'), new RegExp('^[0-9]{3}$'), true]);
202
+ var SSChecked<?php echo $_code ?> = function() {
203
+ var elm = $('<?php echo $_code ?>_cc_type');
204
+ if (['SS','SM','SO'].indexOf(elm.value) != -1) {
205
+ $('<?php echo $_code ?>_cc_type_ss_div').show();
206
+ } else {
207
+ $('<?php echo $_code ?>_cc_type_ss_div').hide();
208
+ }
209
+ };
210
+
211
+ Event.observe($('<?php echo $_code ?>_cc_type'), 'change', SSChecked<?php echo $_code ?>);
212
+ SSChecked<?php echo $_code ?>();
213
+ //]]>
214
+ </script>
215
+ </li>
216
+ <?php endif; ?>
217
+
218
  </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
  </li>
 
220
  </ul>
app/design/frontend/base/default/template/datacash/iframe/form.phtml CHANGED
@@ -1,24 +1,104 @@
1
  <?php $_code = $this->getMethodCode() ?>
2
  <ul class="form-list centinel" id="payment_form_<?php echo $_code ?>" style="display:none;">
 
3
  <li>
4
- <div id="<?php echo $_code ?>_iframe_block">
5
- <div class="authentication">
6
- <iframe id="<?php echo $_code ?>_iframe" frameborder="0" border="0" src="" style="height: 456px;"></iframe>
 
 
 
 
 
7
  </div>
8
- </div>
9
- <script type="text/javascript">
10
- //<![CDATA[
11
- Event.observe(window, 'load', function() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  var iframeId = '<?php echo $_code ?>_iframe';
13
  var iframeTarget = '<?php echo $this->getFrameUrl() ?>';
14
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  // if Accordion is in use, listen for the payment step and load the
16
  // iframe
17
  if (typeof(Accordion) != 'undefined') {
18
  var dcOpenSection = Accordion.prototype.openSection;
19
  Accordion.prototype.openSection = function (section) {
20
  dcOpenSection.call(this, section);
21
-
22
  if (section.id == 'opc-payment') {
23
  if ($('p_method_<?php echo $_code ?>').checked) {
24
  $(iframeId).src = iframeTarget;
@@ -26,21 +106,32 @@
26
  }
27
  }
28
  }
29
-
30
  var onMethodSwitch = function (evt) {
31
- if (evt.target.id == 'payment_form_<?php echo $_code ?>'
32
- || evt.target.id == 'p_method_<?php echo $_code ?>') {
33
- if ($(iframeId).src != iframeTarget) {
34
- $(iframeId).src = iframeTarget;
 
 
 
 
 
 
 
 
 
 
35
  }
36
  }
37
  }
 
38
  // multishipping doesn't use the custom event interface
39
  $('p_method_<?php echo $_code ?>').observe('change', onMethodSwitch);
40
  // whereas onepage cancels the event so use the custom event
41
  document.observe('payment-method:switched', onMethodSwitch);
42
- });
43
- //]]>
44
- </script>
45
  </li>
46
  </ul>
1
  <?php $_code = $this->getMethodCode() ?>
2
  <ul class="form-list centinel" id="payment_form_<?php echo $_code ?>" style="display:none;">
3
+ <?php if ($this->canUseTokens()): ?>
4
  <li>
5
+ <label for="id_<?php echo $_code ?>_tokencard_select" class="required"><em>*</em><?php echo $this->__('Stored Credit Card') ?></label>
6
+ <div class="input-box">
7
+ <select id="id_<?php echo $_code ?>_tokencard_select">
8
+ <option value="">&lt;<?php echo $this->__('create a new card')?>&gt;</option>
9
+ <?php foreach($this->getSessionTokens() as $card): ?>
10
+ <option value="<?php echo $card->getId() ?>"<?php echo $card->getIsDefault() ? ' selected="selected"' : '' ?>><?php echo $card->getCardDisplay() ?> <?php echo (string)$card->getCardType() ?></option>
11
+ <?php endforeach ?>
12
+ </select>
13
  </div>
14
+
15
+ <div class="<?php echo $_code ?>_remeber_this_card" style="display:none;">
16
+ <label for="id_<?php echo $_code ?>_remeber_this_card">Remember this card?</label>
17
+ <div class="input-box">
18
+ <input id="id_<?php echo $_code ?>_remeber_this_card" type="checkbox" value="1" />
19
+ </div>
20
+ </div>
21
+ </li>
22
+ <?php endif ?>
23
+
24
+ <li>
25
+ <div id="<?php echo $_code ?>_iframe_block"<?php if ($this->canUseTokens()): ?> style="display:none;position:relative;"<?php endif ?>>
26
+ <div class="authentication">
27
+ <iframe id="<?php echo $_code ?>_iframe" frameborder="0" border="0" src="" style="height: 456px;"><?php echo $this->__('Please wait...') ?></iframe>
28
+ </div>
29
+ <div id="<?php echo $_code ?>_overlay" style="display:none;position:absolute;width:100%;height:100%;background-color:#fff;opacity:0.5;top:0px;left:0px;">
30
+ <div style="text-align:center; font-size:16px; line-height:30px"><?php echo $this->__('Please wait...') ?></div>
31
+ </div>
32
+ </div>
33
+ <script type="text/javascript">
34
+ //<![CDATA[
35
  var iframeId = '<?php echo $_code ?>_iframe';
36
  var iframeTarget = '<?php echo $this->getFrameUrl() ?>';
37
+ var iframeBlock = '<?php echo $_code ?>_iframe_block';
38
+
39
+ <?php if ($this->canUseTokens()): ?>
40
+ var id_tokencard_select = 'id_<?php echo $_code ?>_tokencard_select';
41
+ var id_remeber_this_card = 'id_<?php echo $_code ?>_remeber_this_card';
42
+ var remeber_this_card = '.<?php echo $_code ?>_remeber_this_card';
43
+ var id_overlay = '<?php echo $_code ?>_overlay';
44
+
45
+ $(iframeId).onload = function() {
46
+ $(id_overlay).hide();
47
+ }
48
+
49
+ function updateIframe() {
50
+ $(iframeBlock).show();
51
+
52
+ var remember_card_param = "";
53
+ if ($(id_remeber_this_card).getValue() == "1") {
54
+ remember_card_param = "?remember=1";
55
+ }
56
+ $(id_overlay).show();
57
+ $(iframeId).src = iframeTarget + 'id/' + encodeURIComponent($(id_tokencard_select).getValue()) + remember_card_param;
58
+ }
59
+
60
+ $(id_remeber_this_card).observe('change', updateIframe);
61
+ $(id_tokencard_select).observe('change', function(){
62
+ toggleRemeberCard(this.getValue());
63
+ updateIframe();
64
+ });
65
+ toggleRemeberCard($(id_tokencard_select).getValue());
66
+
67
+ function toggleRemeberCard(value){
68
+ if (value == "") {
69
+ $$(remeber_this_card)[0].show();
70
+ $(id_remeber_this_card).checked = true;
71
+ } else {
72
+ $$(remeber_this_card)[0].hide();
73
+ $(id_remeber_this_card).checked = false;
74
+ }
75
+ }
76
+
77
+ document.observe('payment-method:switched', function(evt){
78
+ if ($('opc-payment').hasClassName("active")) {
79
+ if (evt.target.id == 'payment_form_<?php echo $_code ?>' || evt.target.id == 'p_method_<?php echo $_code ?>') {
80
+ updateIframe();
81
+ }
82
+ if ($('payment-buttons-container')) {
83
+ var buttons = $('payment-buttons-container').getElementsByClassName('button');
84
+ if (buttons.length > 0) {
85
+ if (evt.target.id == 'payment_form_<?php echo $_code ?>' || evt.target.id == 'p_method_<?php echo $_code ?>') {
86
+ setTimeout(function(){ buttons[0].hide(); },1); //XXX: DOM bug
87
+ } else {
88
+ setTimeout(function(){ buttons[0].show(); },1); //XXX: DOM bug
89
+ }
90
+ }
91
+ }
92
+ }
93
+ });
94
+ <?php else: ?>
95
  // if Accordion is in use, listen for the payment step and load the
96
  // iframe
97
  if (typeof(Accordion) != 'undefined') {
98
  var dcOpenSection = Accordion.prototype.openSection;
99
  Accordion.prototype.openSection = function (section) {
100
  dcOpenSection.call(this, section);
101
+
102
  if (section.id == 'opc-payment') {
103
  if ($('p_method_<?php echo $_code ?>').checked) {
104
  $(iframeId).src = iframeTarget;
106
  }
107
  }
108
  }
109
+
110
  var onMethodSwitch = function (evt) {
111
+ if ($('opc-payment').hasClassName("active")) {
112
+ var buttons = $('payment-buttons-container').getElementsByClassName('button');
113
+
114
+ if (evt.target.id == 'payment_form_<?php echo $_code ?>' || evt.target.id == 'p_method_<?php echo $_code ?>') {
115
+ if ($(iframeId).src != iframeTarget) {
116
+ $(iframeId).src = iframeTarget;
117
+ }
118
+ if (buttons.length > 0) {
119
+ setTimeout(function(){ buttons[0].hide(); },1); //XXX: DOM bug
120
+ }
121
+ } else {
122
+ if (buttons.length > 0) {
123
+ setTimeout(function(){ buttons[0].show(); },1); //XXX: DOM bug
124
+ }
125
  }
126
  }
127
  }
128
+
129
  // multishipping doesn't use the custom event interface
130
  $('p_method_<?php echo $_code ?>').observe('change', onMethodSwitch);
131
  // whereas onepage cancels the event so use the custom event
132
  document.observe('payment-method:switched', onMethodSwitch);
133
+ <?php endif; ?>
134
+ //]]>
135
+ </script>
136
  </li>
137
  </ul>
app/locale/en_GB/DataCash_Dpg.csv ADDED
@@ -0,0 +1,653 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "status_2", "Socket write error"
2
+ "status_3", "Timeout"
3
+ "status_5", "Edit error"
4
+ "status_6", "Comms error"
5
+ "status_7", "Not authorised"
6
+ "status_9", "Currency error"
7
+ "status_10", "Authentication error"
8
+ "status_12", "Invalid authorisation code"
9
+ "status_13", "Type field missing"
10
+ "status_14", "Database server error"
11
+ "status_15", "Invalid type"
12
+ "status_19", "Cannot fulfill transaction"
13
+ "status_20", "Duplicate transaction reference"
14
+ "status_21", "Invalid card type"
15
+ "status_22", "Invalid reference"
16
+ "status_23", "Expiry date invalid"
17
+ "status_24", "Card has already expired"
18
+ "status_25", "Card number invalid"
19
+ "status_26", "Card number wrong length"
20
+ "status_27", "Issue number error"
21
+ "status_28", "Start date error"
22
+ "status_29", "Card is not valid yet"
23
+ "status_30", "Start date after expiry date"
24
+ "status_34", "Invalid amount"
25
+ "status_40", "Invalid cheque type"
26
+ "status_41", "Invalid cheque number"
27
+ "status_42", "Invalid sort code"
28
+ "status_44", "Invalid account number"
29
+ "status_51", "Reference in use"
30
+ "status_53", "No free TIDs available for this vTID"
31
+ "status_56", "Card used too recently"
32
+ "status_57", "Invalid velocity_check value"
33
+ "status_59", "This combination of currency, card type and environment is not supported by this vTID"
34
+ "status_60", "Invalid XML"
35
+ "status_61", "Configuration error"
36
+ "status_62", "Unsupported protocol"
37
+ "status_63", "Method not supported by acquirer"
38
+ "status_104", "APACS30: WRONG TID"
39
+ "status_105", "APACS30: MSG SEQ NUM ERR"
40
+ "status_106", "APACS30: WRONG AMOUNT"
41
+ "status_190", "No capture method specified"
42
+ "status_271", "Cannot query transactions of this kind"
43
+ "status_274", "Cannot locate transaction to query"
44
+ "status_280", "Unknown format of datacash reference"
45
+ "status_281", "Datacash reference fails Luhn check"
46
+ "status_282", "Mismatch between historic and current site_id"
47
+ "status_283", "Mismatch between historic and current modes"
48
+ "status_425", "ISO8583 - message corrupted"
49
+ "status_440", "Payment Gateway Busy"
50
+ "status_470", "Maestro txns for CNP not supported for clearinghouse"
51
+ "status_471", "3-D Secure Required"
52
+ "status_472", "Invalid capturemethod"
53
+ "status_473", "Invalid transaction type "
54
+ "status_480", "Invalid value for merchantid"
55
+ "status_481", "Element merchantid required"
56
+ "status_482", "Invalid element merchantid"
57
+ "status_510", "GE Capital: Inappropriate GE Capital card number"
58
+ "status_1011", "EuroCommerce: Unable to establish connection."
59
+ "status_1012", "EuroCommerce: Amount larger than allowed."
60
+ "status_1013", "EuroCommerce: Transaction pending at EuroCommerce."
61
+ "status_1014", "EuroCommerce: Unknown error."
62
+ "status_1015", "EuroCommerce: Error in response"
63
+ "status_1017", "EuroCommerce: Error in response - Unknown result type from EuroCommerce."
64
+ "status_1018", "EuroCommerce: Unexpected response from EuroCommerce"
65
+ "status_1019", "EuroCommerce: Invalid account configuration - could not authorise transaction with EuroCommerce."
66
+ "status_1020", "EuroCommerce: HTTP Error in response."
67
+ "status_1021", "EuroCommerce: HTTP Error in response."
68
+ "status_1022", "EuroCommerce: HTTP Error in response."
69
+ "status_1023", "EuroCommerce: HTTP Error in response."
70
+ "status_1100", "No referenced transaction found"
71
+ "status_1101", "Only referred transactions can be authorised"
72
+ "status_1102", "Only pre or auth transaction can be authorised"
73
+ "status_1103", "Must supply updated authcode to authorise transaction"
74
+ "status_1104", "Transactions cannot be authorized after time limit expired"
75
+ "status_1105", "Fraud challenged transactions cannot be authorized"
76
+ "status_1106", "Historic reference already in use"
77
+ "status_1220", "Merchant not subscribed for Extended References"
78
+ "status_1221", "No external reference supplied"
79
+ "status_1222", "Format of external reference is incorrect"
80
+ "status_1223", "External reference should have a length of 50 or fewer"
81
+ "status_1224", "No payment ID supplied"
82
+ "status_1225", "Payment ID should be a number between 1 and 18 digits"
83
+ "status_1226", "Extended References cannot be supplied as part of a historic transaction"
84
+ "status_1230", "Location Code: Invalid location code provided"
85
+ "status_1231", "Location Code: No location code specified"
86
+ "status_1232", "Location Code: MPI-only Unsupported"
87
+ "status_1233", "Location Code: COI Filter Unsupported"
88
+ "status_1280", "PreCall:Request contained elements that are not applicable to precall transactions"
89
+ "status_1281", "No shared secret configured for authentication"
90
+ "status_1282", "Authentication using SHA1 password failed"
91
+ "status_1283", "PreCall:No default/base rule configured for merchant"
92
+ "status_1284", "PreCall:Airline leg limit exceeded"
93
+ "status_1420", "Merchant not permitted to submit MiscCustomerInfo"
94
+ "status_1421", "Card details cannot be submitted in both HPS Setup Requests and in Payment Requests"
95
+ "status_1422", "MiscCustomerInfo XML block cannot be empty"
96
+ "status_1423", "Card details in setup session request have expired"
97
+ "status_1440", "Merchant is not configured for APG transactions"
98
+ "status_1441", "Unsupported APG method"
99
+ "status_1442", "Field not supported in APG transaction"
100
+ "status_1443", "Required field missing from APG transaction"
101
+ "status_1444", "Could not connect to the APG"
102
+ "status_1445", "HTTP error while communicating to the APG"
103
+ "status_1446", "Could not parse the APG response"
104
+ "status_1447", "The APG rejected the transaction"
105
+ "status_1448", "The APG accepted the transaction"
106
+ "status_1449", "The APG indicated that the transaction has failed"
107
+ "status_1450", "Reference provided must relate to live Continuous Authority account"
108
+ "status_1451", "Predicted transaction date too soon"
109
+ "status_1452", "Update response received without updated details"
110
+ "status_1453", "PAN does not match that stored in ca_account"
111
+ "status_1454", "vTID not configured for RTES"
112
+ "status_1455", "MID not configured for RTES"
113
+ "status_1456", "Card Scheme not supported by RTES"
114
+ "status_1457", "Only historic model cont auth supported"
115
+ "status_1458", "RTES Requery is currently unsupported"
116
+ "status_1490", "Merchant is not subscribed for APG LDD service"
117
+ "status_1500", "Not configured for this authentication mechanism"
118
+ "status_1501", "Verification of Signature failed"
119
+ "status_1502", "Unable to Verify the signature"
120
+ "status_1510", "Custom data must be between 1 and 30 alphanumeric characters"
121
+ "status_1520", "Zero value Auth"
122
+ "status_1521", "Zero value Auth"
123
+ "status_1522", "Zero value Auth"
124
+ "status_1523", "Cancel cannot be applied to a verify transaction."
125
+ "status_1524", "Zero value Auth"
126
+ "status_1630", "BIN Look up"
127
+ "status_1651", "The risk block for this transaction is mandatory"
128
+ "status_1652", "The RSG service is mandatory but is not enabled, please contact support"
129
+ "status_1653", "This acquirer is not supported for MasterCard Payment of Winnings, please contact support."
130
+ "status_1654", "This card scheme is not supported for MasterCard Payment of Winnings, please contact support."
131
+ "status_1661", "Invalid Contactless Txn"
132
+ "status_1662", "Missing Contactless elements"
133
+ "status_1663", "Refunds Not Supported"
134
+ "status_1664", "Cancels Not Supported"
135
+ "status_1665", "Invalid Contactless Txn"
136
+ "status_1681", "Currency Conversion: Could not get exchange rate offer for refund"
137
+ "status_1682", "Currency Conversion: Cannot supply token with bin"
138
+ "status_1683", "Currency Conversion: Cannot supply token with bin or exchange currency"
139
+ "status_1791", "Merchant is not subscribed for Paypass."
140
+ "status_12001", "vtidconfiguration"
141
+ "status_12002", "vtidconfiguration"
142
+ "status_70", "Validation errors relating to Direct Debit"
143
+ "status_71", "Invalid setup transaction"
144
+ "status_73", "Cannot confirm the presetup transaction"
145
+ "status_74", "Invalid drawdown transaction"
146
+ "status_75", "Mode mismatch"
147
+ "status_580", "Direct Debit: amount may not be supplied in DDI setup request"
148
+ "status_80", "Invalid LID data"
149
+ "status_81", "Missing mandatory field"
150
+ "status_82", "Invalid VAT rate"
151
+ "status_83", "Invalid Commodity Code"
152
+ "status_84", "Invalid transaction VAT amount"
153
+ "status_85", "Support for LID not enabled"
154
+ "status_86", "Non-purchasing card using for a LID transaction."
155
+ "status_87", "Line total does not match items"
156
+ "status_90", "Invalid Value"
157
+ "status_91", "Field Missing"
158
+ "status_92", "CA Not Supported"
159
+ "status_93", "Invalid Card"
160
+ "status_94", "Invalid Date"
161
+ "status_95", "Invalid Cancellation"
162
+ "status_96", "Invalid Last Payment"
163
+ "status_97", "No CA Support"
164
+ "status_98", "Not supported for this bank"
165
+ "status_99", "Invalid Account Ref"
166
+ "status_100", "Merchant not subscribed for 3DSecure"
167
+ "status_101", "Missing 3DSecure elements"
168
+ "status_102", "Missing or invalid Secure attribute"
169
+ "status_103", "Invalid capturemethod for 3DSecure"
170
+ "status_107", "Incorrect use of 3DSecure elements"
171
+ "status_108", "Card scheme does not support 3D secure"
172
+ "status_120", "Not subscribed"
173
+ "status_121", "Duplicate reference"
174
+ "status_122", "Non-GBP amount specified."
175
+ "status_123", "Non-UK Issued card used."
176
+ "status_124", "Cardname is over 18 characters long."
177
+ "status_125", "Direct Credit system error."
178
+ "status_126", "Unknown payment details."
179
+ "status_127", "Transaction limit has been exceeded."
180
+ "status_128", "Direct Credit transaction has already been cancelled."
181
+ "status_129", "Direct Credit has been submitted to BACS."
182
+ "status_134", "Invalid format for Account Name"
183
+ "status_135", "Details Failed Bank Validation check"
184
+ "status_136", "Bank Details fail BACS check"
185
+ "status_137", "Unable to locate matching DDI transaction"
186
+ "status_130", "Invalid to use both policies"
187
+ "status_131", "Invalid ExtendedPolicy definition"
188
+ "status_132", "Expected 3 or 4 digit CV2 number"
189
+ "status_133", "Extended Policy not supported"
190
+ "status_140", "Merchant not subscribed to DD CA"
191
+ "status_141", "Non-GBP not supported for DD CA"
192
+ "status_142", "No matching DD setup"
193
+ "status_143", "Invalid last flagging"
194
+ "status_144", "DD Setup not active"
195
+ "status_145", "DD Setup is in accreditation mode"
196
+ "status_146", "DD Setup is in disabled mode"
197
+ "status_150", "3DS Payer Verification Required"
198
+ "status_151", "3DS Invalid Transaction type"
199
+ "status_152", "3DS Manual Authorization not supported"
200
+ "status_153", "3DS verify element missing"
201
+ "status_154", "3DS Invalid verify value'"
202
+ "status_157", "3DS Merchant not enabled"
203
+ "status_158", "3DS scheme not supported"
204
+ "status_159", "3DS No VERes from DS"
205
+ "status_160", "3DS Invalid VERes from DS"
206
+ "status_161", "3DS call auth centre"
207
+ "status_162", "3DS Card not Enrolled"
208
+ "status_163", "3DS Merchant not enabled for scheme acquirer"
209
+ "status_164", "3DS Acquirer not supported"
210
+ "status_165", "3DS Merchant not enabled for acquirer"
211
+ "status_166", "3DS purchase_datetime format invalid"
212
+ "status_167", "3DS Invalid reference"
213
+ "status_168", "3DS txn cannot be authorized"
214
+ "status_169", "3DS Merchant in test-mode supplied non-magic card"
215
+ "status_170", "3DS No DS URL for card scheme"
216
+ "status_171", "3DS pares_message supplied for non-enrolled card"
217
+ "status_172", "3DS pares_message missing for enrolled card"
218
+ "status_173", "3DS Card not Enrolled in Cache"
219
+ "status_174", "3DS Invalid pares signature"
220
+ "status_175", "3DS No corresponding pareq found"
221
+ "status_176", "3DS invalid pares"
222
+ "status_177", "3DS invalid pareq"
223
+ "status_178", "3DS pareq vs pares mismatch"
224
+ "status_179", "3DS Payer failed Verification"
225
+ "status_180", "3DS No Support for CA"
226
+ "status_181", "3DS No corresponding referral"
227
+ "status_182", "3DS Referral timelimit exceeded"
228
+ "status_183", "3DS Verification Bypassed"
229
+ "status_184", "3DS Expired Awaiting Authorization"
230
+ "status_185", "3DS Expired Referral"
231
+ "status_186", "3DS Invalid VEReq"
232
+ "status_187", "Unable to Verify"
233
+ "status_188", "Unable to Authenticate"
234
+ "status_189", "3DS International Maestro card not enrolled"
235
+ "status_600", "Authentication can only be performed for enrolled cards"
236
+ "status_601", "No 3-D Secure enrollment found for reference supplied"
237
+ "status_602", "3-D Secure enrollment check already validated for reference supplied"
238
+ "status_603", "No 3-D Secure authentication found for reference supplied"
239
+ "status_604", "Transaction already authorised for reference supplied"
240
+ "status_605", "threedsecure_authorization_request not permitted on transactions of this type."
241
+ "status_606", "Invalid PARes"
242
+ "status_607", "MPI authentication has expired"
243
+ "status_608", "Invalid currency"
244
+ "status_609", "Currency must be supplied"
245
+ "status_610", "No mid found for currency or 3DS scheme not supported"
246
+ "status_611", "Unable to process authorisation"
247
+ "status_612", "Unable to process authorisation"
248
+ "status_613", "MPI System Configuration Error"
249
+ "status_620", "Unsupported Method"
250
+ "status_621", "Fexco currency error"
251
+ "status_622", "Invalid Fexco exchange_rate"
252
+ "status_623", "txn_refund not supported"
253
+ "status_624", "Not subscribed for Fexco DCC"
254
+ "status_10145", "3DS MPI System Error"
255
+ "status_640", "Merchant mandated 3-D Secure transaction, none attempted"
256
+ "status_641", "Merchant attempted 3-D Secure transaction override, but is not permitted"
257
+ "status_191", "Field not applicable to CA setup"
258
+ "status_192", "Failed to find corresponding CA account"
259
+ "status_193", "Missing CA environment attribute"
260
+ "status_194", "Invalid use of CA environment attribute"
261
+ "status_195", "Non-CA capturemethod required"
262
+ "status_199", "Invalid Refund"
263
+ "status_200", "Information Mismatch"
264
+ "status_201", "Missing Information"
265
+ "status_202", "VGIS parse error"
266
+ "status_203", "Support for VGIS not enabled"
267
+ "status_204", "Non-VGIS Card"
268
+ "status_205", "Invalid Totals"
269
+ "status_206", "Invalid Tax Amount"
270
+ "status_207", "Invalid Value"
271
+ "status_208", "VGIS message limit exceeded"
272
+ "status_209", "VGIS decompression failed"
273
+ "status_210", "Invalid environment for reversal"
274
+ "status_211", "CHP: Capturemethod method missing"
275
+ "status_212", "Use of Terminal element invalid"
276
+ "status_213", "'Terminal' element missing"
277
+ "status_214", "Terminal capabilities invalid"
278
+ "status_215", "Invalid Cash Back"
279
+ "status_217", "Cash back not allowed in this environment"
280
+ "status_218", "CV2AVS n/a in CHP environment"
281
+ "status_219", "CHP: ReD rich data set n/a"
282
+ "status_220", "Invalid transaction type"
283
+ "status_221", "Invalid card and capturemethod combination"
284
+ "status_222", "CHP: Authcode method attribute error"
285
+ "status_223", "CNP: Authcode method attribute error"
286
+ "status_224", "Hotcardfile not allowed in this environment"
287
+ "status_225", "LID n/a in CHP environment"
288
+ "status_226", "Invalid environment for track 2 data"
289
+ "status_227", "Invalid track 2 data"
290
+ "status_228", "Track 2 data missing"
291
+ "status_229", "ICC data n/a in this environment"
292
+ "status_230", "ICC data missing"
293
+ "status_231", "Cash back > amount"
294
+ "status_232", "Cash back n/a to card type"
295
+ "status_233", "Field reason_online_code not applicable to Card Holder Not Present"
296
+ "status_234", "CHP No support for CA"
297
+ "status_235", "Invalid ICC data "
298
+ "status_236", "CHP: Invalid receipt number"
299
+ "status_237", "CHP: Receipt number specified where invalid"
300
+ "status_238", "CHP: Authcode auth_datetime attribute error"
301
+ "status_239", "CHP: Transaction cannot be settled"
302
+ "status_240", "CP - Track 2 data not allowed"
303
+ "status_241", "Cash Advance - Max Cash amount exceeded"
304
+ "status_242", "Cash Advance not allowed for this card type"
305
+ "status_243", "Cash Advance not supported for this acquirer"
306
+ "status_244", "Cash Advance not allowed in this environment"
307
+ "status_245", "Cash Advance not supported in this currency"
308
+ "status_246", "Invalid Cash Advance data"
309
+ "status_247", "Missing currency parameter"
310
+ "status_1150", "Invalid TID specified in XML"
311
+ "status_1151", "Cannot fulfill a referred parked pre"
312
+ "status_1152", "Continuous Authority setup transactions cannot be marked for T3M offline fraud screening"
313
+ "status_1153", "Continuous Authority historic payments cannot be T3M fraud screened"
314
+ "status_1154", "Continuous Authority cancellations cannot be T3M fraud screened"
315
+ "status_1160", "MiGS: Unable to establish connection"
316
+ "status_1161", "MiGS: HTTP Error on response"
317
+ "status_1162", "MiGS: Unknown bank failure"
318
+ "status_1163", "MiGS: Unexpected response from MiGS"
319
+ "status_1164", "MiGS: Unknown response from MiGS"
320
+ "status_1165", "MiGS: Only 3rd Party 3-D Secure is supported for MiGS"
321
+ "status_1166", "MiGS: Unable to establish connection"
322
+ "status_1167", "MiGS: Unsupported method"
323
+ "status_250", "Prereg: Invalid reference"
324
+ "status_251", "Prereg: Merchant Not Subscribed"
325
+ "status_252", "Prereg: Invalid reference - vTID group mismatch"
326
+ "status_255", "BatchInput: Not authorised"
327
+ "status_256", "BatchInput: Too many files"
328
+ "status_257", "BatchInput: Input file too big"
329
+ "status_258", "BatchInput: Input format not recognised"
330
+ "status_259", "BatchInput: The compressed and encoded batch data is corrupt"
331
+ "status_260", "BatchInput: Data file parse failure"
332
+ "status_261", "BatchInput: Malformed data file header"
333
+ "status_262", "BatchInput: Invalid transaction count"
334
+ "status_263", "BatchInput: Invalid total amount "
335
+ "status_264", "BatchInput: Batch file format violation "
336
+ "status_265", "BatchInput: Illegal batch data value "
337
+ "status_266", "BatchInput: Processing aborted - cannot have empty mandatory field"
338
+ "status_267", "BatchInput: Processing aborted - cannot use different vTIDs in XML batches"
339
+ "status_268", "BatchInput: Processing aborted - cannot use query txns via this interface"
340
+ "status_270", "Not authorised to perform query txns"
341
+ "status_272", "BatchInput: Unprocessed"
342
+ "status_273", "BatchInput: Processing"
343
+ "status_275", "BatchInput: Processing Failed"
344
+ "status_276", "BatchInput: No preprocessed transaction found"
345
+ "status_290", "Missing or corrupted Flight Leg number"
346
+ "status_291", "Support for Airlines transaction not enabled "
347
+ "status_292", "Duplicate passenger reference"
348
+ "status_293", "Airlines ticket prices do not reconcile with transaction amount"
349
+ "status_294", "Airlines: Data already supplied"
350
+ "status_295", "Airlines: pre/erp txn for this amex airlines fulfill contained no airlines data"
351
+ "status_296", "Airlines: No airlines data supplied for this transaction"
352
+ "status_297", "Airlines: Invalid extended data"
353
+ "status_298", "Airlines: Invalid refund"
354
+ "status_299", "Airlines: Invalid capturemethod"
355
+ "status_301", "Address Record not supported"
356
+ "status_310", "T3M: Not subscribed"
357
+ "status_311", "T3M: Cannot mix old and new schema formats"
358
+ "status_312", "T3M: Validation Error"
359
+ "status_313", "T3M Batching error"
360
+ "status_314", "T3M:PayPal Validation Error"
361
+ "status_315", "T3M:Fraud only Validation Error"
362
+ "status_316", "T3M:Fraud only Response Error"
363
+ "status_317", "T3M:Fraud only Communication Error"
364
+ "status_318", "T3M:Fraud only Response Error"
365
+ "status_319", "T3M:Fraud only Communication error"
366
+ "status_1126", "Transaction rejected by the RSG"
367
+ "status_1127", "Transaction marked for review"
368
+ "status_1128", "Referenced transaction cannot be accepted"
369
+ "status_1130", "Invalid RSG service specified"
370
+ "status_1131", "Transaction has expired and cannot be completed"
371
+ "status_1133", "The RSG service can only be used in the ecomm, cnp or cont_auth environments"
372
+ "status_1134", "Not subscribed to the RSG service"
373
+ "status_1135", "Referenced transaction not found"
374
+ "status_1136", "Fire and Forget Continuous Authority transactions not supported with the RSG service"
375
+ "status_1137", "Historic Continuous Authority transactions not supported with the RSG service"
376
+ "status_1138", "Other fraud screening services cannot be used in conjunction with the RSG service"
377
+ "status_1139", "Method unsupported for the RSG service"
378
+ "status_1140", "Transaction marked for review"
379
+ "status_320", "OTR: Merchant Reference invalid for acquirer"
380
+ "status_321", "OTR: Acquirer configuration missing"
381
+ "status_330", "Merchant not subscribed for Smart Voucher"
382
+ "status_331", "Missing Field"
383
+ "status_332", "Invalid capturemethod"
384
+ "status_333", "Invalid voucher number"
385
+ "status_334", "Invalid product code"
386
+ "status_335", "Invalid account number"
387
+ "status_336", "Invalid Smart Voucher value"
388
+ "status_337", "Purchase value >= Redeem value"
389
+ "status_338", "Service incompatible with SmartVoucher"
390
+ "status_339", "APACS30: wrong product code"
391
+ "status_340", "APACS30: wrong voucher value"
392
+ "status_345", "Merchant not subscribed for merchant ref cancellations"
393
+ "status_346", "Merchant ref is not unique"
394
+ "status_347", "Cannot cancel this txn type by merchant ref"
395
+ "status_348", "Do not supply a merchant reference and DataCash reference"
396
+ "status_350", "Age Verification: Connection Error"
397
+ "status_351", "Age Verification: No Response"
398
+ "status_352", "Age Verification: Invalid Response"
399
+ "status_353", "Age Verification: Error Response"
400
+ "status_354", "Age Verification: Not Subscribed"
401
+ "status_355", "Age Verification: Bad Configuration"
402
+ "status_356", "Age Verification: Missing Data"
403
+ "status_357", "Age Verification: Extra Data"
404
+ "status_358", "Age Verification: Invalid Data"
405
+ "status_359", "Age Verification: Incorrect Response"
406
+ "status_370", "Allocated reference already used"
407
+ "status_371", "Allocated reference had expired"
408
+ "status_372", "Not an allocated reference"
409
+ "status_373", "Cannot allocate references in this environment"
410
+ "status_374", "Cannot cancel unused reference"
411
+ "status_380", "Not subscribed for GCX DCC"
412
+ "status_381", "Invalid transaction details"
413
+ "status_382", "Invalid method"
414
+ "status_383", "Invalid scheme"
415
+ "status_384", "Invalid clearinghouse"
416
+ "status_385", "gcxreference field required for GCX transactions"
417
+ "status_1170", "Currency Conversion: Not configured for service"
418
+ "status_1171", "Currency Conversion: Not configured to process domestic currency"
419
+ "status_1172", "Currency Conversion: Currency not recognized"
420
+ "status_1173", "Currency Conversion: Country of origin not supported"
421
+ "status_1174", "Currency Conversion: No exchange rate available"
422
+ "status_1175", "Currency Conversion: No commission rate available"
423
+ "status_1176", "Currency Conversion: No matching rate request for supplied ID"
424
+ "status_1177", "Currency Conversion: Partial fulfil not supported"
425
+ "status_1178", "Currency Conversion: Currencies were the same"
426
+ "status_1179", "Currency Conversion: Referenced HPS txn is not populated yet"
427
+ "status_1180", "Currency Conversion: Referenced rate offer is for a different currency or amount"
428
+ "status_1181", "Currency Conversion: Referenced rate offer has already been used"
429
+ "status_1182", "Currency Conversion: capture method not supported"
430
+ "status_1183", "Currency Conversion: the rate offer has expired"
431
+ "status_1184", "Currency Conversion: the rate offer belongs to a different merchant"
432
+ "status_1185", "Currency Conversion: only pre and auth are supported"
433
+ "status_1186", "Currency Conversion: offer has a duplicate merchant ref"
434
+ "status_1187", "Currency Conversion: merchant ref corresponds to an offer other than the one being used"
435
+ "status_1188", "Currency Conversion: TID acquirer does not support CCS"
436
+ "status_1189", "Currency Conversion: cannot supply BaseCurrency and Amount"
437
+ "status_1190", "Currency Conversion: cannot supply ExchangeCurrency and bin"
438
+ "status_1191", "Currency Conversion: cannot contact Fexco webservice - please try again later"
439
+ "status_1192", "Currency Conversion: DCC declined by Fexco"
440
+ "status_1193", "Currency Conversion: Merchant not configured with Fexco service"
441
+ "status_1194", "Currency Conversion: Invalid Fexco response"
442
+ "status_1195", "Currency Conversion: Communications error"
443
+ "status_1196", "Currency Conversion: Split Shipment not permitted"
444
+ "status_1197", "Currency Conversion: Amount cannot be specified for a CCS txn_refund"
445
+ "status_390", "Merchant not subscribed to Click2Pay service"
446
+ "status_391", "Click2Pay: Connection Error"
447
+ "status_392", "Click2Pay: No response from Click2Pay server"
448
+ "status_393", "Click2Pay: Server returned invalid resposne"
449
+ "status_394", "Click2Pay: Server Error"
450
+ "status_395", "Click2Pay: Illegal Field"
451
+ "status_396", "Click2Pay: Unrecognised currency returned from Click2Pay server"
452
+ "status_421", "Omnipay - Network failure"
453
+ "status_422", "Datawire - Server Error"
454
+ "status_423", "Datawire - VXN Error"
455
+ "status_424", "Datawire - Invalid XML Response"
456
+ "status_426", "Omnipay - merchant incorrectly configured"
457
+ "status_427", "Omnipay - Invalid input"
458
+ "status_428", "Omnipay - invalid card scheme"
459
+ "status_430", "Elavon - server error"
460
+ "status_431", "Elavon - invalid AVS details"
461
+ "status_450", "SEB: Euroline System Error"
462
+ "status_451", "SEB: Failure at bank"
463
+ "status_452", "SEB: Request/Response Mismatch"
464
+ "status_453", "SEB: Merchant incorrectly configured"
465
+ "status_454", "SEB: No connection configured for authorisations"
466
+ "status_455", "SEB: Unsupported message type"
467
+ "status_456", "No external tickets available for this service"
468
+ "status_457", "SEB: Insufficient Data to generate request message "
469
+ "status_460", "Not Subscribed"
470
+ "status_461", "Merchant incorrectly configured"
471
+ "status_462", "Invalid element"
472
+ "status_515", "Cannot reverse transaction "
473
+ "status_516", "Inappropriate card number "
474
+ "status_517", "Unexpected elements "
475
+ "status_518", "Invalid refund "
476
+ "status_519", "Invalid Environment "
477
+ "status_530", "VEoD: not configured for service"
478
+ "status_531", "VEoD: outside EoD window"
479
+ "status_532", "VEoD: already received an EoD"
480
+ "status_533", "VEoD: EoD misconfigured"
481
+ "status_534", "VEoD: EoD misconfigured"
482
+ "status_560", "PayPal: Not configured for service "
483
+ "status_561", "PayPal: Error returned in response "
484
+ "status_562", "PayPal: Warning returned in response "
485
+ "status_563", "PayPal: Already refunded "
486
+ "status_564", "PayPal: Partial refund amount exceeds available amount "
487
+ "status_565", "PayPal: Invalid reference "
488
+ "status_566", "PayPal: Mandatory field not supplied "
489
+ "status_567", "PayPal: Disallowed field supplied "
490
+ "status_568", "PayPal: Validation error "
491
+ "status_569", "PayPal: Communications Error "
492
+ "status_570", "PayPal: Incomplete transaction"
493
+ "status_571", "PayPal:Customer login pending"
494
+ "status_572", "Paypal:No Paypal response received - please query transaction status"
495
+ "status_573", "Paypal:Request not received by Paypal"
496
+ "status_574", "Paypal:Action in progress"
497
+ "status_575", "Paypal:Transaction failed"
498
+ "status_576", "Paypal:Unsuccessful status"
499
+ "status_577", "Paypal:Status update failed"
500
+ "status_578", "Paypal:Unable to determine transaction status at Paypal"
501
+ "status_630", "Unexpected elements "
502
+ "status_631", "Inappropriate card number "
503
+ "status_632", "Invalid environment "
504
+ "status_633", "Invalid refund "
505
+ "status_911", "Amexiso: Unable to establish connection "
506
+ "status_912", "Amexiso: Airlines service subscription required in order to provide IAC data"
507
+ "status_913", "Amexiso: ThreeDSecure transaction on American Express cards can only be processed by Amexiso"
508
+ "status_914", "Amexiso: Invalid response from Amex"
509
+ "status_1400", "Concardis: Invalid response from Concardis"
510
+ "status_1401", "Concardis: Unable to establish connection"
511
+ "status_1402", "Concardis: corrupted response"
512
+ "status_1403", "Concardis: invalid service"
513
+ "status_1404", "Concardis: unable to determine POS Terminal ID Coded"
514
+ "status_650", "Chase: Communications Error"
515
+ "status_651", "Chase: Request/Response Mismatch"
516
+ "status_652", "Chase: No external connection resource available"
517
+ "status_653", "Chase: Failure at bank"
518
+ "status_654", "Chase: Error in response"
519
+ "status_655", "Chase: Not configured for service"
520
+ "status_656", "Chase: Cannot reverse expired auth"
521
+ "status_657", "Chase: Unsupported Card Scheme"
522
+ "status_658", "Chase: Insufficient Data to generate request message"
523
+ "status_659", "Chase: Auth reversal cannot be processed on expired auth"
524
+ "status_660", "Chase: HTTP error in response"
525
+ "status_661", "Chase: Unknown Error"
526
+ "status_670", "Invalid NAB Merchant ID"
527
+ "status_671", "NAB suffered a database error whilst processing the transaction"
528
+ "status_672", "NAB encountered an error whilst processing the transaction"
529
+ "status_673", "NAB suffered a fatal unknown error"
530
+ "status_674", "NAB was unable to process the transaction"
531
+ "status_675", "NAB is undergoing system maintenance"
532
+ "status_676", "Invalid NAB password supplied"
533
+ "status_677", "NAB was unable to process the transaction"
534
+ "status_678", "NAB was unable to process the transaction"
535
+ "status_679", "NAB has disabled the merchant acccount used for this transaction."
536
+ "status_680", "NAB was unable to process the transaction"
537
+ "status_681", "An unknown error has occurred processing the NAB transaction"
538
+ "status_682", "Merchant incorrectly configured for NAB"
539
+ "status_683", "NAB: Unable to establish connection to NAB"
540
+ "status_684", "NAB: HTTP error in response"
541
+ "status_685", "NAB: Communications Error"
542
+ "status_686", "Decryption/Encryption Error at NAB"
543
+ "status_687", "NAB Gateway Timeout, no response received from bank"
544
+ "status_688", "NAB complete transaction was for a greater amount than the preauth"
545
+ "status_689", "NAB payment amount is below the minimum specified by merchant"
546
+ "status_690", "NAB payment amount is above the maximum specified by merchant"
547
+ "status_691", "Transaction timed out while in the NAB queue"
548
+ "status_692", "Invalid response received from NAB"
549
+ "status_693", "Incorrect response received from NAB"
550
+ "status_694", "Pre-auth not found by NAB"
551
+ "status_695", "NAB pre-auth already completed"
552
+ "status_760", "Fuel Card Processing: Unexpected element in request "
553
+ "status_761", "Fuel Card Processing: Card provided is not a Fuel Card "
554
+ "status_762", "Fuel Card Processing: Invalid capturemethod (can only bekeyed or swiped for Fuel Cards) "
555
+ "status_763", "Fuel Card Processing: Invalid fuel_settle txn "
556
+ "status_764", "Fuel Card Processing: Missing receipt_no element "
557
+ "status_810", "HPS: Inappropriate data supplied"
558
+ "status_811", "HPS: Missing data"
559
+ "status_812", "HPS: Invalid reference"
560
+ "status_813", "HPS: Communications error"
561
+ "status_814", "HPS: Invalid HPS response"
562
+ "status_815", "HPS: Invalid payment reference"
563
+ "status_816", "HPS: Merchant not configured"
564
+ "status_817", "HPS: Capture field data too long"
565
+ "status_818", "HPS: Dynamic Data Field too long"
566
+ "status_820", "HPS: Awaiting customer card details."
567
+ "status_821", "HPS: At least one auth attempted. Awaiting payment details."
568
+ "status_822", "HPS: The maximum number of retry transaction was breached."
569
+ "status_823", "HPS: The merchants customer did not complete within the session timeout."
570
+ "status_824", "HPS: Payment in flight. Awaiting customer ACS submission."
571
+ "status_825", "HPS: Merchant not configured for full-hps"
572
+ "status_826", "HPS: The transaction has already been marked as final."
573
+ "status_827", "HPS: Invalid capturemethod."
574
+ "status_828", "HPS: Awaiting authorization."
575
+ "status_829", "HPS: Invalid payment method for Full HPS txns."
576
+ "status_845", "HPS: Paypal - Customer sent to the PayPal login page."
577
+ "status_846", "HPS: Paypal - Waiting for customer to confirm payment."
578
+ "status_847", "HPS: Paypal - Payment have confirmed funds available."
579
+ "status_848", "HPS: Paypal - Invalid PayPal method."
580
+ "status_849", "HPS: Paypal - Invalid PayPal payment action."
581
+ "status_850", "HPS: Paypal - Invalid PayPal setup elements."
582
+ "status_851", "HPS: Paypal - The Paypal txn was voided."
583
+ "status_860", "An APG session has been setup, waiting for the customer to return."
584
+ "status_861", "The APG transaction failed."
585
+ "status_830", "Unable to establish connection to Westpac"
586
+ "status_831", "Invalid response received from Westpac"
587
+ "status_832", "Incorrect response received from Westpac"
588
+ "status_833", "Westpac: Communications Error"
589
+ "status_834", "Westpac: HTTP error in response"
590
+ "status_835", "Westpac server returned an error"
591
+ "status_836", "Westpac server rejected the transaction"
592
+ "status_837", "Duplicate merchant reference sent to Westpac"
593
+ "status_838", "Unexpected response from Westpac"
594
+ "status_839", "Error encountered at Westpac - transaction has not been processed"
595
+ "status_840", "Transaction could not be cancelled at Westpac"
596
+ "status_920", "Wirecard: An unknown error occurred while processing the transaction"
597
+ "status_921", "Wirecard: Unable to establish connection"
598
+ "status_922", "Wirecard: Unable to establish connection"
599
+ "status_923", "Wirecard: Invalid response received from Wirecard"
600
+ "status_924", "Wirecard: HTTP error on response"
601
+ "status_925", "Wirecard: Encryption failure at Wirecard"
602
+ "status_926", "Wirecard: Card issuer temporarily not reachable"
603
+ "status_927", "Wirecard: Processing temporarily not available"
604
+ "status_928", "Wirecard: Wirecard reported timeout while processing transaction"
605
+ "status_929", "Wirecard: Terminal not available"
606
+ "status_930", "Wirecard: Terminal not ready"
607
+ "status_931", "Wirecard: Amount larger than allowed"
608
+ "status_932", "Wirecard: Amount smaller than minimum amount"
609
+ "status_933", "Wirecard: Transaction processing not possible on terminal"
610
+ "status_934", "Connection to Wirecard timed out. Transaction in unknown state"
611
+ "status_935", "Wirecard: Airlines record may only be submitted as part of a fulfill transaction"
612
+ "status_936", "Wirecard: Unexpected response received from Wirecard"
613
+ "status_937", "Wirecard: Fulfill failed"
614
+ "status_991", "Tokenization: Invalid Token"
615
+ "status_992", "Tokenization: Unknown Token"
616
+ "status_993", "Tokenization: Not configured for service"
617
+ "status_994", "Tokenization: Expired Token"
618
+ "status_995", "Tokenization: Token generation is already taking place for this PAN"
619
+ "status_996", "Tokenization: Invalid shared secret"
620
+ "status_997", "Tokenization: Token generation resulted in a collision"
621
+ "status_1001", "Unable to establish connection."
622
+ "status_1002", "The transaction was rejected by PayGate"
623
+ "status_1003", "An unknown error occurred while processing the transaction"
624
+ "status_1004", "Invalid response received from Paygate"
625
+ "status_1005", "Unable to establish connection"
626
+ "status_1006", "HTTP error on response"
627
+ "status_1007", "Partial fulfill not supported for PayGate"
628
+ "status_1031", "FDS:Unexpected response from FDS"
629
+ "status_1033", "FDS:Unable to establish connection"
630
+ "status_1034", "FDS:Unknown response received from FDS"
631
+ "status_1035", "FDS:Unknown Bank Failure"
632
+ "status_1036", "FDS:Merchant narrative is not support for FDS"
633
+ "status_1791", "PayPass: Not enabled for PayPass service"
634
+ "status_1792", "PayPass: Invalid PayPass method"
635
+ "status_1793", "PayPass: Missing mandatory element"
636
+ "status_1794", "PayPass: Invalid element"
637
+ "status_1795", "PayPass: Request to PayPass failed"
638
+ "status_1796", "PayPass: Invalid transaction reference"
639
+ "status_1797", "PayPass: Invalid resource URL specified"
640
+ "status_1801", "HPS PayPass: Card details collected, Awaiting authorisation"
641
+ "status_1802", "HPS PayPass: Transaction failed"
642
+ "status_12210", "PayPass"
643
+ "status_12211", "PayPass"
644
+ "status_1046", "End to End Encryption: Invalid key request method"
645
+ "status_1047", "End to End Encryption: Invalid key request version"
646
+ "status_1048", "End to End Encryption: Invalid CA ID"
647
+ "status_1049", "End to End Encryption: Invalid IV ID"
648
+ "status_1050", "End to End Encryption: Unsupported ENC ID"
649
+ "status_1051", "End to End Encryption: Invalid SESSIONKEY"
650
+ "status_1052", "End to End Encryption: Error decrypting track 2 data"
651
+ "status_1053", "End to End Encryption: Error decrypting PAN"
652
+ "status_1054", "End to End Encryption: Invalid card type for decryption"
653
+ "status_1055", "End to End Encryption: Missing transaction date and time"
package.xml CHANGED
@@ -1,21 +1,19 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Datacash</name>
4
- <version>1.0.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>DataCash payment gateway integration</summary>
10
- <description>DataCash payment gateway integration.&#xD;
11
- &#xD;
12
- System requirements as for Magento http://www.magentocommerce.com/system-requirements. &#xD;
13
  cURL with the FOLLOWLOCATION option is used for service calls to DataCash. FOLLOWLOCATION requires safe_mode to be off and open_basedir to be disabled in the php.ini</description>
14
- <notes>Initial version for Magento Connect based on pre-launch version 0.1.15.</notes>
15
  <authors><author><name>DataCash</name><user>datacash</user><email>support@datacash.com</email></author></authors>
16
- <date>2012-11-14</date>
17
- <time>2012-11-14</time>
18
- <contents><target name="magecommunity"><dir name="DataCash"><dir name="Dpg"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Hint.php" hash="c65030837e1ce97a063b9146f3bb983d"/></dir></dir></dir></dir><dir name="Form"><file name="Api.php" hash="7c04a67710e184da4f46b1f653273a44"/><file name="Apiprereg.php" hash="bf28b55b476562ff459012c9fc21bc6d"/><file name="Hcc.php" hash="b3406a87a800b9182a0e4e259cf75754"/><file name="Hps.php" hash="47a732ebb397a14a145851cdb00ceb0b"/><file name="Iframe.php" hash="178bc848a81c42fac0f341690d6df597"/><file name="Placeform.php" hash="19bafec3229f6f35382d9b725d41f620"/></dir><dir name="Iframe"><file name="Complete.php" hash="adbf0cb0a89aee5704cebf62dd63b4a9"/><file name="Start.php" hash="4fb94606c1aad2a4593169e3b8526152"/></dir><dir name="Info"><file name="Api.php" hash="a2893e155ba8c92776e12ed7d4472284"/><file name="Hcc.php" hash="7a2c713640e7fcee5d5c2150d1baff40"/><file name="Hps.php" hash="8b06d32980842db5274897d3bfba9df1"/></dir></dir><dir name="Controller"><file name="Abstract.php" hash="3082d6a39d67762df16eed690823aab3"/></dir><dir name="Helper"><file name="Data.php" hash="51d987249387daa39805ae8e29a0b7ac"/></dir><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="070cec036514a25c63c290d0b1353aba"/><file name="Direct.php" hash="1a3a44f83e90d73ea076d3d0da78d308"/><file name="Directprereg.php" hash="1ba0633478037b367bf3f15f091dcdb4"/><file name="Hcc.php" hash="1b3eb2e1828e8336c447ad8bfcb75825"/><file name="Hps.php" hash="40616c129c29acb6978b4bf543b4187c"/></dir><file name="Code.php" hash="996b864fc427386854c3fb1d318e9231"/><file name="Config.php" hash="345d3d29181bd0ce9999f010bff59728"/><dir name="Datacash"><file name="Request.php" hash="d5ed936db2c3833cad68dcf72c877bff"/><file name="Response.php" hash="d40e4e87478b5c6718c2d1024760b974"/></dir><file name="Dpg.php" hash="5ded0f39a06d12f538fbdf8fe7553c7c"/><dir name="Entity"><file name="Setup.php" hash="d74a82e89fe2213034f6558956ad9633"/></dir><dir name="Method"><file name="Abstract.php" hash="bc13264d4c9877b66807531e01d31d89"/><file name="Api.php" hash="04fe70e7c76d8030e1f360f3c3d25bc9"/><file name="Apiprereg.php" hash="d4657215a54cf54f81efcf5bd579287e"/><file name="Hcc.php" hash="c48c2f2e433eb48378b7192cbaf7218b"/><dir name="Hosted"><file name="Abstract.php" hash="db47ba86ca37ddc5c7d85ef49e94dff4"/><file name="Interface.php" hash="926072fcd7d864e1f98da8b59b164eb7"/></dir><file name="Hps.php" hash="8cc5bb756e37457e20a6c457a7dbb7d8"/></dir><file name="Observer.php" hash="8b1bb83efec831a079d8a248a5aa1f9c"/><dir name="Service"><file name="Abstract.php" hash="ddc7dffebdbde49baf3e976828de15f9"/><file name="Direct.php" hash="2dc35bf8f06de86cbdcb2975ea08ef9d"/><file name="Directprereg.php" hash="342849147fb97872192d800a2457c917"/><file name="Hcc.php" hash="ef97de32a2d6f854f1df6d0a5b9f7a95"/><dir name="State"><file name="Datacash.php" hash="79df9d849f4d23e154c1075b776ca888"/></dir></dir><file name="Service.php" hash="3c5374cf5d2f3d802fe032dce47c1c64"/><dir name="Source"><file name="Acceptreject.php" hash="a3142c294701177d85aab3a6f214e9b2"/><file name="Authtypes.php" hash="a7923edddb42f8ea86b2abb07546d62a"/><file name="Threedstypes.php" hash="5f404d5d676a3baf0e0e71f1331decc2"/></dir></dir><dir name="controllers"><file name="HccController.php" hash="4257caa14117e23565568855abe307a9"/><file name="HostedController.php" hash="d08cef939ce21212e30150354f86f6fc"/><file name="HpsController.php" hash="7c94d6d858f20f810cfd6df61a3238f3"/><file name="T3mController.php" hash="bf54d16c48e5fc9fec96dad1e6e0f0fc"/></dir><dir name="etc"><file name="config.xml" hash="a7d95f96aaabce86e671eed47c933d05"/><file name="system.xml" hash="3cf66601f38555bf5b709dd7b62b9865"/></dir><dir name="sql"><dir name="datacash_dpg_setup"><file name="mysql4-install-0.1.0.php" hash="00a5d0be2b14d26ed85ed891b811abfc"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="DataCash_Payment.xml" hash="7f1d393c458e2287f492fc01dd2f1265"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="datacash"><dir name="hcc"><file name="info.phtml" hash="02f4c24746861b51bf7b1cc71ad56bbe"/></dir><dir name="hps"><file name="info.phtml" hash="6ab593be19fc60bff92b5370b7f8809f"/></dir><dir name="system"><dir name="config"><dir name="fieldset"><file name="hint.phtml" hash="a411204abaf9b4a31806354189896553"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="datacash.xml" hash="5f2531bbff2d8a5d2a20ea3ec91ea91e"/></dir><dir name="template"><dir name="datacash"><dir name="form"><file name="cc.phtml" hash="7309b291dc636b43cbbcbdda8440016f"/><file name="cc.phtml.backup" hash="4930cc189ac48efe55694e5aec89939f"/><file name="cc_prereg.phtml" hash="5b33eaca19e25153a7bcedee02a6f0a6"/></dir><dir name="hcc"><file name="form.phtml" hash="81ed0746ffbd96d8000b95db7c281d03"/><file name="info.phtml" hash="eb512a6dab0d1396742cddf5c5db1598"/><file name="placeform.phtml" hash="b79869ff4346c230c6214b2bffdbc46c"/></dir><dir name="hps"><file name="form.phtml" hash="81ed0746ffbd96d8000b95db7c281d03"/><file name="info.phtml" hash="4bd99be8a9e08b77618fc2f596d2856a"/></dir><dir name="iframe"><file name="complete.phtml" hash="9190056410f552cb802a85b582127065"/><file name="form.phtml" hash="e4ffeaecf5117a0b473fd238364f11a5"/><file name="start.phtml" hash="3493cd85bf3b3ca604990bd3d810d14d"/></dir></dir></dir></dir></dir></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
21
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Datacash</name>
4
+ <version>1.2.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>DataCash payment gateway integration</summary>
10
+ <description>DataCash payment gateway integration. System requirements as for Magento http://www.magentocommerce.com/system-requirements.&#xD;
 
 
11
  cURL with the FOLLOWLOCATION option is used for service calls to DataCash. FOLLOWLOCATION requires safe_mode to be off and open_basedir to be disabled in the php.ini</description>
12
+ <notes>Version 1.2.1</notes>
13
  <authors><author><name>DataCash</name><user>datacash</user><email>support@datacash.com</email></author></authors>
14
+ <date>2014-02-20</date>
15
+ <time>10:08:25</time>
16
+ <contents><target name="magecommunity"><dir name="DataCash"><dir name="Dpg"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Hint.php" hash="c65030837e1ce97a063b9146f3bb983d"/></dir></dir></dir></dir><dir name="Form"><file name="Api.php" hash="033a34c52dc6dc03fa802c78e05fff9c"/><file name="Apiprereg.php" hash="bf28b55b476562ff459012c9fc21bc6d"/><file name="Hcc.php" hash="b3406a87a800b9182a0e4e259cf75754"/><file name="Hps.php" hash="47a732ebb397a14a145851cdb00ceb0b"/><file name="Iframe.php" hash="d0aad3633894b90f64112a962c8e3161"/><file name="Placeform.php" hash="19bafec3229f6f35382d9b725d41f620"/></dir><dir name="Iframe"><file name="Complete.php" hash="adbf0cb0a89aee5704cebf62dd63b4a9"/><file name="Start.php" hash="ef6527a85117c67a52291932339a25a1"/></dir><dir name="Info"><file name="Api.php" hash="a2893e155ba8c92776e12ed7d4472284"/><file name="Hcc.php" hash="7a2c713640e7fcee5d5c2150d1baff40"/><file name="Hps.php" hash="8b06d32980842db5274897d3bfba9df1"/></dir></dir><dir name="Controller"><file name="Abstract.php" hash="3082d6a39d67762df16eed690823aab3"/></dir><dir name="Helper"><file name="Data.php" hash="5ed8bc718e0fe451c28e9292fff73e97"/></dir><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="b00da3bb53b668a7ad5f815ebed0e708"/><file name="Direct.php" hash="bb6e10495f1a5f50feb0766dea293684"/><file name="Directprereg.php" hash="1ba0633478037b367bf3f15f091dcdb4"/><file name="Hcc.php" hash="20258e56c38d2304d002b4ddecf26773"/><file name="Hps.php" hash="40616c129c29acb6978b4bf543b4187c"/></dir><file name="Code.php" hash="59f5ff145e0185f6e2def345a60c1d81"/><file name="Config.php" hash="abf95e87bff7baa0aab185e386ad42aa"/><dir name="Datacash"><file name="Request.php" hash="bc8ab60fba52399a6061f137abf7997a"/><file name="Response.php" hash="5e35f8de32c92052922c5c868aab20b7"/></dir><file name="Dpg.php" hash="5ded0f39a06d12f538fbdf8fe7553c7c"/><dir name="Entity"><file name="Setup.php" hash="d74a82e89fe2213034f6558956ad9633"/></dir><dir name="Method"><file name="Abstract.php" hash="33c5b3cc98e7d11e5b4fafe5a18a461e"/><file name="Api.php" hash="9be2125eeeed331d691b665351538f0a"/><file name="Apiprereg.php" hash="7af51159fa691a4593ca34754fa7490d"/><file name="Hcc.php" hash="b7e4689d20b931b8ea29bce06f44f8c7"/><dir name="Hosted"><file name="Abstract.php" hash="32100702f8e7dbf2e3faafa1b541a981"/><file name="Interface.php" hash="926072fcd7d864e1f98da8b59b164eb7"/></dir><file name="Hps.php" hash="ce07c9a04d19558a052678e3df28c1f2"/></dir><file name="Observer.php" hash="8b1bb83efec831a079d8a248a5aa1f9c"/><dir name="Resource"><file name="Setup.php" hash="8c8dfa376d518c3b1122ecdeceec7683"/><dir name="Tokencard"><file name="Collection.php" hash="8f12f4c957db4c60542f345c909d7918"/></dir><file name="Tokencard.php" hash="4f1098828b12460edf828342fe88e559"/></dir><dir name="Service"><file name="Abstract.php" hash="8815585398e87b8bcb6d4c282b954f95"/><file name="Direct.php" hash="2dc35bf8f06de86cbdcb2975ea08ef9d"/><file name="Directprereg.php" hash="342849147fb97872192d800a2457c917"/><file name="Hcc.php" hash="ef97de32a2d6f854f1df6d0a5b9f7a95"/><dir name="State"><file name="Datacash.php" hash="79df9d849f4d23e154c1075b776ca888"/></dir></dir><file name="Service.php" hash="3c5374cf5d2f3d802fe032dce47c1c64"/><dir name="Source"><file name="Acceptreject.php" hash="a3142c294701177d85aab3a6f214e9b2"/><file name="Authtypes.php" hash="a7923edddb42f8ea86b2abb07546d62a"/><file name="GatewayMode.php" hash="85964602d7d5afb3a1b9dd5c158bf3a0"/><file name="RsgServiceTypes.php" hash="2a756b7341413ae462f3ad7f83c8ada6"/><file name="Threedstypes.php" hash="5f404d5d676a3baf0e0e71f1331decc2"/></dir><file name="Tokencard.php" hash="a83e3a6c6bfd86377727e5fab0b1020b"/></dir><dir name="controllers"><file name="HccController.php" hash="4257caa14117e23565568855abe307a9"/><file name="HostedController.php" hash="d08cef939ce21212e30150354f86f6fc"/><file name="HpsController.php" hash="7c94d6d858f20f810cfd6df61a3238f3"/><file name="T3mController.php" hash="bf54d16c48e5fc9fec96dad1e6e0f0fc"/></dir><dir name="etc"><file name="config.xml" hash="dab1b1f9768a95d6e803345fa187e88f"/><file name="system.xml" hash="c4398a75093e57709b240abc55d0ab6b"/></dir><dir name="sql"><dir name="datacash_dpg_setup"><file name="mysql4-install-0.1.0.php" hash="00a5d0be2b14d26ed85ed891b811abfc"/><file name="mysql4-upgrade-1.0.1-1.1.0.php" hash="a793557ab661f8d8a8535ae3a0683151"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="datacash"><dir name="hcc"><file name="info.phtml" hash="02f4c24746861b51bf7b1cc71ad56bbe"/></dir><dir name="hps"><file name="info.phtml" hash="6ab593be19fc60bff92b5370b7f8809f"/></dir><dir name="system"><dir name="config"><dir name="fieldset"><file name="hint.phtml" hash="a411204abaf9b4a31806354189896553"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="datacash.xml" hash="5f2531bbff2d8a5d2a20ea3ec91ea91e"/></dir><dir name="template"><dir name="datacash"><dir name="form"><file name="cc.phtml" hash="b798c2c2c0729bef424d1be5f64ca024"/><file name="cc.phtml.backup" hash="4930cc189ac48efe55694e5aec89939f"/><file name="cc_prereg.phtml" hash="5b33eaca19e25153a7bcedee02a6f0a6"/></dir><dir name="hcc"><file name="form.phtml" hash="81ed0746ffbd96d8000b95db7c281d03"/><file name="info.phtml" hash="eb512a6dab0d1396742cddf5c5db1598"/><file name="placeform.phtml" hash="b79869ff4346c230c6214b2bffdbc46c"/></dir><dir name="hps"><file name="form.phtml" hash="81ed0746ffbd96d8000b95db7c281d03"/><file name="info.phtml" hash="4bd99be8a9e08b77618fc2f596d2856a"/></dir><dir name="iframe"><file name="complete.phtml" hash="9190056410f552cb802a85b582127065"/><file name="form.phtml" hash="74abd537d1256778a19dd580d236224f"/><file name="start.phtml" hash="3493cd85bf3b3ca604990bd3d810d14d"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="DataCash_Payment.xml" hash="7f1d393c458e2287f492fc01dd2f1265"/></dir></target><target name="magelocale"><dir name="en_GB"><file name="DataCash_Dpg.csv" hash="f5d24ae44a0d5f3ac76e74430059152d"/></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
19
  </package>