Version Notes
compatible with 1.9
Download this release
Release Info
Developer | faisal |
Extension | worldpayzaq12wsx |
Version | 1.1.0 |
Comparing to | |
See all releases |
Version 1.1.0
- app/code/local/WorldPayTech/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldAch/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldAch/Block/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldAch/Block/Form.php +61 -0
- app/code/local/WorldPayTech/WorldAch/Block/Info.php +125 -0
- app/code/local/WorldPayTech/WorldAch/Helper/Data.php +36 -0
- app/code/local/WorldPayTech/WorldAch/Model/PaymentMethod.php +296 -0
- app/code/local/WorldPayTech/WorldAch/etc/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldAch/etc/config.xml +82 -0
- app/code/local/WorldPayTech/WorldAch/etc/system.xml +68 -0
- app/code/local/WorldPayTech/WorldPay/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldPay/Block/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldPay/Block/Form.php +193 -0
- app/code/local/WorldPayTech/WorldPay/Block/Info.php +140 -0
- app/code/local/WorldPayTech/WorldPay/Model/PaymentHelper.php +161 -0
- app/code/local/WorldPayTech/WorldPay/Model/PaymentMethod.php +330 -0
- app/code/local/WorldPayTech/WorldPay/etc/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldPay/etc/config.xml +76 -0
- app/code/local/WorldPayTech/WorldPay/etc/system.xml +188 -0
- app/code/local/WorldPayTech/WorldProfile/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldProfile/Block/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldProfile/Block/Form.php +193 -0
- app/code/local/WorldPayTech/WorldProfile/Block/Info.php +141 -0
- app/code/local/WorldPayTech/WorldProfile/Helper/Data.php +36 -0
- app/code/local/WorldPayTech/WorldProfile/Model/PaymentMethod.php +265 -0
- app/code/local/WorldPayTech/WorldProfile/etc/.DS_Store +0 -0
- app/code/local/WorldPayTech/WorldProfile/etc/config.xml +82 -0
- app/code/local/WorldPayTech/WorldProfile/etc/system.xml +66 -0
- app/design/frontend/rwd/default/template/worldpay/.DS_Store +0 -0
- app/design/frontend/rwd/default/template/worldpay/form/.DS_Store +0 -0
- app/design/frontend/rwd/default/template/worldpay/form/pp.phtml +254 -0
- app/design/frontend/rwd/default/template/worldpay/form/worldpayach.phtml +98 -0
- app/design/frontend/rwd/default/template/worldpay/form/worldpaycc.phtml +146 -0
- app/design/frontend/rwd/default/template/worldpay/form/worldpayprofile.phtml +73 -0
- app/etc/modules/WorldPayTech_WorldAch.xml +16 -0
- app/etc/modules/WorldPayTech_WorldPay.xml +15 -0
- app/etc/modules/WorldPayTech_WorldProfile.xml +16 -0
- package.xml +18 -0
app/code/local/WorldPayTech/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldAch/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldAch/Block/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldAch/Block/Form.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Payment
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class WorldPayTech_WorldAch_Block_Form extends Mage_Payment_Block_Form
|
29 |
+
{
|
30 |
+
protected $_code = 'worldach';
|
31 |
+
protected function _construct()
|
32 |
+
{
|
33 |
+
parent::_construct();
|
34 |
+
$this->setTemplate('worldpay/form/worldpayach.phtml');
|
35 |
+
Mage::log("WorldPayTech_WorldAch_Block_Form");
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Retrieve payment configuration object
|
40 |
+
*
|
41 |
+
* @return Mage_Payment_Model_Config
|
42 |
+
*/
|
43 |
+
protected function _getConfig()
|
44 |
+
{
|
45 |
+
return Mage::getSingleton('payment/config');
|
46 |
+
}
|
47 |
+
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Render block HTML
|
51 |
+
*
|
52 |
+
* @return string
|
53 |
+
*/
|
54 |
+
protected function _toHtml()
|
55 |
+
{
|
56 |
+
Mage::dispatchEvent('payment_form_block_to_html_before', array(
|
57 |
+
'block' => $this
|
58 |
+
));
|
59 |
+
return parent::_toHtml();
|
60 |
+
}
|
61 |
+
}
|
app/code/local/WorldPayTech/WorldAch/Block/Info.php
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Payment
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Credit card generic payment info
|
29 |
+
*/
|
30 |
+
class WorldPayTech_WorldAch_Block_Info extends Mage_Payment_Block_Info
|
31 |
+
{
|
32 |
+
/*protected function _construct()
|
33 |
+
{
|
34 |
+
//parent::_construct();
|
35 |
+
//$this->setTemplate('payment/form/cc.phtml');
|
36 |
+
//Mage::log("PrismPayTech_PrismPay_Block_Info");
|
37 |
+
|
38 |
+
}*/
|
39 |
+
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Retrieve credit card type name
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Prepare credit card related payment info
|
49 |
+
*
|
50 |
+
* @param Varien_Object|array $transport
|
51 |
+
* @return Varien_Object
|
52 |
+
*/
|
53 |
+
protected function _prepareSpecificInformation($transport = null)
|
54 |
+
{
|
55 |
+
if (null !== $this->_paymentSpecificInformation) {
|
56 |
+
return $this->_paymentSpecificInformation;
|
57 |
+
}
|
58 |
+
$transport = parent::_prepareSpecificInformation($transport);
|
59 |
+
$data = array();
|
60 |
+
|
61 |
+
|
62 |
+
//print_r($this->getInfoInstance());
|
63 |
+
/*print"<pre>";
|
64 |
+
$data = $this->getRequest()->getPost('name', array());
|
65 |
+
//$result = $this->getOnepage()->savePayment($data);
|
66 |
+
//$payment->importData($data);
|
67 |
+
print_r($data);
|
68 |
+
//print_r($result);
|
69 |
+
print_r($this->getInfo());
|
70 |
+
echo "===================<br>";
|
71 |
+
print_r($transport->getData("name"));
|
72 |
+
echo "===================<br>";
|
73 |
+
print_r($transport->getData("payment"));
|
74 |
+
echo "===================<br>";
|
75 |
+
print_r($transport->getData("payment[ckname]"));
|
76 |
+
echo "===================<br>";
|
77 |
+
print_r($_REQUEST);
|
78 |
+
|
79 |
+
echo "===================<br>";
|
80 |
+
|
81 |
+
print_r($this->getMethod()->getInfoInstance()->getData("payment[ckname]"));
|
82 |
+
echo "===================";
|
83 |
+
|
84 |
+
print_r($this->getMethod()->getInfoInstance()->getData("ckname"));
|
85 |
+
|
86 |
+
print"</pre>";*/
|
87 |
+
$data[Mage::helper('payment')->__('Name')] = "********";
|
88 |
+
$data[Mage::helper('payment')->__('Routing Number')] = "********";
|
89 |
+
$data[Mage::helper('payment')->__('Account Number')] = "********";
|
90 |
+
$data[Mage::helper('payment')->__('Cheque Number')] = "********";
|
91 |
+
/*if ($ccType = $this->getCcTypeName()) {
|
92 |
+
$data[Mage::helper('payment')->__('Credit Card Type')] = $ccType;
|
93 |
+
}
|
94 |
+
if ($this->getInfo()->getCcLast4()) {
|
95 |
+
$data[Mage::helper('payment')->__('Credit Card Number')] = sprintf('xxxx-%s', $this->getInfo()->getCcLast4());
|
96 |
+
}
|
97 |
+
if (!$this->getIsSecureMode()) {
|
98 |
+
if ($ccSsIssue = $this->getInfo()->getCcSsIssue()) {
|
99 |
+
$data[Mage::helper('payment')->__('Switch/Solo/Maestro Issue Number')] = $ccSsIssue;
|
100 |
+
}
|
101 |
+
$year = $this->getInfo()->getCcSsStartYear();
|
102 |
+
$month = $this->getInfo()->getCcSsStartMonth();
|
103 |
+
if ($year && $month) {
|
104 |
+
$data[Mage::helper('payment')->__('Switch/Solo/Maestro Start Date')] = $this->_formatCardDate($year, $month);
|
105 |
+
}
|
106 |
+
}*/
|
107 |
+
//print_r("<pre>");
|
108 |
+
//print_r ($data);
|
109 |
+
//die;
|
110 |
+
//mail()
|
111 |
+
return $transport->setData(array_merge($data, $transport->getData()));
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Format year/month on the credit card
|
116 |
+
*
|
117 |
+
* @param string $year
|
118 |
+
* @param string $month
|
119 |
+
* @return string
|
120 |
+
*/
|
121 |
+
protected function _formatCardDate($year, $month)
|
122 |
+
{
|
123 |
+
return sprintf('%s/%s', sprintf('%02d', $month), $year);
|
124 |
+
}
|
125 |
+
}
|
app/code/local/WorldPayTech/WorldAch/Helper/Data.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Adyen Payment Module
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
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 Adyen
|
17 |
+
* @package Adyen_Payment
|
18 |
+
* @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
|
19 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
20 |
+
*/
|
21 |
+
/**
|
22 |
+
* @category Payment Gateway
|
23 |
+
* @package Adyen_Payment
|
24 |
+
* @author Adyen
|
25 |
+
* @property Adyen B.V
|
26 |
+
* @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
|
27 |
+
*/
|
28 |
+
class WorldPayTech_WorldAch_Helper_Data extends Mage_Payment_Helper_Data {
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Zend_Log debug level
|
32 |
+
* @var unknown_type
|
33 |
+
*/
|
34 |
+
|
35 |
+
|
36 |
+
}
|
app/code/local/WorldPayTech/WorldAch/Model/PaymentMethod.php
ADDED
@@ -0,0 +1,296 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Our test CC module adapter
|
5 |
+
*/
|
6 |
+
class WorldPayTech_WorldAch_Model_PaymentMethod extends WorldPayTech_WorldPay_Model_PaymentHelper {
|
7 |
+
|
8 |
+
protected $_code = 'worldach';
|
9 |
+
protected $_formBlockType = 'worldach/form';
|
10 |
+
protected $_infoBlockType = 'worldach/info';
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
parent::__construct();
|
14 |
+
Mage::log("WorldPayTech_WorldAch_Model_PaymentMethod");
|
15 |
+
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Here you will need to implement authorize, capture and void public methods
|
20 |
+
*
|
21 |
+
* @see examples of transaction specific public methods such as
|
22 |
+
* authorize, capture and void in Mage_Paygate_Model_Authorizenet
|
23 |
+
*
|
24 |
+
* In this function i charge credit card and mark order as completed
|
25 |
+
*/
|
26 |
+
public function assignData($data)
|
27 |
+
{
|
28 |
+
|
29 |
+
// Call parent assignData
|
30 |
+
parent::assignData($data);
|
31 |
+
|
32 |
+
// Get Mage_Payment_Model_Info instance from quote
|
33 |
+
$info = $this->getInfoInstance();
|
34 |
+
|
35 |
+
// Add some arbitrary post data to the Mage_Payment_Model_Info instance
|
36 |
+
// so it is saved in the DB in the 'additional_information' field
|
37 |
+
$info->setAdditionalInformation(
|
38 |
+
'name',
|
39 |
+
"faisalsharifshamsi");
|
40 |
+
Mage::log("Payment Method assignData ");
|
41 |
+
return $this;
|
42 |
+
}
|
43 |
+
public function authorize(Varien_Object $payment, $amount) {
|
44 |
+
$order = $payment->getOrder();
|
45 |
+
try {
|
46 |
+
Mage::log('WorldAch Authorize!');
|
47 |
+
|
48 |
+
$ckname=$_REQUEST["payment"]["ckname"];
|
49 |
+
$ckaba=$_REQUEST["payment"]["ckaba"];
|
50 |
+
$ckacct=$_REQUEST["payment"]["ckacct"];
|
51 |
+
$ckno =$_REQUEST["payment"]["ckno"];
|
52 |
+
$ckaccttype =$_REQUEST["payment"]["ckaccttype"];
|
53 |
+
$ckaccttypedesc =$_REQUEST["payment"]["ckaccttypedesc"];
|
54 |
+
$cktype =$_REQUEST["payment"]["cktype"];
|
55 |
+
|
56 |
+
$ipAddress = $_SERVER['REMOTE_ADDR'];
|
57 |
+
|
58 |
+
$totals = number_format($amount, 2, '.', '');
|
59 |
+
$fields = array(
|
60 |
+
"service" => "14",
|
61 |
+
"acctid" => $this->__accountID,
|
62 |
+
"subid" => $this->__subAccountID,
|
63 |
+
"ckname" => $ckname,
|
64 |
+
"ckaba" => $ckaba,
|
65 |
+
"ckacct" => $ckacct,
|
66 |
+
"ckno" => $ckno,
|
67 |
+
// "ckaccttype" => $ckaccttype,
|
68 |
+
"ckaccttype" => $ckaccttype,
|
69 |
+
"ckaccttypedesc" => $ckaccttypedesc,
|
70 |
+
"cktype" => $cktype,
|
71 |
+
'ipaddress' => $_SERVER['REMOTE_ADDR'],
|
72 |
+
'currencycode' => $order->getBaseCurrencyCode(),
|
73 |
+
'amount' => $totals,
|
74 |
+
);
|
75 |
+
|
76 |
+
|
77 |
+
|
78 |
+
$fields_string = "<?xml version=\"1.0\"?><interface_driver><trans_catalog><transaction name=\"ach\"><inputs>";
|
79 |
+
|
80 |
+
foreach ($fields as $key => $value) {
|
81 |
+
$fields_string .= '<' . $key . '>' . $value . '</' . $key . '>';
|
82 |
+
}
|
83 |
+
$fields_string .='</inputs></transaction></trans_catalog></interface_driver>';
|
84 |
+
|
85 |
+
if ($this->__debugMode == 0) {
|
86 |
+
$data=$this->curlHelper($payment, $fields_string);
|
87 |
+
|
88 |
+
}
|
89 |
+
} catch (Exception $e) {
|
90 |
+
|
91 |
+
$payment->setStatus(self::STATUS_ERROR);
|
92 |
+
$payment->setAmount($amount);
|
93 |
+
$payment->setLastTransId($orderId);
|
94 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
95 |
+
Mage::throwException($e->getMessage());
|
96 |
+
}
|
97 |
+
if ($this->__debugMode == 0) {
|
98 |
+
$xmlResponse = new SimpleXmlElement($data); //Simple way to parse xml, Magento might have an equivalent class
|
99 |
+
$outputs = $xmlResponse->trans_catalog->transaction->outputs;
|
100 |
+
}
|
101 |
+
|
102 |
+
$orderId=$order->getId();
|
103 |
+
$transactionId=$outputs->historyid;
|
104 |
+
if ($outputs->status == "Approved") {
|
105 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
106 |
+
$payment->setStatus(self::STATUS_APPROVED);
|
107 |
+
$payment->setAmount($amount);
|
108 |
+
$payment->setLastTransId($orderId);
|
109 |
+
|
110 |
+
$payment->setTransactionId($transactionId);
|
111 |
+
$payment->setIsTransactionClosed(0);
|
112 |
+
$payment->setParentTransactionId($transactionId);
|
113 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
|
114 |
+
array(
|
115 |
+
'status'=>"".$outputs->status."",
|
116 |
+
'authcode'=>"".$outputs->authcode."",
|
117 |
+
"historyid"=>"".$outputs->historyid."",
|
118 |
+
"orderid"=>"".$outputs->orderid."",
|
119 |
+
"refcode"=>"".$outputs->refcode."",
|
120 |
+
"total"=>"".$outputs->total."",
|
121 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
122 |
+
"accountname"=>"".$outputs->accountname."",
|
123 |
+
"ckname"=>"".$ckname."",
|
124 |
+
"ckaba"=>"".$ckaba."",
|
125 |
+
"ckacct"=>"".$ckacct."",
|
126 |
+
"ckno"=>"".$ckno."",
|
127 |
+
"ckaccttype"=>"".$ckaccttype."",
|
128 |
+
"ckaccttypedesc"=>"".$ckaccttypedesc."",
|
129 |
+
"cktype"=>"".$cktype."",
|
130 |
+
)
|
131 |
+
);
|
132 |
+
|
133 |
+
|
134 |
+
} else {
|
135 |
+
$payment->setStatus(self::STATUS_ERROR);
|
136 |
+
$payment->setAmount($amount);
|
137 |
+
$payment->setLastTransId($orderId);
|
138 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
139 |
+
if ($this->__debugMode == 1) {
|
140 |
+
Mage::throwException("XMl=" . $fields_string . "\n\nAccount=" . $this->__accountID . "\n\nSub Account=" . $this->__subAccountID . "\n\nTest Mode=" . $this->__testMode . "\n\nDebuge Mode=" . $this->__debugMode);
|
141 |
+
} else {
|
142 |
+
Mage::throwException($outputs->result);
|
143 |
+
}
|
144 |
+
}
|
145 |
+
return $this;
|
146 |
+
}
|
147 |
+
|
148 |
+
public function capture(Varien_Object $payment, $amount) {
|
149 |
+
|
150 |
+
// this function is not in used /////
|
151 |
+
|
152 |
+
|
153 |
+
}
|
154 |
+
public function validate()
|
155 |
+
{
|
156 |
+
/*
|
157 |
+
* calling parent validate function
|
158 |
+
*/
|
159 |
+
//parent::validate();
|
160 |
+
Mage::log("World Profile Validate");
|
161 |
+
|
162 |
+
return $this;
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* Payment refund
|
167 |
+
*
|
168 |
+
* @param \Magento\Framework\Object $payment
|
169 |
+
* @param float $amount
|
170 |
+
* @return $this
|
171 |
+
* @throws \Magento\Framework\Model\Exception
|
172 |
+
*/
|
173 |
+
|
174 |
+
public function refund(Varien_Object $payment, $amount) {
|
175 |
+
$order = $payment->getOrder();
|
176 |
+
try {
|
177 |
+
Mage::log('WorldPay Profile Refund!');
|
178 |
+
|
179 |
+
|
180 |
+
$temp_transaction_id=$payment->getLastTransId();
|
181 |
+
$dash_pos = strpos($temp_transaction_id, "-");
|
182 |
+
$transaction_id=substr($temp_transaction_id,0,$dash_pos);
|
183 |
+
if($transaction_id=="")
|
184 |
+
{
|
185 |
+
Mage::throwException("Unable to create memo , transaction id not found");
|
186 |
+
return $this;
|
187 |
+
|
188 |
+
}
|
189 |
+
$transactionData=$payment->getTransaction($transaction_id)->getData();
|
190 |
+
$order_id=@$transactionData["additional_information"]["raw_details_info"]["orderid"];
|
191 |
+
$historyid=@$transactionData["additional_information"]["raw_details_info"]["historyid"];
|
192 |
+
$refcode=@$transactionData["additional_information"]["raw_details_info"]["refcode"];
|
193 |
+
|
194 |
+
|
195 |
+
$totals = number_format($amount, 2, '.', '');
|
196 |
+
$fields = array(
|
197 |
+
"service" => "16",
|
198 |
+
"acctid" => $this->__accountID,
|
199 |
+
"subid" => $this->__subAccountID,
|
200 |
+
"historykeyid" => $historyid,
|
201 |
+
"orderkeyid" => $order_id,
|
202 |
+
'amount' => $totals,
|
203 |
+
);
|
204 |
+
|
205 |
+
|
206 |
+
|
207 |
+
$fields_string = "<?xml version=\"1.0\"?><interface_driver><trans_catalog><transaction name=\"ach\"><inputs>";
|
208 |
+
|
209 |
+
foreach ($fields as $key => $value) {
|
210 |
+
$fields_string .= '<' . $key . '>' . $value . '</' . $key . '>';
|
211 |
+
}
|
212 |
+
$fields_string .='</inputs></transaction></trans_catalog></interface_driver>';
|
213 |
+
|
214 |
+
Mage::log('Data '.$fields_string);
|
215 |
+
|
216 |
+
if ($this->__debugMode == 0) {
|
217 |
+
$data=$this->curlHelper($payment, $fields_string);
|
218 |
+
|
219 |
+
}
|
220 |
+
} catch (Exception $e) {
|
221 |
+
|
222 |
+
$payment->setStatus(self::STATUS_ERROR);
|
223 |
+
$payment->setAmount($amount);
|
224 |
+
$payment->setLastTransId($orderId);
|
225 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
226 |
+
Mage::throwException($e->getMessage());
|
227 |
+
}
|
228 |
+
$xmlResponse = new SimpleXmlElement($data); //Simple way to parse xml, Magento might have an equivalent class
|
229 |
+
$outputs = $xmlResponse->trans_catalog->transaction->outputs;
|
230 |
+
|
231 |
+
|
232 |
+
//error_log($contents);
|
233 |
+
|
234 |
+
$transactionId=$outputs->historyid;
|
235 |
+
if ($outputs->status == "Approved") {
|
236 |
+
Mage::log('Refund Request Approved');
|
237 |
+
|
238 |
+
$payment->setTransactionId($transactionId."-refund");
|
239 |
+
$payment->setIsTransactionClosed(1);
|
240 |
+
$payment->setParentTransactionId($transaction_id);
|
241 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
|
242 |
+
array(
|
243 |
+
'status'=>"".$outputs->status."",
|
244 |
+
'authcode'=>"".$outputs->authcode."",
|
245 |
+
"historyid"=>"".$outputs->historyid."",
|
246 |
+
"orderid"=>"".$outputs->orderid."",
|
247 |
+
"refcode"=>"".$outputs->refcode."",
|
248 |
+
"total"=>"".$outputs->total."",
|
249 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
250 |
+
"accountname"=>"".$outputs->accountname."",
|
251 |
+
)
|
252 |
+
);
|
253 |
+
|
254 |
+
|
255 |
+
} else {
|
256 |
+
Mage::log('Refund Request Decline');
|
257 |
+
|
258 |
+
$payment->setTransactionId($transactionId."-refund");
|
259 |
+
$payment->setIsTransactionClosed(1);
|
260 |
+
$payment->setParentTransactionId($transactionId);
|
261 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
|
262 |
+
array(
|
263 |
+
'status'=>"".$outputs->status."",
|
264 |
+
'authcode'=>"".$outputs->authcode."",
|
265 |
+
"historyid"=>"".$outputs->historyid."",
|
266 |
+
"orderid"=>"".$outputs->orderid."",
|
267 |
+
"refcode"=>"".$outputs->refcode."",
|
268 |
+
"total"=>"".$outputs->total."",
|
269 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
270 |
+
"accountname"=>"".$outputs->accountname."",
|
271 |
+
)
|
272 |
+
);
|
273 |
+
Mage::throwException($outputs->result);
|
274 |
+
}
|
275 |
+
return $this;
|
276 |
+
}
|
277 |
+
|
278 |
+
public function cancel(Varien_Object $payment) {
|
279 |
+
|
280 |
+
// void the order if canceled
|
281 |
+
Mage::log('Order: cancel!');
|
282 |
+
|
283 |
+
return $this;
|
284 |
+
}
|
285 |
+
|
286 |
+
public function void(Varien_Object $payment) {
|
287 |
+
|
288 |
+
|
289 |
+
Mage::log('Order: void!');
|
290 |
+
|
291 |
+
/* Whatever you call to void a payment in your gateway */
|
292 |
+
}
|
293 |
+
|
294 |
+
}
|
295 |
+
|
296 |
+
?>
|
app/code/local/WorldPayTech/WorldAch/etc/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldAch/etc/config.xml
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<WorldPayTech_WorldAch>
|
5 |
+
<!-- declare module's version information for database updates -->
|
6 |
+
<version>0.1.0</version>
|
7 |
+
</WorldPayTech_WorldAch>
|
8 |
+
</modules>
|
9 |
+
|
10 |
+
<global>
|
11 |
+
<!-- IMPORTANT: if you use your own namespace (i.e. CompanyName) you also have to declare blocks group for new module. See topic: http://www.magentocommerce.com/boards/viewthread/22416/#t102732 -->
|
12 |
+
<blocks>
|
13 |
+
<worldach>
|
14 |
+
<class>WorldPayTech_WorldAch_Block</class>
|
15 |
+
</worldach>
|
16 |
+
</blocks>
|
17 |
+
|
18 |
+
|
19 |
+
<!-- declare model group for new module -->
|
20 |
+
<models>
|
21 |
+
<!-- model group alias to be used in Mage::getModel('newmodule/...') -->
|
22 |
+
<worldach>
|
23 |
+
<!-- base class name for the model group -->
|
24 |
+
<class>WorldPayTech_WorldAch_Model</class>
|
25 |
+
</worldach>
|
26 |
+
</models>
|
27 |
+
<helpers>
|
28 |
+
<worldach>
|
29 |
+
<class>WorldPayTech_WorldAch_Helper</class>
|
30 |
+
</worldach>
|
31 |
+
</helpers>
|
32 |
+
|
33 |
+
<!-- declare resource setup for new module -->
|
34 |
+
<resources>
|
35 |
+
<!-- resource identifier -->
|
36 |
+
<worldach_setup>
|
37 |
+
<!-- specify that this resource is a setup resource and used for upgrades -->
|
38 |
+
<setup>
|
39 |
+
<!-- which module to look for install/upgrade files in -->
|
40 |
+
<module>WorldPayTech_WorldAch</module>
|
41 |
+
</setup>
|
42 |
+
<!-- specify database connection for this resource -->
|
43 |
+
<connection>
|
44 |
+
<!-- do not create new connection, use predefined core setup connection -->
|
45 |
+
<use>core_setup</use>
|
46 |
+
</connection>
|
47 |
+
</worldach_setup>
|
48 |
+
<worldach_write>
|
49 |
+
<connection>
|
50 |
+
<use>core_write</use>
|
51 |
+
</connection>
|
52 |
+
</worldach_write>
|
53 |
+
<worldach_read>
|
54 |
+
<connection>
|
55 |
+
<use>core_read</use>
|
56 |
+
</connection>
|
57 |
+
</worldach_read>
|
58 |
+
</resources>
|
59 |
+
</global>
|
60 |
+
|
61 |
+
<!-- declare default configuration values for this module -->
|
62 |
+
<default>
|
63 |
+
<!-- 'payment' configuration section (tab) -->
|
64 |
+
<payment>
|
65 |
+
<!-- 'newmodule' configuration group (fieldset) -->
|
66 |
+
<worldach>
|
67 |
+
<!-- by default this payment method is inactive -->
|
68 |
+
<active>0</active>
|
69 |
+
<!-- model to handle logic for this payment method -->
|
70 |
+
<model>worldach/paymentMethod</model>
|
71 |
+
<!-- order status for new orders paid by this payment method -->
|
72 |
+
<order_status>pending</order_status>
|
73 |
+
<!-- default title for payment checkout page and order view page -->
|
74 |
+
<title>WorldPay ACH</title>
|
75 |
+
|
76 |
+
<cctypes>AE,VI,MC,DI</cctypes>
|
77 |
+
<payment_action>authorize</payment_action>
|
78 |
+
<allowspecific>0</allowspecific>
|
79 |
+
</worldach>
|
80 |
+
</payment>
|
81 |
+
</default>
|
82 |
+
</config>
|
app/code/local/WorldPayTech/WorldAch/etc/system.xml
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<sections>
|
4 |
+
<!-- payment tab -->
|
5 |
+
<payment>
|
6 |
+
<groups>
|
7 |
+
<!-- newmodule fieldset -->
|
8 |
+
<worldach translate="label" module="worldach">
|
9 |
+
<!-- will have title 'New Module' -->
|
10 |
+
<label>WorldPayAch</label>
|
11 |
+
<!-- position between other payment methods -->
|
12 |
+
<sort_order>670</sort_order>
|
13 |
+
<!-- do not show this configuration options in store scope -->
|
14 |
+
<show_in_default>1</show_in_default>
|
15 |
+
<show_in_website>1</show_in_website>
|
16 |
+
<show_in_store>0</show_in_store>
|
17 |
+
<fields>
|
18 |
+
<!-- is this payment method active for the website? -->
|
19 |
+
<active translate="label">
|
20 |
+
<!-- label for the field -->
|
21 |
+
<label>Enabled</label>
|
22 |
+
<!-- input type for configuration value -->
|
23 |
+
<frontend_type>select</frontend_type>
|
24 |
+
<!-- model to take the option values from -->
|
25 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
26 |
+
<!-- field position -->
|
27 |
+
<sort_order>1</sort_order>
|
28 |
+
<!-- do not show this field in store scope -->
|
29 |
+
<show_in_default>1</show_in_default>
|
30 |
+
<show_in_website>1</show_in_website>
|
31 |
+
<show_in_store>0</show_in_store>
|
32 |
+
</active>
|
33 |
+
<order_status translate="label">
|
34 |
+
<label>New order status</label>
|
35 |
+
<frontend_type>select</frontend_type>
|
36 |
+
<source_model>adminhtml/system_config_source_order_status_processing</source_model>
|
37 |
+
<sort_order>5</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 |
+
</order_status>
|
42 |
+
<title translate="label">
|
43 |
+
<label>Title</label>
|
44 |
+
<frontend_type>text</frontend_type>
|
45 |
+
<sort_order>2</sort_order>
|
46 |
+
<show_in_default>1</show_in_default>
|
47 |
+
<show_in_website>1</show_in_website>
|
48 |
+
<show_in_store>0</show_in_store>
|
49 |
+
</title>
|
50 |
+
|
51 |
+
|
52 |
+
<sort_order translate="label">
|
53 |
+
<label>Sort Order</label>
|
54 |
+
<frontend_type>text</frontend_type>
|
55 |
+
<sort_order>200</sort_order>
|
56 |
+
<show_in_default>1</show_in_default>
|
57 |
+
<show_in_website>1</show_in_website>
|
58 |
+
<show_in_store>0</show_in_store>
|
59 |
+
<frontend_class>validate-number</frontend_class>
|
60 |
+
</sort_order>
|
61 |
+
|
62 |
+
|
63 |
+
</fields>
|
64 |
+
</worldach>
|
65 |
+
</groups>
|
66 |
+
</payment>
|
67 |
+
</sections>
|
68 |
+
</config>
|
app/code/local/WorldPayTech/WorldPay/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldPay/Block/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldPay/Block/Form.php
ADDED
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Payment
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class WorldPayTech_WorldPay_Block_Form extends Mage_Payment_Block_Form
|
29 |
+
{
|
30 |
+
|
31 |
+
protected function _construct()
|
32 |
+
{
|
33 |
+
parent::_construct();
|
34 |
+
Mage::log("PrismPayTech_PrismPay_Block_Form");
|
35 |
+
$this->setTemplate('worldpay/form/worldpaycc.phtml');
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Retrieve payment configuration object
|
40 |
+
*
|
41 |
+
* @return Mage_Payment_Model_Config
|
42 |
+
*/
|
43 |
+
protected function _getConfig()
|
44 |
+
{
|
45 |
+
return Mage::getSingleton('payment/config');
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Retrieve availables credit card types
|
50 |
+
*
|
51 |
+
* @return array
|
52 |
+
*/
|
53 |
+
public function getCcAvailableTypes()
|
54 |
+
{
|
55 |
+
$types = $this->_getConfig()->getCcTypes();
|
56 |
+
if ($method = $this->getMethod()) {
|
57 |
+
$availableTypes = $method->getConfigData('cctypes');
|
58 |
+
if ($availableTypes) {
|
59 |
+
$availableTypes = explode(',', $availableTypes);
|
60 |
+
foreach ($types as $code=>$name) {
|
61 |
+
if (!in_array($code, $availableTypes)) {
|
62 |
+
unset($types[$code]);
|
63 |
+
}
|
64 |
+
}
|
65 |
+
}
|
66 |
+
}
|
67 |
+
return $types;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Retrieve credit card expire months
|
72 |
+
*
|
73 |
+
* @return array
|
74 |
+
*/
|
75 |
+
public function getCcMonths()
|
76 |
+
{
|
77 |
+
$months = $this->getData('cc_months');
|
78 |
+
if (is_null($months)) {
|
79 |
+
$months[0] = $this->__('Month');
|
80 |
+
$months = array_merge($months, $this->_getConfig()->getMonths());
|
81 |
+
$this->setData('cc_months', $months);
|
82 |
+
}
|
83 |
+
return $months;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Retrieve credit card expire years
|
88 |
+
*
|
89 |
+
* @return array
|
90 |
+
*/
|
91 |
+
public function getCcYears()
|
92 |
+
{
|
93 |
+
$years = $this->getData('cc_years');
|
94 |
+
if (is_null($years)) {
|
95 |
+
$years = $this->_getConfig()->getYears();
|
96 |
+
$years = array(0=>$this->__('Year'))+$years;
|
97 |
+
$this->setData('cc_years', $years);
|
98 |
+
}
|
99 |
+
return $years;
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Retrive has verification configuration
|
104 |
+
*
|
105 |
+
* @return boolean
|
106 |
+
*/
|
107 |
+
public function hasVerification()
|
108 |
+
{
|
109 |
+
if ($this->getMethod()) {
|
110 |
+
$configData = $this->getMethod()->getConfigData('useccv');
|
111 |
+
if(is_null($configData)){
|
112 |
+
return true;
|
113 |
+
}
|
114 |
+
return (bool) $configData;
|
115 |
+
}
|
116 |
+
return true;
|
117 |
+
}
|
118 |
+
|
119 |
+
/*
|
120 |
+
* Whether switch/solo card type available
|
121 |
+
*/
|
122 |
+
public function hasSsCardType()
|
123 |
+
{
|
124 |
+
$availableTypes = explode(',', $this->getMethod()->getConfigData('cctypes'));
|
125 |
+
$ssPresenations = array_intersect(array('SS', 'SM', 'SO'), $availableTypes);
|
126 |
+
if ($availableTypes && count($ssPresenations) > 0) {
|
127 |
+
return true;
|
128 |
+
}
|
129 |
+
return false;
|
130 |
+
}
|
131 |
+
|
132 |
+
/*
|
133 |
+
* solo/switch card start year
|
134 |
+
* @return array
|
135 |
+
*/
|
136 |
+
public function getSsStartYears()
|
137 |
+
{
|
138 |
+
$years = array();
|
139 |
+
$first = date("Y");
|
140 |
+
|
141 |
+
for ($index=5; $index>=0; $index--) {
|
142 |
+
$year = $first - $index;
|
143 |
+
$years[$year] = $year;
|
144 |
+
}
|
145 |
+
$years = array(0=>$this->__('Year'))+$years;
|
146 |
+
return $years;
|
147 |
+
}
|
148 |
+
|
149 |
+
/*
|
150 |
+
* solo/switch card getCutomerCardProfileArray
|
151 |
+
* @return array
|
152 |
+
*/
|
153 |
+
public function getCutomerCardProfileArray()
|
154 |
+
{
|
155 |
+
|
156 |
+
//check if user login
|
157 |
+
if(Mage::getSingleton('customer/session')->isLoggedIn()) {
|
158 |
+
|
159 |
+
//get customer id
|
160 |
+
$customerData = Mage::getSingleton('customer/session')->getCustomer();
|
161 |
+
$customer_id=$customerData->getId();
|
162 |
+
|
163 |
+
//echo $customer_id;
|
164 |
+
//print_r($customerData);
|
165 |
+
|
166 |
+
|
167 |
+
///get customer card profile
|
168 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
169 |
+
$select = $connectionRead->select()
|
170 |
+
->from('customer_profile', array('*'))
|
171 |
+
->where('customer_id=?',$customer_id);
|
172 |
+
//->group('customer_id');
|
173 |
+
$row =$connectionRead->fetchRow($select); //return rows
|
174 |
+
return $result = $connectionRead->fetchAll($select);
|
175 |
+
}
|
176 |
+
//die;
|
177 |
+
return array();
|
178 |
+
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Render block HTML
|
183 |
+
*
|
184 |
+
* @return string
|
185 |
+
*/
|
186 |
+
protected function _toHtml()
|
187 |
+
{
|
188 |
+
Mage::dispatchEvent('payment_form_block_to_html_before', array(
|
189 |
+
'block' => $this
|
190 |
+
));
|
191 |
+
return parent::_toHtml();
|
192 |
+
}
|
193 |
+
}
|
app/code/local/WorldPayTech/WorldPay/Block/Info.php
ADDED
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Payment
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Credit card generic payment info
|
29 |
+
*/
|
30 |
+
class WorldPayTech_WorldPay_Block_Info extends Mage_Payment_Block_Info
|
31 |
+
{
|
32 |
+
/*protected function _construct()
|
33 |
+
{
|
34 |
+
//parent::_construct();
|
35 |
+
//$this->setTemplate('payment/form/cc.phtml');
|
36 |
+
//Mage::log("PrismPayTech_PrismPay_Block_Info");
|
37 |
+
|
38 |
+
}*/
|
39 |
+
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Retrieve credit card type name
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
public function getCcTypeName()
|
47 |
+
{
|
48 |
+
$types = Mage::getSingleton('payment/config')->getCcTypes();
|
49 |
+
$ccType = $this->getInfo()->getCcType();
|
50 |
+
if (isset($types[$ccType])) {
|
51 |
+
return $types[$ccType];
|
52 |
+
}
|
53 |
+
return (empty($ccType)) ? Mage::helper('payment')->__('N/A') : $ccType;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Whether current payment method has credit card expiration info
|
58 |
+
*
|
59 |
+
* @return bool
|
60 |
+
*/
|
61 |
+
public function hasCcExpDate()
|
62 |
+
{
|
63 |
+
return (int)$this->getInfo()->getCcExpMonth() || (int)$this->getInfo()->getCcExpYear();
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Retrieve CC expiration month
|
68 |
+
*
|
69 |
+
* @return string
|
70 |
+
*/
|
71 |
+
public function getCcExpMonth()
|
72 |
+
{
|
73 |
+
$month = $this->getInfo()->getCcExpMonth();
|
74 |
+
if ($month<10) {
|
75 |
+
$month = '0'.$month;
|
76 |
+
}
|
77 |
+
return $month;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Retrieve CC expiration date
|
82 |
+
*
|
83 |
+
* @return Zend_Date
|
84 |
+
*/
|
85 |
+
public function getCcExpDate()
|
86 |
+
{
|
87 |
+
$date = Mage::app()->getLocale()->date(0);
|
88 |
+
$date->setYear($this->getInfo()->getCcExpYear());
|
89 |
+
$date->setMonth($this->getInfo()->getCcExpMonth());
|
90 |
+
return $date;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Prepare credit card related payment info
|
95 |
+
*
|
96 |
+
* @param Varien_Object|array $transport
|
97 |
+
* @return Varien_Object
|
98 |
+
*/
|
99 |
+
protected function _prepareSpecificInformation($transport = null)
|
100 |
+
{
|
101 |
+
if (null !== $this->_paymentSpecificInformation) {
|
102 |
+
return $this->_paymentSpecificInformation;
|
103 |
+
}
|
104 |
+
$transport = parent::_prepareSpecificInformation($transport);
|
105 |
+
$data = array();
|
106 |
+
if ($ccType = $this->getCcTypeName()) {
|
107 |
+
$data[Mage::helper('payment')->__('Credit Card Type')] = $ccType;
|
108 |
+
}
|
109 |
+
if ($this->getInfo()->getCcLast4()) {
|
110 |
+
$data[Mage::helper('payment')->__('Credit Card Number')] = sprintf('xxxx-%s', $this->getInfo()->getCcLast4());
|
111 |
+
}
|
112 |
+
if (!$this->getIsSecureMode()) {
|
113 |
+
if ($ccSsIssue = $this->getInfo()->getCcSsIssue()) {
|
114 |
+
$data[Mage::helper('payment')->__('Switch/Solo/Maestro Issue Number')] = $ccSsIssue;
|
115 |
+
}
|
116 |
+
$year = $this->getInfo()->getCcSsStartYear();
|
117 |
+
$month = $this->getInfo()->getCcSsStartMonth();
|
118 |
+
if ($year && $month) {
|
119 |
+
$data[Mage::helper('payment')->__('Switch/Solo/Maestro Start Date')] = $this->_formatCardDate($year, $month);
|
120 |
+
}
|
121 |
+
}
|
122 |
+
//print_r("<pre>");
|
123 |
+
//print_r ($data);
|
124 |
+
//die;
|
125 |
+
//mail()
|
126 |
+
return $transport->setData(array_merge($data, $transport->getData()));
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Format year/month on the credit card
|
131 |
+
*
|
132 |
+
* @param string $year
|
133 |
+
* @param string $month
|
134 |
+
* @return string
|
135 |
+
*/
|
136 |
+
protected function _formatCardDate($year, $month)
|
137 |
+
{
|
138 |
+
return sprintf('%s/%s', sprintf('%02d', $month), $year);
|
139 |
+
}
|
140 |
+
}
|
app/code/local/WorldPayTech/WorldPay/Model/PaymentHelper.php
ADDED
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Our test CC module adapter
|
5 |
+
*/
|
6 |
+
class WorldPayTech_WorldPay_Model_PaymentHelper extends Mage_Paygate_Model_Authorizenet {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* unique internal payment method identifier
|
10 |
+
*
|
11 |
+
* @var string [a-z0-9_]
|
12 |
+
*/
|
13 |
+
protected $_code = 'worldpay';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Here are examples of flags that will determine functionality availability
|
17 |
+
* of this module to be used by frontend and backend.
|
18 |
+
*
|
19 |
+
* @see all flags and their defaults in Mage_Payment_Model_Method_Abstract
|
20 |
+
*
|
21 |
+
* It is possible to have a custom dynamic logic by overloading
|
22 |
+
* public function can* for each flag respectively
|
23 |
+
*/
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Is this payment method a gateway (online auth/charge) ?
|
27 |
+
*/
|
28 |
+
protected $_isGateway = true;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Can authorize online?
|
32 |
+
*/
|
33 |
+
protected $_canAuthorize = true;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Can capture funds online?
|
37 |
+
*/
|
38 |
+
protected $_canCapture = true;
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Can capture partial amounts online?
|
42 |
+
*/
|
43 |
+
protected $_canCapturePartial = false;
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Can refund online?
|
47 |
+
*/
|
48 |
+
protected $_canRefund = true;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Can void transactions online?
|
52 |
+
*/
|
53 |
+
protected $_canVoid = true;
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Can use this payment method in administration panel?
|
57 |
+
*/
|
58 |
+
protected $_canUseInternal = true;
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Can show this payment method as an option on checkout payment page?
|
62 |
+
*/
|
63 |
+
protected $_canUseCheckout = true;
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Is this payment method suitable for multi-shipping checkout?
|
67 |
+
*/
|
68 |
+
protected $_canUseForMultishipping = true;
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Can save credit card information for future processing?
|
72 |
+
*/
|
73 |
+
protected $_canRefundInvoicePartial = true;
|
74 |
+
protected $_canFetchTransactionInfo = true;
|
75 |
+
protected $_canReviewPayment = true;
|
76 |
+
protected $_formBlockType = 'worldpay/form';
|
77 |
+
protected $_infoBlockType = 'worldpay/info';
|
78 |
+
protected $_canSaveCc = false;
|
79 |
+
|
80 |
+
|
81 |
+
public $__debugMode;
|
82 |
+
public $__testMode;
|
83 |
+
public $__accountID;
|
84 |
+
public $__subAccountID;
|
85 |
+
|
86 |
+
|
87 |
+
public function __construct() {
|
88 |
+
parent::__construct();
|
89 |
+
|
90 |
+
Mage::log('PrismPay Payment Helper Class Called!');
|
91 |
+
|
92 |
+
$store = Mage::app()->getStore();
|
93 |
+
$storeId = Mage::app()->getStore()->getStoreId();
|
94 |
+
$this->__debugMode = Mage::getStoreConfig('payment/worldpay/debug', $storeId);
|
95 |
+
$this->__testMode = Mage::getStoreConfig('payment/worldpay/test', $storeId);
|
96 |
+
|
97 |
+
if($this->__testMode==1)
|
98 |
+
{
|
99 |
+
$this->__accountID="py7l4";
|
100 |
+
$this->__subAccountID="";
|
101 |
+
|
102 |
+
}else
|
103 |
+
{
|
104 |
+
$this->__accountID = Mage::getStoreConfig('payment/worldpay/account_id', $storeId);
|
105 |
+
$this->__subAccountID = Mage::getStoreConfig('payment/worldpay/sub_account_id', $storeId);
|
106 |
+
}
|
107 |
+
|
108 |
+
}
|
109 |
+
|
110 |
+
|
111 |
+
public function curlHelper(Varien_Object $payment,$xmlString)
|
112 |
+
{
|
113 |
+
|
114 |
+
$ch = curl_init();
|
115 |
+
curl_setopt($ch, CURLOPT_URL, 'https://trans.myprismpay.com/cgi-bin/ProcessXML.cgi');
|
116 |
+
curl_setopt($ch, CURLOPT_HEADER, false);
|
117 |
+
curl_setopt($ch, CURLINFO_HEADER_OUT, false);
|
118 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/xml; charset=utf-8"));
|
119 |
+
//curl_setopt($ch, CURLOPT_USERPWD, 'myusername:mypassword');
|
120 |
+
curl_setopt($ch, CURLOPT_POST, 1);
|
121 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlString);
|
122 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
123 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
124 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
125 |
+
|
126 |
+
return $data = curl_exec($ch); //This value is the string returned from the bank...
|
127 |
+
|
128 |
+
if (!$data) {
|
129 |
+
throw new Exception(curl_error($ch));
|
130 |
+
}
|
131 |
+
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
132 |
+
if ($httpcode && substr($httpcode, 0, 2) != "20") { //Unsuccessful post request...
|
133 |
+
throw new Exception("Returned HTTP CODE: " . $httpcode . " for this URL: " . $urlToPost);
|
134 |
+
}
|
135 |
+
curl_close($ch);
|
136 |
+
|
137 |
+
}
|
138 |
+
|
139 |
+
|
140 |
+
public function canRefund() {
|
141 |
+
|
142 |
+
return true;
|
143 |
+
}
|
144 |
+
|
145 |
+
public function canSaveCard()
|
146 |
+
{
|
147 |
+
/*if (Mage::getModel('braintree_payments/paymentmethod')->useVault() &&
|
148 |
+
(Mage::getSingleton('customer/session')->isLoggedIn() ||
|
149 |
+
Mage::getSingleton('checkout/type_onepage')->getCheckoutMethod()
|
150 |
+
== Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER)){
|
151 |
+
|
152 |
+
return true;
|
153 |
+
}*/
|
154 |
+
return true;
|
155 |
+
}
|
156 |
+
|
157 |
+
|
158 |
+
|
159 |
+
}
|
160 |
+
|
161 |
+
?>
|
app/code/local/WorldPayTech/WorldPay/Model/PaymentMethod.php
ADDED
@@ -0,0 +1,330 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Our test CC module adapter
|
5 |
+
*/
|
6 |
+
class WorldPayTech_WorldPay_Model_PaymentMethod extends WorldPayTech_WorldPay_Model_PaymentHelper {
|
7 |
+
|
8 |
+
|
9 |
+
public function __construct() {
|
10 |
+
parent::__construct();
|
11 |
+
|
12 |
+
$createQuery="CREATE TABLE IF NOT EXISTS `customer_profile` (
|
13 |
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
14 |
+
`customer_id` varchar(50) NOT NULL,
|
15 |
+
`profile_id` varchar(50) NOT NULL,
|
16 |
+
`last_4_digit` varchar(20) NOT NULL,
|
17 |
+
PRIMARY KEY (`id`)
|
18 |
+
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
19 |
+
";
|
20 |
+
|
21 |
+
|
22 |
+
$read = Mage::getSingleton('core/resource')->getConnection('core_read');
|
23 |
+
$write = Mage::getSingleton('core/resource')->getConnection('core_write');
|
24 |
+
$write->query($createQuery);
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Here you will need to implement authorize, capture and void public methods
|
29 |
+
*
|
30 |
+
* @see examples of transaction specific public methods such as
|
31 |
+
* authorize, capture and void in Mage_Paygate_Model_Authorizenet
|
32 |
+
*
|
33 |
+
* In this function i charge credit card and mark order as completed
|
34 |
+
*/
|
35 |
+
|
36 |
+
public function authorize(Varien_Object $payment, $amount) {
|
37 |
+
$order = $payment->getOrder();
|
38 |
+
try {
|
39 |
+
Mage::log('PrismPay CC Authorize!');
|
40 |
+
|
41 |
+
|
42 |
+
$is_applyForProfileAdd=$_REQUEST["payment"]["add_profile"];
|
43 |
+
|
44 |
+
|
45 |
+
|
46 |
+
$billingaddress = $order->getBillingAddress();
|
47 |
+
ob_start();
|
48 |
+
$regionModel = Mage::getModel('directory/region')->load($billingaddress->getData('region_id'));
|
49 |
+
$ipAddress = $_SERVER['REMOTE_ADDR'];
|
50 |
+
|
51 |
+
$totals = number_format($amount, 2, '.', '');
|
52 |
+
|
53 |
+
|
54 |
+
|
55 |
+
$fields = array(
|
56 |
+
"acctid" => $this->__accountID,
|
57 |
+
"subid" => $this->__subAccountID,
|
58 |
+
"email" => $billingaddress->getData('email'),
|
59 |
+
"phone" => $billingaddress->getData('telephone'),
|
60 |
+
'ipaddress' => $_SERVER['REMOTE_ADDR'],
|
61 |
+
'billaddr1' => $billingaddress->getData('street'),
|
62 |
+
'billcity' => $billingaddress->getData('city'),
|
63 |
+
'billstate' => $regionModel->getCode(),
|
64 |
+
'billzip' => $billingaddress->getData('postcode'),
|
65 |
+
'billcountry' => $billingaddress->getData('country_id'),
|
66 |
+
'custom1' => $order->getId(),
|
67 |
+
'ccname' => $billingaddress->getData('firstname'),
|
68 |
+
'ccnum' => $payment->getCcNumber(),
|
69 |
+
'expmon' => $payment->getCcExpMonth(),
|
70 |
+
'expyear' => $payment->getCcExpYear(),
|
71 |
+
'amount' => $totals,
|
72 |
+
'currencycode' => $order->getBaseCurrencyCode(),
|
73 |
+
);
|
74 |
+
|
75 |
+
if($is_applyForProfileAdd=="1")
|
76 |
+
{
|
77 |
+
$fields["service"]=7;
|
78 |
+
$fields["profileactiontype"]=2;
|
79 |
+
}else
|
80 |
+
{
|
81 |
+
$fields["service"]=2;
|
82 |
+
}
|
83 |
+
|
84 |
+
|
85 |
+
|
86 |
+
$fields_string = "<?xml version=\"1.0\"?><interface_driver><trans_catalog><transaction name=\"creditcard\"><inputs>";
|
87 |
+
|
88 |
+
foreach ($fields as $key => $value) {
|
89 |
+
$fields_string .= '<' . $key . '>' . $value . '</' . $key . '>';
|
90 |
+
}
|
91 |
+
$fields_string .='</inputs></transaction></trans_catalog></interface_driver>';
|
92 |
+
|
93 |
+
if ($this->__debugMode == 0) {
|
94 |
+
$data=$this->curlHelper($payment, $fields_string);
|
95 |
+
|
96 |
+
}
|
97 |
+
} catch (Exception $e) {
|
98 |
+
|
99 |
+
$payment->setStatus(self::STATUS_ERROR);
|
100 |
+
$payment->setAmount($amount);
|
101 |
+
$payment->setLastTransId($orderId);
|
102 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
103 |
+
Mage::throwException($e->getMessage());
|
104 |
+
}
|
105 |
+
if ($this->__debugMode == 0) {
|
106 |
+
$xmlResponse = new SimpleXmlElement($data); //Simple way to parse xml, Magento might have an equivalent class
|
107 |
+
$outputs = $xmlResponse->trans_catalog->transaction->outputs;
|
108 |
+
}
|
109 |
+
|
110 |
+
|
111 |
+
$contents = ob_get_contents();
|
112 |
+
ob_end_clean();
|
113 |
+
error_log($contents);
|
114 |
+
|
115 |
+
$orderId=$order->getId();
|
116 |
+
$transactionId=$outputs->historyid;
|
117 |
+
if ($outputs->status == "Approved") {
|
118 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
119 |
+
$payment->setStatus(self::STATUS_APPROVED);
|
120 |
+
$payment->setAmount($amount);
|
121 |
+
$payment->setLastTransId($orderId);
|
122 |
+
|
123 |
+
//save profile id of customer in to database
|
124 |
+
$transactionData=array(
|
125 |
+
'status'=>"".$outputs->status."",
|
126 |
+
'authcode'=>"".$outputs->authcode."",
|
127 |
+
"historyid"=>"".$outputs->historyid."",
|
128 |
+
"orderid"=>"".$outputs->orderid."",
|
129 |
+
"refcode"=>"".$outputs->refcode."",
|
130 |
+
"total"=>"".$outputs->total."",
|
131 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
132 |
+
"accountname"=>"".$outputs->accountname."",
|
133 |
+
);
|
134 |
+
if($outputs->userprofileid!="" and $fields["service"]==7)
|
135 |
+
{
|
136 |
+
|
137 |
+
|
138 |
+
if(Mage::getSingleton('customer/session')->isLoggedIn()) {
|
139 |
+
//get customer id
|
140 |
+
$customerData = Mage::getSingleton('customer/session')->getCustomer();
|
141 |
+
$customer_id=$customerData->getId();
|
142 |
+
|
143 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
144 |
+
$connectionWrite->beginTransaction();
|
145 |
+
|
146 |
+
//create customer profile table if not created
|
147 |
+
$createQuery="CREATE TABLE IF NOT EXISTS 'customer_profile' (
|
148 |
+
'id' int(11) NOT NULL AUTO_INCREMENT,
|
149 |
+
'customer_id' varchar(50) NOT NULL,
|
150 |
+
'profile_id' varchar(50) NOT NULL,
|
151 |
+
'last_4_digit' varchar(20) NOT NULL,
|
152 |
+
PRIMARY KEY ('id')
|
153 |
+
) ENGINE=InnoDB DEFAULT CHARSET=latin1;";
|
154 |
+
//$results = $connectionWrite->fetchAll($createQuery);
|
155 |
+
|
156 |
+
|
157 |
+
$data = array();
|
158 |
+
$data['profile_id']= $outputs->userprofileid;
|
159 |
+
$data['last_4_digit']=$outputs->last4digits;
|
160 |
+
$data['customer_id']=$customer_id;
|
161 |
+
$connectionWrite->insert('customer_profile', $data);
|
162 |
+
$connectionWrite->commit();
|
163 |
+
|
164 |
+
$transactionData['profile_id']= "".$outputs->userprofileid."";
|
165 |
+
$transactionData['last_4_digit']="".$outputs->last4digits."";
|
166 |
+
|
167 |
+
}
|
168 |
+
|
169 |
+
}
|
170 |
+
|
171 |
+
$payment->setTransactionId($transactionId);
|
172 |
+
$payment->setIsTransactionClosed(0);
|
173 |
+
$payment->setParentTransactionId($transactionId);
|
174 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, $transactionData);
|
175 |
+
|
176 |
+
|
177 |
+
|
178 |
+
|
179 |
+
} else {
|
180 |
+
$payment->setStatus(self::STATUS_ERROR);
|
181 |
+
$payment->setAmount($amount);
|
182 |
+
$payment->setLastTransId($orderId);
|
183 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
184 |
+
if ($this->__debugMode == 1) {
|
185 |
+
Mage::throwException("XMl=" . $fields_string . "\n\nAccount=" . $this->__accountID . "\n\nSub Account=" . $this->__subAccountID . "\n\nTest Mode=" . $this->__testMode . "\n\nDebuge Mode=" . $this->__debugMode);
|
186 |
+
} else {
|
187 |
+
Mage::throwException($outputs->result);
|
188 |
+
}
|
189 |
+
}
|
190 |
+
return $this;
|
191 |
+
}
|
192 |
+
|
193 |
+
public function capture(Varien_Object $payment, $amount) {
|
194 |
+
|
195 |
+
// this function is not in used we charged customer credit card in authoriza function/////
|
196 |
+
|
197 |
+
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Payment refund
|
202 |
+
*
|
203 |
+
* @param \Magento\Framework\Object $payment
|
204 |
+
* @param float $amount
|
205 |
+
* @return $this
|
206 |
+
* @throws \Magento\Framework\Model\Exception
|
207 |
+
*/
|
208 |
+
public function refund(Varien_Object $payment, $amount) {
|
209 |
+
$order = $payment->getOrder();
|
210 |
+
try {
|
211 |
+
Mage::log('PrismPay CC Refund!');
|
212 |
+
|
213 |
+
|
214 |
+
|
215 |
+
|
216 |
+
$temp_transaction_id=$payment->getLastTransId();
|
217 |
+
$dash_pos = strpos($temp_transaction_id, "-");
|
218 |
+
$transaction_id=substr($temp_transaction_id,0,$dash_pos);
|
219 |
+
if($transaction_id=="")
|
220 |
+
{
|
221 |
+
Mage::throwException("Unable to create memo , transaction id not found");
|
222 |
+
return $this;
|
223 |
+
|
224 |
+
}
|
225 |
+
$transactionData=$payment->getTransaction($transaction_id)->getData();
|
226 |
+
$order_id=@$transactionData["additional_information"]["raw_details_info"]["orderid"];
|
227 |
+
$historyid=@$transactionData["additional_information"]["raw_details_info"]["historyid"];
|
228 |
+
$refcode=@$transactionData["additional_information"]["raw_details_info"]["refcode"];
|
229 |
+
|
230 |
+
|
231 |
+
$totals = number_format($amount, 2, '.', '');
|
232 |
+
$fields = array(
|
233 |
+
"service" => "4",
|
234 |
+
"acctid" => $this->__accountID,
|
235 |
+
"subid" => $this->__subAccountID,
|
236 |
+
"historykeyid" => $historyid,
|
237 |
+
"orderkeyid" => $order_id,
|
238 |
+
'amount' => $totals,
|
239 |
+
);
|
240 |
+
|
241 |
+
|
242 |
+
|
243 |
+
$fields_string = "<?xml version=\"1.0\"?><interface_driver><trans_catalog><transaction name=\"creditcard\"><inputs>";
|
244 |
+
|
245 |
+
foreach ($fields as $key => $value) {
|
246 |
+
$fields_string .= '<' . $key . '>' . $value . '</' . $key . '>';
|
247 |
+
}
|
248 |
+
$fields_string .='</inputs></transaction></trans_catalog></interface_driver>';
|
249 |
+
Mage::log('Data '.$fields_string);
|
250 |
+
if ($this->__debugMode == 0) {
|
251 |
+
$data=$this->curlHelper($payment, $fields_string);
|
252 |
+
|
253 |
+
}
|
254 |
+
} catch (Exception $e) {
|
255 |
+
|
256 |
+
$payment->setStatus(self::STATUS_ERROR);
|
257 |
+
$payment->setAmount($amount);
|
258 |
+
$payment->setLastTransId($orderId);
|
259 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
260 |
+
Mage::throwException($e->getMessage());
|
261 |
+
}
|
262 |
+
$xmlResponse = new SimpleXmlElement($data); //Simple way to parse xml, Magento might have an equivalent class
|
263 |
+
$outputs = $xmlResponse->trans_catalog->transaction->outputs;
|
264 |
+
|
265 |
+
|
266 |
+
//error_log($contents);
|
267 |
+
|
268 |
+
$transactionId=$outputs->historyid;
|
269 |
+
if ($outputs->status == "Approved") {
|
270 |
+
Mage::log('Refund Request Approved');
|
271 |
+
|
272 |
+
$payment->setTransactionId($transactionId."-refund");
|
273 |
+
$payment->setIsTransactionClosed(1);
|
274 |
+
$payment->setParentTransactionId($transaction_id);
|
275 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
|
276 |
+
array(
|
277 |
+
'status'=>"".$outputs->status."",
|
278 |
+
'authcode'=>"".$outputs->authcode."",
|
279 |
+
"historyid"=>"".$outputs->historyid."",
|
280 |
+
"orderid"=>"".$outputs->orderid."",
|
281 |
+
"refcode"=>"".$outputs->refcode."",
|
282 |
+
"total"=>"".$outputs->total."",
|
283 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
284 |
+
"accountname"=>"".$outputs->accountname."",
|
285 |
+
)
|
286 |
+
);
|
287 |
+
|
288 |
+
|
289 |
+
} else {
|
290 |
+
Mage::log('Refund Request Decline');
|
291 |
+
|
292 |
+
$payment->setTransactionId($transactionId."-refund");
|
293 |
+
$payment->setIsTransactionClosed(1);
|
294 |
+
$payment->setParentTransactionId($transactionId);
|
295 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
|
296 |
+
array(
|
297 |
+
'status'=>"".$outputs->status."",
|
298 |
+
'authcode'=>"".$outputs->authcode."",
|
299 |
+
"historyid"=>"".$outputs->historyid."",
|
300 |
+
"orderid"=>"".$outputs->orderid."",
|
301 |
+
"refcode"=>"".$outputs->refcode."",
|
302 |
+
"total"=>"".$outputs->total."",
|
303 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
304 |
+
"accountname"=>"".$outputs->accountname."",
|
305 |
+
)
|
306 |
+
);
|
307 |
+
Mage::throwException("Declined");
|
308 |
+
}
|
309 |
+
return $this;
|
310 |
+
}
|
311 |
+
|
312 |
+
public function cancel(Varien_Object $payment) {
|
313 |
+
|
314 |
+
// void the order if canceled
|
315 |
+
Mage::log('Order: cancel!');
|
316 |
+
|
317 |
+
return $this;
|
318 |
+
}
|
319 |
+
|
320 |
+
public function void(Varien_Object $payment) {
|
321 |
+
|
322 |
+
|
323 |
+
Mage::log('Order: void!');
|
324 |
+
|
325 |
+
/* Whatever you call to void a payment in your gateway */
|
326 |
+
}
|
327 |
+
|
328 |
+
}
|
329 |
+
|
330 |
+
?>
|
app/code/local/WorldPayTech/WorldPay/etc/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldPay/etc/config.xml
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<WorldPayTech_WorldPay>
|
5 |
+
<!-- declare module's version information for database updates -->
|
6 |
+
<version>0.1.0</version>
|
7 |
+
</WorldPayTech_WorldPay>
|
8 |
+
</modules>
|
9 |
+
|
10 |
+
<global>
|
11 |
+
<!-- IMPORTANT: if you use your own namespace (i.e. CompanyName) you also have to declare blocks group for new module. See topic: http://www.magentocommerce.com/boards/viewthread/22416/#t102732 -->
|
12 |
+
<blocks>
|
13 |
+
<worldpay>
|
14 |
+
<class>WorldPayTech_WorldPay_Block</class>
|
15 |
+
</worldpay>
|
16 |
+
</blocks>
|
17 |
+
|
18 |
+
<!-- declare model group for new module -->
|
19 |
+
<models>
|
20 |
+
<!-- model group alias to be used in Mage::getModel('newmodule/...') -->
|
21 |
+
<worldpay>
|
22 |
+
<!-- base class name for the model group -->
|
23 |
+
<class>WorldPayTech_WorldPay_Model</class>
|
24 |
+
</worldpay>
|
25 |
+
</models>
|
26 |
+
|
27 |
+
<!-- declare resource setup for new module -->
|
28 |
+
<resources>
|
29 |
+
<!-- resource identifier -->
|
30 |
+
<worldpay_setup>
|
31 |
+
<!-- specify that this resource is a setup resource and used for upgrades -->
|
32 |
+
<setup>
|
33 |
+
<!-- which module to look for install/upgrade files in -->
|
34 |
+
<module>WorldPayTech_WorldPay</module>
|
35 |
+
</setup>
|
36 |
+
<!-- specify database connection for this resource -->
|
37 |
+
<connection>
|
38 |
+
<!-- do not create new connection, use predefined core setup connection -->
|
39 |
+
<use>core_setup</use>
|
40 |
+
</connection>
|
41 |
+
</worldpay_setup>
|
42 |
+
<worldpay_write>
|
43 |
+
<connection>
|
44 |
+
<use>core_write</use>
|
45 |
+
</connection>
|
46 |
+
</worldpay_write>
|
47 |
+
<worldpay_read>
|
48 |
+
<connection>
|
49 |
+
<use>core_read</use>
|
50 |
+
</connection>
|
51 |
+
</worldpay_read>
|
52 |
+
</resources>
|
53 |
+
</global>
|
54 |
+
|
55 |
+
<!-- declare default configuration values for this module -->
|
56 |
+
<default>
|
57 |
+
<!-- 'payment' configuration section (tab) -->
|
58 |
+
<payment>
|
59 |
+
<!-- 'newmodule' configuration group (fieldset) -->
|
60 |
+
<worldpay>
|
61 |
+
<!-- by default this payment method is inactive -->
|
62 |
+
<active>0</active>
|
63 |
+
<!-- model to handle logic for this payment method -->
|
64 |
+
<model>worldpay/paymentMethod</model>
|
65 |
+
<!-- order status for new orders paid by this payment method -->
|
66 |
+
<order_status>pending</order_status>
|
67 |
+
<!-- default title for payment checkout page and order view page -->
|
68 |
+
<title>Credit Card (worldpay)</title>
|
69 |
+
|
70 |
+
<cctypes>AE,VI,MC,DI</cctypes>
|
71 |
+
<payment_action>authorize</payment_action>
|
72 |
+
<allowspecific>0</allowspecific>
|
73 |
+
</worldpay>
|
74 |
+
</payment>
|
75 |
+
</default>
|
76 |
+
</config>
|
app/code/local/WorldPayTech/WorldPay/etc/system.xml
ADDED
@@ -0,0 +1,188 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<sections>
|
4 |
+
<!-- payment tab -->
|
5 |
+
<payment>
|
6 |
+
<groups>
|
7 |
+
<!-- newmodule fieldset -->
|
8 |
+
<worldpay translate="label" module="paygate">
|
9 |
+
<!-- will have title 'New Module' -->
|
10 |
+
<label>WorldPay</label>
|
11 |
+
<!-- position between other payment methods -->
|
12 |
+
<sort_order>670</sort_order>
|
13 |
+
<!-- do not show this configuration options in store scope -->
|
14 |
+
<show_in_default>1</show_in_default>
|
15 |
+
<show_in_website>1</show_in_website>
|
16 |
+
<show_in_store>0</show_in_store>
|
17 |
+
<fields>
|
18 |
+
<!-- is this payment method active for the website? -->
|
19 |
+
<active translate="label">
|
20 |
+
<!-- label for the field -->
|
21 |
+
<label>Enabled</label>
|
22 |
+
<!-- input type for configuration value -->
|
23 |
+
<frontend_type>select</frontend_type>
|
24 |
+
<!-- model to take the option values from -->
|
25 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
26 |
+
<!-- field position -->
|
27 |
+
<sort_order>1</sort_order>
|
28 |
+
<!-- do not show this field in store scope -->
|
29 |
+
<show_in_default>1</show_in_default>
|
30 |
+
<show_in_website>1</show_in_website>
|
31 |
+
<show_in_store>0</show_in_store>
|
32 |
+
</active>
|
33 |
+
<order_status translate="label">
|
34 |
+
<label>New order status</label>
|
35 |
+
<frontend_type>select</frontend_type>
|
36 |
+
<source_model>adminhtml/system_config_source_order_status_processing</source_model>
|
37 |
+
<sort_order>5</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 |
+
</order_status>
|
42 |
+
<title translate="label">
|
43 |
+
<label>Title</label>
|
44 |
+
<frontend_type>text</frontend_type>
|
45 |
+
<sort_order>2</sort_order>
|
46 |
+
<show_in_default>1</show_in_default>
|
47 |
+
<show_in_website>1</show_in_website>
|
48 |
+
<show_in_store>0</show_in_store>
|
49 |
+
</title>
|
50 |
+
<account_id translate="label">
|
51 |
+
<label>Account ID</label>
|
52 |
+
<frontend_type>text</frontend_type>
|
53 |
+
<sort_order>3</sort_order>
|
54 |
+
<show_in_default>1</show_in_default>
|
55 |
+
<show_in_website>1</show_in_website>
|
56 |
+
<show_in_store>0</show_in_store>
|
57 |
+
</account_id>
|
58 |
+
<sub_account_id translate="label">
|
59 |
+
<label>Sub Account ID</label>
|
60 |
+
<frontend_type>text</frontend_type>
|
61 |
+
<sort_order>4</sort_order>
|
62 |
+
<show_in_default>1</show_in_default>
|
63 |
+
<show_in_website>1</show_in_website>
|
64 |
+
<show_in_store>0</show_in_store>
|
65 |
+
</sub_account_id>
|
66 |
+
|
67 |
+
|
68 |
+
<test translate="label">
|
69 |
+
<label>Test Mode</label>
|
70 |
+
<frontend_type>select</frontend_type>
|
71 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
72 |
+
<sort_order>80</sort_order>
|
73 |
+
<show_in_default>1</show_in_default>
|
74 |
+
<show_in_website>1</show_in_website>
|
75 |
+
<show_in_store>0</show_in_store>
|
76 |
+
</test>
|
77 |
+
<!--<cgi_url translate="label">
|
78 |
+
<label>Gateway URL</label>
|
79 |
+
<frontend_type>text</frontend_type>
|
80 |
+
<sort_order>90</sort_order>
|
81 |
+
<show_in_default>1</show_in_default>
|
82 |
+
<show_in_website>1</show_in_website>
|
83 |
+
<show_in_store>0</show_in_store>
|
84 |
+
</cgi_url>
|
85 |
+
<currency translate="label">
|
86 |
+
<label>Accepted Currency</label>
|
87 |
+
<frontend_type>select</frontend_type>
|
88 |
+
<source_model>adminhtml/system_config_source_currency</source_model>
|
89 |
+
<sort_order>100</sort_order>
|
90 |
+
<show_in_default>1</show_in_default>
|
91 |
+
<show_in_website>1</show_in_website>
|
92 |
+
<show_in_store>0</show_in_store>
|
93 |
+
</currency>-->
|
94 |
+
<debug translate="label">
|
95 |
+
<label>Debug</label>
|
96 |
+
<frontend_type>select</frontend_type>
|
97 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
98 |
+
<sort_order>110</sort_order>
|
99 |
+
<show_in_default>1</show_in_default>
|
100 |
+
<show_in_website>1</show_in_website>
|
101 |
+
<show_in_store>0</show_in_store>
|
102 |
+
</debug>
|
103 |
+
<!--<email_customer translate="label">
|
104 |
+
<label>Email Customer</label>
|
105 |
+
<frontend_type>select</frontend_type>
|
106 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
107 |
+
<sort_order>120</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 |
+
</email_customer>
|
112 |
+
<merchant_email translate="label">
|
113 |
+
<label>Merchant's Email</label>
|
114 |
+
<frontend_type>text</frontend_type>
|
115 |
+
<validate>validate-email</validate>
|
116 |
+
<sort_order>130</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 |
+
</merchant_email>-->
|
121 |
+
<cctypes translate="label">
|
122 |
+
<label>Credit Card Types</label>
|
123 |
+
<frontend_type>multiselect</frontend_type>
|
124 |
+
<source_model>paygate/authorizenet_source_cctype</source_model>
|
125 |
+
<sort_order>140</sort_order>
|
126 |
+
<show_in_default>1</show_in_default>
|
127 |
+
<show_in_website>1</show_in_website>
|
128 |
+
<show_in_store>0</show_in_store>
|
129 |
+
</cctypes>
|
130 |
+
<!--<useccv translate="label">
|
131 |
+
<label>Credit Card Verification</label>
|
132 |
+
<frontend_type>select</frontend_type>
|
133 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
134 |
+
<sort_order>150</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 |
+
</useccv>-->
|
139 |
+
<allowspecific translate="label">
|
140 |
+
<label>Payment from Applicable Countries</label>
|
141 |
+
<frontend_type>allowspecific</frontend_type>
|
142 |
+
<sort_order>160</sort_order>
|
143 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
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 |
+
</allowspecific>
|
148 |
+
<specificcountry translate="label">
|
149 |
+
<label>Payment from Specific Countries</label>
|
150 |
+
<frontend_type>multiselect</frontend_type>
|
151 |
+
<sort_order>170</sort_order>
|
152 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
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 |
+
</specificcountry>
|
157 |
+
<min_order_total translate="label">
|
158 |
+
<label>Minimum Order Total</label>
|
159 |
+
<frontend_type>text</frontend_type>
|
160 |
+
<sort_order>180</sort_order>
|
161 |
+
<show_in_default>1</show_in_default>
|
162 |
+
<show_in_website>1</show_in_website>
|
163 |
+
<show_in_store>0</show_in_store>
|
164 |
+
</min_order_total>
|
165 |
+
<max_order_total translate="label">
|
166 |
+
<label>Maximum Order Total</label>
|
167 |
+
<frontend_type>text</frontend_type>
|
168 |
+
<sort_order>190</sort_order>
|
169 |
+
<show_in_default>1</show_in_default>
|
170 |
+
<show_in_website>1</show_in_website>
|
171 |
+
<show_in_store>0</show_in_store>
|
172 |
+
</max_order_total>
|
173 |
+
<sort_order translate="label">
|
174 |
+
<label>Sort Order</label>
|
175 |
+
<frontend_type>text</frontend_type>
|
176 |
+
<sort_order>200</sort_order>
|
177 |
+
<show_in_default>1</show_in_default>
|
178 |
+
<show_in_website>1</show_in_website>
|
179 |
+
<show_in_store>0</show_in_store>
|
180 |
+
<frontend_class>validate-number</frontend_class>
|
181 |
+
</sort_order>
|
182 |
+
|
183 |
+
</fields>
|
184 |
+
</worldpay>
|
185 |
+
</groups>
|
186 |
+
</payment>
|
187 |
+
</sections>
|
188 |
+
</config>
|
app/code/local/WorldPayTech/WorldProfile/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldProfile/Block/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldProfile/Block/Form.php
ADDED
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Payment
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class WorldPayTech_WorldProfile_Block_Form extends Mage_Payment_Block_Form
|
29 |
+
{
|
30 |
+
protected $_code = 'worldprofile';
|
31 |
+
protected function _construct()
|
32 |
+
{
|
33 |
+
parent::_construct();
|
34 |
+
$this->setTemplate('worldpay/form/worldpayprofile.phtml');
|
35 |
+
Mage::log("PrismPayTech_PrismProfile_Block_Form");
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Retrieve payment configuration object
|
40 |
+
*
|
41 |
+
* @return Mage_Payment_Model_Config
|
42 |
+
*/
|
43 |
+
protected function _getConfig()
|
44 |
+
{
|
45 |
+
return Mage::getSingleton('payment/config');
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Retrieve availables credit card types
|
50 |
+
*
|
51 |
+
* @return array
|
52 |
+
*/
|
53 |
+
public function getCcAvailableTypes()
|
54 |
+
{
|
55 |
+
$types = $this->_getConfig()->getCcTypes();
|
56 |
+
if ($method = $this->getMethod()) {
|
57 |
+
$availableTypes = $method->getConfigData('cctypes');
|
58 |
+
if ($availableTypes) {
|
59 |
+
$availableTypes = explode(',', $availableTypes);
|
60 |
+
foreach ($types as $code=>$name) {
|
61 |
+
if (!in_array($code, $availableTypes)) {
|
62 |
+
unset($types[$code]);
|
63 |
+
}
|
64 |
+
}
|
65 |
+
}
|
66 |
+
}
|
67 |
+
return $types;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Retrieve credit card expire months
|
72 |
+
*
|
73 |
+
* @return array
|
74 |
+
*/
|
75 |
+
public function getCcMonths()
|
76 |
+
{
|
77 |
+
$months = $this->getData('cc_months');
|
78 |
+
if (is_null($months)) {
|
79 |
+
$months[0] = $this->__('Month');
|
80 |
+
$months = array_merge($months, $this->_getConfig()->getMonths());
|
81 |
+
$this->setData('cc_months', $months);
|
82 |
+
}
|
83 |
+
return $months;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Retrieve credit card expire years
|
88 |
+
*
|
89 |
+
* @return array
|
90 |
+
*/
|
91 |
+
public function getCcYears()
|
92 |
+
{
|
93 |
+
$years = $this->getData('cc_years');
|
94 |
+
if (is_null($years)) {
|
95 |
+
$years = $this->_getConfig()->getYears();
|
96 |
+
$years = array(0=>$this->__('Year'))+$years;
|
97 |
+
$this->setData('cc_years', $years);
|
98 |
+
}
|
99 |
+
return $years;
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Retrive has verification configuration
|
104 |
+
*
|
105 |
+
* @return boolean
|
106 |
+
*/
|
107 |
+
public function hasVerification()
|
108 |
+
{
|
109 |
+
if ($this->getMethod()) {
|
110 |
+
$configData = $this->getMethod()->getConfigData('useccv');
|
111 |
+
if(is_null($configData)){
|
112 |
+
return true;
|
113 |
+
}
|
114 |
+
return (bool) $configData;
|
115 |
+
}
|
116 |
+
return true;
|
117 |
+
}
|
118 |
+
|
119 |
+
/*
|
120 |
+
* Whether switch/solo card type available
|
121 |
+
*/
|
122 |
+
public function hasSsCardType()
|
123 |
+
{
|
124 |
+
$availableTypes = explode(',', $this->getMethod()->getConfigData('cctypes'));
|
125 |
+
$ssPresenations = array_intersect(array('SS', 'SM', 'SO'), $availableTypes);
|
126 |
+
if ($availableTypes && count($ssPresenations) > 0) {
|
127 |
+
return true;
|
128 |
+
}
|
129 |
+
return false;
|
130 |
+
}
|
131 |
+
|
132 |
+
/*
|
133 |
+
* solo/switch card start year
|
134 |
+
* @return array
|
135 |
+
*/
|
136 |
+
public function getSsStartYears()
|
137 |
+
{
|
138 |
+
$years = array();
|
139 |
+
$first = date("Y");
|
140 |
+
|
141 |
+
for ($index=5; $index>=0; $index--) {
|
142 |
+
$year = $first - $index;
|
143 |
+
$years[$year] = $year;
|
144 |
+
}
|
145 |
+
$years = array(0=>$this->__('Year'))+$years;
|
146 |
+
return $years;
|
147 |
+
}
|
148 |
+
|
149 |
+
/*
|
150 |
+
* solo/switch card getCutomerCardProfileArray
|
151 |
+
* @return array
|
152 |
+
*/
|
153 |
+
public function getCutomerCardProfileArray()
|
154 |
+
{
|
155 |
+
|
156 |
+
//check if user login
|
157 |
+
if(Mage::getSingleton('customer/session')->isLoggedIn()) {
|
158 |
+
|
159 |
+
//get customer id
|
160 |
+
$customerData = Mage::getSingleton('customer/session')->getCustomer();
|
161 |
+
$customer_id=$customerData->getId();
|
162 |
+
|
163 |
+
//echo $customer_id;
|
164 |
+
//print_r($customerData);
|
165 |
+
|
166 |
+
|
167 |
+
///get customer card profile
|
168 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
169 |
+
$select = $connectionRead->select()
|
170 |
+
->from('customer_profile', array('*'))
|
171 |
+
->where('customer_id=?',$customer_id);
|
172 |
+
//->group('customer_id');
|
173 |
+
$row =$connectionRead->fetchRow($select); //return rows
|
174 |
+
return $result = $connectionRead->fetchAll($select);
|
175 |
+
}
|
176 |
+
//die;
|
177 |
+
return array();
|
178 |
+
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Render block HTML
|
183 |
+
*
|
184 |
+
* @return string
|
185 |
+
*/
|
186 |
+
protected function _toHtml()
|
187 |
+
{
|
188 |
+
Mage::dispatchEvent('payment_form_block_to_html_before', array(
|
189 |
+
'block' => $this
|
190 |
+
));
|
191 |
+
return parent::_toHtml();
|
192 |
+
}
|
193 |
+
}
|
app/code/local/WorldPayTech/WorldProfile/Block/Info.php
ADDED
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Payment
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Credit card generic payment info
|
29 |
+
*/
|
30 |
+
class WorldPayTech_WorldProfile_Block_Info extends Mage_Payment_Block_Info
|
31 |
+
{
|
32 |
+
/*protected function _construct()
|
33 |
+
{
|
34 |
+
//parent::_construct();
|
35 |
+
//$this->setTemplate('payment/form/cc.phtml');
|
36 |
+
//Mage::log("PrismPayTech_PrismPay_Block_Info");
|
37 |
+
|
38 |
+
}*/
|
39 |
+
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Retrieve credit card type name
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
public function getCcTypeName()
|
47 |
+
{
|
48 |
+
$types = Mage::getSingleton('payment/config')->getCcTypes();
|
49 |
+
$ccType = $this->getInfo()->getCcType();
|
50 |
+
if (isset($types[$ccType])) {
|
51 |
+
return $types[$ccType];
|
52 |
+
}
|
53 |
+
return (empty($ccType)) ? Mage::helper('payment')->__('N/A') : $ccType;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Whether current payment method has credit card expiration info
|
58 |
+
*
|
59 |
+
* @return bool
|
60 |
+
*/
|
61 |
+
public function hasCcExpDate()
|
62 |
+
{
|
63 |
+
return (int)$this->getInfo()->getCcExpMonth() || (int)$this->getInfo()->getCcExpYear();
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Retrieve CC expiration month
|
68 |
+
*
|
69 |
+
* @return string
|
70 |
+
*/
|
71 |
+
public function getCcExpMonth()
|
72 |
+
{
|
73 |
+
$month = $this->getInfo()->getCcExpMonth();
|
74 |
+
if ($month<10) {
|
75 |
+
$month = '0'.$month;
|
76 |
+
}
|
77 |
+
return $month;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Retrieve CC expiration date
|
82 |
+
*
|
83 |
+
* @return Zend_Date
|
84 |
+
*/
|
85 |
+
public function getCcExpDate()
|
86 |
+
{
|
87 |
+
$date = Mage::app()->getLocale()->date(0);
|
88 |
+
$date->setYear($this->getInfo()->getCcExpYear());
|
89 |
+
$date->setMonth($this->getInfo()->getCcExpMonth());
|
90 |
+
return $date;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Prepare credit card related payment info
|
95 |
+
*
|
96 |
+
* @param Varien_Object|array $transport
|
97 |
+
* @return Varien_Object
|
98 |
+
*/
|
99 |
+
protected function _prepareSpecificInformation($transport = null)
|
100 |
+
{
|
101 |
+
if (null !== $this->_paymentSpecificInformation) {
|
102 |
+
return $this->_paymentSpecificInformation;
|
103 |
+
}
|
104 |
+
$transport = parent::_prepareSpecificInformation($transport);
|
105 |
+
$data = array();
|
106 |
+
$data[Mage::helper('payment')->__('Profile Id')] = "********";
|
107 |
+
/*if ($ccType = $this->getCcTypeName()) {
|
108 |
+
$data[Mage::helper('payment')->__('Credit Card Type')] = $ccType;
|
109 |
+
}
|
110 |
+
if ($this->getInfo()->getCcLast4()) {
|
111 |
+
$data[Mage::helper('payment')->__('Credit Card Number')] = sprintf('xxxx-%s', $this->getInfo()->getCcLast4());
|
112 |
+
}
|
113 |
+
if (!$this->getIsSecureMode()) {
|
114 |
+
if ($ccSsIssue = $this->getInfo()->getCcSsIssue()) {
|
115 |
+
$data[Mage::helper('payment')->__('Switch/Solo/Maestro Issue Number')] = $ccSsIssue;
|
116 |
+
}
|
117 |
+
$year = $this->getInfo()->getCcSsStartYear();
|
118 |
+
$month = $this->getInfo()->getCcSsStartMonth();
|
119 |
+
if ($year && $month) {
|
120 |
+
$data[Mage::helper('payment')->__('Switch/Solo/Maestro Start Date')] = $this->_formatCardDate($year, $month);
|
121 |
+
}
|
122 |
+
}*/
|
123 |
+
//print_r("<pre>");
|
124 |
+
//print_r ($data);
|
125 |
+
//die;
|
126 |
+
//mail()
|
127 |
+
return $transport->setData(array_merge($data, $transport->getData()));
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Format year/month on the credit card
|
132 |
+
*
|
133 |
+
* @param string $year
|
134 |
+
* @param string $month
|
135 |
+
* @return string
|
136 |
+
*/
|
137 |
+
protected function _formatCardDate($year, $month)
|
138 |
+
{
|
139 |
+
return sprintf('%s/%s', sprintf('%02d', $month), $year);
|
140 |
+
}
|
141 |
+
}
|
app/code/local/WorldPayTech/WorldProfile/Helper/Data.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Adyen Payment Module
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
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 Adyen
|
17 |
+
* @package Adyen_Payment
|
18 |
+
* @copyright Copyright (c) 2011 Adyen (http://www.adyen.com)
|
19 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
20 |
+
*/
|
21 |
+
/**
|
22 |
+
* @category Payment Gateway
|
23 |
+
* @package Adyen_Payment
|
24 |
+
* @author Adyen
|
25 |
+
* @property Adyen B.V
|
26 |
+
* @copyright Copyright (c) 2014 Adyen BV (http://www.adyen.com)
|
27 |
+
*/
|
28 |
+
class WorldPayTech_WorldProfile_Helper_Data extends Mage_Payment_Helper_Data {
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Zend_Log debug level
|
32 |
+
* @var unknown_type
|
33 |
+
*/
|
34 |
+
|
35 |
+
|
36 |
+
}
|
app/code/local/WorldPayTech/WorldProfile/Model/PaymentMethod.php
ADDED
@@ -0,0 +1,265 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Our test CC module adapter
|
5 |
+
*/
|
6 |
+
class WorldPayTech_WorldProfile_Model_PaymentMethod extends WorldPayTech_WorldPay_Model_PaymentHelper {
|
7 |
+
|
8 |
+
protected $_code = 'worldprofile';
|
9 |
+
protected $_formBlockType = 'worldprofile/form';
|
10 |
+
protected $_infoBlockType = 'worldprofile/info';
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
parent::__construct();
|
14 |
+
Mage::log("PrismPayTech_PrismProfile_Model_PaymentMethod");
|
15 |
+
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Here you will need to implement authorize, capture and void public methods
|
20 |
+
*
|
21 |
+
* @see examples of transaction specific public methods such as
|
22 |
+
* authorize, capture and void in Mage_Paygate_Model_Authorizenet
|
23 |
+
*
|
24 |
+
* In this function i charge credit card and mark order as completed
|
25 |
+
*/
|
26 |
+
|
27 |
+
public function authorize(Varien_Object $payment, $amount) {
|
28 |
+
$order = $payment->getOrder();
|
29 |
+
try {
|
30 |
+
Mage::log('PrismProfile Authorize!');
|
31 |
+
|
32 |
+
$temp_profile_id=explode("-",$_REQUEST["payment"]["profile_id"]);
|
33 |
+
$profile_id=$temp_profile_id[0];
|
34 |
+
$last_4_digit=$temp_profile_id[1];
|
35 |
+
|
36 |
+
$ipAddress = $_SERVER['REMOTE_ADDR'];
|
37 |
+
|
38 |
+
$totals = number_format($amount, 2, '.', '');
|
39 |
+
$fields = array(
|
40 |
+
"service" => "8",
|
41 |
+
"acctid" => $this->__accountID,
|
42 |
+
"subid" => $this->__subAccountID,
|
43 |
+
"userprofileid" => $profile_id,
|
44 |
+
"last4digits" => $last_4_digit,
|
45 |
+
'ipaddress' => $_SERVER['REMOTE_ADDR'],
|
46 |
+
'currencycode' => $order->getBaseCurrencyCode(),
|
47 |
+
'amount' => $totals,
|
48 |
+
);
|
49 |
+
|
50 |
+
|
51 |
+
|
52 |
+
$fields_string = "<?xml version=\"1.0\"?><interface_driver><trans_catalog><transaction name=\"creditcard\"><inputs>";
|
53 |
+
|
54 |
+
foreach ($fields as $key => $value) {
|
55 |
+
$fields_string .= '<' . $key . '>' . $value . '</' . $key . '>';
|
56 |
+
}
|
57 |
+
$fields_string .='</inputs></transaction></trans_catalog></interface_driver>';
|
58 |
+
|
59 |
+
if ($this->__debugMode == 0) {
|
60 |
+
$data=$this->curlHelper($payment, $fields_string);
|
61 |
+
|
62 |
+
}
|
63 |
+
} catch (Exception $e) {
|
64 |
+
|
65 |
+
$payment->setStatus(self::STATUS_ERROR);
|
66 |
+
$payment->setAmount($amount);
|
67 |
+
$payment->setLastTransId($orderId);
|
68 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
69 |
+
Mage::throwException($e->getMessage());
|
70 |
+
}
|
71 |
+
if ($this->__debugMode == 0) {
|
72 |
+
$xmlResponse = new SimpleXmlElement($data); //Simple way to parse xml, Magento might have an equivalent class
|
73 |
+
$outputs = $xmlResponse->trans_catalog->transaction->outputs;
|
74 |
+
}
|
75 |
+
|
76 |
+
$orderId=$order->getId();
|
77 |
+
$transactionId=$outputs->historyid;
|
78 |
+
if ($outputs->status == "Approved") {
|
79 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
80 |
+
$payment->setStatus(self::STATUS_APPROVED);
|
81 |
+
$payment->setAmount($amount);
|
82 |
+
$payment->setLastTransId($orderId);
|
83 |
+
|
84 |
+
$payment->setTransactionId($transactionId);
|
85 |
+
$payment->setIsTransactionClosed(0);
|
86 |
+
$payment->setParentTransactionId($transactionId);
|
87 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
|
88 |
+
array(
|
89 |
+
'status'=>"".$outputs->status."",
|
90 |
+
'authcode'=>"".$outputs->authcode."",
|
91 |
+
"historyid"=>"".$outputs->historyid."",
|
92 |
+
"orderid"=>"".$outputs->orderid."",
|
93 |
+
"refcode"=>"".$outputs->refcode."",
|
94 |
+
"total"=>"".$outputs->total."",
|
95 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
96 |
+
"accountname"=>"".$outputs->accountname."",
|
97 |
+
"profie_id"=>"".$profile_id."",
|
98 |
+
"last4digits"=>"".$last_4_digit."",
|
99 |
+
)
|
100 |
+
);
|
101 |
+
|
102 |
+
|
103 |
+
} else {
|
104 |
+
$payment->setStatus(self::STATUS_ERROR);
|
105 |
+
$payment->setAmount($amount);
|
106 |
+
$payment->setLastTransId($orderId);
|
107 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
108 |
+
if ($this->__debugMode == 1) {
|
109 |
+
Mage::throwException("XMl=" . $fields_string . "\n\nAccount=" . $this->__accountID . "\n\nSub Account=" . $this->__subAccountID . "\n\nTest Mode=" . $this->__testMode . "\n\nDebuge Mode=" . $this->__debugMode);
|
110 |
+
} else {
|
111 |
+
Mage::throwException($outputs->result);
|
112 |
+
}
|
113 |
+
}
|
114 |
+
return $this;
|
115 |
+
}
|
116 |
+
|
117 |
+
public function capture(Varien_Object $payment, $amount) {
|
118 |
+
|
119 |
+
// this function is not in used /////
|
120 |
+
|
121 |
+
|
122 |
+
}
|
123 |
+
public function validate()
|
124 |
+
{
|
125 |
+
/*
|
126 |
+
* calling parent validate function
|
127 |
+
*/
|
128 |
+
//parent::validate();
|
129 |
+
Mage::log("Prism Profile Validate");
|
130 |
+
|
131 |
+
return $this;
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Payment refund
|
136 |
+
*
|
137 |
+
* @param \Magento\Framework\Object $payment
|
138 |
+
* @param float $amount
|
139 |
+
* @return $this
|
140 |
+
* @throws \Magento\Framework\Model\Exception
|
141 |
+
*/
|
142 |
+
|
143 |
+
public function refund(Varien_Object $payment, $amount) {
|
144 |
+
$order = $payment->getOrder();
|
145 |
+
try {
|
146 |
+
Mage::log('PrismPay Profile Refund!');
|
147 |
+
|
148 |
+
|
149 |
+
$temp_transaction_id=$payment->getLastTransId();
|
150 |
+
$dash_pos = strpos($temp_transaction_id, "-");
|
151 |
+
$transaction_id=substr($temp_transaction_id,0,$dash_pos);
|
152 |
+
if($transaction_id=="")
|
153 |
+
{
|
154 |
+
Mage::throwException("Unable to create memo , transaction id not found");
|
155 |
+
return $this;
|
156 |
+
|
157 |
+
}
|
158 |
+
$transactionData=$payment->getTransaction($transaction_id)->getData();
|
159 |
+
$order_id=@$transactionData["additional_information"]["raw_details_info"]["orderid"];
|
160 |
+
$historyid=@$transactionData["additional_information"]["raw_details_info"]["historyid"];
|
161 |
+
$refcode=@$transactionData["additional_information"]["raw_details_info"]["refcode"];
|
162 |
+
|
163 |
+
|
164 |
+
$totals = number_format($amount, 2, '.', '');
|
165 |
+
$fields = array(
|
166 |
+
"service" => "4",
|
167 |
+
"acctid" => $this->__accountID,
|
168 |
+
"subid" => $this->__subAccountID,
|
169 |
+
"historykeyid" => $historyid,
|
170 |
+
"orderkeyid" => $order_id,
|
171 |
+
'amount' => $totals,
|
172 |
+
);
|
173 |
+
|
174 |
+
|
175 |
+
|
176 |
+
$fields_string = "<?xml version=\"1.0\"?><interface_driver><trans_catalog><transaction name=\"creditcard\"><inputs>";
|
177 |
+
|
178 |
+
foreach ($fields as $key => $value) {
|
179 |
+
$fields_string .= '<' . $key . '>' . $value . '</' . $key . '>';
|
180 |
+
}
|
181 |
+
$fields_string .='</inputs></transaction></trans_catalog></interface_driver>';
|
182 |
+
|
183 |
+
Mage::log('Data '.$fields_string);
|
184 |
+
|
185 |
+
if ($this->__debugMode == 0) {
|
186 |
+
$data=$this->curlHelper($payment, $fields_string);
|
187 |
+
|
188 |
+
}
|
189 |
+
} catch (Exception $e) {
|
190 |
+
|
191 |
+
$payment->setStatus(self::STATUS_ERROR);
|
192 |
+
$payment->setAmount($amount);
|
193 |
+
$payment->setLastTransId($orderId);
|
194 |
+
$this->setStore($payment->getOrder()->getStoreId());
|
195 |
+
Mage::throwException($e->getMessage());
|
196 |
+
}
|
197 |
+
$xmlResponse = new SimpleXmlElement($data); //Simple way to parse xml, Magento might have an equivalent class
|
198 |
+
$outputs = $xmlResponse->trans_catalog->transaction->outputs;
|
199 |
+
|
200 |
+
|
201 |
+
//error_log($contents);
|
202 |
+
|
203 |
+
$transactionId=$outputs->historyid;
|
204 |
+
if ($outputs->status == "Approved") {
|
205 |
+
Mage::log('Refund Request Approved');
|
206 |
+
|
207 |
+
$payment->setTransactionId($transactionId."-refund");
|
208 |
+
$payment->setIsTransactionClosed(1);
|
209 |
+
$payment->setParentTransactionId($transaction_id);
|
210 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
|
211 |
+
array(
|
212 |
+
'status'=>"".$outputs->status."",
|
213 |
+
'authcode'=>"".$outputs->authcode."",
|
214 |
+
"historyid"=>"".$outputs->historyid."",
|
215 |
+
"orderid"=>"".$outputs->orderid."",
|
216 |
+
"refcode"=>"".$outputs->refcode."",
|
217 |
+
"total"=>"".$outputs->total."",
|
218 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
219 |
+
"accountname"=>"".$outputs->accountname."",
|
220 |
+
)
|
221 |
+
);
|
222 |
+
|
223 |
+
|
224 |
+
} else {
|
225 |
+
Mage::log('Refund Request Decline');
|
226 |
+
|
227 |
+
$payment->setTransactionId($transactionId."-refund");
|
228 |
+
$payment->setIsTransactionClosed(1);
|
229 |
+
$payment->setParentTransactionId($transactionId);
|
230 |
+
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
|
231 |
+
array(
|
232 |
+
'status'=>"".$outputs->status."",
|
233 |
+
'authcode'=>"".$outputs->authcode."",
|
234 |
+
"historyid"=>"".$outputs->historyid."",
|
235 |
+
"orderid"=>"".$outputs->orderid."",
|
236 |
+
"refcode"=>"".$outputs->refcode."",
|
237 |
+
"total"=>"".$outputs->total."",
|
238 |
+
"merchantordernumber"=>"".$outputs->merchantordernumber."",
|
239 |
+
"accountname"=>"".$outputs->accountname."",
|
240 |
+
)
|
241 |
+
);
|
242 |
+
Mage::throwException($outputs->result);
|
243 |
+
}
|
244 |
+
return $this;
|
245 |
+
}
|
246 |
+
|
247 |
+
public function cancel(Varien_Object $payment) {
|
248 |
+
|
249 |
+
// void the order if canceled
|
250 |
+
Mage::log('Order: cancel!');
|
251 |
+
|
252 |
+
return $this;
|
253 |
+
}
|
254 |
+
|
255 |
+
public function void(Varien_Object $payment) {
|
256 |
+
|
257 |
+
|
258 |
+
Mage::log('Order: void!');
|
259 |
+
|
260 |
+
/* Whatever you call to void a payment in your gateway */
|
261 |
+
}
|
262 |
+
|
263 |
+
}
|
264 |
+
|
265 |
+
?>
|
app/code/local/WorldPayTech/WorldProfile/etc/.DS_Store
ADDED
Binary file
|
app/code/local/WorldPayTech/WorldProfile/etc/config.xml
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<WorldPayTech_WorldProfile>
|
5 |
+
<!-- declare module's version information for database updates -->
|
6 |
+
<version>0.1.0</version>
|
7 |
+
</WorldPayTech_WorldProfile>
|
8 |
+
</modules>
|
9 |
+
|
10 |
+
<global>
|
11 |
+
<!-- IMPORTANT: if you use your own namespace (i.e. CompanyName) you also have to declare blocks group for new module. See topic: http://www.magentocommerce.com/boards/viewthread/22416/#t102732 -->
|
12 |
+
<blocks>
|
13 |
+
<worldprofile>
|
14 |
+
<class>WorldPayTech_WorldProfile_Block</class>
|
15 |
+
</worldprofile>
|
16 |
+
</blocks>
|
17 |
+
|
18 |
+
|
19 |
+
<!-- declare model group for new module -->
|
20 |
+
<models>
|
21 |
+
<!-- model group alias to be used in Mage::getModel('newmodule/...') -->
|
22 |
+
<worldprofile>
|
23 |
+
<!-- base class name for the model group -->
|
24 |
+
<class>WorldPayTech_WorldProfile_Model</class>
|
25 |
+
</worldprofile>
|
26 |
+
</models>
|
27 |
+
<helpers>
|
28 |
+
<worldprofile>
|
29 |
+
<class>WorldPayTech_WorldProfile_Helper</class>
|
30 |
+
</worldprofile>
|
31 |
+
</helpers>
|
32 |
+
|
33 |
+
<!-- declare resource setup for new module -->
|
34 |
+
<resources>
|
35 |
+
<!-- resource identifier -->
|
36 |
+
<worldprofile_setup>
|
37 |
+
<!-- specify that this resource is a setup resource and used for upgrades -->
|
38 |
+
<setup>
|
39 |
+
<!-- which module to look for install/upgrade files in -->
|
40 |
+
<module>WorldPayTech_WorldProfile</module>
|
41 |
+
</setup>
|
42 |
+
<!-- specify database connection for this resource -->
|
43 |
+
<connection>
|
44 |
+
<!-- do not create new connection, use predefined core setup connection -->
|
45 |
+
<use>core_setup</use>
|
46 |
+
</connection>
|
47 |
+
</worldprofile_setup>
|
48 |
+
<worldprofile_write>
|
49 |
+
<connection>
|
50 |
+
<use>core_write</use>
|
51 |
+
</connection>
|
52 |
+
</worldprofile_write>
|
53 |
+
<worldprofile_read>
|
54 |
+
<connection>
|
55 |
+
<use>core_read</use>
|
56 |
+
</connection>
|
57 |
+
</worldprofile_read>
|
58 |
+
</resources>
|
59 |
+
</global>
|
60 |
+
|
61 |
+
<!-- declare default configuration values for this module -->
|
62 |
+
<default>
|
63 |
+
<!-- 'payment' configuration section (tab) -->
|
64 |
+
<payment>
|
65 |
+
<!-- 'newmodule' configuration group (fieldset) -->
|
66 |
+
<worldprofile>
|
67 |
+
<!-- by default this payment method is inactive -->
|
68 |
+
<active>0</active>
|
69 |
+
<!-- model to handle logic for this payment method -->
|
70 |
+
<model>worldprofile/paymentMethod</model>
|
71 |
+
<!-- order status for new orders paid by this payment method -->
|
72 |
+
<order_status>pending</order_status>
|
73 |
+
<!-- default title for payment checkout page and order view page -->
|
74 |
+
<title>CreditCard Profile</title>
|
75 |
+
|
76 |
+
<cctypes>AE,VI,MC,DI</cctypes>
|
77 |
+
<payment_action>authorize</payment_action>
|
78 |
+
<allowspecific>0</allowspecific>
|
79 |
+
</worldprofile>
|
80 |
+
</payment>
|
81 |
+
</default>
|
82 |
+
</config>
|
app/code/local/WorldPayTech/WorldProfile/etc/system.xml
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<sections>
|
4 |
+
<!-- payment tab -->
|
5 |
+
<payment>
|
6 |
+
<groups>
|
7 |
+
<!-- newmodule fieldset -->
|
8 |
+
<worldprofile translate="label" module="worldprofile">
|
9 |
+
<!-- will have title 'New Module' -->
|
10 |
+
<label>WorldPayProfile</label>
|
11 |
+
<!-- position between other payment methods -->
|
12 |
+
<sort_order>670</sort_order>
|
13 |
+
<!-- do not show this configuration options in store scope -->
|
14 |
+
<show_in_default>1</show_in_default>
|
15 |
+
<show_in_website>1</show_in_website>
|
16 |
+
<show_in_store>0</show_in_store>
|
17 |
+
<fields>
|
18 |
+
<!-- is this payment method active for the website? -->
|
19 |
+
<active translate="label">
|
20 |
+
<!-- label for the field -->
|
21 |
+
<label>Enabled</label>
|
22 |
+
<!-- input type for configuration value -->
|
23 |
+
<frontend_type>select</frontend_type>
|
24 |
+
<!-- model to take the option values from -->
|
25 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
26 |
+
<!-- field position -->
|
27 |
+
<sort_order>1</sort_order>
|
28 |
+
<!-- do not show this field in store scope -->
|
29 |
+
<show_in_default>1</show_in_default>
|
30 |
+
<show_in_website>1</show_in_website>
|
31 |
+
<show_in_store>0</show_in_store>
|
32 |
+
</active>
|
33 |
+
<order_status translate="label">
|
34 |
+
<label>New order status</label>
|
35 |
+
<frontend_type>select</frontend_type>
|
36 |
+
<source_model>adminhtml/system_config_source_order_status_processing</source_model>
|
37 |
+
<sort_order>5</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 |
+
</order_status>
|
42 |
+
<title translate="label">
|
43 |
+
<label>Title</label>
|
44 |
+
<frontend_type>text</frontend_type>
|
45 |
+
<sort_order>2</sort_order>
|
46 |
+
<show_in_default>1</show_in_default>
|
47 |
+
<show_in_website>1</show_in_website>
|
48 |
+
<show_in_store>0</show_in_store>
|
49 |
+
</title>
|
50 |
+
<sort_order translate="label">
|
51 |
+
<label>Sort Order</label>
|
52 |
+
<frontend_type>text</frontend_type>
|
53 |
+
<sort_order>200</sort_order>
|
54 |
+
<show_in_default>1</show_in_default>
|
55 |
+
<show_in_website>1</show_in_website>
|
56 |
+
<show_in_store>0</show_in_store>
|
57 |
+
<frontend_class>validate-number</frontend_class>
|
58 |
+
</sort_order>
|
59 |
+
|
60 |
+
|
61 |
+
</fields>
|
62 |
+
</worldprofile>
|
63 |
+
</groups>
|
64 |
+
</payment>
|
65 |
+
</sections>
|
66 |
+
</config>
|
app/design/frontend/rwd/default/template/worldpay/.DS_Store
ADDED
Binary file
|
app/design/frontend/rwd/default/template/worldpay/form/.DS_Store
ADDED
Binary file
|
app/design/frontend/rwd/default/template/worldpay/form/pp.phtml
ADDED
@@ -0,0 +1,254 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package rwd_default
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php
|
28 |
+
$cardProfileArray=array();
|
29 |
+
//$_code="prismpay";
|
30 |
+
$_code=$this->getMethodCode();
|
31 |
+
//die;
|
32 |
+
//$cardProfileArray=$this->getCutomerCardProfileArray();
|
33 |
+
//print"<pre>";
|
34 |
+
//print_r($cardProfileArray);
|
35 |
+
?>
|
36 |
+
<ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
|
37 |
+
<?php /*
|
38 |
+
<li>
|
39 |
+
<div class="input-box">
|
40 |
+
<label for="<?php echo $_code ?>_cc_owner" class="required"><em>*</em><?php echo $this->__('Name on Card') ?></label>
|
41 |
+
<input type="text" title="<?php echo $this->__('Name on Card') ?>" class="input-text required-entry" id="<?php echo $_code ?>_cc_owner" name="payment[cc_owner]" value="<?php echo $this->escapeHtml($this->getInfoData('cc_owner')) ?>" />
|
42 |
+
</div>
|
43 |
+
</li>
|
44 |
+
*/ ?>
|
45 |
+
<li>
|
46 |
+
<div class="input-box">
|
47 |
+
<input type="radio" id="<?php echo $_code ?>_tran_type" name="payment[tran_type]" class="<?php echo $_code ?>_tran_type" value="creditcard" checked />
|
48 |
+
<a href="#"><?php echo $this->__('Transaction with New CreditCard Number') ?></a>
|
49 |
+
</div>
|
50 |
+
</li>
|
51 |
+
<li>
|
52 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
53 |
+
<label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
|
54 |
+
<div class="input-box">
|
55 |
+
<select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry validate-cc-type-select" title="<?php echo $this->__('Credit Card Type') ?>">
|
56 |
+
<option value=""><?php echo $this->__('--Please Select--')?></option>
|
57 |
+
<?php $_ccType = $this->getInfoData('cc_type') ?>
|
58 |
+
<?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
|
59 |
+
<option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
|
60 |
+
<?php endforeach ?>
|
61 |
+
</select>
|
62 |
+
</div>
|
63 |
+
</li>
|
64 |
+
<li>
|
65 |
+
<label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
|
66 |
+
<div class="input-box">
|
67 |
+
<input type="text" pattern="\d*" 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="" />
|
68 |
+
</div>
|
69 |
+
</li>
|
70 |
+
<li id="<?php echo $_code ?>_cc_type_exp_div">
|
71 |
+
<label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
|
72 |
+
<div class="input-box">
|
73 |
+
<div class="v-fix">
|
74 |
+
<select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
|
75 |
+
<?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
|
76 |
+
<?php foreach ($this->getCcMonths() as $k=>$v): ?>
|
77 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
78 |
+
<?php endforeach ?>
|
79 |
+
</select>
|
80 |
+
</div>
|
81 |
+
<div class="v-fix">
|
82 |
+
<?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
|
83 |
+
<select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
|
84 |
+
<?php foreach ($this->getCcYears() as $k=>$v): ?>
|
85 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
86 |
+
<?php endforeach ?>
|
87 |
+
</select>
|
88 |
+
</div>
|
89 |
+
</div>
|
90 |
+
</li>
|
91 |
+
|
92 |
+
<?php echo $this->getChildHtml() ?>
|
93 |
+
<?php if($this->hasVerification()): ?>
|
94 |
+
<li id="<?php echo $_code ?>_cc_type_cvv_div">
|
95 |
+
<label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
|
96 |
+
<div class="input-box">
|
97 |
+
<div class="v-fix">
|
98 |
+
<input type="text" pattern="\d*" 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="" />
|
99 |
+
</div>
|
100 |
+
<a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
|
101 |
+
</div>
|
102 |
+
</li>
|
103 |
+
<?php endif; ?>
|
104 |
+
<li>
|
105 |
+
<div class="input-box">
|
106 |
+
<input type="checkbox" id="<?php echo $_code ?>_add_profile" name="payment[add_profile]" value="1" class="required" />
|
107 |
+
<a href="#"><?php echo $this->__('Create my profile, Learn more about it?') ?></a>
|
108 |
+
</div>
|
109 |
+
</li>
|
110 |
+
<?php if (count($cardProfileArray) > 0): ?>
|
111 |
+
<li>
|
112 |
+
<div class="input-box" align="center">
|
113 |
+
<h3>OR</h3>
|
114 |
+
<hr style="width:10px color:#eee;">
|
115 |
+
</div>
|
116 |
+
</li>
|
117 |
+
|
118 |
+
<li>
|
119 |
+
<div class="input-box">
|
120 |
+
<input type="radio" id="<?php echo $_code ?>_tran_type" name="payment[tran_type]" class="<?php echo $_code ?>_tran_type" value="profile"/>
|
121 |
+
<a href="#"><?php echo $this->__('Transaction with Saved CreditCard Number') ?></a>
|
122 |
+
</div>
|
123 |
+
</li>
|
124 |
+
<li>
|
125 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
126 |
+
<label for="<?php echo $_code ?>_profile_id" class="required"><em>*</em><?php echo $this->__('Use Saved Card Number') ?></label>
|
127 |
+
<div class="input-box">
|
128 |
+
<?php $_profile_id = $this->getInfoData('profile_id') ?>
|
129 |
+
<select id="<?php echo $_code ?>_profile_id" name="payment[profile_id]" class="required-entry">
|
130 |
+
<?php foreach ($this->getCutomerCardProfileArray() as $k=>$v): ?>
|
131 |
+
<option value="<?php echo $v['profile_id']."-".$v["last_4_digit"] ?>"<?php if($k==$_profile_id): ?> selected="selected"<?php endif ?>>xxxx-xxxx-xxxx-<?php echo $v["last_4_digit"] ?></option>
|
132 |
+
<?php endforeach ?>
|
133 |
+
</select>
|
134 |
+
</div>
|
135 |
+
</li>
|
136 |
+
<?php endif; ?>
|
137 |
+
<?php if ($this->hasSsCardType()): ?>
|
138 |
+
<li id="<?php echo $_code ?>_cc_type_ss_div">
|
139 |
+
<ul class="inner-form">
|
140 |
+
<li class="form-alt"><label for="<?php echo $_code ?>_cc_issue" class="required"><em>*</em><?php echo $this->__('Switch/Solo/Maestro Only') ?></label></li>
|
141 |
+
<li>
|
142 |
+
<label for="<?php echo $_code ?>_cc_issue"><?php echo $this->__('Issue Number') ?>:</label>
|
143 |
+
<span class="input-box">
|
144 |
+
<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="" />
|
145 |
+
</span>
|
146 |
+
</li>
|
147 |
+
|
148 |
+
<li>
|
149 |
+
<label for="<?php echo $_code ?>_start_month"><?php echo $this->__('Start Date') ?>:</label>
|
150 |
+
<div class="input-box">
|
151 |
+
<div class="v-fix">
|
152 |
+
<select id="<?php echo $_code ?>_start_month" name="payment[cc_ss_start_month]" class="validate-cc-ukss month">
|
153 |
+
<?php foreach ($this->getCcMonths() as $k=>$v): ?>
|
154 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_month')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
155 |
+
<?php endforeach ?>
|
156 |
+
</select>
|
157 |
+
</div>
|
158 |
+
<div class="v-fix">
|
159 |
+
<select id="<?php echo $_code ?>_start_year" name="payment[cc_ss_start_year]" class="validate-cc-ukss year">
|
160 |
+
<?php foreach ($this->getSsStartYears() as $k=>$v): ?>
|
161 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_year')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
162 |
+
<?php endforeach ?>
|
163 |
+
</select>
|
164 |
+
</div>
|
165 |
+
</div>
|
166 |
+
</li>
|
167 |
+
<li class="adv-container"> </li>
|
168 |
+
</ul>
|
169 |
+
<script type="text/javascript">
|
170 |
+
//<![CDATA[
|
171 |
+
var SSChecked<?php echo $_code ?> = function() {
|
172 |
+
var elm = $('<?php echo $_code ?>_cc_type');
|
173 |
+
if (['SS','SM','SO'].indexOf(elm.value) != -1) {
|
174 |
+
$('<?php echo $_code ?>_cc_type_ss_div').show();
|
175 |
+
} else {
|
176 |
+
$('<?php echo $_code ?>_cc_type_ss_div').hide();
|
177 |
+
}
|
178 |
+
};
|
179 |
+
|
180 |
+
Event.observe($('<?php echo $_code ?>_cc_type'), 'change', SSChecked<?php echo $_code ?>);
|
181 |
+
SSChecked<?php echo $_code ?>();
|
182 |
+
|
183 |
+
|
184 |
+
|
185 |
+
//]]>
|
186 |
+
</script>
|
187 |
+
</li>
|
188 |
+
<?php endif; ?>
|
189 |
+
|
190 |
+
</ul>
|
191 |
+
<script type="text/javascript">
|
192 |
+
|
193 |
+
|
194 |
+
var tran_type=$$(".<?php echo $_code ?>_tran_type");
|
195 |
+
var creditcard=tran_type[0];
|
196 |
+
var profile=tran_type[1];
|
197 |
+
$(creditcard).observe('click', respondToClick);
|
198 |
+
$(profile).observe('click', respondToClick);
|
199 |
+
function respondToClick(event) {
|
200 |
+
|
201 |
+
if(creditcard.checked==true)
|
202 |
+
{
|
203 |
+
processForCCFeilds();
|
204 |
+
|
205 |
+
}else if(profile.checked==true)
|
206 |
+
{
|
207 |
+
|
208 |
+
processForProfileFeilds();
|
209 |
+
}
|
210 |
+
}
|
211 |
+
|
212 |
+
function removeValidationFromField(fieldName,classes)
|
213 |
+
{
|
214 |
+
$('<?php echo $_code ?>'+fieldName).removeAttribute('class');
|
215 |
+
$('<?php echo $_code ?>'+fieldName).setAttribute('class',classes);
|
216 |
+
$('<?php echo $_code ?>'+fieldName).siblings()[0].remove();
|
217 |
+
}
|
218 |
+
function addValidationFromField(fieldName,classes)
|
219 |
+
{
|
220 |
+
$('<?php echo $_code ?>'+fieldName).removeAttribute('class');
|
221 |
+
$('<?php echo $_code ?>'+fieldName).setAttribute('class', classes);
|
222 |
+
}
|
223 |
+
function processForProfileFeilds()
|
224 |
+
{
|
225 |
+
removeValidationFromField("_cc_number");
|
226 |
+
removeValidationFromField("_cc_type");
|
227 |
+
removeValidationFromField("_cc_cid");
|
228 |
+
removeValidationFromField("_expiration");
|
229 |
+
removeValidationFromField("_expiration_yr");
|
230 |
+
|
231 |
+
addValidationFromField("_profile_id","required-entry")
|
232 |
+
|
233 |
+
}
|
234 |
+
function processForCCFeilds()
|
235 |
+
{
|
236 |
+
addValidationFromField("_cc_number","input-text validate-cc-number validate-cc-type")
|
237 |
+
addValidationFromField("_cc_type","required-entry validate-cc-type-select")
|
238 |
+
addValidationFromField("_cc_cid","input-text cvv required-entry validate-cc-cvn")
|
239 |
+
addValidationFromField("_expiration","month validate-cc-exp required-entry")
|
240 |
+
addValidationFromField("_expiration_yr","year required-entry")
|
241 |
+
|
242 |
+
|
243 |
+
removeValidationFromField("_profile_id","")
|
244 |
+
//removeValidationFromField("_profile_id");
|
245 |
+
|
246 |
+
}
|
247 |
+
|
248 |
+
|
249 |
+
//call default
|
250 |
+
processForCCFeilds();
|
251 |
+
|
252 |
+
|
253 |
+
</script>
|
254 |
+
|
app/design/frontend/rwd/default/template/worldpay/form/worldpayach.phtml
ADDED
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package rwd_default
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
|
28 |
+
<?php
|
29 |
+
$_code=$this->getMethodCode();
|
30 |
+
?>
|
31 |
+
<ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
|
32 |
+
|
33 |
+
<li>
|
34 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
35 |
+
<label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Name') ?></label>
|
36 |
+
<div class="input-box">
|
37 |
+
<input type="text" pattern="\d*" id="<?php echo $_code ?>_ckname" name="payment[ckname]" title="<?php echo $this->__('Name') ?>" class="required-entry input-text" value="" />
|
38 |
+
</div>
|
39 |
+
</li>
|
40 |
+
<li>
|
41 |
+
<label for="<?php echo $_code ?>_ckaba" class="required"><em>*</em><?php echo $this->__('Rounting Number') ?></label>
|
42 |
+
<div class="input-box">
|
43 |
+
<input type="text" pattern="\d*" id="<?php echo $_code ?>_ckaba" name="payment[ckaba]" title="<?php echo $this->__('Rounting Number') ?>" class="required-entry input-text" value="" />
|
44 |
+
</div>
|
45 |
+
</li>
|
46 |
+
<li>
|
47 |
+
<label for="<?php echo $_code ?>_ckacct" class="required"><em>*</em><?php echo $this->__('Account Number') ?></label>
|
48 |
+
<div class="input-box">
|
49 |
+
<input type="text" pattern="\d*" id="<?php echo $_code ?>_ckacct" name="payment[ckacct]" title="<?php echo $this->__('Account Number') ?>" class="required-entry input-text" value="" />
|
50 |
+
</div>
|
51 |
+
</li>
|
52 |
+
<li>
|
53 |
+
<label for="<?php echo $_code ?>_ckno" class="required"><em>*</em><?php echo $this->__('Cheque Number') ?></label>
|
54 |
+
<div class="input-box">
|
55 |
+
<input type="text" pattern="\d*" id="<?php echo $_code ?>_ckno" name="payment[ckno]" title="<?php echo $this->__('Cheque Number') ?>" class="required-entry input-text" value="" />
|
56 |
+
</div>
|
57 |
+
</li>
|
58 |
+
|
59 |
+
|
60 |
+
<li>
|
61 |
+
<label for="<?php echo $_code ?>_ckaccttypedesc" class="required"><em>*</em><?php echo $this->__('Account Type Description') ?></label>
|
62 |
+
<div class="input-box">
|
63 |
+
<select id="<?php echo $_code ?>_ckaccttypedesc" name="payment[ckaccttypedesc]" title="<?php echo $this->__('Account Type Description') ?>" class="required-entry" >
|
64 |
+
<option value="personal">Personal</option>
|
65 |
+
<option value="business">Business</option>
|
66 |
+
</select>
|
67 |
+
</div>
|
68 |
+
</li>
|
69 |
+
<li>
|
70 |
+
<label for="<?php echo $_code ?>_ckaccttype" class="required"><em>*</em><?php echo $this->__('Account Type') ?></label>
|
71 |
+
<div class="input-box">
|
72 |
+
<select id="<?php echo $_code ?>_ckaccttype" name="payment[ckaccttype]" title="<?php echo $this->__('Account Type') ?>" class="required-entry" >
|
73 |
+
<option value="1">Checking Account</option>
|
74 |
+
<option value="2">Savings Account</option>
|
75 |
+
</select>
|
76 |
+
</div>
|
77 |
+
</li>
|
78 |
+
|
79 |
+
<li>
|
80 |
+
<label for="<?php echo $_code ?>_cktype" class="required"><em>*</em><?php echo $this->__('Cheque Type') ?></label>
|
81 |
+
<div class="input-box">
|
82 |
+
<select id="<?php echo $_code ?>_cktype" name="payment[cktype]" title="<?php echo $this->__('Cheque Type') ?>" class="required-entry" >
|
83 |
+
<option value="ARC">ARC - Accounts Receivable Check Conversion</option>
|
84 |
+
<option value="BOC">BOC - Back-Office Conversion</option>
|
85 |
+
<option value="C21">C21 - Check 21</option>
|
86 |
+
<option value="CCD">CCD - Cash Concentration or Disbursement</option>
|
87 |
+
<option value="POP">POP - Point-of-Purchase Check Conversion</option>
|
88 |
+
<option value="PPD">PPD - Prearranged Payment and Deposit</option>
|
89 |
+
<option value="TEL">TEL - Telephone Authorized Entry</option>
|
90 |
+
<option value="WEB">WEB - Internet Authorized Entry</option>
|
91 |
+
</select>
|
92 |
+
</div>
|
93 |
+
</li>
|
94 |
+
|
95 |
+
|
96 |
+
|
97 |
+
</ul>
|
98 |
+
|
app/design/frontend/rwd/default/template/worldpay/form/worldpaycc.phtml
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package rwd_default
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php
|
28 |
+
$_code=$this->getMethodCode();
|
29 |
+
?>
|
30 |
+
<ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
|
31 |
+
<?php /*
|
32 |
+
<li>
|
33 |
+
<div class="input-box">
|
34 |
+
<label for="<?php echo $_code ?>_cc_owner" class="required"><em>*</em><?php echo $this->__('Name on Card') ?></label>
|
35 |
+
<input type="text" title="<?php echo $this->__('Name on Card') ?>" class="input-text required-entry" id="<?php echo $_code ?>_cc_owner" name="payment[cc_owner]" value="<?php echo $this->escapeHtml($this->getInfoData('cc_owner')) ?>" />
|
36 |
+
</div>
|
37 |
+
</li>
|
38 |
+
*/ ?>
|
39 |
+
<li>
|
40 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
41 |
+
<label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
|
42 |
+
<div class="input-box">
|
43 |
+
<select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry validate-cc-type-select" title="<?php echo $this->__('Credit Card Type') ?>">
|
44 |
+
<option value=""><?php echo $this->__('--Please Select--')?></option>
|
45 |
+
<?php $_ccType = $this->getInfoData('cc_type') ?>
|
46 |
+
<?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
|
47 |
+
<option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
|
48 |
+
<?php endforeach ?>
|
49 |
+
</select>
|
50 |
+
</div>
|
51 |
+
</li>
|
52 |
+
<li>
|
53 |
+
<label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
|
54 |
+
<div class="input-box">
|
55 |
+
<input type="text" pattern="\d*" 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="" />
|
56 |
+
</div>
|
57 |
+
</li>
|
58 |
+
<li id="<?php echo $_code ?>_cc_type_exp_div">
|
59 |
+
<label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
|
60 |
+
<div class="input-box">
|
61 |
+
<div class="v-fix">
|
62 |
+
<select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
|
63 |
+
<?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
|
64 |
+
<?php foreach ($this->getCcMonths() as $k=>$v): ?>
|
65 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
66 |
+
<?php endforeach ?>
|
67 |
+
</select>
|
68 |
+
</div>
|
69 |
+
<div class="v-fix">
|
70 |
+
<?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
|
71 |
+
<select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
|
72 |
+
<?php foreach ($this->getCcYears() as $k=>$v): ?>
|
73 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
74 |
+
<?php endforeach ?>
|
75 |
+
</select>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
</li>
|
79 |
+
<?php echo $this->getChildHtml() ?>
|
80 |
+
<?php if($this->hasVerification()): ?>
|
81 |
+
<li id="<?php echo $_code ?>_cc_type_cvv_div">
|
82 |
+
<label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
|
83 |
+
<div class="input-box">
|
84 |
+
<div class="v-fix">
|
85 |
+
<input type="text" pattern="\d*" 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="" />
|
86 |
+
</div>
|
87 |
+
<a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
|
88 |
+
</div>
|
89 |
+
</li>
|
90 |
+
<?php endif; ?>
|
91 |
+
<li>
|
92 |
+
<div class="input-box">
|
93 |
+
<input type="checkbox" id="<?php echo $_code ?>_add_profile" name="payment[add_profile]" value="1" class="required" />
|
94 |
+
<b><?php echo $this->__('Create my profile, Learn more about it?') ?></b>
|
95 |
+
</div>
|
96 |
+
</li>
|
97 |
+
<?php if ($this->hasSsCardType()): ?>
|
98 |
+
<li id="<?php echo $_code ?>_cc_type_ss_div">
|
99 |
+
<ul class="inner-form">
|
100 |
+
<li class="form-alt"><label for="<?php echo $_code ?>_cc_issue" class="required"><em>*</em><?php echo $this->__('Switch/Solo/Maestro Only') ?></label></li>
|
101 |
+
<li>
|
102 |
+
<label for="<?php echo $_code ?>_cc_issue"><?php echo $this->__('Issue Number') ?>:</label>
|
103 |
+
<span class="input-box">
|
104 |
+
<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="" />
|
105 |
+
</span>
|
106 |
+
</li>
|
107 |
+
|
108 |
+
<li>
|
109 |
+
<label for="<?php echo $_code ?>_start_month"><?php echo $this->__('Start Date') ?>:</label>
|
110 |
+
<div class="input-box">
|
111 |
+
<div class="v-fix">
|
112 |
+
<select id="<?php echo $_code ?>_start_month" name="payment[cc_ss_start_month]" class="validate-cc-ukss month">
|
113 |
+
<?php foreach ($this->getCcMonths() as $k=>$v): ?>
|
114 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_month')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
115 |
+
<?php endforeach ?>
|
116 |
+
</select>
|
117 |
+
</div>
|
118 |
+
<div class="v-fix">
|
119 |
+
<select id="<?php echo $_code ?>_start_year" name="payment[cc_ss_start_year]" class="validate-cc-ukss year">
|
120 |
+
<?php foreach ($this->getSsStartYears() as $k=>$v): ?>
|
121 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$this->getInfoData('cc_ss_start_year')): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
122 |
+
<?php endforeach ?>
|
123 |
+
</select>
|
124 |
+
</div>
|
125 |
+
</div>
|
126 |
+
</li>
|
127 |
+
<li class="adv-container"> </li>
|
128 |
+
</ul>
|
129 |
+
<script type="text/javascript">
|
130 |
+
//<![CDATA[
|
131 |
+
var SSChecked<?php echo $_code ?> = function() {
|
132 |
+
var elm = $('<?php echo $_code ?>_cc_type');
|
133 |
+
if (['SS','SM','SO'].indexOf(elm.value) != -1) {
|
134 |
+
$('<?php echo $_code ?>_cc_type_ss_div').show();
|
135 |
+
} else {
|
136 |
+
$('<?php echo $_code ?>_cc_type_ss_div').hide();
|
137 |
+
}
|
138 |
+
};
|
139 |
+
|
140 |
+
Event.observe($('<?php echo $_code ?>_cc_type'), 'change', SSChecked<?php echo $_code ?>);
|
141 |
+
SSChecked<?php echo $_code ?>();
|
142 |
+
//]]>
|
143 |
+
</script>
|
144 |
+
</li>
|
145 |
+
<?php endif; ?>
|
146 |
+
</ul>
|
app/design/frontend/rwd/default/template/worldpay/form/worldpayprofile.phtml
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-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 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package rwd_default
|
23 |
+
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php
|
28 |
+
|
29 |
+
Mage::log("Html:PrismProfile");
|
30 |
+
|
31 |
+
$cardProfileArray=array();
|
32 |
+
$_code=$this->getMethodCode();
|
33 |
+
$cardProfileArray=$this->getCutomerCardProfileArray();
|
34 |
+
//print"<pre>";
|
35 |
+
//print_r($cardProfileArray);
|
36 |
+
|
37 |
+
|
38 |
+
if(count($cardProfileArray)==0)
|
39 |
+
{?>
|
40 |
+
<script>
|
41 |
+
$("p_method_worldprofile").up("dt").hide();
|
42 |
+
</script>
|
43 |
+
|
44 |
+
<?php } ?>
|
45 |
+
|
46 |
+
<ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
|
47 |
+
<?php if (count($cardProfileArray) > 0): ?>
|
48 |
+
|
49 |
+
|
50 |
+
<li>
|
51 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
52 |
+
<label for="<?php echo $_code ?>_profile_id" class="required"><em>*</em><?php echo $this->__('Use Saved CreditCard Profie Id') ?></label>
|
53 |
+
<div class="input-box">
|
54 |
+
<?php $_profile_id = $this->getInfoData('profile_id') ?>
|
55 |
+
<select id="<?php echo $_code ?>_profile_id" name="payment[profile_id]" class="required-entry">
|
56 |
+
<?php foreach ($this->getCutomerCardProfileArray() as $k=>$v): ?>
|
57 |
+
<option value="<?php echo $v['profile_id']."-".$v["last_4_digit"] ?>"<?php if($k==$_profile_id): ?> selected="selected"<?php endif ?>>xxxx-xxxx-xxxx-<?php echo $v["last_4_digit"] ?></option>
|
58 |
+
<?php endforeach ?>
|
59 |
+
</select>
|
60 |
+
</div>
|
61 |
+
</li>
|
62 |
+
<?php else: ?>
|
63 |
+
<li>
|
64 |
+
<div class="input-box" align="center">
|
65 |
+
<h3><?php echo $this->__("you haven't any save profile") ?></h3>
|
66 |
+
<hr style="width:10px color:#eee;">
|
67 |
+
</div>
|
68 |
+
</li>
|
69 |
+
|
70 |
+
<?php endif;?>
|
71 |
+
|
72 |
+
</ul>
|
73 |
+
|
app/etc/modules/WorldPayTech_WorldAch.xml
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<config>
|
2 |
+
<modules>
|
3 |
+
<!-- declare CompanyName_NewModule module -->
|
4 |
+
<WorldPayTech_WorldAch>
|
5 |
+
<!-- this is an active module -->
|
6 |
+
<active>true</active>
|
7 |
+
<!-- this module will be located in app/code/local code pool -->
|
8 |
+
<codePool>local</codePool>
|
9 |
+
<!-- specify dependencies for correct module loading order -->
|
10 |
+
<depends>
|
11 |
+
<Mage_Payment />
|
12 |
+
</depends>
|
13 |
+
</WorldPayTech_WorldAch>
|
14 |
+
|
15 |
+
</modules>
|
16 |
+
</config>
|
app/etc/modules/WorldPayTech_WorldPay.xml
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<config>
|
2 |
+
<modules>
|
3 |
+
<!-- declare CompanyName_NewModule module -->
|
4 |
+
<WorldPayTech_WorldPay>
|
5 |
+
<!-- this is an active module -->
|
6 |
+
<active>true</active>
|
7 |
+
<!-- this module will be located in app/code/local code pool -->
|
8 |
+
<codePool>local</codePool>
|
9 |
+
<!-- specify dependencies for correct module loading order -->
|
10 |
+
<depends>
|
11 |
+
<Mage_Payment />
|
12 |
+
</depends>
|
13 |
+
</WorldPayTech_WorldPay>
|
14 |
+
</modules>
|
15 |
+
</config>
|
app/etc/modules/WorldPayTech_WorldProfile.xml
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<config>
|
2 |
+
<modules>
|
3 |
+
<!-- declare CompanyName_NewModule module -->
|
4 |
+
<WorldPayTech_WorldProfile>
|
5 |
+
<!-- this is an active module -->
|
6 |
+
<active>true</active>
|
7 |
+
<!-- this module will be located in app/code/local code pool -->
|
8 |
+
<codePool>local</codePool>
|
9 |
+
<!-- specify dependencies for correct module loading order -->
|
10 |
+
<depends>
|
11 |
+
<Mage_Payment />
|
12 |
+
</depends>
|
13 |
+
</WorldPayTech_WorldProfile>
|
14 |
+
|
15 |
+
</modules>
|
16 |
+
</config>
|
package.xml
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>worldpayzaq12wsx</name>
|
4 |
+
<version>1.1.0</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license>WorldPay License</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>WorldPay Payment GateWay</summary>
|
10 |
+
<description>WorldPay Payment GateWay</description>
|
11 |
+
<notes>compatible with 1.9</notes>
|
12 |
+
<authors><author><name>faisal</name><user>faisalshamsi</user><email>faisalsharifshamsi@gmail.com</email></author></authors>
|
13 |
+
<date>2015-01-08</date>
|
14 |
+
<time>11:23:01</time>
|
15 |
+
<contents><target name="magelocal"><dir name="WorldPayTech"><dir name="WorldAch"><dir name="Block"><file name="Form.php" hash="09f36e1fcbca210c0c0d051ee8c2eb8e"/><file name="Info.php" hash="0467a5ce61e19094a681b56a381e6735"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Helper"><file name="Data.php" hash="eb3746c14752eebd4fa182bee93b4cac"/></dir><dir name="Model"><file name="PaymentMethod.php" hash="44663a8bfb705d79e9f80297df3866e1"/></dir><dir name="etc"><file name="config.xml" hash="998644efeb571005975cb0d8073304aa"/><file name="system.xml" hash="6336987bf75a16b11abfa7e1fdceff49"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="af50a4425771801f820d6ded226aa813"/></dir><dir name="WorldPay"><dir name="Block"><file name="Form.php" hash="fc71b8e5de5b8631cc48d3cc1fab7627"/><file name="Info.php" hash="a87b42eb5945174255c73dcec93dcf5f"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Model"><file name="PaymentHelper.php" hash="753b2a1e334d0675cc1f2550237b0038"/><file name="PaymentMethod.php" hash="f00d9d294be392d0db9e53b5560ea9f8"/></dir><dir name="etc"><file name="config.xml" hash="c9e0ec089af031ab75a99c8ef754446d"/><file name="system.xml" hash="72f2b4a287b6eb524398c28e32aba0ea"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="31b6e6a024d9565b47e296158b5df99f"/></dir><dir name="WorldProfile"><dir name="Block"><file name="Form.php" hash="c3d4a47588b12616e76eef3ddcb3b988"/><file name="Info.php" hash="23ae669bcf08a4b254f76a1198653eec"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Helper"><file name="Data.php" hash="e4343805ef9e19742bf82878e372b9d3"/></dir><dir name="Model"><file name="PaymentMethod.php" hash="dd28ae8db7e789e1481ea887ce7bea02"/></dir><dir name="etc"><file name="config.xml" hash="7edafa53af910709ac960b1861622301"/><file name="system.xml" hash="14a64961d8f7bc661ad3510632f5ca54"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="af50a4425771801f820d6ded226aa813"/></dir><file name=".DS_Store" hash="507f613e3c8cfcad4ad9a11d9b255e5b"/></dir></target><target name="mageetc"><dir name="modules"><file name="WorldPayTech_WorldAch.xml" hash="d106ddc2bc8d4a551df766f383d7b891"/><file name="WorldPayTech_WorldPay.xml" hash="d1c22c594dcc5d6c857b48b32d7aa2be"/><file name="WorldPayTech_WorldProfile.xml" hash="ca4f2243b031273a329ce6af65138719"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="rwd"><dir name="default"><dir name="template"><dir name="worldpay"><dir name="form"><file name="pp.phtml" hash="822a5fe4c95f73cc099d56db13505c90"/><file name="worldpayach.phtml" hash="283d8ce341d5fcf1c27d6fedc5390b75"/><file name="worldpaycc.phtml" hash="6374d7127b941da03269dde0c6646cdd"/><file name="worldpayprofile.phtml" hash="7660ec72770b79f5f1aa392103ee725f"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="2f9d746d60a61cab6c45482c4c139375"/></dir></dir></dir></dir></dir></target></contents>
|
16 |
+
<compatible/>
|
17 |
+
<dependencies><required><php><min>5.0.0</min><max>5.5.5</max></php></required></dependencies>
|
18 |
+
</package>
|