Eximbay - Version 1.0.0

Version Notes

version 1.0.0

Download this release

Release Info

Developer KRPartners Co.,Ltd
Extension Eximbay
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

app/code/core/Mage/Eximbay/Block/Form.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_Block_Form extends Mage_Payment_Block_Form
19
+ {
20
+ /**
21
+ * Available locales for content URL generation
22
+ *
23
+ * @var array
24
+ */
25
+ protected $_supportedInfoLocales = array('de');
26
+
27
+ /**
28
+ * Default locale for content URL generation
29
+ *
30
+ * @var string
31
+ */
32
+ protected $_defaultInfoLocale = 'en';
33
+
34
+ /**
35
+ * Constructor. Set template.
36
+ */
37
+ protected function _construct()
38
+ {
39
+ parent::_construct();
40
+ $this->setTemplate('eximbay/form.phtml');
41
+ }
42
+
43
+ /**
44
+ * Return payment logo image src
45
+ *
46
+ * @param string $payment Payment Code
47
+ * @return string|bool
48
+ */
49
+ public function getPaymentImageSrc($payment)
50
+ {
51
+ $imageFilename = Mage::getDesign()
52
+ ->getFilename('images' . DS . 'eximbay' . DS . $payment, array('_type' => 'skin'));
53
+
54
+ if (file_exists($imageFilename . '.png')) {
55
+ return $this->getSkinUrl('images/eximbay/' . $payment . '.png');
56
+ } else if (file_exists($imageFilename . '.gif')) {
57
+ return $this->getSkinUrl('images/eximbay/' . $payment . '.gif');
58
+ }
59
+
60
+ return false;
61
+ }
62
+
63
+ /**
64
+ * Return supported locale for information text
65
+ *
66
+ * @return string
67
+ */
68
+ public function getInfoLocale()
69
+ {
70
+ $locale = substr(Mage::app()->getLocale()->getLocaleCode(), 0 ,2);
71
+ if (!in_array($locale, $this->_supportedInfoLocales)) {
72
+ $locale = $this->_defaultInfoLocale;
73
+ }
74
+ return $locale;
75
+ }
76
+ }
app/code/core/Mage/Eximbay/Block/Info.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ * NOTICE OF LICENSE
5
+ * This source file is subject to the Open Software License (OSL 3.0) that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://opensource.org/licenses/osl-3.0.php If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@magentocommerce.com so we can send you a copy immediately.
6
+ * @category Mage
7
+ * @package Mage_Eximbay
8
+ */
9
+ class Mage_Eximbay_Block_Info extends Mage_Payment_Block_Info
10
+ {
11
+ /** Constructor. Set template. */
12
+ protected function _construct()
13
+ {
14
+ parent::_construct();
15
+ $this->setTemplate('eximbay/info.phtml');
16
+ }
17
+
18
+ /** Returns code of payment method @return string */
19
+ public function getMethodCode()
20
+ {
21
+ return $this->getInfo()->getMethodInstance()->getCode();
22
+ }
23
+
24
+ /** Build PDF content of info block @return string */
25
+ public function toPdf()
26
+ {
27
+ $this->setTemplate('eximbay/pdf/info.phtml');
28
+ return $this->toHtml();
29
+ }
30
+ }
app/code/core/Mage/Eximbay/Block/Jsinit.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_Block_Jsinit extends Mage_Adminhtml_Block_Template
19
+ {
20
+ /**
21
+ * Include JS in head if section is eximbay
22
+ */
23
+ protected function _prepareLayout()
24
+ {
25
+ $section = $this->getAction()->getRequest()->getParam('section', false);
26
+ if ($section == 'eximbay') {
27
+ $this->getLayout()
28
+ ->getBlock('head')
29
+ ->addJs('mage/adminhtml/eximbay.js');
30
+ }
31
+ parent::_prepareLayout();
32
+ }
33
+
34
+ /**
35
+ * Print init JS script into body
36
+ * @return string
37
+ */
38
+ protected function _toHtml()
39
+ {
40
+ $section = $this->getAction()->getRequest()->getParam('section', false);
41
+ if ($section == 'eximbay') {
42
+ return parent::_toHtml();
43
+ } else {
44
+ return '';
45
+ }
46
+ }
47
+ }
app/code/core/Mage/Eximbay/Block/Payment.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_Block_Payment extends Mage_Core_Block_Template
19
+ {
20
+ /**
21
+ * Return Payment logo src
22
+ *
23
+ * @return string
24
+ */
25
+ public function getEximbayLogoSrc()
26
+ {
27
+ $locale = Mage::getModel('eximbay/acc')->getLocale();
28
+ $logoFilename = Mage::getDesign()
29
+ ->getFilename('images' . DS . 'eximbay' . DS . 'banner_120_' . $locale . '.gif', array('_type' => 'skin'));
30
+
31
+ return $this->getSkinUrl('images/eximbay/banner_120_int.gif');
32
+ }
33
+ }
app/code/core/Mage/Eximbay/Block/Placeform.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_Block_Placeform extends Mage_Core_Block_Template
19
+ {
20
+ /**
21
+ * Return checkout session instance
22
+ *
23
+ * @return Mage_Checkout_Model_Session
24
+ */
25
+ protected function _getCheckout()
26
+ {
27
+ return Mage::getSingleton('checkout/session');
28
+ }
29
+
30
+ /**
31
+ * Return order instance
32
+ *
33
+ * @return Mage_Sales_Model_Order|null
34
+ */
35
+ protected function _getOrder()
36
+ {
37
+ if ($this->getOrder()) {
38
+ return $this->getOrder();
39
+ } elseif ($orderIncrementId = $this->_getCheckout()->getLastRealOrderId()) {
40
+ return Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
41
+ } else {
42
+ return null;
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Get Form data by using ogone payment api
48
+ *
49
+ * @return array
50
+ */
51
+ public function getFormData()
52
+ {
53
+ return $this->_getOrder()->getPayment()->getMethodInstance()->getFormFields();
54
+ }
55
+
56
+ /**
57
+ * Getting gateway url
58
+ *
59
+ * @return string
60
+ */
61
+ public function getFormAction()
62
+ {
63
+ return $this->_getOrder()->getPayment()->getMethodInstance()->getUrl();
64
+ }
65
+ }
app/code/core/Mage/Eximbay/Block/Redirect.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_Block_Redirect extends Mage_Core_Block_Template
19
+ {
20
+ /**
21
+ * Constructor. Set template.
22
+ */
23
+ protected function _construct()
24
+ {
25
+ parent::_construct();
26
+ $this->setTemplate('eximbay/redirect.phtml');
27
+ }
28
+ }
app/code/core/Mage/Eximbay/Helper/Data.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_Helper_Data extends Mage_Payment_Helper_Data
19
+ {
20
+ const XML_PATH_EMAIL = '';
21
+ const XML_PATH_MERCHANT_ID = '';
22
+ const XML_PATH_SECRET_KEY = '';
23
+
24
+
25
+ // Include your code to send activation email
26
+
27
+ /**
28
+ * Send activation Email
29
+ */
30
+
31
+ /*
32
+ public function activateEmail()
33
+ {
34
+ $storeId = Mage::app()->getStore()->getId();
35
+
36
+ $translate = Mage::getSingleton('core/translate');
37
+ // @var $translate Mage_Core_Model_Translate
38
+ $translate->setTranslateInline(false);
39
+
40
+ Mage::getModel('core/email_template')
41
+ ->setDesignConfig(array('area' => 'frontend', 'store' => $storeId))
42
+ ->sendTransactional(
43
+ 'eximbay_activateemail',
44
+ Mage::getStoreConfig(Mage_Sales_Model_Order::XML_PATH_EMAIL_IDENTITY, $storeId),
45
+ $this->_activationEmailTo,
46
+ null,
47
+ array(
48
+ 'subject' => $this->_activationEmailSubject,
49
+ 'email_addr' => Mage::getStoreConfig(self::XML_PATH_EMAIL),
50
+ 'url' => Mage::getBaseUrl(),
51
+ 'merchant_id' => Mage::getStoreConfig(self::XML_PATH_MERCHANT_ID),
52
+ 'language' => Mage::getModel('core/locale')->getDefaultLocale()
53
+ )
54
+ );
55
+
56
+ $translate->setTranslateInline(true);
57
+ }*/
58
+
59
+ /**
60
+ * Check if email is registered at eximbay
61
+ *
62
+ * @param array $params
63
+ * @return array
64
+ */
65
+
66
+ /*
67
+ public function checkEmailRequest(Array $params) {
68
+ $response = null;
69
+ try {
70
+ $response = $this->_getHttpsPage($this->_eximbayServer . $this->_checkEmailUrl, array(
71
+ 'email' => $params['email'],
72
+ 'cust_id' => $this->_checkEmailCustId,
73
+ 'password' => $this->_checkEmailPassword)
74
+ );
75
+ } catch (Exception $e) {
76
+ Mage::log($e->getMessage());
77
+ return null;
78
+ }
79
+ return $response;
80
+ }*/
81
+
82
+ /**
83
+ * Check if entered secret is valid
84
+ * @param array $params
85
+ * @return array
86
+ */
87
+ /*
88
+ public function checkSecretRequest(Array $params)
89
+ {
90
+ $response = null;
91
+ try {
92
+ $response = $this->_getHttpsPage($this->_eximbayServer . $this->_checkSecretUrl, array(
93
+ 'email' => $params['email'],
94
+ 'secret' => hash("sha256", hash("sha256", $params['secret']) . $this->_eximbayMasterSecretHash)),
95
+ 'cust_id' => $this->_eximbayMasterCustId)
96
+ );
97
+ } catch (Exception $e) {
98
+ Mage::log($e->getMessage());
99
+ return null;
100
+ }
101
+ return $response;
102
+ }*/
103
+
104
+ /**
105
+ * Reading a page via HTTPS and returning its content.
106
+ */
107
+ /*
108
+ protected function _getHttpsPage($host, $parameter)
109
+ {
110
+ $client = new Varien_Http_Client();
111
+ $client->setUri($host)
112
+ ->setConfig(array('timeout' => 30))
113
+ ->setHeaders('accept-encoding', '')
114
+ ->setParameterGet($parameter)
115
+ ->setMethod(Zend_Http_Client::GET);
116
+ $request = $client->request();
117
+ // Workaround for pseudo chunked messages which are yet too short, so
118
+ // only an exception is is thrown instead of returning raw body
119
+ if (!preg_match("/^([\da-fA-F]+)[^\r\n]*\r\n/sm", $request->getRawBody(), $m))
120
+ return $request->getRawBody();
121
+
122
+ return $request->getBody();
123
+ }*/
124
+ }
app/code/core/Mage/Eximbay/Model/Abstract.php ADDED
@@ -0,0 +1,225 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ abstract class Mage_Eximbay_Model_Abstract extends Mage_Payment_Model_Method_Abstract
19
+ {
20
+ /**
21
+ * unique internal payment method identifier
22
+ */
23
+ protected $_code = 'eximbay_abstract';
24
+
25
+ protected $_formBlockType = 'eximbay/form';
26
+ protected $_infoBlockType = 'eximbay/info';
27
+
28
+ /**
29
+ * Availability options
30
+ */
31
+ protected $_isGateway = true;
32
+ protected $_canAuthorize = true;
33
+ protected $_canCapture = true;
34
+ protected $_canCapturePartial = false;
35
+ protected $_canRefund = false;
36
+ protected $_canVoid = false;
37
+ protected $_canUseInternal = false;
38
+ protected $_canUseCheckout = true;
39
+ protected $_canUseForMultishipping = false;
40
+
41
+ protected $_paymentMethod = 'abstract';
42
+ protected $_defaultLocale = 'en';
43
+ protected $_supportedLocales = array('cn', 'cz', 'da', 'en', 'es', 'fi', 'de', 'fr', 'gr', 'it', 'nl', 'ro', 'ru', 'pl', 'sv', 'tr');
44
+ protected $_hidelogin = '1';
45
+
46
+ protected $_order;
47
+
48
+ /**
49
+ * Get order model
50
+ *
51
+ * @return Mage_Sales_Model_Order
52
+ */
53
+ public function getOrder()
54
+ {
55
+ if (!$this->_order) {
56
+ $this->_order = $this->getInfoInstance()->getOrder();
57
+ }
58
+ return $this->_order;
59
+ }
60
+
61
+ /**
62
+ * Return url for redirection after order placed
63
+ * @return string
64
+ */
65
+ public function getOrderPlaceRedirectUrl()
66
+ {
67
+ return Mage::getUrl('eximbay/processing/payment');
68
+ }
69
+
70
+ /**
71
+ * Capture payment through Moneybookers api
72
+ *
73
+ * @param Varien_Object $payment
74
+ * @param decimal $amount
75
+ * @return Phoenix_Moneybookers_Model_Abstract
76
+ */
77
+ public function capture(Varien_Object $payment, $amount)
78
+ {
79
+ $payment->setStatus(self::STATUS_APPROVED)
80
+ ->setTransactionId($this->getTransactionId())
81
+ ->setIsTransactionClosed(0);
82
+
83
+ return $this;
84
+ }
85
+
86
+ /**
87
+ * Cancel payment
88
+ *
89
+ * @param Varien_Object $payment
90
+ * @return Phoenix_Moneybookers_Model_Abstract
91
+ */
92
+ public function cancel(Varien_Object $payment)
93
+ {
94
+ $payment->setStatus(self::STATUS_DECLINED)
95
+ ->setTransactionId($this->getTransactionId())
96
+ ->setIsTransactionClosed(1);
97
+
98
+ return $this;
99
+ }
100
+
101
+ /**
102
+ * Return url of payment method
103
+ *
104
+ * @return string
105
+ */
106
+ public function getUrl()
107
+ {
108
+ return 'http://www.test2.eximbay.com/web/payment2.0/payment_real.do';
109
+ // return 'https://www.eximbay.com/web/payment2.0/payment_real.do';
110
+ }
111
+
112
+ /**
113
+ * Return url of payment method
114
+ *
115
+ * @return string
116
+ */
117
+ public function getLocale()
118
+ {
119
+ $locale = explode('_', Mage::app()->getLocale()->getLocaleCode());
120
+ if (is_array($locale) && !empty($locale) && in_array($locale[0], $this->_supportedLocales)) {
121
+ return $locale[0];
122
+ }
123
+ return $this->getDefaultLocale();
124
+ }
125
+
126
+ /**
127
+ * prepare params array to send it to gateway page via POST
128
+ *
129
+ * @return array
130
+ */
131
+ public function getFormFields()
132
+ {
133
+ $order_id = $this->getOrder()->getRealOrderId();
134
+ $billing = $this->getOrder()->getBillingAddress();
135
+ $shipping = $this->getOrder()->getShippingAddress();
136
+ if ($this->getOrder()->getBillingAddress()->getEmail()) {
137
+ $email = $this->getOrder()->getBillingAddress()->getEmail();
138
+ } else {
139
+ $email = $this->getOrder()->getCustomerEmail();
140
+ }
141
+ $amt = round($this->getOrder()->getGrandTotal(), 2);
142
+ $secretKey = "289F40E6640124B2628640168C3C5464"; // test secret key
143
+ $mid = "1849705C64"; // test mid
144
+ $ref = "abcd1234567890";
145
+ $linkBuf = $secretKey. "?mid=" . $mid ."&ref=" . $ref ."&cur=" ."USD" ."&amt=" .$amt;
146
+
147
+ //$fgkey = md5($linkBuf);
148
+ $fgkey = hash("sha256", $linkBuf);
149
+
150
+ $quantity = $this->getOrder()->getTotalItemCount();
151
+ $total = 0;
152
+
153
+ $params = array(
154
+ 'ver' => '170',
155
+ 'mid' => $mid,
156
+ 'txntype' => 'SALE',
157
+ 'displaytype' => 'I',
158
+ 'secretkey' => $secretKey,
159
+ 'ref' => $ref,
160
+ 'email' => $email,
161
+ 'transid' => $order_id,
162
+ 'returnurl' => Mage::getUrl('eximbay/processing/success', array('transid' => $order_id)),
163
+ 'fgkey' => $fgkey,
164
+ 'lang' => 'KR', //$this->getLocale(),
165
+ 'amt' => round($this->getOrder()->getGrandTotal(), 2),
166
+ 'cur' => 'USD', //$this->getOrder()->getOrderCurrencyCode(),
167
+ 'shop' => $this->getOrder()->getStore(),
168
+ 'buyer' => $billing->getFirstname() . $billing->getLastname(),
169
+ 'product' => $order_id,
170
+ 'tel' => $billing->getTelephone(),
171
+ 'payment_methods' => $this->_paymentMethod,
172
+ 'hide_login' => $this->_hidelogin,
173
+ 'new_window_redirect' => '1',
174
+ 'rescode' => '',
175
+ 'resmsg' => '',
176
+ 'authcode' => '',
177
+ 'visitorid' => '',
178
+ 'dm_item_0_product' => $order_id,
179
+ 'dm_item_0_quantity' => $quantity,
180
+ 'dm_item_0_unitPrice' => round($this->getOrder()->getGrandTotal(), 2),
181
+ 'dm_shipTo_city' => $shipping->getData("city"),
182
+ 'dm_shipTo_country' => $shipping->getCountry(),
183
+ 'dm_shipTo_firstName' => $shipping->getData("firstname"),
184
+ 'dm_shipTo_lastName' => $shipping->getData("lastname"),
185
+ 'dm_shipTo_phoneNumber' => $shipping->getTelephone(),
186
+ 'dm_shipTo_postalCode' => $shipping->getData("postcode"),
187
+ 'dm_shipTo_state' => $shipping->getRegionCode(),
188
+ 'dm_shipTo_street1' => $shipping->getData("street")
189
+ );
190
+
191
+ return $params;
192
+ }
193
+ /**
194
+ * Get initialized flag status
195
+ * @return true
196
+ */
197
+ public function isInitializeNeeded()
198
+ {
199
+ return true;
200
+ }
201
+
202
+ /**
203
+ * Instantiate state and set it to state onject
204
+ * //@param
205
+ * //@param
206
+ */
207
+ public function initialize($paymentAction, $stateObject)
208
+ {
209
+ $state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
210
+ $stateObject->setState($state);
211
+ $stateObject->setStatus(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT);
212
+ $stateObject->setIsNotified(false);
213
+ }
214
+
215
+ /**
216
+ * Get config action to process initialization
217
+ *
218
+ * @return string
219
+ */
220
+ public function getConfigPaymentAction()
221
+ {
222
+ $paymentAction = $this->getConfigData('payment_action');
223
+ return empty($paymentAction) ? true : $paymentAction;
224
+ }
225
+ }
app/code/core/Mage/Eximbay/Model/Abstract.php.bak ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ abstract class Mage_Eximbay_Model_Abstract extends Mage_Payment_Model_Method_Abstract
19
+ {
20
+ /**
21
+ * unique internal payment method identifier
22
+ */
23
+ protected $_code = 'eximbay_abstract';
24
+
25
+ protected $_formBlockType = 'eximbay/form';
26
+ protected $_infoBlockType = 'eximbay/info';
27
+
28
+ /**
29
+ * Availability options
30
+ */
31
+ protected $_isGateway = true;
32
+ protected $_canAuthorize = true;
33
+ protected $_canCapture = true;
34
+ protected $_canCapturePartial = false;
35
+ protected $_canRefund = false;
36
+ protected $_canVoid = false;
37
+ protected $_canUseInternal = false;
38
+ protected $_canUseCheckout = true;
39
+ protected $_canUseForMultishipping = false;
40
+
41
+ protected $_paymentMethod = 'abstract';
42
+ protected $_defaultLocale = 'en';
43
+ protected $_supportedLocales = array('cn', 'cz', 'da', 'en', 'es', 'fi', 'de', 'fr', 'gr', 'it', 'nl', 'ro', 'ru', 'pl', 'sv', 'tr');
44
+ protected $_hidelogin = '1';
45
+
46
+ protected $_order;
47
+
48
+ /**
49
+ * Get order model
50
+ *
51
+ * @return Mage_Sales_Model_Order
52
+ */
53
+ public function getOrder()
54
+ {
55
+ if (!$this->_order) {
56
+ $this->_order = $this->getInfoInstance()->getOrder();
57
+ }
58
+ return $this->_order;
59
+ }
60
+
61
+ /**
62
+ * Return url for redirection after order placed
63
+ * @return string
64
+ */
65
+ public function getOrderPlaceRedirectUrl()
66
+ {
67
+ return Mage::getUrl('eximbay/processing/payment');
68
+ }
69
+
70
+ /**
71
+ * Capture payment through Moneybookers api
72
+ *
73
+ * @param Varien_Object $payment
74
+ * @param decimal $amount
75
+ * @return Phoenix_Moneybookers_Model_Abstract
76
+ */
77
+ public function capture(Varien_Object $payment, $amount)
78
+ {
79
+ $payment->setStatus(self::STATUS_APPROVED)
80
+ ->setTransactionId($this->getTransactionId())
81
+ ->setIsTransactionClosed(0);
82
+
83
+ return $this;
84
+ }
85
+
86
+ /**
87
+ * Cancel payment
88
+ *
89
+ * @param Varien_Object $payment
90
+ * @return Phoenix_Moneybookers_Model_Abstract
91
+ */
92
+ public function cancel(Varien_Object $payment)
93
+ {
94
+ $payment->setStatus(self::STATUS_DECLINED)
95
+ ->setTransactionId($this->getTransactionId())
96
+ ->setIsTransactionClosed(1);
97
+
98
+ return $this;
99
+ }
100
+
101
+ /**
102
+ * Return url of payment method
103
+ *
104
+ * @return string
105
+ */
106
+ public function getUrl()
107
+ {
108
+ return 'http://www.test2.eximbay.com/web/payment2.0/payment_real.do';
109
+ // return 'https://www.eximbay.com/web/payment2.0/payment_real.do';
110
+ }
111
+
112
+ /**
113
+ * Return url of payment method
114
+ *
115
+ * @return string
116
+ */
117
+ public function getLocale()
118
+ {
119
+ $locale = explode('_', Mage::app()->getLocale()->getLocaleCode());
120
+ if (is_array($locale) && !empty($locale) && in_array($locale[0], $this->_supportedLocales)) {
121
+ return $locale[0];
122
+ }
123
+ return $this->getDefaultLocale();
124
+ }
125
+
126
+ /**
127
+ * prepare params array to send it to gateway page via POST
128
+ *
129
+ * @return array
130
+ */
131
+ public function getFormFields()
132
+ {
133
+ $order_id = $this->getOrder()->getRealOrderId();
134
+ $billing = $this->getOrder()->getBillingAddress();
135
+ $shipping = $this->getOrder()->getShippingAddress();
136
+ if ($this->getOrder()->getBillingAddress()->getEmail()) {
137
+ $email = $this->getOrder()->getBillingAddress()->getEmail();
138
+ } else {
139
+ $email = $this->getOrder()->getCustomerEmail();
140
+ }
141
+ $amt = round($this->getOrder()->getGrandTotal(), 2);
142
+ $secretKey = "289F40E6640124B2628640168C3C5464"; // test secret key
143
+ $mid = "1849705C64"; // test mid
144
+ $ref = "abcd1234567890";
145
+ $linkBuf = $secretKey. "?mid=" . $mid ."&ref=" . $ref ."&cur=" ."USD" ."&amt=" .$amt;
146
+
147
+ //$fgkey = md5($linkBuf);
148
+ $fgkey = hash("sha256", $linkBuf);
149
+
150
+ $quantity = $this->getOrder()->getTotalItemCount();
151
+ $total = 0;
152
+
153
+ //$quote = $this->getQuote();
154
+ //$billingaddress = $quote->getBillingAddress();
155
+ //$shippingaddress = $quote->getShippingAddress();
156
+ //billing
157
+ /* echo $billing->getData("street") . " ";
158
+ echo $billing->getData("postcode") . " ";
159
+ echo $billing->getData("city") . " ";
160
+ echo $billing->getRegionCode();
161
+ echo $billing->getCountry();
162
+ //shipping
163
+ echo $shipping->getName();
164
+ echo $shipping->getData("company");
165
+ echo $shipping->getData("street");
166
+ echo $shipping->getData("postcode");
167
+ echo $shipping->getData("city");
168
+ echo $shipping->getRegionCode();
169
+ echo $shipping->getRegion();
170
+ echo $shipping->getCountry();
171
+ echo $shipping->getCountryModel()->getName();*/
172
+
173
+ $params = array(
174
+ 'ver' => '170',
175
+ 'mid' => $mid,
176
+ 'txntype' => 'SALE',
177
+ 'displaytype' => 'I',
178
+ 'secretkey' => $secretKey,
179
+ 'ref' => $ref,
180
+ 'email' => $email,
181
+ 'transid' => $order_id,
182
+ 'returnurl' => Mage::getUrl('eximbay/processing/success', array('transid' => $order_id)),
183
+ 'fgkey' => $fgkey,
184
+ 'lang' => 'KR', //$this->getLocale(),
185
+ 'amt' => round($this->getOrder()->getGrandTotal(), 2),
186
+ 'cur' => 'USD', //$this->getOrder()->getOrderCurrencyCode(),
187
+ 'shop' => $this->getOrder()->getStore(),
188
+ 'buyer' => $billing->getFirstname() . $billing->getLastname(),
189
+ 'product' => $order_id,
190
+ 'tel' => $billing->getTelephone(),
191
+ 'payment_methods' => $this->_paymentMethod,
192
+ 'hide_login' => $this->_hidelogin,
193
+ 'new_window_redirect' => '1',
194
+ 'rescode' => '',
195
+ 'resmsg' => '',
196
+ 'authcode' => '',
197
+ 'visitorid' => '',
198
+ 'dm_item_0_product' => $order_id,
199
+ 'dm_item_0_quantity' => $quantity,
200
+ 'dm_item_0_unitPrice' => round($this->getOrder()->getGrandTotal(), 2),
201
+ 'dm_shipTo_city' => $shipping->getData("city"),
202
+ 'dm_shipTo_country' => $shipping->getCountry(),
203
+ 'dm_shipTo_firstName' => $shipping->getData("firstname"),
204
+ 'dm_shipTo_lastName' => $shipping->getData("lastname"),
205
+ 'dm_shipTo_phoneNumber' => $shipping->getTelephone(),
206
+ 'dm_shipTo_postalCode' => $shipping->getData("postcode"),
207
+ 'dm_shipTo_state' => $shipping->getRegionCode(),
208
+ 'dm_shipTo_street1' => $shipping->getData("street")
209
+ );
210
+
211
+ return $params;
212
+ }
213
+ /**
214
+ * Get initialized flag status
215
+ * @return true
216
+ */
217
+ public function isInitializeNeeded()
218
+ {
219
+ return true;
220
+ }
221
+
222
+ /**
223
+ * Instantiate state and set it to state onject
224
+ * //@param
225
+ * //@param
226
+ */
227
+ public function initialize($paymentAction, $stateObject)
228
+ {
229
+ $state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
230
+ $stateObject->setState($state);
231
+ $stateObject->setStatus(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT);
232
+ $stateObject->setIsNotified(false);
233
+ }
234
+
235
+ /**
236
+ * Get config action to process initialization
237
+ *
238
+ * @return string
239
+ */
240
+ public function getConfigPaymentAction()
241
+ {
242
+ $paymentAction = $this->getConfigData('payment_action');
243
+ return empty($paymentAction) ? true : $paymentAction;
244
+ }
245
+ }
app/code/core/Mage/Eximbay/Model/Acc.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_Model_Acc extends Mage_Eximbay_Model_Abstract
19
+ {
20
+ /**
21
+ * unique internal payment method identifier
22
+ */
23
+ protected $_code = 'eximbay_acc';
24
+ protected $_paymentMethod = 'ACC';
25
+ }
app/code/core/Mage/Eximbay/Model/Event.php ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+
19
+ /**
20
+ * Eximbay's notification processor model
21
+ */
22
+ class Mage_Eximbay_Model_Event
23
+ {
24
+ const EXIMBAY_STATUS_NOT_SUCCESS = -2;
25
+ const EXIMBAY_STATUS_SUCCESS = 2;
26
+
27
+ /*
28
+ * @param Mage_Sales_Model_Order
29
+ */
30
+ protected $_order = null;
31
+
32
+ /**
33
+ * Event request data
34
+ * @var array
35
+ */
36
+ protected $_eventData = array();
37
+
38
+ /**
39
+ * Enent request data setter
40
+ * @param array $data
41
+ * @return Mage_Eximbay_Model_Event
42
+ */
43
+ public function setEventData(array $data)
44
+ {
45
+ $this->_eventData = $data;
46
+ return $this;
47
+ }
48
+
49
+ /**
50
+ * Event request data getter
51
+ * @param string $key
52
+ * @return array|string
53
+ */
54
+ public function getEventData($key = null)
55
+ {
56
+ if (null === $key) {
57
+ return $this->_eventData;
58
+ }
59
+ return isset($this->_eventData[$key]) ? $this->_eventData[$key] : null;
60
+ }
61
+
62
+ /**
63
+ * Get singleton of Checkout Session Model
64
+ *
65
+ * @return Mage_Checkout_Model_Session
66
+ */
67
+ protected function _getCheckout()
68
+ {
69
+ return Mage::getSingleton('checkout/session');
70
+ }
71
+
72
+ /**
73
+ * Process status notification from server
74
+ *
75
+ * @return String
76
+ */
77
+ public function processStatusEvent()
78
+ {
79
+ try {
80
+ $params = $this->_validateEventData();
81
+ $msg = '';
82
+ switch($params['status']) {
83
+ case self::EXIMBAY_STATUS_NOT_SUCCESS: //fail or cancel
84
+ $msg = Mage::helper('eximbay')->__('Payment was not successful.');
85
+ $this->_processCancel($msg);
86
+ break;
87
+ case self::EXIMBAY_STATUS_SUCCESS: //ok
88
+ $msg = Mage::helper('eximbay')->__('The amount has been authorized and captured by EXIMBAY.');
89
+ $this->_processSale($params['status'], $msg);
90
+ break;
91
+ }
92
+ return $msg;
93
+ } catch (Mage_Core_Exception $e) {
94
+ return $e->getMessage();
95
+ } catch(Exception $e) {
96
+ Mage::logException($e);
97
+ }
98
+ return;
99
+ }
100
+
101
+ /**
102
+ * Process cancelation or fail
103
+ */
104
+ public function cancelEvent() {
105
+ try {
106
+ $this->_validateEventData(false);
107
+ $this->_processCancel('Payment was not successful.');
108
+ return Mage::helper('eximbay')->__('The order was not completed.');
109
+ } catch (Mage_Core_Exception $e) {
110
+ return $e->getMessage();
111
+ } catch(Exception $e) {
112
+ Mage::logException($e);
113
+ }
114
+ return '';
115
+ }
116
+
117
+ /**
118
+ * Validate request and return QuoteId
119
+ * Can throw Mage_Core_Exception and Exception
120
+ *
121
+ * @return int
122
+ */
123
+ public function successEvent(){
124
+ $this->_validateEventData(false);
125
+ return $this->_order->getQuoteId();
126
+ }
127
+
128
+ /**
129
+ * Processed order cancelation or fail
130
+ * @param string $msg Order history message
131
+ */
132
+ protected function _processCancel($msg)
133
+ {
134
+ $this->_order->cancel();
135
+ $this->_order->addStatusToHistory(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, $msg);
136
+ $this->_order->save();
137
+ }
138
+
139
+ /**
140
+ * Processes payment confirmation, creates invoice if necessary, updates order status,
141
+ * sends order confirmation to customer
142
+ * @param string $msg Order history message
143
+ */
144
+ protected function _processSale($status, $msg)
145
+ {
146
+ switch ($status) {
147
+ case self::EXIMBAY_STATUS_SUCCESS:
148
+ $this->_createInvoice();
149
+ $this->_order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true, $msg);
150
+ $this->_order->setStatus(Mage_Sales_Model_Order::STATE_COMPLETE);
151
+ $this->_order->addStatusToHistory(Mage_Sales_Model_Order::STATE_COMPLETE, 'Payment Completed', true);
152
+ // save transaction ID
153
+ $this->_order->getPayment()->setLastTransId($this->getEventData('transid'));
154
+ // send new order email
155
+ $this->_order->sendNewOrderEmail();
156
+ $this->_order->setEmailSent(true);
157
+ break;
158
+ }
159
+ $this->_order->save();
160
+ }
161
+
162
+ /**
163
+ * Builds invoice for order
164
+ */
165
+ protected function _createInvoice()
166
+ {
167
+ if (!$this->_order->canInvoice()) {
168
+ return;
169
+ }
170
+ $invoice = $this->_order->prepareInvoice();
171
+ $invoice->register()->capture();
172
+ $this->_order->addRelatedObject($invoice);
173
+ }
174
+
175
+ /**
176
+ * Checking returned parameters
177
+ * Thorws Mage_Core_Exception if error
178
+ * @param bool $fullCheck Whether to make additional validations such as payment status etc.
179
+ *
180
+ * @return array $params request params
181
+ */
182
+ protected function _validateEventData($fullCheck = true)
183
+ {
184
+
185
+ // get request variables
186
+ $params = $this->_eventData;
187
+
188
+ if (empty($params)) {
189
+ Mage::throwException('Request does not contain any elements.');
190
+ }
191
+
192
+ // check order ID
193
+ if (empty($params['transid'])
194
+ || ($fullCheck == false && $this->_getCheckout()->getEximbayRealOrderId() != $params['transid'])
195
+ ) {
196
+ Mage::throwException('Missing or invalid order ID.');
197
+ }
198
+ // load order for further validation
199
+ $this->_order = Mage::getModel('sales/order')->loadByIncrementId($params['transid']);
200
+ if (!$this->_order->getId()) {
201
+ Mage::throwException('Order not found.');
202
+ }
203
+
204
+ if (0 !== strpos($this->_order->getPayment()->getMethodInstance()->getCode(), 'eximbay_')) {
205
+ Mage::throwException('Unknown payment method.');
206
+ }
207
+
208
+ // make additional validation
209
+ if ($fullCheck) {
210
+ // check payment status
211
+ if (empty($params['status'])) {
212
+ Mage::throwException('Unknown payment status.');
213
+ }
214
+
215
+ // check transaction amount if currency matches
216
+ if ($this->_order->getOrderCurrencyCode() == $params['cur']) {
217
+ if (round($this->_order->getGrandTotal(), 2) != $params['amt']) {
218
+ Mage::throwException('Transaction amount does not match.');
219
+ }
220
+ }
221
+ }
222
+ return $params;
223
+ }
224
+ }
app/code/core/Mage/Eximbay/controllers/EximbayController.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_EximbayController extends Mage_Adminhtml_Controller_Action
19
+ {
20
+ /**
21
+ * Retrieve Eximbay's helper
22
+ *
23
+ * @return Mage_Eximbay_Helper_Data
24
+ */
25
+ protected function _getHelper()
26
+ {
27
+ return Mage::helper('eximbay');
28
+ }
29
+
30
+ /**
31
+ * Send activation Email
32
+ */
33
+ public function activateemailAction()
34
+ {
35
+ $this->_getHelper()->activateEmail();
36
+ }
37
+
38
+ /**
39
+ * Check if email is registered
40
+ */
41
+ public function checkemailAction()
42
+ {
43
+ try {
44
+ $params = $this->getRequest()->getParams();
45
+ if (empty($params['email'])) {
46
+ Mage::throwException('Error: No parameters specified');
47
+ }
48
+ $response = $this->_getHelper()->checkEmailRequest($params);
49
+ if (empty($response)) {
50
+ Mage::throwException('Error: Connection to eximbay.com failed');
51
+ }
52
+ $this->getResponse()->setBody($response);
53
+ return;
54
+ } catch (Mage_Core_Exception $e) {
55
+ $response = $e->getMessage();
56
+ } catch (Exception $e) {
57
+ $response = 'Error: System error during request';
58
+ }
59
+ $this->getResponse()->setBody($response);
60
+ }
61
+
62
+ /**
63
+ * Check if entered secret is valid
64
+ */
65
+ public function checksecretAction()
66
+ {
67
+ try {
68
+ $params = $this->getRequest()->getParams();
69
+ if (empty($params['email']) || empty($params['secret'])) {
70
+ Mage::throwException('Error: No parameters specified');
71
+ }
72
+ $response = $this->_getHelper()->checkSecretRequest($params);
73
+ if (empty($response)) {
74
+ Mage::throwException('Error: Connection to eximbay.com failed');
75
+ }
76
+ $this->getResponse()->setBody($response);
77
+ return;
78
+ } catch (Mage_Core_Exception $e) {
79
+ $response = $e->getMessage();
80
+ } catch (Exception $e) {
81
+ $response = 'Error: System error during request';
82
+ }
83
+ $this->getResponse()->setBody($response);
84
+ }
85
+ }
app/code/core/Mage/Eximbay/controllers/ProcessingController.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
+ * @category Mage
16
+ * @package Mage_Eximbay
17
+ */
18
+ class Mage_Eximbay_ProcessingController extends Mage_Core_Controller_Front_Action
19
+ {
20
+ /**
21
+ * Get singleton of Checkout Session Model
22
+ *
23
+ * @return Mage_Checkout_Model_Session
24
+ */
25
+ protected function _getCheckout()
26
+ {
27
+ return Mage::getSingleton('checkout/session');
28
+ }
29
+
30
+ /**
31
+ * Iframe page which submits the payment data to eximbay.
32
+ */
33
+ public function placeformAction()
34
+ {
35
+ $this->loadLayout();
36
+ $this->renderLayout();
37
+ }
38
+
39
+ /**
40
+ * Show orderPlaceRedirect page which contains the eximbay iframe.
41
+ */
42
+ public function paymentAction()
43
+ {
44
+ try {
45
+ $session = $this->_getCheckout();
46
+
47
+ $order = Mage::getModel('sales/order');
48
+ $order->loadByIncrementId($session->getLastRealOrderId());
49
+ if (!$order->getId()) {
50
+ Mage::throwException('No order for processing found');
51
+ }
52
+ $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
53
+ Mage::helper('eximbay')->__('The customer was redirected to eximbay.')
54
+ );
55
+ $order->save();
56
+
57
+ $session->setEximbayQuoteId($session->getQuoteId());
58
+ $session->setEximbayRealOrderId($session->getLastRealOrderId());
59
+ $session->getQuote()->setIsActive(false)->save();
60
+ $session->clear();
61
+
62
+ $this->loadLayout();
63
+ $this->renderLayout();
64
+ } catch (Exception $e){
65
+ Mage::logException($e);
66
+ parent::_redirect('checkout/cart');
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Action to which the customer will be returned when the payment is successful or not successful.
72
+ */
73
+ public function successAction()
74
+ {
75
+ $event = Mage::getModel('eximbay/event')
76
+ ->setEventData($this->getRequest()->getParams());
77
+
78
+ $data = $event->getEventData();
79
+
80
+ try {
81
+ if ($data['rescode'] == '0000') // payment successful
82
+ {
83
+ $data["status"] = 2;
84
+ $event->setEventData($data);
85
+ $message = $event->processStatusEvent();
86
+ $quoteId = $event->successEvent();
87
+ $this->_getCheckout()->setLastSuccessQuoteId($quoteId);
88
+ $this->_redirect('checkout/onepage/success');
89
+ return;
90
+ }
91
+ else // payment not successful
92
+ {
93
+ /*
94
+ $data['status'] = -2;
95
+ $event->setEventData($data);
96
+ $message = $event->processStatusEvent();
97
+ */
98
+ $message = $event->cancelEvent();
99
+
100
+ // set quote to active
101
+ $session = $this->_getCheckout();
102
+ if ($quoteId = $session->getEximbayQuoteId()) {
103
+ $quote = Mage::getModel('sales/quote')->load($quoteId);
104
+ if ($quote->getId()) {
105
+ $quote->setIsActive(true)->save();
106
+ $session->setQuoteId($quoteId);
107
+ }
108
+ }
109
+
110
+ $session->addError($message);
111
+ $this->_redirect('checkout/cart');
112
+ }
113
+
114
+ } catch (Mage_Core_Exception $e) {
115
+ $this->_getCheckout()->addError($e->getMessage());
116
+ } catch(Exception $e) {
117
+ Mage::logException($e);
118
+ }
119
+
120
+ $this->getResponse()->setBody($message);
121
+ $this->_redirect('checkout/cart');
122
+ }
123
+
124
+ /**
125
+ * Set redirect into responce. This has to be encapsulated in an JavaScript
126
+ * call to jump out of the iframe.
127
+ *
128
+ * @param string $path
129
+ * @param array $arguments
130
+ */
131
+ protected function _redirect($path, $arguments=array())
132
+ {
133
+ $this->getResponse()->setBody(
134
+ $this->getLayout()
135
+ ->createBlock('eximbay/redirect')
136
+ ->setRedirectUrl(Mage::getUrl($path, $arguments))
137
+ ->toHtml()
138
+ );
139
+ return $this;
140
+ }
141
+ }
app/code/core/Mage/Eximbay/etc/config.xml ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!-- /** *
3
+ *
4
+ * @title Magento -> Eximbay online payment
5
+ * @category Mage
6
+ * @package Mage_Eximbay
7
+ */
8
+ -->
9
+ <config>
10
+ <global>
11
+ <!-- declare model group for new module -->
12
+ <models>
13
+ <!-- model group alias to be used in Mage::getModel('newmodule/...') -->
14
+ <eximbay>
15
+ <!-- base class name for the model group -->
16
+ <class>Mage_Eximbay_Model</class>
17
+ </eximbay>
18
+ </models>
19
+ <helpers>
20
+ <eximbay>
21
+ <class>Mage_Eximbay_Helper</class>
22
+ </eximbay>
23
+ </helpers>
24
+
25
+ <!-- declare resource setup for new module -->
26
+ <resources> <!-- resource identifier -->
27
+ <eximbay_setup>
28
+ <!-- specify that this resource is a setup resource and used for upgrades -->
29
+ <setup>
30
+ <!-- which module to look for install/upgrade files in -->
31
+ <module>Mage_Eximbay</module>
32
+ </setup>
33
+ <!-- specify database connection for this resource -->
34
+ <connection>
35
+ <!-- do not create new connection, use predefined core setup connection -->
36
+ <use>core_setup</use>
37
+ </connection>
38
+ </eximbay_setup>
39
+ <eximbay_write>
40
+ <use>core_write</use>
41
+ </eximbay_write>
42
+ <eximbay_read>
43
+ <use>core_read</use>
44
+ </eximbay_read>
45
+ </resources>
46
+ <blocks>
47
+ <eximbay><class>Mage_Eximbay_Block</class></eximbay>
48
+ </blocks>
49
+ <payment>
50
+ <groups>
51
+ <xbay>Eximbay</xbay>
52
+ </groups>
53
+ </payment>
54
+ </global>
55
+
56
+ <frontend>
57
+ <secure_url>
58
+ <eximbay_processing>/eximbay/processing</eximbay_processing>
59
+ </secure_url>
60
+ <routers>
61
+ <eximbay>
62
+ <use>standard</use>
63
+ <args>
64
+ <module>Mage_Eximbay</module>
65
+ <frontName>eximbay</frontName>
66
+ </args>
67
+ </eximbay>
68
+ </routers>
69
+ <layout>
70
+ <updates>
71
+ <eximbay>
72
+ <file>eximbay.xml</file>
73
+ </eximbay>
74
+ </updates>
75
+ </layout>
76
+ </frontend>
77
+ <admin>
78
+ <routers>
79
+ <adminhtml>
80
+ <args>
81
+ <modules>
82
+ <eximbay after="Mage_Adminhtml">Mage_Eximbay</eximbay>
83
+ </modules>
84
+ </args>
85
+ </adminhtml>
86
+ </routers>
87
+ </admin>
88
+ <adminhtml>
89
+ <translate>
90
+ <modules>
91
+ <Mage_Eximbay>
92
+ <files>
93
+ <default>Mage_Eximbay.csv</default>
94
+ </files>
95
+ </Mage_Eximbay>
96
+ </modules>
97
+ </translate>
98
+ <layout>
99
+ <updates>
100
+ <eximbay>
101
+ <file>eximbay.xml</file>
102
+ </eximbay>
103
+ </updates>
104
+ </layout>
105
+ <acl>
106
+ <resources>
107
+ <admin>
108
+ <children>
109
+ <system>
110
+ <children>
111
+ <config>
112
+ <children>
113
+ <eximbay translate="title" module="eximbay">
114
+ <title>Eximbay Settings</title>
115
+ </eximbay>
116
+ </children>
117
+ </config>
118
+ </children>
119
+ </system>
120
+ </children>
121
+ </admin>
122
+ </resources>
123
+ </acl>
124
+ </adminhtml>
125
+
126
+ <!-- declare default configuration values for this module -->
127
+ <default>
128
+ <!-- 'payment' configuration section (tab) -->
129
+ <payment>
130
+ <!-- 'newmodule' configuration group (fieldset) -->
131
+
132
+ <eximbay_acc>
133
+ <group>xbay</group>
134
+ <active>1</active>
135
+ <model>eximbay/acc</model>
136
+ <title>Eximbay</title>
137
+ <allowspecific>0</allowspecific>
138
+ </eximbay_acc>
139
+ </payment>
140
+ <eximbay>
141
+ <settings>
142
+ <activationstatus>0</activationstatus>
143
+ </settings>
144
+ </eximbay>
145
+ </default>
146
+ </config>
app/code/core/Mage/Eximbay/etc/system.xml ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!-- /** *
3
+ * @title Magento -> Eximbay online payment
4
+ * @category Mage
5
+ * @package Mage_Eximbay
6
+ */ -->
7
+ <config>
8
+ <sections>
9
+ <!-- payment tab -->
10
+ <payment>
11
+ <groups>
12
+
13
+ <!-- newmodule fieldset -->
14
+ <eximbay translate="label" module="paygate">
15
+ <!-- will have title 'Cash On Delivery' -->
16
+ <label>Eximbay</label>
17
+ <!-- position between other payment methods -->
18
+ <sort_order>670</sort_order>
19
+ <!-- do not show this configuration options in store scope -->
20
+ <show_in_default>1</show_in_default>
21
+ <show_in_website>1</show_in_website>
22
+ <show_in_store>0</show_in_store>
23
+ <fields>
24
+ <!-- is this payment method active for the website? -->
25
+ <active translate="label">
26
+ <!-- label for the field -->
27
+ <label>Enabled</label>
28
+ <!-- input type for configuration value -->
29
+ <frontend_type>select</frontend_type>
30
+ <!-- model to take the option values from -->
31
+ <source_model>adminhtml/system_config_source_yesno</source_model>
32
+ <!-- field position -->
33
+ <sort_order>1</sort_order>
34
+ <!-- do not show this field in store scope -->
35
+ <show_in_default>1</show_in_default>
36
+ <show_in_website>1</show_in_website>
37
+ <show_in_store>0</show_in_store>
38
+ </active>
39
+ <order_status translate="label">
40
+ <label>New order status</label>
41
+ <frontend_type>select</frontend_type>
42
+ <source_model>adminhtml/system_config_source_order_status</source_model>
43
+ <!--<source_model>adminhtml/system_config_source_order_status_new</source_model>-->
44
+ <!--<source_model>adminhtml/system_config_source_order_status_processing</source_model>-->
45
+ <sort_order>4</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
+ </order_status>
50
+ <allowspecific translate="label">
51
+ <label>Payment from applicable countries</label>
52
+ <frontend_type>allowspecific</frontend_type>
53
+ <sort_order>50</sort_order>
54
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
55
+ <show_in_default>1</show_in_default>
56
+ <show_in_website>1</show_in_website>
57
+ <show_in_store>1</show_in_store>
58
+ </allowspecific>
59
+
60
+ <!--<submit_url>
61
+ <label>Gateway URL</label>
62
+ <frontend_type>text</frontend_type>
63
+ <sort_order>58</sort_order>
64
+ <show_in_default>1</show_in_default>
65
+ <show_in_website>1</show_in_website>
66
+ <show_in_store>0</show_in_store>
67
+ </submit_url>
68
+ -->
69
+ <specificcountry translate="label">
70
+ <label>Payment from Specific countries</label>
71
+ <frontend_type>multiselect</frontend_type>
72
+ <sort_order>51</sort_order>
73
+ <source_model>adminhtml/system_config_source_country</source_model>
74
+ <show_in_default>1</show_in_default>
75
+ <show_in_website>1</show_in_website>
76
+ <show_in_store>1</show_in_store>
77
+ </specificcountry>
78
+ <title translate="label">
79
+ <label>Title</label>
80
+ <frontend_type>text</frontend_type>
81
+ <sort_order>2</sort_order>
82
+ <show_in_default>1</show_in_default>
83
+ <show_in_website>1</show_in_website>
84
+ <show_in_store>0</show_in_store>
85
+ </title>
86
+ </fields>
87
+ </eximbay>
88
+ </groups>
89
+ </payment>
90
+ </sections>
91
+ </config>
app/code/core/Mage/Eximbay/etc/system.xml.bak ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!-- /** *
3
+ * @title Magento -> Eximbay online payment
4
+ * @category Mage
5
+ * @package Mage_Eximbay
6
+ */ -->
7
+ <config>
8
+ <sections>
9
+ <!-- payment tab -->
10
+ <payment>
11
+ <groups>
12
+
13
+ <!-- newmodule fieldset -->
14
+ <eximbay translate="label" module="paygate">
15
+ <!-- will have title 'Cash On Delivery' -->
16
+ <label>クレジット決済</label>
17
+ <!-- position between other payment methods -->
18
+ <sort_order>670</sort_order>
19
+ <!-- do not show this configuration options in store scope -->
20
+ <show_in_default>1</show_in_default>
21
+ <show_in_website>1</show_in_website>
22
+ <show_in_store>0</show_in_store>
23
+ <fields>
24
+ <!-- is this payment method active for the website? -->
25
+ <active translate="label">
26
+ <!-- label for the field -->
27
+ <label>Enabled</label>
28
+ <!-- input type for configuration value -->
29
+ <frontend_type>select</frontend_type>
30
+ <!-- model to take the option values from -->
31
+ <source_model>adminhtml/system_config_source_yesno</source_model>
32
+ <!-- field position -->
33
+ <sort_order>1</sort_order>
34
+ <!-- do not show this field in store scope -->
35
+ <show_in_default>1</show_in_default>
36
+ <show_in_website>1</show_in_website>
37
+ <show_in_store>0</show_in_store>
38
+ </active>
39
+ <order_status translate="label">
40
+ <label>New order status</label>
41
+ <frontend_type>select</frontend_type>
42
+ <source_model>adminhtml/system_config_source_order_status</source_model>
43
+ <!--<source_model>adminhtml/system_config_source_order_status_new</source_model>-->
44
+ <!--<source_model>adminhtml/system_config_source_order_status_processing</source_model>-->
45
+ <sort_order>4</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
+ </order_status>
50
+ <allowspecific translate="label">
51
+ <label>Payment from applicable countries</label>
52
+ <frontend_type>allowspecific</frontend_type>
53
+ <sort_order>50</sort_order>
54
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
55
+ <show_in_default>1</show_in_default>
56
+ <show_in_website>1</show_in_website>
57
+ <show_in_store>1</show_in_store>
58
+ </allowspecific>
59
+
60
+ <!--<submit_url>
61
+ <label>Gateway URL</label>
62
+ <frontend_type>text</frontend_type>
63
+ <sort_order>58</sort_order>
64
+ <show_in_default>1</show_in_default>
65
+ <show_in_website>1</show_in_website>
66
+ <show_in_store>0</show_in_store>
67
+ </submit_url>
68
+ -->
69
+ <specificcountry translate="label">
70
+ <label>Payment from Specific countries</label>
71
+ <frontend_type>multiselect</frontend_type>
72
+ <sort_order>51</sort_order>
73
+ <source_model>adminhtml/system_config_source_country</source_model>
74
+ <show_in_default>1</show_in_default>
75
+ <show_in_website>1</show_in_website>
76
+ <show_in_store>1</show_in_store>
77
+ </specificcountry>
78
+ <title translate="label">
79
+ <label>Title</label>
80
+ <frontend_type>text</frontend_type>
81
+ <sort_order>2</sort_order>
82
+ <show_in_default>1</show_in_default>
83
+ <show_in_website>1</show_in_website>
84
+ <show_in_store>0</show_in_store>
85
+ </title>
86
+ </fields>
87
+ </eximbay>
88
+ </groups>
89
+ </payment>
90
+ </sections>
91
+ </config>
app/code/core/Mage/Eximbay/sql/eximbay_setup/mysql4-install-0.1.0.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ <?php
3
+ // here are the table creation for this module e.g.:
4
+ $this->startSetup();
5
+ $this->run("HERE YOUR SQL");
6
+ $this->endSetup(); ?>
7
+ */
8
+
9
+ <?php
10
+
11
+ $code = 'eximbay';
12
+ $installer = $this;
13
+
14
+ ?>
app/code/core/Mage/Eximbay/sql/eximbay_setup/mysql4-ugrade-0.1.0-0.2.0.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ * NOTICE OF LICENSE
5
+ * This source file is subject to the Open Software License (OSL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://opensource.org/licenses/osl-3.0.php
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magentocommerce.com so we can send you a copy immediately.
12
+ * @category Mage
13
+ * @package Mage_Eximbay
14
+ */
15
+
16
+ /* @var $installer Mage_Core_Model_Resource_Setup */
17
+ $installer = $this;
18
+
19
+ $installer->startSetup();
20
+ $conn = $installer->getConnection();
21
+
22
+ $select = $conn
23
+ ->select()
24
+ ->from($this->getTable('core/config_data'), array('scope', 'scope_id', 'path', 'value'))
25
+ ->where(new Zend_Db_Expr("path LIKE 'eximbay/eximbay%'"));
26
+ $data = $conn->fetchAll($select);
27
+
28
+ if (!empty($data)) {
29
+ foreach ($data as $key => $value) {
30
+ $data[$key]['path'] = preg_replace('/^eximbay\/eximbay/', 'payment/eximbay', $value['path']);
31
+ }
32
+ $conn->insertOnDuplicate($this->getTable('core/config_data'), $data, array('path'));
33
+ $conn->delete($this->getTable('core/config_data'), new Zend_Db_Expr("path LIKE 'eximbay/eximbay%'"));
34
+ }
35
+ $installer->endSetup();
app/etc/modules/Mage_Eximbay.xml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <config>
2
+ <modules>
3
+ <!-- declare Mage_NewModule module -->
4
+ <Mage_Eximbay>
5
+ <!-- this is an active module -->
6
+ <active>true</active>
7
+ <!-- this module will be located in app/code/core code pool -->
8
+ <codePool>core</codePool>
9
+ <!-- specify dependencies for correct module loading order -->
10
+ <depends>
11
+ <Mage_Payment />
12
+ </depends>
13
+ <!-- declare module's version information for database updates -->
14
+ <!--<version>0.1.0</version> -->
15
+ </Mage_Eximbay>
16
+ </modules>
17
+ </config>
app/locale/en_US/Mage_Eximbay.csv ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "All Credit Cards / Visa, Mastercard, AMEX, JCB, Diners (powered by Eximbay) - International","All Credit Cards / Visa, Mastercard, AMEX, JCB, Diners (powered by Eximbay) - International"
2
+ "Merchant ID","Merchant ID"
3
+ "Enabled","Enabled"
4
+ "Loading secure payment page (SSL)","Loading secure payment page (SSL)"
5
+ "Eximbay","Eximbay"
6
+ "Eximbay Settings","Eximbay Settings"
7
+ "Eximbay Transaction ID: %s","Eximbay Transaction ID: %s"
8
+ "More information about Eximbay","More information about Eximbay"
9
+ "Order ID","Order ID"
10
+ "Payment failed.","Payment failed."
11
+ "Payment from Applicable Countries","Payment from Applicable Countries"
12
+ "Payment from Specific Countries","Payment from Specific Countries"
13
+ "Payment has not been processed yet.","Payment has not been processed yet."
14
+ "Payment was canceled.","Payment was canceled."
15
+ "Please pay your order now","Please pay your order now"
16
+ "Powered by Eximbay","Powered by Eximbay"
17
+ "Sort Order","Sort Order"
18
+ "The amount has been authorized and captured by Eximbay.","The amount has been authorized and captured by Eximbay."
19
+ "The customer was redirected to Eximbay.","The customer was redirected to Eximbay."
20
+ "The order has been canceled.","The order has been canceled."
21
+ "Title","Title"
22
+ "You will be redirected to our secure payment page when you place an order.","You will be redirected to our secure payment page when you place an order."
package.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Eximbay</name>
4
+ <version>1.0.0</version>
5
+ <stability>alpha</stability>
6
+ <license>GNU General Public License (GPL)</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Eximbay payment method</summary>
10
+ <description>Eximbay payment method</description>
11
+ <notes>version 1.0.0</notes>
12
+ <authors><author><name>Uuganbayar Choijiljav</name><user>prokod1</user><email>prokod@kr.net</email></author></authors>
13
+ <date>2013-10-24</date>
14
+ <time>08:55:29</time>
15
+ <contents><target name="mageetc"><dir name="modules"><file name="Mage_Eximbay.xml" hash="78ce59927bffa7163be76a212b7a8a05"/></dir></target><target name="magecore"><dir name="Mage"><dir name="Eximbay"><dir name="Block"><file name="Form.php" hash="c136c409bd2da338b3f7b8556d3fe4d5"/><file name="Info.php" hash="c939936fc479ce1a65c58c2e98e70fce"/><file name="Jsinit.php" hash="06148fcee5d942468dcee0fcc886270d"/><file name="Payment.php" hash="cbf3b8d0bfe95d03289869e3838d4f45"/><file name="Placeform.php" hash="999a5d5c9f4fdbd01dcbcb0591e90539"/><file name="Redirect.php" hash="e608839da14837552ef7ae3afaf3e98d"/></dir><dir name="Helper"><file name="Data.php" hash="6324208aca4be67ddb55a1e4480d34ac"/></dir><dir name="Model"><file name="Abstract.php" hash="d77ac7d2a9def4f230def803c61bf263"/><file name="Abstract.php.bak" hash="effb3df9f99b070500508f357563e33c"/><file name="Acc.php" hash="7befc287331bd799c52eb1fb4998ea1e"/><file name="Event.php" hash="b92cac57fec274aa193a77d0b0bf34b4"/></dir><dir name="controllers"><file name="EximbayController.php" hash="2bbe77335c2c88b3e5f9443d647311b5"/><file name="ProcessingController.php" hash="0a56a1ce97ddf2f1ddd03c6d2a22edd0"/></dir><dir name="etc"><file name="config.xml" hash="cf7402d7078eadbd12c606d131f14c2d"/><file name="system.xml" hash="0cb924ab86067eaf929d0b745331cf26"/><file name="system.xml.bak" hash="c2bd31c555982f275634b566685a23dd"/></dir><dir name="sql"><dir name="eximbay_setup"><file name="mysql4-install-0.1.0.php" hash="e5ac79ae72b8235c962bf48bc548b263"/><file name="mysql4-ugrade-0.1.0-0.2.0.php" hash="8318415b1af458fb86c449c502b8eda0"/></dir></dir></dir></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Mage_Eximbay.csv" hash="dcea44085c5e6f5bd41b49eb9333863d"/></dir></dir></target><target name="magelocal"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="eximbay.xml" hash=""/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="eximbay.xml" hash=""/></dir></dir></dir></dir></target></contents>
16
+ <compatible/>
17
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.5.0.0</min><max>1.8</max></package><extension><name>Core</name><min>1.5.0.0</min><max>1.8</max></extension></required></dependencies>
18
+ </package>