Version Notes
Release 1.1.0
Introduces a mechanism to send custom Key Value Pairs (KVP) to CASMTP by mapping Magento configuration paths to CASMTP KVPs.
The mapping is specified in the package's Config KVP Map configuration area.
At the time of a transaction, the value associated with each configuration path is retrieved and sent as the value of the corresponding KVP.
Download this release
Release Info
Developer | Card Access Services |
Extension | CardAccessServices_Casmtp |
Version | 1.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.1 to 1.1.0
- app/code/community/CardAccessServices/Casmtp/Block/Adminhtml/System/Config/ConfigKvpMap.php +43 -0
- app/code/community/CardAccessServices/Casmtp/Model/Adminhtml/System/Config/Backend/ConfigKvpMap.php +73 -0
- app/code/community/CardAccessServices/Casmtp/Model/PaymentMethod.php +57 -6
- app/code/community/CardAccessServices/Casmtp/casmtpprotocol.php +31 -7
- app/code/community/CardAccessServices/Casmtp/etc/system.xml +11 -1
- package.xml +16 -11
app/code/community/CardAccessServices/Casmtp/Block/Adminhtml/System/Config/ConfigKvpMap.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Card Access Services CASMTP
|
4 |
+
*
|
5 |
+
* Copyright 2013 Card Access Services
|
6 |
+
*
|
7 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
8 |
+
* you may not use this file except in compliance with the License.
|
9 |
+
* You may obtain a copy of the License at
|
10 |
+
*
|
11 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
12 |
+
*
|
13 |
+
* Unless required by applicable law or agreed to in writing, software
|
14 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
15 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16 |
+
* See the License for the specific language governing permissions and
|
17 |
+
* limitations under the License.
|
18 |
+
*
|
19 |
+
* @author Card Access Services
|
20 |
+
* @copyright Copyright (c) 2013 Card Access Services (http://www.cardaccess.com.au)
|
21 |
+
* @license http://opensource.org/licenses/Apache-2.0 Apache Software License (ASL 2.0)
|
22 |
+
*/
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Magento config path to CASMTP KVP key renderer.
|
26 |
+
*/
|
27 |
+
class CardAccessServices_Casmtp_Block_Adminhtml_System_Config_ConfigKvpMap extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
28 |
+
{
|
29 |
+
public function __construct()
|
30 |
+
{
|
31 |
+
$this->addColumn('kvp_key', array(
|
32 |
+
'label' => Mage::helper('adminhtml')->__('CASMTP KVP Key'),
|
33 |
+
'style' => 'width:150px',
|
34 |
+
));
|
35 |
+
$this->addColumn('config_path', array(
|
36 |
+
'label' => Mage::helper('adminhtml')->__('Magento Config Path'),
|
37 |
+
'style' => 'width:160px',
|
38 |
+
));
|
39 |
+
$this->_addAfter = false;
|
40 |
+
$this->_addButtonLabel = Mage::helper('adminhtml')->__('Add Mapping');
|
41 |
+
parent::__construct();
|
42 |
+
}
|
43 |
+
}
|
app/code/community/CardAccessServices/Casmtp/Model/Adminhtml/System/Config/Backend/ConfigKvpMap.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Card Access Services CASMTP
|
4 |
+
*
|
5 |
+
* Copyright 2013 Card Access Services
|
6 |
+
*
|
7 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
8 |
+
* you may not use this file except in compliance with the License.
|
9 |
+
* You may obtain a copy of the License at
|
10 |
+
*
|
11 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
12 |
+
*
|
13 |
+
* Unless required by applicable law or agreed to in writing, software
|
14 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
15 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16 |
+
* See the License for the specific language governing permissions and
|
17 |
+
* limitations under the License.
|
18 |
+
*
|
19 |
+
* @author Card Access Services
|
20 |
+
* @copyright Copyright (c) 2013 Card Access Services (http://www.cardaccess.com.au)
|
21 |
+
* @license http://opensource.org/licenses/Apache-2.0 Apache Software License (ASL 2.0)
|
22 |
+
*/
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Backend for serialized array data
|
26 |
+
*
|
27 |
+
*/
|
28 |
+
class CardAccessServices_Casmtp_Model_Adminhtml_System_Config_Backend_ConfigKvpMap extends Mage_Adminhtml_Model_System_Config_Backend_Serialized
|
29 |
+
{
|
30 |
+
/**
|
31 |
+
* Unset array element with '__empty' key
|
32 |
+
* Trim whitespace from all keys and values.
|
33 |
+
* Emit warnings for duplicate keys, masked defaults, and empty values.
|
34 |
+
* Prevent entry of empty keys.
|
35 |
+
*/
|
36 |
+
protected function _beforeSave()
|
37 |
+
{
|
38 |
+
$config_kvp_map = $this->getValue();
|
39 |
+
if (is_array($config_kvp_map)) {
|
40 |
+
unset($config_kvp_map['__empty']);
|
41 |
+
}
|
42 |
+
|
43 |
+
$kvps = $kvps_seen = array();
|
44 |
+
foreach ($config_kvp_map as $config_kvp) {
|
45 |
+
$kvp_key = trim($config_kvp['kvp_key']);
|
46 |
+
if (empty($kvp_key))
|
47 |
+
Mage::throwException(Mage::helper('casmtp')->__('A KVP key was missing. The configuration has not been saved.'));
|
48 |
+
|
49 |
+
$config_path = trim($config_kvp['config_path']);
|
50 |
+
if (empty($config_path))
|
51 |
+
$warnings[] = 'Empty config path for KVP "' . $kvp_key . '".';
|
52 |
+
|
53 |
+
if (in_array($kvp_key, $kvps_seen))
|
54 |
+
$warnings[] = 'Duplicate KVP key "' . $kvp_key . '" <i>(The last valid one defined will be used)</i>';
|
55 |
+
|
56 |
+
if ($kvp_key == 'CAS.CUSTREF')
|
57 |
+
$warnings[] = 'CAS.CUSTREF will mask the default order number value <i>(Use this only if you know what you are doing)</i>';
|
58 |
+
|
59 |
+
$kvps_seen[] = $kvp_key;
|
60 |
+
$kvps[] = array('kvp_key' => $kvp_key,
|
61 |
+
'config_path' => $config_path,);
|
62 |
+
}
|
63 |
+
|
64 |
+
if (!empty($warnings)) {
|
65 |
+
$session = Mage::getSingleton('adminhtml/session');
|
66 |
+
foreach (array_unique($warnings) as $warning)
|
67 |
+
$session->addWarning(Mage::helper('casmtp')->__($warning));
|
68 |
+
}
|
69 |
+
|
70 |
+
$this->setValue($kvps);
|
71 |
+
parent::_beforeSave();
|
72 |
+
}
|
73 |
+
}
|
app/code/community/CardAccessServices/Casmtp/Model/PaymentMethod.php
CHANGED
@@ -353,6 +353,54 @@ class CardAccessServices_Casmtp_Model_PaymentMethod extends Mage_Payment_Model_M
|
|
353 |
return $this;
|
354 |
}
|
355 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
/**
|
357 |
* Perform a capture of the transaction
|
358 |
*
|
@@ -363,8 +411,10 @@ class CardAccessServices_Casmtp_Model_PaymentMethod extends Mage_Payment_Model_M
|
|
363 |
* @access public
|
364 |
*/
|
365 |
public function capture(Varien_Object $payment, $amount) {
|
366 |
-
$cust_ref = CasMiscUtil::getCustRefFromPayment($payment);
|
367 |
$this->_logPaymentEvent($payment, "capture invoked");
|
|
|
|
|
|
|
368 |
$casmtp = $this->_createCasmtp();
|
369 |
|
370 |
/* Get an audit number first */
|
@@ -377,10 +427,10 @@ class CardAccessServices_Casmtp_Model_PaymentMethod extends Mage_Payment_Model_M
|
|
377 |
$expiry = CasMiscUtil::formatExpiryFromPayment($payment);
|
378 |
$this->_logPaymentEvent($payment, "starting capture for $audit (pan = xxxx-" . $payment->getCcLast4() . ", amount = $amount)");
|
379 |
|
380 |
-
$result = $casmtp->purchase($audit, $pan, $expiry, $cvv, CasMiscUtil::flattenAmount($amount), $cust_ref);
|
381 |
}
|
382 |
catch (Exception $e) {
|
383 |
-
/* This usually indicates some kind of
|
384 |
Mage::log("$this->_code $cust_ref: error encountered: " . $e->getMessage());
|
385 |
Mage::throwException(Mage::helper('casmtp')->__("There was an error encountered while performing the transaction"));
|
386 |
}
|
@@ -401,11 +451,12 @@ class CardAccessServices_Casmtp_Model_PaymentMethod extends Mage_Payment_Model_M
|
|
401 |
* @access public
|
402 |
*/
|
403 |
public function refund(Varien_Object $payment, $amount) {
|
404 |
-
$cust_ref = CasMiscUtil::getCustRefFromPayment($payment);
|
405 |
$this->_logPaymentEvent($payment, "refund invoked");
|
406 |
|
|
|
|
|
407 |
/*
|
408 |
-
* Filter out zero amounts just in case the
|
409 |
*
|
410 |
* The gateway has no issue with this, but it's probably less confusing to the merchant if we block off
|
411 |
* the transaction immediately
|
@@ -428,7 +479,7 @@ class CardAccessServices_Casmtp_Model_PaymentMethod extends Mage_Payment_Model_M
|
|
428 |
/* Do the refund */
|
429 |
try {
|
430 |
$this->_logPaymentEvent($payment, "starting refund for $audit (pan = xxxx-" . $payment->getCcLast4() . ", amount = $amount)");
|
431 |
-
$result = $casmtp->refund($audit, $old_audit, CasMiscUtil::flattenAmount($amount));
|
432 |
}
|
433 |
catch (Exception $e) {
|
434 |
// This usually indicates some kind of wierd networking issue
|
353 |
return $this;
|
354 |
}
|
355 |
|
356 |
+
/**
|
357 |
+
* Construct an array of KVPs to send to CASMTP.
|
358 |
+
* This maps Magento config values defined by their config path to CASMTP KVPs.
|
359 |
+
* The KVP keys and config paths are stored in config path "config_kvp_map".
|
360 |
+
*
|
361 |
+
* @param boolean $log_kvps whether to log the final set of KVPs
|
362 |
+
*
|
363 |
+
* @return array the KVPs
|
364 |
+
* @access private
|
365 |
+
*/
|
366 |
+
private function _get_config_kvps($log_kvps=false) {
|
367 |
+
$kvps = array();
|
368 |
+
$config_kvp_map = unserialize($this->_getConfig("config_kvp_map"));
|
369 |
+
if (is_array($config_kvp_map)) {
|
370 |
+
foreach ($config_kvp_map as $config_kvp) {
|
371 |
+
$config_path = trim($config_kvp['config_path']);
|
372 |
+
$kvp_key = trim($config_kvp['kvp_key']);
|
373 |
+
if (empty($config_path))
|
374 |
+
Mage::Log('casmtp: empty config path for KVP key "' . $kvp_key . '", ignored', Zend_Log::WARN);
|
375 |
+
elseif (empty($kvp_key))
|
376 |
+
Mage::Log('casmtp: empty KVP key for config path "' . $config_path . '", ignored', Zend_Log::WARN);
|
377 |
+
else {
|
378 |
+
$config_value = trim(Mage::getStoreConfig($config_path));
|
379 |
+
if (empty($config_value))
|
380 |
+
Mage::Log('casmtp: config path "' . $config_path . '" not found or contains an empty value', Zend_Log::WARN);
|
381 |
+
else {
|
382 |
+
if (strlen($kvp_key) > Casmtp::MAX_KVP_KEY_LENGTH) {
|
383 |
+
Mage::Log('casmtp: KVP key "' . $kvp_key . '" truncated (max ' . Casmtp::MAX_KVP_KEY_LENGTH . ')', Zend_Log::WARN);
|
384 |
+
$kvp_key = substr($kvp_key, 0, Casmtp::MAX_KVP_KEY_LENGTH);
|
385 |
+
}
|
386 |
+
if (strlen($config_value) > Casmtp::MAX_KVP_VALUE_LENGTH) {
|
387 |
+
Mage::Log('casmtp: KVP value "' . $config_value . '" truncated (max ' . Casmtp::MAX_KVP_VALUE_LENGTH . ')', Zend_Log::WARN);
|
388 |
+
$config_value = substr($config_value, 0, Casmtp::MAX_KVP_VALUE_LENGTH);
|
389 |
+
}
|
390 |
+
if (array_key_exists($kvp_key, $kvps))
|
391 |
+
Mage::Log('casmtp: duplicate KVP key "' . $kvp_key . '" overriding value with "' . $config_value . '"', Zend_Log::WARN);
|
392 |
+
$kvps[$kvp_key] = $config_value;
|
393 |
+
}
|
394 |
+
}
|
395 |
+
}
|
396 |
+
}
|
397 |
+
|
398 |
+
if ($log_kvps)
|
399 |
+
Mage::Log('casmtp: config kvps = ' . print_r($kvps, true));
|
400 |
+
|
401 |
+
return $kvps;
|
402 |
+
}
|
403 |
+
|
404 |
/**
|
405 |
* Perform a capture of the transaction
|
406 |
*
|
411 |
* @access public
|
412 |
*/
|
413 |
public function capture(Varien_Object $payment, $amount) {
|
|
|
414 |
$this->_logPaymentEvent($payment, "capture invoked");
|
415 |
+
|
416 |
+
$cust_ref = CasMiscUtil::getCustRefFromPayment($payment);
|
417 |
+
|
418 |
$casmtp = $this->_createCasmtp();
|
419 |
|
420 |
/* Get an audit number first */
|
427 |
$expiry = CasMiscUtil::formatExpiryFromPayment($payment);
|
428 |
$this->_logPaymentEvent($payment, "starting capture for $audit (pan = xxxx-" . $payment->getCcLast4() . ", amount = $amount)");
|
429 |
|
430 |
+
$result = $casmtp->purchase($audit, $pan, $expiry, $cvv, CasMiscUtil::flattenAmount($amount), $cust_ref, $this->_get_config_kvps(true));
|
431 |
}
|
432 |
catch (Exception $e) {
|
433 |
+
/* This usually indicates some kind of weird networking issue */
|
434 |
Mage::log("$this->_code $cust_ref: error encountered: " . $e->getMessage());
|
435 |
Mage::throwException(Mage::helper('casmtp')->__("There was an error encountered while performing the transaction"));
|
436 |
}
|
451 |
* @access public
|
452 |
*/
|
453 |
public function refund(Varien_Object $payment, $amount) {
|
|
|
454 |
$this->_logPaymentEvent($payment, "refund invoked");
|
455 |
|
456 |
+
$cust_ref = CasMiscUtil::getCustRefFromPayment($payment);
|
457 |
+
|
458 |
/*
|
459 |
+
* Filter out zero amounts just in case the core framework doesn't do this
|
460 |
*
|
461 |
* The gateway has no issue with this, but it's probably less confusing to the merchant if we block off
|
462 |
* the transaction immediately
|
479 |
/* Do the refund */
|
480 |
try {
|
481 |
$this->_logPaymentEvent($payment, "starting refund for $audit (pan = xxxx-" . $payment->getCcLast4() . ", amount = $amount)");
|
482 |
+
$result = $casmtp->refund($audit, $old_audit, CasMiscUtil::flattenAmount($amount), $cust_ref, $this->_get_config_kvps(true));
|
483 |
}
|
484 |
catch (Exception $e) {
|
485 |
// This usually indicates some kind of wierd networking issue
|
app/code/community/CardAccessServices/Casmtp/casmtpprotocol.php
CHANGED
@@ -397,12 +397,30 @@ class Casmtp {
|
|
397 |
/**
|
398 |
* The default HTTP timeout
|
399 |
*
|
400 |
-
* @var
|
401 |
* @access public
|
402 |
* @const
|
403 |
*/
|
404 |
const DEFAULT_HTTPS_TIMEOUT = 120;
|
405 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
/**
|
407 |
* Constructor
|
408 |
*
|
@@ -474,10 +492,12 @@ class Casmtp {
|
|
474 |
* @return void
|
475 |
* @access public
|
476 |
*/
|
477 |
-
public function purchase($audit, $pan, $expiry, $cvv, $amt, $custref
|
478 |
/* Send the request */
|
479 |
-
$kvps =
|
480 |
-
|
|
|
|
|
481 |
$kvps['CAS.CUSTREF'] = $custref;
|
482 |
}
|
483 |
if (!empty($cvv)) {
|
@@ -521,11 +541,15 @@ class Casmtp {
|
|
521 |
* @return void
|
522 |
* @access public
|
523 |
*/
|
524 |
-
public function refund($audit, $audit_to_refund, $amt, $custref
|
525 |
/* Send request */
|
526 |
-
$kvps =
|
527 |
-
|
|
|
|
|
|
|
528 |
$kvps['CAS.CUSTREF'] = $custref;
|
|
|
529 |
$resp = $this->_sendRequest(
|
530 |
array(
|
531 |
'dataformat' => 'HTTP_AS2805',
|
397 |
/**
|
398 |
* The default HTTP timeout
|
399 |
*
|
400 |
+
* @var integer
|
401 |
* @access public
|
402 |
* @const
|
403 |
*/
|
404 |
const DEFAULT_HTTPS_TIMEOUT = 120;
|
405 |
|
406 |
+
/**
|
407 |
+
* Maximum KVP key length
|
408 |
+
*
|
409 |
+
* @var integer
|
410 |
+
* @access public
|
411 |
+
* @const
|
412 |
+
*/
|
413 |
+
const MAX_KVP_KEY_LENGTH = 128;
|
414 |
+
|
415 |
+
/**
|
416 |
+
* Maximum KVP value length
|
417 |
+
*
|
418 |
+
* @var integer
|
419 |
+
* @access public
|
420 |
+
* @const
|
421 |
+
*/
|
422 |
+
const MAX_KVP_VALUE_LENGTH = 512;
|
423 |
+
|
424 |
/**
|
425 |
* Constructor
|
426 |
*
|
492 |
* @return void
|
493 |
* @access public
|
494 |
*/
|
495 |
+
public function purchase($audit, $pan, $expiry, $cvv, $amt, $custref="", $extra_kvps=array()) {
|
496 |
/* Send the request */
|
497 |
+
$kvps = is_array($extra_kvps) ? $extra_kvps : array();
|
498 |
+
$kvps['CAS.AUDIT'] = $audit;
|
499 |
+
if (!empty($custref) && !array_key_exists('CAS.CUSTREF', $kvps)) {
|
500 |
+
/* allow custom kvps to override default CAS.CUSTREF */
|
501 |
$kvps['CAS.CUSTREF'] = $custref;
|
502 |
}
|
503 |
if (!empty($cvv)) {
|
541 |
* @return void
|
542 |
* @access public
|
543 |
*/
|
544 |
+
public function refund($audit, $audit_to_refund, $amt, $custref="", $extra_kvps=array()) {
|
545 |
/* Send request */
|
546 |
+
$kvps = is_array($extra_kvps) ? $extra_kvps : array();
|
547 |
+
$kvps['CAS.AUDIT'] = $audit;
|
548 |
+
$kvps['CAS.REFUNDAUDIT'] = $audit_to_refund;
|
549 |
+
if (!empty($custref) && !array_key_exists('CAS.CUSTREF', $kvps)) {
|
550 |
+
/* allow custom kvps to override default CAS.CUSTREF */
|
551 |
$kvps['CAS.CUSTREF'] = $custref;
|
552 |
+
}
|
553 |
$resp = $this->_sendRequest(
|
554 |
array(
|
555 |
'dataformat' => 'HTTP_AS2805',
|
app/code/community/CardAccessServices/Casmtp/etc/system.xml
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
<payment>
|
5 |
<groups>
|
6 |
<casmtp translate="label">
|
7 |
-
<label>Card Access Services (Merchant Hosted)</label>
|
8 |
<comment><![CDATA[<a href="http://www.cardaccess.com.au" target="_blank">For more information please visit http://www.cardaccess.com.au</a>]]></comment>
|
9 |
<sort_order>1</sort_order>
|
10 |
<show_in_default>1</show_in_default>
|
@@ -166,6 +166,16 @@
|
|
166 |
<show_in_website>1</show_in_website>
|
167 |
<show_in_store>1</show_in_store>
|
168 |
</log_events>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
</fields>
|
170 |
</casmtp>
|
171 |
</groups>
|
4 |
<payment>
|
5 |
<groups>
|
6 |
<casmtp translate="label">
|
7 |
+
<label>Card Access Services <![CDATA[<i>(Merchant Hosted)</i>]]></label>
|
8 |
<comment><![CDATA[<a href="http://www.cardaccess.com.au" target="_blank">For more information please visit http://www.cardaccess.com.au</a>]]></comment>
|
9 |
<sort_order>1</sort_order>
|
10 |
<show_in_default>1</show_in_default>
|
166 |
<show_in_website>1</show_in_website>
|
167 |
<show_in_store>1</show_in_store>
|
168 |
</log_events>
|
169 |
+
<config_kvp_map translate="comment">
|
170 |
+
<label>Config KVP Map</label>
|
171 |
+
<frontend_model>casmtp/adminhtml_system_config_ConfigKvpMap</frontend_model>
|
172 |
+
<backend_model>casmtp/adminhtml_system_config_backend_ConfigKvpMap</backend_model>
|
173 |
+
<sort_order>20</sort_order>
|
174 |
+
<show_in_default>1</show_in_default>
|
175 |
+
<show_in_website>1</show_in_website>
|
176 |
+
<show_in_store>1</show_in_store>
|
177 |
+
<comment><![CDATA[Map configuration values to CASMTP KVPs.<br>The value stored for each Magento configuration path will be sent to CASMTP using the given Key Value Pair (KVP) key.]]></comment>
|
178 |
+
</config_kvp_map>
|
179 |
</fields>
|
180 |
</casmtp>
|
181 |
</groups>
|
package.xml
CHANGED
@@ -1,24 +1,29 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>CardAccessServices_Casmtp</name>
|
4 |
-
<version>1.0
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/Apache-2.0">Apache Software License (ASL)</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
-
<summary>Merchant hosted transaction processing using the Card Access Services gateway
|
10 |
-
<description>This gateway extension allows you to process merchant hosted transactions through the Card Access Services payment
|
11 |

|
12 |
-
You will need a compatible merchant account with any of the numerous financial institutions we are connected to worldwide, as well as an account with us
|
13 |

|
14 |
-
Please contact info@cardaccess.com.au (http://www.cardaccess.com.au) for more information
|
15 |
</description>
|
16 |
-
<notes>Release 1.0
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
|
|
|
|
|
|
|
|
|
|
22 |
<compatible/>
|
23 |
<dependencies><required><php><min>5.1.2</min><max>6.0.0</max></php><extension><name>hash</name><min>1.1</min><max></max></extension></required></dependencies>
|
24 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>CardAccessServices_Casmtp</name>
|
4 |
+
<version>1.1.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/Apache-2.0">Apache Software License (ASL)</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
+
<summary>Merchant hosted transaction processing using the Card Access Services gateway.</summary>
|
10 |
+
<description>This gateway extension allows you to process merchant hosted transactions through the Card Access Services payment.
|
11 |

|
12 |
+
You will need a compatible merchant account with any of the numerous financial institutions we are connected to worldwide, as well as an account with us.
|
13 |

|
14 |
+
Please contact info@cardaccess.com.au (http://www.cardaccess.com.au) for more information.
|
15 |
</description>
|
16 |
+
<notes>Release 1.1.0
|
17 |
+

|
18 |
+
Introduces a mechanism to send custom Key Value Pairs (KVP) to CASMTP by mapping Magento configuration paths to CASMTP KVPs.
|
19 |
+

|
20 |
+
The mapping is specified in the package's <i>Config KVP Map</i> configuration area.
|
21 |
+

|
22 |
+
At the time of a transaction, the value associated with each configuration path is retrieved and sent as the value of the corresponding KVP.</notes>
|
23 |
+
<authors><author><name>Card Access Services</name><user>cardaccessservices</user><email>techadmin@rt.cardaccess.com.au</email></author><author><name>Malcolm Hawke</name><user>mhawke</user><email>mhawke@cardaccess.com.au</email></author></authors>
|
24 |
+
<date>2013-10-01</date>
|
25 |
+
<time>08:02:11</time>
|
26 |
+
<contents><target name="mageetc"><dir name="modules"><file name="CardAccessServices_Casmtp.xml" hash="78d9b601cf91a93dddc4356edff54870"/></dir></target><target name="magecommunity"><dir name="CardAccessServices"><dir name="Casmtp"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="ConfigKvpMap.php" hash="0986e94aa76b7dc566647b4a9431b556"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="018d64d703c1eb68c28068c0de721cbc"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Backend"><file name="ConfigKvpMap.php" hash="cdef5b1236e6bebe1e9ceaf0f6bd1ae7"/></dir></dir></dir></dir><file name="PaymentMethod.php" hash="9718883bcac2257ccba34464f6ae7438"/></dir><file name="casmiscutil.php" hash="23e8224f830b7041a69290d642db27e1"/><file name="casmtpprotocol.php" hash="626770a991c6e0daeab0c2c09cd25587"/><dir name="etc"><file name="config.xml" hash="d0d79f8c09fea654b36497fcfb9ab2e3"/><file name="system.xml" hash="cfc03ad79749bcd2772030b8d5547d24"/></dir></dir></dir></target></contents>
|
27 |
<compatible/>
|
28 |
<dependencies><required><php><min>5.1.2</min><max>6.0.0</max></php><extension><name>hash</name><min>1.1</min><max></max></extension></required></dependencies>
|
29 |
</package>
|