Version Notes
- Remote admin functionalities for capture and refund in the backend
- Rework of the complete controller
- Cancel now reloads shopping cart correctly
- Fixes session issue during callback
- AVS Status is now visible in the backend
Download this release
Release Info
Developer | Magento Core Team |
Extension | Phoenix_Worldpay |
Version | 1.2.0 |
Comparing to | |
See all releases |
Code changes from version 1.1.3 to 1.2.0
- app/code/community/Phoenix/Worldpay/Block/Cancel.php +35 -0
- app/code/community/Phoenix/Worldpay/Block/Failure.php +1 -1
- app/code/community/Phoenix/Worldpay/Block/Redirect.php +73 -0
- app/code/community/Phoenix/Worldpay/Block/Success.php +2 -2
- app/code/community/Phoenix/Worldpay/Model/Cc.php +155 -44
- app/code/community/Phoenix/Worldpay/controllers/ProcessingController.php +127 -85
- app/code/community/Phoenix/Worldpay/etc/config.xml +6 -2
- app/code/community/Phoenix/Worldpay/etc/system.xml +76 -47
- app/design/adminhtml/default/default/template/worldpay/info.phtml +3 -3
- app/design/frontend/default/default/layout/worldpay.xml +8 -1
- app/design/frontend/default/default/template/worldpay/blank.phtml +27 -0
- app/design/frontend/default/default/template/worldpay/cancel.phtml +28 -0
- app/design/frontend/default/default/template/worldpay/failure.phtml +2 -2
- app/design/frontend/default/default/template/worldpay/form.phtml +1 -1
- app/design/frontend/default/default/template/worldpay/info.phtml +2 -2
- app/design/frontend/default/default/template/worldpay/redirect.phtml +34 -0
- app/locale/de_DE/Phoenix_Worldpay.csv +5 -3
- app/locale/en_US/Phoenix_Worldpay.csv +5 -3
- package.xml +9 -5
app/code/community/Phoenix/Worldpay/Block/Cancel.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
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.txt.
|
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 license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Worldpay
|
17 |
+
* @copyright Copyright (c) 2008 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
*/
|
19 |
+
|
20 |
+
class Phoenix_Worldpay_Block_Cancel extends Mage_Core_Block_Template
|
21 |
+
{
|
22 |
+
protected function _construct()
|
23 |
+
{
|
24 |
+
parent::_construct();
|
25 |
+
$this->setTemplate('worldpay/cancel.phtml');
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Get continue shopping url
|
30 |
+
*/
|
31 |
+
public function getContinueShoppingUrl()
|
32 |
+
{
|
33 |
+
return Mage::getUrl('*/*/cancel', array('_nosid' => true));
|
34 |
+
}
|
35 |
+
}
|
app/code/community/Phoenix/Worldpay/Block/Failure.php
CHANGED
@@ -30,6 +30,6 @@ class Phoenix_Worldpay_Block_Failure extends Mage_Core_Block_Template
|
|
30 |
*/
|
31 |
public function getContinueShoppingUrl()
|
32 |
{
|
33 |
-
return Mage::getUrl('checkout/cart');
|
34 |
}
|
35 |
}
|
30 |
*/
|
31 |
public function getContinueShoppingUrl()
|
32 |
{
|
33 |
+
return Mage::getUrl('checkout/cart', array('_nosid' => true));
|
34 |
}
|
35 |
}
|
app/code/community/Phoenix/Worldpay/Block/Redirect.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
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.txt.
|
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 license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Worldpay
|
17 |
+
* @copyright Copyright (c) 2008 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
*/
|
19 |
+
|
20 |
+
class Phoenix_Worldpay_Block_Redirect extends Mage_Core_Block_Template
|
21 |
+
{
|
22 |
+
|
23 |
+
protected function _construct()
|
24 |
+
{
|
25 |
+
parent::_construct();
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Return checkout session instance
|
30 |
+
*
|
31 |
+
* @return Mage_Checkout_Model_Session
|
32 |
+
*/
|
33 |
+
protected function _getCheckout()
|
34 |
+
{
|
35 |
+
return Mage::getSingleton('checkout/session');
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Return order instance
|
40 |
+
*
|
41 |
+
* @return Mage_Sales_Model_Order|null
|
42 |
+
*/
|
43 |
+
protected function _getOrder()
|
44 |
+
{
|
45 |
+
if ($this->getOrder()) {
|
46 |
+
return $this->getOrder();
|
47 |
+
} elseif ($orderIncrementId = $this->_getCheckout()->getLastRealOrderId()) {
|
48 |
+
return Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
|
49 |
+
} else {
|
50 |
+
return null;
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Get Form data by using ogone payment api
|
56 |
+
*
|
57 |
+
* @return array
|
58 |
+
*/
|
59 |
+
public function getFormData()
|
60 |
+
{
|
61 |
+
return $this->_getOrder()->getPayment()->getMethodInstance()->getFormFields();
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Getting gateway url
|
66 |
+
*
|
67 |
+
* @return string
|
68 |
+
*/
|
69 |
+
public function getFormAction()
|
70 |
+
{
|
71 |
+
return $this->_getOrder()->getPayment()->getMethodInstance()->getUrl();
|
72 |
+
}
|
73 |
+
}
|
app/code/community/Phoenix/Worldpay/Block/Success.php
CHANGED
@@ -21,8 +21,8 @@ class Phoenix_Worldpay_Block_Success extends Mage_Core_Block_Abstract
|
|
21 |
{
|
22 |
protected function _toHtml()
|
23 |
{
|
24 |
-
|
25 |
-
|
26 |
$html = '<html>'
|
27 |
. '<meta http-equiv="refresh" content="0; URL='.$successUrl.'">'
|
28 |
. '<body>'
|
21 |
{
|
22 |
protected function _toHtml()
|
23 |
{
|
24 |
+
$successUrl = Mage::getUrl('*/*/success', array('_nosid' => true));
|
25 |
+
|
26 |
$html = '<html>'
|
27 |
. '<meta http-equiv="refresh" content="0; URL='.$successUrl.'">'
|
28 |
. '<body>'
|
app/code/community/Phoenix/Worldpay/Model/Cc.php
CHANGED
@@ -14,26 +14,24 @@
|
|
14 |
*
|
15 |
* @category Phoenix
|
16 |
* @package Phoenix_Worldpay
|
17 |
-
* @copyright Copyright (c)
|
18 |
*/
|
19 |
|
20 |
|
21 |
class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
22 |
|
23 |
-
{
|
24 |
|
25 |
-
/**
|
26 |
-
* unique internal payment method identifier
|
27 |
-
*
|
28 |
-
* @var string [a-z0-9_]
|
29 |
**/
|
30 |
protected $_code = 'worldpay_cc';
|
31 |
|
32 |
protected $_isGateway = false;
|
33 |
protected $_canAuthorize = true;
|
34 |
protected $_canCapture = true;
|
35 |
-
protected $_canCapturePartial = false;
|
36 |
-
protected $_canRefund = false;
|
37 |
protected $_canVoid = false;
|
38 |
protected $_canUseInternal = false;
|
39 |
protected $_canUseCheckout = true;
|
@@ -41,13 +39,16 @@ class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
|
41 |
|
42 |
protected $_paymentMethod = 'cc';
|
43 |
protected $_defaultLocale = 'en';
|
44 |
-
|
45 |
protected $_testUrl = 'https://secure-test.wp3.rbsworldpay.com/wcc/purchase';
|
46 |
protected $_liveUrl = 'https://secure.wp3.rbsworldpay.com/wcc/purchase';
|
47 |
|
|
|
|
|
|
|
48 |
protected $_formBlockType = 'worldpay/form';
|
49 |
protected $_infoBlockType = 'worldpay/info';
|
50 |
-
|
51 |
protected $_order;
|
52 |
|
53 |
/**
|
@@ -57,33 +58,15 @@ class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
|
57 |
*/
|
58 |
public function getOrder()
|
59 |
{
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
}
|
65 |
-
return $this->_order;
|
66 |
}
|
67 |
|
68 |
public function getOrderPlaceRedirectUrl()
|
69 |
{
|
70 |
-
return Mage::getUrl('worldpay/processing/redirect'
|
71 |
-
}
|
72 |
-
|
73 |
-
public function capture(Varien_Object $payment, $amount)
|
74 |
-
{
|
75 |
-
$payment->setStatus(self::STATUS_APPROVED)
|
76 |
-
->setLastTransId($this->getTransactionId());
|
77 |
-
|
78 |
-
return $this;
|
79 |
-
}
|
80 |
-
|
81 |
-
public function cancel(Varien_Object $payment)
|
82 |
-
{
|
83 |
-
$payment->setStatus(self::STATUS_DECLINED)
|
84 |
-
->setLastTransId($this->getTransactionId());
|
85 |
-
|
86 |
-
return $this;
|
87 |
}
|
88 |
|
89 |
/**
|
@@ -95,14 +78,22 @@ class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
|
95 |
{
|
96 |
return $this->_paymentMethod;
|
97 |
}
|
98 |
-
|
99 |
public function getUrl()
|
100 |
{
|
101 |
if ($this->getConfigData('transaction_mode') == 'live')
|
102 |
return $this->_liveUrl;
|
103 |
return $this->_testUrl;
|
104 |
}
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
/**
|
107 |
* prepare params array to send it to gateway page via POST
|
108 |
*
|
@@ -118,16 +109,15 @@ class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
|
118 |
$price = number_format($this->getOrder()->getBaseGrandTotal(),2,'.','');
|
119 |
$currency = $this->getOrder()->getBaseCurrencyCode();
|
120 |
}
|
121 |
-
|
122 |
$billing = $this->getOrder()->getBillingAddress();
|
123 |
-
|
124 |
-
|
125 |
$locale = explode('_', Mage::app()->getLocale()->getLocaleCode());
|
126 |
if (is_array($locale) && !empty($locale))
|
127 |
$locale = $locale[0];
|
128 |
else
|
129 |
$locale = $this->getDefaultLocale();
|
130 |
-
|
131 |
$params = array(
|
132 |
'instId' => $this->getConfigData('inst_id'),
|
133 |
'cartId' => $this->getOrder()->getRealOrderId() . '-' . $this->getOrder()->getQuoteId(),
|
@@ -138,14 +128,14 @@ class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
|
138 |
'hideCurrency' => 'true',
|
139 |
'desc' => Mage::helper('worldpay')->__('Your purchase at') . ' ' . Mage::app()->getStore()->getName(),
|
140 |
'name' => Mage::helper('core')->removeAccents($billing->getFirstname().' '.$billing->getLastname()),
|
141 |
-
'address' => Mage::helper('core')->removeAccents($
|
142 |
'postcode' => $billing->getPostcode() ,
|
143 |
'country' => $billing->getCountry(),
|
144 |
'tel' => $billing->getTelephone(),
|
145 |
-
'email' => $this->getOrder()->getCustomerEmail(),
|
146 |
'lang' => $locale,
|
147 |
'MC_orderid' => $this->getOrder()->getRealOrderId(),
|
148 |
-
'MC_callback' => Mage::getUrl('worldpay/processing/response'
|
149 |
);
|
150 |
|
151 |
// set additional flags
|
@@ -153,7 +143,7 @@ class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
|
153 |
$params['fixContact'] = 1;
|
154 |
if ($this->getConfigData('hide_contact') == 1)
|
155 |
$params['hideContact'] = 1;
|
156 |
-
|
157 |
// add md5 hash
|
158 |
if ($this->getConfigData('security_key') != '') {
|
159 |
$params['signatureFields'] = 'amount:currency:instId:cartId:authMode:email';
|
@@ -167,7 +157,128 @@ class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
|
167 |
$params['email']
|
168 |
);
|
169 |
}
|
170 |
-
|
171 |
return $params;
|
172 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
}
|
14 |
*
|
15 |
* @category Phoenix
|
16 |
* @package Phoenix_Worldpay
|
17 |
+
* @copyright Copyright (c) 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
*/
|
19 |
|
20 |
|
21 |
class Phoenix_Worldpay_Model_Cc extends Mage_Payment_Model_Method_Abstract
|
22 |
|
23 |
+
{
|
24 |
|
25 |
+
/**
|
26 |
+
* unique internal payment method identifier
|
27 |
+
*
|
28 |
+
* @var string [a-z0-9_]
|
29 |
**/
|
30 |
protected $_code = 'worldpay_cc';
|
31 |
|
32 |
protected $_isGateway = false;
|
33 |
protected $_canAuthorize = true;
|
34 |
protected $_canCapture = true;
|
|
|
|
|
35 |
protected $_canVoid = false;
|
36 |
protected $_canUseInternal = false;
|
37 |
protected $_canUseCheckout = true;
|
39 |
|
40 |
protected $_paymentMethod = 'cc';
|
41 |
protected $_defaultLocale = 'en';
|
42 |
+
|
43 |
protected $_testUrl = 'https://secure-test.wp3.rbsworldpay.com/wcc/purchase';
|
44 |
protected $_liveUrl = 'https://secure.wp3.rbsworldpay.com/wcc/purchase';
|
45 |
|
46 |
+
protected $_testAdminUrl = 'https://secure-test.wp3.rbsworldpay.com/wcc/itransaction';
|
47 |
+
protected $_liveAdminUrl = 'https://secure.wp3.rbsworldpay.com/wcc/itransaction';
|
48 |
+
|
49 |
protected $_formBlockType = 'worldpay/form';
|
50 |
protected $_infoBlockType = 'worldpay/info';
|
51 |
+
|
52 |
protected $_order;
|
53 |
|
54 |
/**
|
58 |
*/
|
59 |
public function getOrder()
|
60 |
{
|
61 |
+
if (!$this->_order) {
|
62 |
+
$this->_order = $this->getInfoInstance()->getOrder();
|
63 |
+
}
|
64 |
+
return $this->_order;
|
|
|
|
|
65 |
}
|
66 |
|
67 |
public function getOrderPlaceRedirectUrl()
|
68 |
{
|
69 |
+
return Mage::getUrl('worldpay/processing/redirect');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
}
|
71 |
|
72 |
/**
|
78 |
{
|
79 |
return $this->_paymentMethod;
|
80 |
}
|
81 |
+
|
82 |
public function getUrl()
|
83 |
{
|
84 |
if ($this->getConfigData('transaction_mode') == 'live')
|
85 |
return $this->_liveUrl;
|
86 |
return $this->_testUrl;
|
87 |
}
|
88 |
+
|
89 |
+
public function getAdminUrl()
|
90 |
+
{
|
91 |
+
if ($this->getConfigData('transaction_mode') == 'live')
|
92 |
+
return $this->_liveAdminUrl;
|
93 |
+
return $this->_testAdminUrl;
|
94 |
+
}
|
95 |
+
|
96 |
+
|
97 |
/**
|
98 |
* prepare params array to send it to gateway page via POST
|
99 |
*
|
109 |
$price = number_format($this->getOrder()->getBaseGrandTotal(),2,'.','');
|
110 |
$currency = $this->getOrder()->getBaseCurrencyCode();
|
111 |
}
|
112 |
+
|
113 |
$billing = $this->getOrder()->getBillingAddress();
|
114 |
+
|
|
|
115 |
$locale = explode('_', Mage::app()->getLocale()->getLocaleCode());
|
116 |
if (is_array($locale) && !empty($locale))
|
117 |
$locale = $locale[0];
|
118 |
else
|
119 |
$locale = $this->getDefaultLocale();
|
120 |
+
|
121 |
$params = array(
|
122 |
'instId' => $this->getConfigData('inst_id'),
|
123 |
'cartId' => $this->getOrder()->getRealOrderId() . '-' . $this->getOrder()->getQuoteId(),
|
128 |
'hideCurrency' => 'true',
|
129 |
'desc' => Mage::helper('worldpay')->__('Your purchase at') . ' ' . Mage::app()->getStore()->getName(),
|
130 |
'name' => Mage::helper('core')->removeAccents($billing->getFirstname().' '.$billing->getLastname()),
|
131 |
+
'address' => Mage::helper('core')->removeAccents($billing->getStreet(-1)).' '.Mage::helper('core')->removeAccents($billing->getCity()),
|
132 |
'postcode' => $billing->getPostcode() ,
|
133 |
'country' => $billing->getCountry(),
|
134 |
'tel' => $billing->getTelephone(),
|
135 |
+
'email' => $this->getOrder()->getCustomerEmail(),
|
136 |
'lang' => $locale,
|
137 |
'MC_orderid' => $this->getOrder()->getRealOrderId(),
|
138 |
+
'MC_callback' => Mage::getUrl('worldpay/processing/response')
|
139 |
);
|
140 |
|
141 |
// set additional flags
|
143 |
$params['fixContact'] = 1;
|
144 |
if ($this->getConfigData('hide_contact') == 1)
|
145 |
$params['hideContact'] = 1;
|
146 |
+
|
147 |
// add md5 hash
|
148 |
if ($this->getConfigData('security_key') != '') {
|
149 |
$params['signatureFields'] = 'amount:currency:instId:cartId:authMode:email';
|
157 |
$params['email']
|
158 |
);
|
159 |
}
|
|
|
160 |
return $params;
|
161 |
}
|
162 |
+
|
163 |
+
/**
|
164 |
+
* Refund money
|
165 |
+
*
|
166 |
+
* @param Varien_Object $invoicePayment
|
167 |
+
* @return Mage_GoogleCheckout_Model_Payment
|
168 |
+
*/
|
169 |
+
public function refund(Varien_Object $payment, $amount)
|
170 |
+
{
|
171 |
+
$transactionId = $payment->getLastTransId();
|
172 |
+
$params = $this->_prepareAdminRequestParams();
|
173 |
+
|
174 |
+
$params['cartId'] = 'Refund';
|
175 |
+
$params['op'] = 'refund-partial';
|
176 |
+
$params['transId'] = $transactionId;
|
177 |
+
$params['amount'] = $amount;
|
178 |
+
$params['currency'] = $payment->getOrder()->getBaseCurrencyCode();
|
179 |
+
|
180 |
+
$responseBody = $this->processAdminRequest($params);
|
181 |
+
$response = explode(',', $responseBody);
|
182 |
+
if (count($response) <= 0 || $response[0] != 'A' || $response[1] != $transactionId) {
|
183 |
+
Mage::throwException($this->_getHelper()->__('Error during refunding online. Server response: %s', $responseBody));
|
184 |
+
}
|
185 |
+
return $this;
|
186 |
+
}
|
187 |
+
|
188 |
+
/**
|
189 |
+
* Capture preatutharized amount
|
190 |
+
* @param Varien_Object $payment
|
191 |
+
* @param <type> $amount
|
192 |
+
*/
|
193 |
+
public function capture(Varien_Object $payment, $amount)
|
194 |
+
{
|
195 |
+
if (!$this->canCapture()) {
|
196 |
+
return $this;
|
197 |
+
}
|
198 |
+
|
199 |
+
if (Mage::app()->getRequest()->getParam('transId')) {
|
200 |
+
// Capture is called from response action
|
201 |
+
$payment->setStatus(self::STATUS_APPROVED);
|
202 |
+
return $this;
|
203 |
+
}
|
204 |
+
$transactionId = $payment->getLastTransId();
|
205 |
+
$params = $this->_prepareAdminRequestParams();
|
206 |
+
$params['transId'] = $transactionId;
|
207 |
+
$params['authMode'] = '0';
|
208 |
+
$params['op'] = 'postAuth-full';
|
209 |
+
|
210 |
+
$responseBody = $this->processAdminRequest($params);
|
211 |
+
$response = explode(',', $responseBody);
|
212 |
+
|
213 |
+
if (count($response) <= 0 || $response[0] != 'A' || $response[1] != $transactionId) {
|
214 |
+
Mage::throwException($this->_getHelper()->__('Error during capture online. Server response: %s', $responseBody));
|
215 |
+
} else {
|
216 |
+
$payment->getOrder()->addStatusToHistory($payment->getOrder()->getStatus(), $this->_getHelper()->__('Worldpay transaction has been captured.'));
|
217 |
+
}
|
218 |
+
}
|
219 |
+
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Check refund availability
|
223 |
+
*
|
224 |
+
* @return bool
|
225 |
+
*/
|
226 |
+
public function canRefund ()
|
227 |
+
{
|
228 |
+
return $this->getConfigData('enable_online_operations');
|
229 |
+
}
|
230 |
+
|
231 |
+
public function canRefundInvoicePartial()
|
232 |
+
{
|
233 |
+
return $this->getConfigData('enable_online_operations');
|
234 |
+
}
|
235 |
+
|
236 |
+
public function canRefundPartialPerInvoice()
|
237 |
+
{
|
238 |
+
return $this->canRefundInvoicePartial();
|
239 |
+
}
|
240 |
+
|
241 |
+
public function canCapturePartial()
|
242 |
+
{
|
243 |
+
if (Mage::app()->getFrontController()->getAction()->getFullActionName() != 'adminhtml_sales_order_creditmemo_new'){
|
244 |
+
return false;
|
245 |
+
}
|
246 |
+
return $this->getConfigData('enable_online_operations');
|
247 |
+
}
|
248 |
+
|
249 |
+
protected function processAdminRequest($params, $requestTimeout = 60)
|
250 |
+
{
|
251 |
+
try {
|
252 |
+
$client = new Varien_Http_Client();
|
253 |
+
$client->setUri($this->getAdminUrl())
|
254 |
+
->setConfig(array('timeout'=>$requestTimeout,))
|
255 |
+
->setParameterPost($params)
|
256 |
+
->setMethod(Zend_Http_Client::POST);
|
257 |
+
|
258 |
+
$response = $client->request();
|
259 |
+
$responseBody = $response->getBody();
|
260 |
+
|
261 |
+
if (empty($responseBody))
|
262 |
+
Mage::throwException($this->_getHelper()->__('Worldpay API failure. The request has not been processed.'));
|
263 |
+
// create array out of response
|
264 |
+
|
265 |
+
} catch (Exception $e) {
|
266 |
+
Mage::log($e->getMessage());
|
267 |
+
Mage::throwException($this->_getHelper()->__('Worldpay API connection error. The request has not been processed.'));
|
268 |
+
}
|
269 |
+
|
270 |
+
return $responseBody;
|
271 |
+
}
|
272 |
+
|
273 |
+
protected function _prepareAdminRequestParams()
|
274 |
+
{
|
275 |
+
$params = array (
|
276 |
+
'authPW' => $this->getConfigData('auth_password'),
|
277 |
+
'instId' => $this->getConfigData('admin_inst_id'),
|
278 |
+
);
|
279 |
+
if ($this->getConfigData('transaction_mode') == 'test') {
|
280 |
+
$params['testMode'] = 100;
|
281 |
+
}
|
282 |
+
return $params;
|
283 |
+
}
|
284 |
}
|
app/code/community/Phoenix/Worldpay/controllers/ProcessingController.php
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
*
|
15 |
* @category Phoenix
|
16 |
* @package Phoenix_Worldpay
|
17 |
-
* @copyright Copyright (c)
|
18 |
*/
|
19 |
|
20 |
class Phoenix_Worldpay_ProcessingController extends Mage_Core_Controller_Front_Action
|
@@ -22,26 +22,19 @@ class Phoenix_Worldpay_ProcessingController extends Mage_Core_Controller_Front_A
|
|
22 |
protected $_redirectBlockType = 'worldpay/processing';
|
23 |
protected $_successBlockType = 'worldpay/success';
|
24 |
protected $_failureBlockType = 'worldpay/failure';
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
protected $_order = NULL;
|
29 |
protected $_paymentInst = NULL;
|
30 |
-
|
31 |
-
protected function _expireAjax()
|
32 |
-
{
|
33 |
-
if (!$this->getCheckout()->getQuote()->hasItems()) {
|
34 |
-
$this->getResponse()->setHeader('HTTP/1.1','403 Session Expired');
|
35 |
-
exit;
|
36 |
-
}
|
37 |
-
}
|
38 |
|
39 |
/**
|
40 |
* Get singleton of Checkout Session Model
|
41 |
*
|
42 |
* @return Mage_Checkout_Model_Session
|
43 |
*/
|
44 |
-
|
45 |
{
|
46 |
return Mage::getSingleton('checkout/session');
|
47 |
}
|
@@ -51,58 +44,43 @@ class Phoenix_Worldpay_ProcessingController extends Mage_Core_Controller_Front_A
|
|
51 |
*/
|
52 |
public function redirectAction()
|
53 |
{
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
$
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
71 |
}
|
72 |
-
|
73 |
/**
|
74 |
* Worldpay returns POST variables to this action
|
75 |
*/
|
76 |
public function responseAction()
|
77 |
{
|
78 |
try {
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
$invoice = $this->_order->prepareInvoice();
|
87 |
-
|
88 |
-
$invoice->register()->capture();
|
89 |
-
Mage::getModel('core/resource_transaction')
|
90 |
-
->addObject($invoice)
|
91 |
-
->addObject($invoice->getOrder())
|
92 |
-
->save();
|
93 |
}
|
94 |
-
|
95 |
-
$this->_order->save();
|
96 |
-
|
97 |
-
$this->getResponse()->setBody(
|
98 |
-
$this->getLayout()
|
99 |
-
->createBlock($this->_successBlockType)
|
100 |
-
->setOrder($this->_order)
|
101 |
-
->toHtml()
|
102 |
-
);
|
103 |
-
|
104 |
-
} catch (Exception $e) {
|
105 |
-
Mage::log($e->getMessage());
|
106 |
$this->getResponse()->setBody(
|
107 |
$this->getLayout()
|
108 |
->createBlock($this->_failureBlockType)
|
@@ -115,22 +93,33 @@ class Phoenix_Worldpay_ProcessingController extends Mage_Core_Controller_Front_A
|
|
115 |
/**
|
116 |
* Worldpay return action
|
117 |
*/
|
118 |
-
|
119 |
{
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
$
|
|
|
|
|
|
|
130 |
|
131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
}
|
133 |
|
|
|
134 |
/**
|
135 |
* Checking POST variables.
|
136 |
* Creating invoice if payment was successfull or cancel order if payment was declined
|
@@ -139,46 +128,99 @@ class Phoenix_Worldpay_ProcessingController extends Mage_Core_Controller_Front_A
|
|
139 |
{
|
140 |
// check request type
|
141 |
if (!$this->getRequest()->isPost())
|
142 |
-
|
143 |
|
144 |
// get request variables
|
145 |
$request = $this->getRequest()->getPost();
|
146 |
if (empty($request))
|
147 |
-
|
148 |
-
|
149 |
// check order id
|
150 |
if (empty($request['MC_orderid']) || strlen($request['MC_orderid']) > 50)
|
151 |
-
|
152 |
-
|
153 |
// load order for further validation
|
154 |
$this->_order = Mage::getModel('sales/order')->loadByIncrementId($request['MC_orderid']);
|
|
|
|
|
|
|
155 |
$this->_paymentInst = $this->_order->getPayment()->getMethodInstance();
|
156 |
-
|
157 |
// check transaction password
|
158 |
if ($this->_paymentInst->getConfigData('transaction_password') != $request['callbackPW'])
|
159 |
-
|
|
|
160 |
|
161 |
-
|
162 |
-
|
163 |
-
throw new Exception('Transaction was not successfull.');
|
164 |
|
|
|
|
|
|
|
|
|
|
|
165 |
// check transaction amount and currency
|
166 |
-
|
167 |
$price = number_format($this->_order->getGrandTotal(),2,'.','');
|
168 |
$currency = $this->_order->getOrderCurrencyCode();
|
169 |
} else {
|
170 |
$price = number_format($this->_order->getBaseGrandTotal(),2,'.','');
|
171 |
$currency = $this->_order->getBaseCurrencyCode();
|
172 |
}
|
173 |
-
|
174 |
// check transaction amount
|
175 |
if ($price != $request['authAmount'])
|
176 |
-
|
177 |
-
|
178 |
// check transaction currency
|
179 |
if ($currency != $request['authCurrency'])
|
180 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
|
182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
}
|
184 |
}
|
14 |
*
|
15 |
* @category Phoenix
|
16 |
* @package Phoenix_Worldpay
|
17 |
+
* @copyright Copyright (c) 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
*/
|
19 |
|
20 |
class Phoenix_Worldpay_ProcessingController extends Mage_Core_Controller_Front_Action
|
22 |
protected $_redirectBlockType = 'worldpay/processing';
|
23 |
protected $_successBlockType = 'worldpay/success';
|
24 |
protected $_failureBlockType = 'worldpay/failure';
|
25 |
+
protected $_cancelBlockType = 'worldpay/cancel';
|
26 |
+
|
27 |
+
|
28 |
protected $_order = NULL;
|
29 |
protected $_paymentInst = NULL;
|
30 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
/**
|
33 |
* Get singleton of Checkout Session Model
|
34 |
*
|
35 |
* @return Mage_Checkout_Model_Session
|
36 |
*/
|
37 |
+
protected function _getCheckout()
|
38 |
{
|
39 |
return Mage::getSingleton('checkout/session');
|
40 |
}
|
44 |
*/
|
45 |
public function redirectAction()
|
46 |
{
|
47 |
+
try {
|
48 |
+
$session = $this->_getCheckout();
|
49 |
+
|
50 |
+
$order = Mage::getModel('sales/order');
|
51 |
+
$order->loadByIncrementId($session->getLastRealOrderId());
|
52 |
+
$order->addStatusToHistory(Mage_Sales_Model_Order::STATE_HOLDED, Mage::helper('worldpay')->__('Customer was redirected to Worldpay.'));
|
53 |
+
$order->save();
|
54 |
+
|
55 |
+
$session->getQuote()->setIsActive(false)->save();
|
56 |
+
$session->setWorldpayQuoteId($session->getQuoteId());
|
57 |
+
$session->setWorldpayRealOrderId($session->getLastRealOrderId());
|
58 |
+
$session->clear();
|
59 |
+
|
60 |
+
$this->loadLayout();
|
61 |
+
$this->renderLayout();
|
62 |
+
} catch (Mage_Core_Exception $e) {
|
63 |
+
$this->_getCheckout()->addError($e->getMessage());
|
64 |
+
} catch(Exception $e) {
|
65 |
+
Mage::logException($e);
|
66 |
+
}
|
67 |
}
|
68 |
+
|
69 |
/**
|
70 |
* Worldpay returns POST variables to this action
|
71 |
*/
|
72 |
public function responseAction()
|
73 |
{
|
74 |
try {
|
75 |
+
$request = $this->_checkReturnedPost();
|
76 |
+
if ($request['transStatus'] == 'Y') {
|
77 |
+
$this->_processSale($request);
|
78 |
+
} elseif ($request['transStatus'] == 'C') {
|
79 |
+
$this->_processCancel($request);
|
80 |
+
} else {
|
81 |
+
Mage::throwException('Transaction was not successfull.');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
83 |
+
} catch (Mage_Core_Exception $e) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
$this->getResponse()->setBody(
|
85 |
$this->getLayout()
|
86 |
->createBlock($this->_failureBlockType)
|
93 |
/**
|
94 |
* Worldpay return action
|
95 |
*/
|
96 |
+
public function successAction()
|
97 |
{
|
98 |
+
try {
|
99 |
+
$session = $this->_getCheckout();
|
100 |
+
$quoteId = $session->getWorldpayQuoteId();
|
101 |
+
$this->_getCheckout()->setLastSuccessQuoteId($quoteId);
|
102 |
+
$this->_redirect('checkout/onepage/success');
|
103 |
+
return;
|
104 |
+
} catch (Mage_Core_Exception $e) {
|
105 |
+
$this->_getCheckout()->addError($e->getMessage());
|
106 |
+
} catch(Exception $e) {
|
107 |
+
Mage::logException($e);
|
108 |
+
}
|
109 |
+
$this->_redirect('checkout/cart');
|
110 |
+
}
|
111 |
|
112 |
+
/**
|
113 |
+
* Worldpay return action
|
114 |
+
*/
|
115 |
+
public function cancelAction()
|
116 |
+
{
|
117 |
+
$this->_getCheckout()->setQuoteId($this->_getCheckout()->getWorldpayQuoteId());
|
118 |
+
$this->_getCheckout()->addError(Mage::helper('worldpay')->__('Payment was canceled'));
|
119 |
+
$this->_redirect('checkout/cart');
|
120 |
}
|
121 |
|
122 |
+
|
123 |
/**
|
124 |
* Checking POST variables.
|
125 |
* Creating invoice if payment was successfull or cancel order if payment was declined
|
128 |
{
|
129 |
// check request type
|
130 |
if (!$this->getRequest()->isPost())
|
131 |
+
Mage::throwException('Wrong request type.');
|
132 |
|
133 |
// get request variables
|
134 |
$request = $this->getRequest()->getPost();
|
135 |
if (empty($request))
|
136 |
+
Mage::throwException('Request doesn\'t contain POST elements.');
|
137 |
+
|
138 |
// check order id
|
139 |
if (empty($request['MC_orderid']) || strlen($request['MC_orderid']) > 50)
|
140 |
+
Mage::throwException('Missing or invalid order ID');
|
141 |
+
|
142 |
// load order for further validation
|
143 |
$this->_order = Mage::getModel('sales/order')->loadByIncrementId($request['MC_orderid']);
|
144 |
+
if (!$this->_order->getId())
|
145 |
+
Mage::throwException('Order not found');
|
146 |
+
|
147 |
$this->_paymentInst = $this->_order->getPayment()->getMethodInstance();
|
148 |
+
|
149 |
// check transaction password
|
150 |
if ($this->_paymentInst->getConfigData('transaction_password') != $request['callbackPW'])
|
151 |
+
Mage::throwException('Transaction password wrong');
|
152 |
+
|
153 |
|
154 |
+
return $request;
|
155 |
+
}
|
|
|
156 |
|
157 |
+
/**
|
158 |
+
* Process success response
|
159 |
+
*/
|
160 |
+
protected function _processSale($request)
|
161 |
+
{
|
162 |
// check transaction amount and currency
|
163 |
+
if ($this->_paymentInst->getConfigData('use_store_currency')) {
|
164 |
$price = number_format($this->_order->getGrandTotal(),2,'.','');
|
165 |
$currency = $this->_order->getOrderCurrencyCode();
|
166 |
} else {
|
167 |
$price = number_format($this->_order->getBaseGrandTotal(),2,'.','');
|
168 |
$currency = $this->_order->getBaseCurrencyCode();
|
169 |
}
|
170 |
+
|
171 |
// check transaction amount
|
172 |
if ($price != $request['authAmount'])
|
173 |
+
Mage::throwException('Transaction currency doesn\'t match.');
|
174 |
+
|
175 |
// check transaction currency
|
176 |
if ($currency != $request['authCurrency'])
|
177 |
+
Mage::throwException('Transaction currency doesn\'t match.');
|
178 |
+
|
179 |
+
// save transaction ID and AVS info
|
180 |
+
$this->_order->getPayment()->setLastTransId($request['transId']);
|
181 |
+
$this->_order->getPayment()->setCcAvsStatus($request['AVS']);
|
182 |
+
|
183 |
+
switch($request['authMode']) {
|
184 |
+
case 'A':
|
185 |
+
if ($this->_order->canInvoice()) {
|
186 |
+
$invoice = $this->_order->prepareInvoice();
|
187 |
+
$invoice->register()->capture();
|
188 |
+
$this->_order->addRelatedObject($invoice);
|
189 |
+
}
|
190 |
+
$this->_order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true, Mage::helper('worldpay')->__('authorize: Customer returned successfully'));
|
191 |
+
break;
|
192 |
+
case 'E':
|
193 |
+
$this->_order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true, Mage::helper('worldpay')->__('preauthorize: Customer returned successfully'));
|
194 |
+
break;
|
195 |
+
}
|
196 |
|
197 |
+
$this->_order->sendNewOrderEmail();
|
198 |
+
$this->_order->setEmailSent(true);
|
199 |
+
|
200 |
+
$this->_order->save();
|
201 |
+
|
202 |
+
$this->getResponse()->setBody(
|
203 |
+
$this->getLayout()
|
204 |
+
->createBlock($this->_successBlockType)
|
205 |
+
->setOrder($this->_order)
|
206 |
+
->toHtml()
|
207 |
+
);
|
208 |
+
}
|
209 |
+
|
210 |
+
/**
|
211 |
+
* Process success response
|
212 |
+
*/
|
213 |
+
protected function _processCancel($request)
|
214 |
+
{
|
215 |
+
$this->_order->cancel();
|
216 |
+
$this->_order->addStatusToHistory(Mage_Sales_Model_Order::STATE_CANCELED, Mage::helper('worldpay')->__('Payment was canceled'));
|
217 |
+
$this->_order->save();
|
218 |
+
|
219 |
+
$this->getResponse()->setBody(
|
220 |
+
$this->getLayout()
|
221 |
+
->createBlock($this->_cancelBlockType)
|
222 |
+
->setOrder($this->_order)
|
223 |
+
->toHtml()
|
224 |
+
);
|
225 |
}
|
226 |
}
|
app/code/community/Phoenix/Worldpay/etc/config.xml
CHANGED
@@ -15,13 +15,13 @@
|
|
15 |
*
|
16 |
* @category Phoenix
|
17 |
* @package Phoenix_Worldpay
|
18 |
-
* @copyright Copyright (c)
|
19 |
*/
|
20 |
-->
|
21 |
<config>
|
22 |
<modules>
|
23 |
<Phoenix_Worldpay>
|
24 |
-
<version>1.
|
25 |
</Phoenix_Worldpay>
|
26 |
</modules>
|
27 |
<global>
|
@@ -75,6 +75,9 @@
|
|
75 |
</payment>
|
76 |
</global>
|
77 |
<frontend>
|
|
|
|
|
|
|
78 |
<routers>
|
79 |
<worldpay>
|
80 |
<use>standard</use>
|
@@ -130,6 +133,7 @@
|
|
130 |
<transaction_mode>test</transaction_mode>
|
131 |
<fix_contact>1</fix_contact>
|
132 |
<hide_contact>0</hide_contact>
|
|
|
133 |
</worldpay_cc>
|
134 |
</payment>
|
135 |
</default>
|
15 |
*
|
16 |
* @category Phoenix
|
17 |
* @package Phoenix_Worldpay
|
18 |
+
* @copyright Copyright (c) 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
19 |
*/
|
20 |
-->
|
21 |
<config>
|
22 |
<modules>
|
23 |
<Phoenix_Worldpay>
|
24 |
+
<version>1.2.0</version>
|
25 |
</Phoenix_Worldpay>
|
26 |
</modules>
|
27 |
<global>
|
75 |
</payment>
|
76 |
</global>
|
77 |
<frontend>
|
78 |
+
<secure_url>
|
79 |
+
<worldpay_processing>/worldpay/processing</worldpay_processing>
|
80 |
+
</secure_url>
|
81 |
<routers>
|
82 |
<worldpay>
|
83 |
<use>standard</use>
|
133 |
<transaction_mode>test</transaction_mode>
|
134 |
<fix_contact>1</fix_contact>
|
135 |
<hide_contact>0</hide_contact>
|
136 |
+
<enable_online_operations>0</enable_online_operations>
|
137 |
</worldpay_cc>
|
138 |
</payment>
|
139 |
</default>
|
app/code/community/Phoenix/Worldpay/etc/system.xml
CHANGED
@@ -13,8 +13,8 @@
|
|
13 |
* obtain it through the world-wide-web, please send an email
|
14 |
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
*
|
16 |
-
* @category Phoenix
|
17 |
-
* @package Phoenix_Worldpay
|
18 |
* @copyright Copyright (c) 2009 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
19 |
*/
|
20 |
-->
|
@@ -30,14 +30,14 @@
|
|
30 |
<show_in_website>1</show_in_website>
|
31 |
<show_in_store>0</show_in_store>
|
32 |
<fields>
|
33 |
-
<active translate="label">
|
34 |
-
<label>Enabled</label>
|
35 |
-
<frontend_type>select</frontend_type>
|
36 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
37 |
-
<sort_order>1</sort_order>
|
38 |
-
<show_in_default>1</show_in_default>
|
39 |
-
<show_in_website>1</show_in_website>
|
40 |
-
<show_in_store>0</show_in_store>
|
41 |
</active>
|
42 |
<order_status translate="label">
|
43 |
<label>New order status</label>
|
@@ -100,27 +100,27 @@
|
|
100 |
<show_in_default>1</show_in_default>
|
101 |
<show_in_website>1</show_in_website>
|
102 |
<show_in_store>0</show_in_store>
|
103 |
-
</inst_id>
|
104 |
-
<transaction_password>
|
105 |
-
<label>Payment Response password</label>
|
106 |
-
<frontend_type>text</frontend_type>
|
107 |
-
<sort_order>8</sort_order>
|
108 |
-
<show_in_default>1</show_in_default>
|
109 |
-
<show_in_website>1</show_in_website>
|
110 |
-
<show_in_store>0</show_in_store>
|
111 |
</transaction_password>
|
112 |
-
<security_key>
|
113 |
<label>MD5 secret</label>
|
114 |
-
<comment>Should be between 8-16 characters.</comment>
|
115 |
-
<frontend_type>text</frontend_type>
|
116 |
-
<sort_order>9</sort_order>
|
117 |
-
<show_in_default>1</show_in_default>
|
118 |
-
<show_in_website>1</show_in_website>
|
119 |
-
<show_in_store>0</show_in_store>
|
120 |
-
</security_key>
|
121 |
<request_type>
|
122 |
<label>Request Type</label>
|
123 |
-
<frontend_type>select</frontend_type>
|
124 |
<source_model>worldpay/source_requestType</source_model>
|
125 |
<sort_order>10</sort_order>
|
126 |
<show_in_default>1</show_in_default>
|
@@ -129,33 +129,62 @@
|
|
129 |
</request_type>
|
130 |
<transaction_mode>
|
131 |
<label>Transaction Mode</label>
|
132 |
-
<frontend_type>select</frontend_type>
|
133 |
<source_model>worldpay/source_transactionMode</source_model>
|
134 |
<sort_order>11</sort_order>
|
135 |
<show_in_default>1</show_in_default>
|
136 |
<show_in_website>1</show_in_website>
|
137 |
<show_in_store>0</show_in_store>
|
138 |
-
</transaction_mode>
|
139 |
-
<fix_contact>
|
140 |
-
<label>Fix contact</label>
|
141 |
-
<frontend_type>select</frontend_type>
|
142 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
143 |
-
<sort_order>12</sort_order>
|
144 |
-
<show_in_default>1</show_in_default>
|
145 |
-
<show_in_website>1</show_in_website>
|
146 |
-
<show_in_store>0</show_in_store>
|
147 |
-
</fix_contact>
|
148 |
-
<hide_contact>
|
149 |
-
<label>Hide contact</label>
|
150 |
-
<frontend_type>select</frontend_type>
|
151 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
152 |
-
<sort_order>13</sort_order>
|
153 |
-
<show_in_default>1</show_in_default>
|
154 |
-
<show_in_website>1</show_in_website>
|
155 |
-
<show_in_store>0</show_in_store>
|
156 |
</hide_contact>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
</fields>
|
158 |
-
</worldpay_cc>
|
159 |
</groups>
|
160 |
</payment>
|
161 |
</sections>
|
13 |
* obtain it through the world-wide-web, please send an email
|
14 |
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
*
|
16 |
+
* @category Phoenix
|
17 |
+
* @package Phoenix_Worldpay
|
18 |
* @copyright Copyright (c) 2009 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
19 |
*/
|
20 |
-->
|
30 |
<show_in_website>1</show_in_website>
|
31 |
<show_in_store>0</show_in_store>
|
32 |
<fields>
|
33 |
+
<active translate="label">
|
34 |
+
<label>Enabled</label>
|
35 |
+
<frontend_type>select</frontend_type>
|
36 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
37 |
+
<sort_order>1</sort_order>
|
38 |
+
<show_in_default>1</show_in_default>
|
39 |
+
<show_in_website>1</show_in_website>
|
40 |
+
<show_in_store>0</show_in_store>
|
41 |
</active>
|
42 |
<order_status translate="label">
|
43 |
<label>New order status</label>
|
100 |
<show_in_default>1</show_in_default>
|
101 |
<show_in_website>1</show_in_website>
|
102 |
<show_in_store>0</show_in_store>
|
103 |
+
</inst_id>
|
104 |
+
<transaction_password>
|
105 |
+
<label>Payment Response password</label>
|
106 |
+
<frontend_type>text</frontend_type>
|
107 |
+
<sort_order>8</sort_order>
|
108 |
+
<show_in_default>1</show_in_default>
|
109 |
+
<show_in_website>1</show_in_website>
|
110 |
+
<show_in_store>0</show_in_store>
|
111 |
</transaction_password>
|
112 |
+
<security_key>
|
113 |
<label>MD5 secret</label>
|
114 |
+
<comment>Should be between 8-16 characters.</comment>
|
115 |
+
<frontend_type>text</frontend_type>
|
116 |
+
<sort_order>9</sort_order>
|
117 |
+
<show_in_default>1</show_in_default>
|
118 |
+
<show_in_website>1</show_in_website>
|
119 |
+
<show_in_store>0</show_in_store>
|
120 |
+
</security_key>
|
121 |
<request_type>
|
122 |
<label>Request Type</label>
|
123 |
+
<frontend_type>select</frontend_type>
|
124 |
<source_model>worldpay/source_requestType</source_model>
|
125 |
<sort_order>10</sort_order>
|
126 |
<show_in_default>1</show_in_default>
|
129 |
</request_type>
|
130 |
<transaction_mode>
|
131 |
<label>Transaction Mode</label>
|
132 |
+
<frontend_type>select</frontend_type>
|
133 |
<source_model>worldpay/source_transactionMode</source_model>
|
134 |
<sort_order>11</sort_order>
|
135 |
<show_in_default>1</show_in_default>
|
136 |
<show_in_website>1</show_in_website>
|
137 |
<show_in_store>0</show_in_store>
|
138 |
+
</transaction_mode>
|
139 |
+
<fix_contact>
|
140 |
+
<label>Fix contact</label>
|
141 |
+
<frontend_type>select</frontend_type>
|
142 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
143 |
+
<sort_order>12</sort_order>
|
144 |
+
<show_in_default>1</show_in_default>
|
145 |
+
<show_in_website>1</show_in_website>
|
146 |
+
<show_in_store>0</show_in_store>
|
147 |
+
</fix_contact>
|
148 |
+
<hide_contact>
|
149 |
+
<label>Hide contact</label>
|
150 |
+
<frontend_type>select</frontend_type>
|
151 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
152 |
+
<sort_order>13</sort_order>
|
153 |
+
<show_in_default>1</show_in_default>
|
154 |
+
<show_in_website>1</show_in_website>
|
155 |
+
<show_in_store>0</show_in_store>
|
156 |
</hide_contact>
|
157 |
+
<enable_online_operations>
|
158 |
+
<label>Enable online operations</label>
|
159 |
+
<comment>Remote admin installation is needed to perform online refund</comment>
|
160 |
+
<frontend_type>select</frontend_type>
|
161 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
162 |
+
<sort_order>14</sort_order>
|
163 |
+
<show_in_default>1</show_in_default>
|
164 |
+
<show_in_website>1</show_in_website>
|
165 |
+
<show_in_store>0</show_in_store>
|
166 |
+
</enable_online_operations>
|
167 |
+
<admin_inst_id>
|
168 |
+
<label>Remote Admin Installation ID</label>
|
169 |
+
<frontend_type>text</frontend_type>
|
170 |
+
<comment>Required for Remote Admin</comment>
|
171 |
+
<backend_model>worldpay/config_backend_instid</backend_model>
|
172 |
+
<sort_order>15</sort_order>
|
173 |
+
<show_in_default>1</show_in_default>
|
174 |
+
<show_in_website>1</show_in_website>
|
175 |
+
<show_in_store>0</show_in_store>
|
176 |
+
</admin_inst_id>
|
177 |
+
<auth_password>
|
178 |
+
<label>Authorisation password</label>
|
179 |
+
<comment>Required for Remote Admin</comment>
|
180 |
+
<frontend_type>text</frontend_type>
|
181 |
+
<sort_order>16</sort_order>
|
182 |
+
<show_in_default>1</show_in_default>
|
183 |
+
<show_in_website>1</show_in_website>
|
184 |
+
<show_in_store>0</show_in_store>
|
185 |
+
</auth_password>
|
186 |
</fields>
|
187 |
+
</worldpay_cc>
|
188 |
</groups>
|
189 |
</payment>
|
190 |
</sections>
|
app/design/adminhtml/default/default/template/worldpay/info.phtml
CHANGED
@@ -20,9 +20,9 @@
|
|
20 |
<?php
|
21 |
echo $this->getMethod()->getTitle() . '<br/>';
|
22 |
if ($this->getInfo()->getLastTransId() == '') {
|
23 |
-
echo
|
24 |
} else {
|
25 |
-
echo
|
26 |
-
echo
|
27 |
}
|
28 |
?>
|
20 |
<?php
|
21 |
echo $this->getMethod()->getTitle() . '<br/>';
|
22 |
if ($this->getInfo()->getLastTransId() == '') {
|
23 |
+
echo Mage::helper('worldpay')->__('Payment has not been processed yet.') . '<br/>';
|
24 |
} else {
|
25 |
+
echo Mage::helper('worldpay')->__('Worldpay Transaction ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId())) . '<br/>';
|
26 |
+
echo Mage::helper('worldpay')->__('AVS status: %s', $this->htmlEscape($this->getInfo()->getCcAvsStatus())) . '<br/>';
|
27 |
}
|
28 |
?>
|
app/design/frontend/default/default/layout/worldpay.xml
CHANGED
@@ -31,5 +31,12 @@ Worldpay Failure Response Review
|
|
31 |
<block type="worldpay/failure" name="worldpay_failure" template="worldpay/failure.phtml" />
|
32 |
</reference>
|
33 |
</worldpay_processing_failure>
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
</layout>
|
31 |
<block type="worldpay/failure" name="worldpay_failure" template="worldpay/failure.phtml" />
|
32 |
</reference>
|
33 |
</worldpay_processing_failure>
|
34 |
+
<worldpay_processing_redirect>
|
35 |
+
<reference name="root">
|
36 |
+
<action method="setTemplate"><template>worldpay/blank.phtml</template></action>
|
37 |
+
</reference>
|
38 |
+
<reference name="content">
|
39 |
+
<block type="worldpay/redirect" name="worldpay_redirect" template="worldpay/redirect.phtml" />
|
40 |
+
</reference>
|
41 |
+
</worldpay_processing_redirect>
|
42 |
</layout>
|
app/design/frontend/default/default/template/worldpay/blank.phtml
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
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.txt.
|
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 license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category design_default
|
16 |
+
* @package Phoenix_Worldpay
|
17 |
+
* @copyright Copyright (c) 2008 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
*/
|
19 |
+
?>
|
20 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
21 |
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->getLang() ?>" lang="<?php echo $this->getLang() ?>">
|
22 |
+
<head>
|
23 |
+
</head>
|
24 |
+
<body>
|
25 |
+
<?php echo $this->getChildHtml('content') ?>
|
26 |
+
</body>
|
27 |
+
</html>
|
app/design/frontend/default/default/template/worldpay/cancel.phtml
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
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.txt.
|
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 license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category design_default
|
16 |
+
* @package Phoenix_Worldpay
|
17 |
+
* @copyright Copyright (c) 2009 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
*/
|
19 |
+
?>
|
20 |
+
<html>
|
21 |
+
<meta http-equiv="refresh" content="0; URL=<?php echo $this->getContinueShoppingUrl()?>">
|
22 |
+
<body>
|
23 |
+
<div class="page-head">
|
24 |
+
<h3><?php echo Mage::helper('worldpay')->__('Payment was canceled') ?></h3>
|
25 |
+
</div>
|
26 |
+
<p><?php echo Mage::helper('worldpay')->__('Please <a href="%s">continue shopping</a>.', $this->getContinueShoppingUrl()) ?></p>
|
27 |
+
</body>
|
28 |
+
</html>
|
app/design/frontend/default/default/template/worldpay/failure.phtml
CHANGED
@@ -21,8 +21,8 @@
|
|
21 |
<meta http-equiv="refresh" content="0; URL=<?php echo $this->getContinueShoppingUrl()?>">
|
22 |
<body>
|
23 |
<div class="page-head">
|
24 |
-
<h3><?php echo
|
25 |
</div>
|
26 |
-
<p><?php echo
|
27 |
</body>
|
28 |
</html>
|
21 |
<meta http-equiv="refresh" content="0; URL=<?php echo $this->getContinueShoppingUrl()?>">
|
22 |
<body>
|
23 |
<div class="page-head">
|
24 |
+
<h3><?php echo Mage::helper('worldpay')->__('Error occured') ?></h3>
|
25 |
</div>
|
26 |
+
<p><?php echo Mage::helper('worldpay')->__('Please <a href="%s">continue shopping</a>.', $this->getContinueShoppingUrl()) ?></p>
|
27 |
</body>
|
28 |
</html>
|
app/design/frontend/default/default/template/worldpay/form.phtml
CHANGED
@@ -21,7 +21,7 @@
|
|
21 |
<?php $_code=$this->getMethodCode() ?>
|
22 |
<ul id="payment_form_<?php echo $_code ?>" style="display:none">
|
23 |
<li>
|
24 |
-
<?php echo
|
25 |
</li>
|
26 |
</ul>
|
27 |
</fieldset>
|
21 |
<?php $_code=$this->getMethodCode() ?>
|
22 |
<ul id="payment_form_<?php echo $_code ?>" style="display:none">
|
23 |
<li>
|
24 |
+
<?php echo Mage::helper('worldpay')->__($_code.':You will be redirected to Worldpay website when you place an order.') ?>
|
25 |
</li>
|
26 |
</ul>
|
27 |
</fieldset>
|
app/design/frontend/default/default/template/worldpay/info.phtml
CHANGED
@@ -20,8 +20,8 @@
|
|
20 |
<?php
|
21 |
echo $this->getMethod()->getTitle() . '<br/>';
|
22 |
if ($this->getInfo()->getLastTransId() == '') {
|
23 |
-
echo '<em>' .
|
24 |
} else {
|
25 |
-
echo
|
26 |
}
|
27 |
?>
|
20 |
<?php
|
21 |
echo $this->getMethod()->getTitle() . '<br/>';
|
22 |
if ($this->getInfo()->getLastTransId() == '') {
|
23 |
+
echo '<em>' . Mage::helper('worldpay')->__($this->getMethodCode().':You will be redirected to Worldpay website when you place an order.') . '</em>';
|
24 |
} else {
|
25 |
+
echo Mage::helper('worldpay')->__('Worldpay Transaction ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId())) . '<br/>';
|
26 |
}
|
27 |
?>
|
app/design/frontend/default/default/template/worldpay/redirect.phtml
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
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.txt.
|
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 license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category design_default
|
16 |
+
* @package Phoenix_Worldpay
|
17 |
+
* @copyright Copyright (c) 2008 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
*/
|
19 |
+
?>
|
20 |
+
<b><?php echo Mage::helper('worldpay')->__('You will be redirected to Worldpay in a few seconds.'); ?></b>
|
21 |
+
<form name="worldpay_checkout" id="worldpay_checkout" action="<?php echo $this->getFormAction();?>" method="POST">
|
22 |
+
<?php if (is_array($this->getFormData())): ?>
|
23 |
+
<?php foreach ($this->getFormData() as $name => $value): ?>
|
24 |
+
<input type="hidden" name="<?php echo $name; ?>" value="<?php echo $value; ?>"/>
|
25 |
+
<?php endforeach; ?>
|
26 |
+
<?php endif; ?>
|
27 |
+
</form>
|
28 |
+
|
29 |
+
<script type="text/javascript">
|
30 |
+
//<![CDATA[
|
31 |
+
var paymentform = document.getElementById('worldpay_checkout');
|
32 |
+
window.onload = paymentform.submit();
|
33 |
+
//]]>
|
34 |
+
</script>
|
app/locale/de_DE/Phoenix_Worldpay.csv
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
"Your payment has been successfully processed by our shop system.","Ihre Zahlung war erfolgreich."
|
3 |
"Please click <a href="%s">here</a> if you are not redirected automatically.","Bitte klicken Sie <a href="%s">hier</a> wenn Sie nicht automatisch weitergeleitet werden."
|
4 |
"Customer was redirected to Worldpay.","Kunde wurde an Worldpay weitergeleitet."
|
5 |
-
"
|
6 |
-
"
|
7 |
"Customer was rejected by Worldpay","Kunde wurde von Worldpay abgelehnt"
|
8 |
"Error occured","Ein Fehler trat auf"
|
9 |
"Please <a href=""%s"">continue shopping</a>.","<a href=""%s"">Weiter einkaufen</a>."
|
@@ -14,4 +14,6 @@
|
|
14 |
"Payment has not been processed yet.","Die Zahlung wurde noch nicht durchgeführt."
|
15 |
"Authorization","Autorisierung"
|
16 |
"Preauthorization","Vorautorisierung"
|
17 |
-
"Your purchase at","Ihr Einkauf bei"
|
|
|
|
2 |
"Your payment has been successfully processed by our shop system.","Ihre Zahlung war erfolgreich."
|
3 |
"Please click <a href="%s">here</a> if you are not redirected automatically.","Bitte klicken Sie <a href="%s">hier</a> wenn Sie nicht automatisch weitergeleitet werden."
|
4 |
"Customer was redirected to Worldpay.","Kunde wurde an Worldpay weitergeleitet."
|
5 |
+
"preauthorize: Customer returned successfully","Der Betrag wurde bei Worldpay vorautorisiert."
|
6 |
+
"authorize: Customer returned successfully","Der Betrag wurde bei Worldpay autorisiert und abgebucht."
|
7 |
"Customer was rejected by Worldpay","Kunde wurde von Worldpay abgelehnt"
|
8 |
"Error occured","Ein Fehler trat auf"
|
9 |
"Please <a href=""%s"">continue shopping</a>.","<a href=""%s"">Weiter einkaufen</a>."
|
14 |
"Payment has not been processed yet.","Die Zahlung wurde noch nicht durchgeführt."
|
15 |
"Authorization","Autorisierung"
|
16 |
"Preauthorization","Vorautorisierung"
|
17 |
+
"Your purchase at","Ihr Einkauf bei"
|
18 |
+
"Error during refunding online. Server response: %s", "Fehler während der Gutschrift-Erteilung. Server-Antwort: %s"
|
19 |
+
"Worldpay transaction has been captured.", "Worldpay Transaktion wurde abgebucht."
|
app/locale/en_US/Phoenix_Worldpay.csv
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
"Your payment has been successfully processed by our shop system.","Your payment has been successfully processed by our shop system."
|
3 |
"Please click <a href="%s">here</a> if you are not redirected automatically.","Please click <a href="%s">here</a> if you are not redirected automatically."
|
4 |
"Customer was redirected to Worldpay.","Customer was redirected to Worldpay."
|
5 |
-
"
|
6 |
-
"
|
7 |
"Customer was rejected by Worldpay","Customer was rejected by Worldpay"
|
8 |
"Error occured","Error occured"
|
9 |
"Please <a href=""%s"">continue shopping</a>.","Please <a href=""%s"">continue shopping</a>."
|
@@ -14,4 +14,6 @@
|
|
14 |
"Payment has not been processed yet.", "Payment has not been processed yet."
|
15 |
"Authorization","Authorization"
|
16 |
"Preauthorization","Preauthorization"
|
17 |
-
"Your purchase at","Your purchase at"
|
|
|
|
2 |
"Your payment has been successfully processed by our shop system.","Your payment has been successfully processed by our shop system."
|
3 |
"Please click <a href="%s">here</a> if you are not redirected automatically.","Please click <a href="%s">here</a> if you are not redirected automatically."
|
4 |
"Customer was redirected to Worldpay.","Customer was redirected to Worldpay."
|
5 |
+
"preauthorize: Customer returned successfully","The amount has been preauthorized by Worldpay."
|
6 |
+
"authorize: Customer returned successfully","The amount has been authorized and captured by Worldpay."
|
7 |
"Customer was rejected by Worldpay","Customer was rejected by Worldpay"
|
8 |
"Error occured","Error occured"
|
9 |
"Please <a href=""%s"">continue shopping</a>.","Please <a href=""%s"">continue shopping</a>."
|
14 |
"Payment has not been processed yet.", "Payment has not been processed yet."
|
15 |
"Authorization","Authorization"
|
16 |
"Preauthorization","Preauthorization"
|
17 |
+
"Your purchase at","Your purchase at"
|
18 |
+
"Error during refunding online. Server response: %s", "Error during refunding online. Server response: %s"
|
19 |
+
"Worldpay transaction has been captured.", "Worldpay transaction has been captured."
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Phoenix_Worldpay</name>
|
4 |
-
<version>1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
|
7 |
<channel>community</channel>
|
@@ -19,11 +19,15 @@ Notice: This extension is still beta. We recommend to test all transactions in y
|
|
19 |
The extension is developed and maintained by the German Magento Silver Partner Phoenix Medien (http://www.phoenix-medien.de).
|
20 |
|
21 |
The development was sponsored by liaison dangereuse (http://www.liaison-dangereuse.de).</description>
|
22 |
-
<notes>-
|
|
|
|
|
|
|
|
|
23 |
<authors><author><name>Phoenix Medien</name><user>auto-converted</user><email>info@phoenix-medien.de</email></author></authors>
|
24 |
-
<date>
|
25 |
-
<time>
|
26 |
-
<contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="worldpay"><dir name="pdf"><file name="info.phtml" hash="3a92c60f5c05a3e51df366cee651edd6"/></dir><file name="info.phtml" hash="
|
27 |
<compatible/>
|
28 |
<dependencies/>
|
29 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Phoenix_Worldpay</name>
|
4 |
+
<version>1.2.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
|
7 |
<channel>community</channel>
|
19 |
The extension is developed and maintained by the German Magento Silver Partner Phoenix Medien (http://www.phoenix-medien.de).
|
20 |
|
21 |
The development was sponsored by liaison dangereuse (http://www.liaison-dangereuse.de).</description>
|
22 |
+
<notes>- Remote admin functionalities for capture and refund in the backend
|
23 |
+
- Rework of the complete controller
|
24 |
+
- Cancel now reloads shopping cart correctly
|
25 |
+
- Fixes session issue during callback
|
26 |
+
- AVS Status is now visible in the backend</notes>
|
27 |
<authors><author><name>Phoenix Medien</name><user>auto-converted</user><email>info@phoenix-medien.de</email></author></authors>
|
28 |
+
<date>2010-02-04</date>
|
29 |
+
<time>18:21:10</time>
|
30 |
+
<contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="worldpay"><dir name="pdf"><file name="info.phtml" hash="3a92c60f5c05a3e51df366cee651edd6"/></dir><file name="info.phtml" hash="d70ad71aa960ce0c6d4ec8609dadf7e3"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="worldpay.xml" hash="ac4191773623ae2ad6170f363866ed43"/></dir><dir name="template"><dir name="worldpay"><file name="blank.phtml" hash="8b7d8aa0521878b2dd796acfd4d655b6"/><file name="cancel.phtml" hash="350348b8fecb9b7c2b1045d1a8edd9c7"/><file name="failure.phtml" hash="77b202de38902c9e6458218bdce07de8"/><file name="form.phtml" hash="8c7184cbaffc115349de415d12273528"/><file name="info.phtml" hash="d33c7ffde885e4953a975201562cba8e"/><file name="redirect.phtml" hash="84d38770a43262c890094c132dc2bd5c"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="de_DE"><file name="Phoenix_Worldpay.csv" hash="8a41fe546b9f6fb3d18c0ccf727ea082"/></dir><dir name="en_US"><file name="Phoenix_Worldpay.csv" hash="d5ff38bb74afd4e7715cfa54134fd57d"/></dir></target><target name="mageetc"><dir name="modules"><file name="Phoenix_Worldpay.xml" hash="52b9dc5cd0d94ab43d8691438f090617"/></dir></target><target name="magecommunity"><dir name="Phoenix"><dir name="Worldpay"><dir name="Block"><file name="Cancel.php" hash="b0f213ee8e45d0b8b48a6fad48f05017"/><file name="Failure.php" hash="5add6ed9890109ba624b7a16bc0504f5"/><file name="Form.php" hash="d279b2d502e875e155101007eef7ebc5"/><file name="Info.php" hash="24bc51b1b86cd3a020982b09e8695c22"/><file name="Processing.php" hash="0f495f4f01f213d999291164d8d6a0c6"/><file name="Redirect.php" hash="c17fea696a1900eef85226022efe4670"/><file name="Success.php" hash="0c072e272d53a0b24e5157201cd65877"/></dir><dir name="controllers"><file name="ProcessingController.php" hash="22d14717383048a6ec1c57ca3ea9d7d0"/></dir><dir name="etc"><file name="config.xml" hash="d75b8d2203cb2331d5cee474b8aa4f21"/><file name="system.xml" hash="5361e90063e729e4c01ae95a074d0fc4"/></dir><dir name="Helper"><file name="Data.php" hash="354473f472247a9dae11a1fac0cef407"/></dir><dir name="Model"><dir name="Config"><dir name="Backend"><file name="Instid.php" hash="20c846f756ccc1edc0673e6c9ab464bf"/></dir></dir><dir name="Source"><file name="RequestType.php" hash="795d51b4c3f04bb00cf6cca5a3180cd7"/><file name="TransactionMode.php" hash="da4cadb5df1213edc34f22b67235d374"/></dir><file name="Cc.php" hash="cf6b3bff52b5aedd85ff94cc59a0fc8e"/><file name="Config.php" hash="9098369b245a824396354e1b64cd47ab"/></dir></dir></dir></target></contents>
|
31 |
<compatible/>
|
32 |
<dependencies/>
|
33 |
</package>
|