Version Notes
- Added an option to disable phone in admin backend. This will help prevent issues related to phone numbers.
- All configurations can now be done at store level.
- Updated PHP version to 5.6.20
Download this release
Release Info
| Developer | Instamojo |
| Extension | Instamojo_Imojo |
| Version | 0.1.3 |
| Comparing to | |
| See all releases | |
Code changes from version 0.1.2 to 0.1.3
app/code/community/Instamojo/Imojo/controllers/PaymentController.php
CHANGED
|
@@ -21,7 +21,7 @@ class Instamojo_Imojo_PaymentController extends Mage_Core_Controller_Front_Actio
|
|
| 21 |
$amount = $order-> getBaseGrandTotal();
|
| 22 |
$email = $order->getCustomerEmail();
|
| 23 |
$name = $order->getCustomerName();
|
| 24 |
-
$phone = $order->getBillingAddress()->getTelephone();
|
| 25 |
$rmTranid = time();
|
| 26 |
|
| 27 |
$index = strpos($amount, '.');
|
|
@@ -37,13 +37,16 @@ class Instamojo_Imojo_PaymentController extends Mage_Core_Controller_Front_Actio
|
|
| 37 |
$auth_token = Mage::getStoreConfig('payment/imojo/auth_token', $storeId);
|
| 38 |
$private_salt = Mage::getStoreConfig('payment/imojo/private_salt', $storeId);
|
| 39 |
$custom_field = Mage::getStoreConfig('payment/imojo/custom_field', $storeId);
|
|
|
|
| 40 |
|
| 41 |
-
Mage::log("Data from Backend: $url | $api_key | $auth_token | $private_salt | $custom_field", Zend_Log::DEBUG, $this->LOG_FILE_NAME);
|
| 42 |
|
| 43 |
$data = Array();
|
| 44 |
$data['data_email'] = substr($email, 0, 75);
|
| 45 |
$data['data_name'] = substr($name, 0, 20);
|
| 46 |
-
|
|
|
|
|
|
|
| 47 |
$data['data_amount'] = $amount;
|
| 48 |
$data['data_' . $custom_field] = $rmTranid . "-". $orderId;
|
| 49 |
|
|
@@ -62,11 +65,18 @@ class Instamojo_Imojo_PaymentController extends Mage_Core_Controller_Front_Actio
|
|
| 62 |
$message = implode('|', $data);
|
| 63 |
$sign = hash_hmac("sha1", $message, $private_salt);
|
| 64 |
$data['data_sign'] = $sign;
|
|
|
|
| 65 |
|
| 66 |
Mage::log("Signature is: $sign", Zend_Log::DEBUG, $this->LOG_FILE_NAME);
|
| 67 |
|
| 68 |
-
|
| 69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
$link.="&data_amount=$amount&data_name=$name&data_email=$email&data_phone=$phone&data_$custom_field=$custom_field&data_sign=$sign";
|
| 71 |
$payment = $order->getPayment();
|
| 72 |
$payment->setTransactionId($rmTranid); // Make it unique.
|
|
@@ -84,7 +94,7 @@ class Instamojo_Imojo_PaymentController extends Mage_Core_Controller_Front_Actio
|
|
| 84 |
$order->save();
|
| 85 |
|
| 86 |
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'imojo', array('template' => 'imojo/redirect.phtml'))
|
| 87 |
-
->assign(array_merge($data, array('url'=>$url, 'custom_field_name'=>'data_' . $custom_field)));
|
| 88 |
$this->getLayout()->getBlock('content')->append($block);
|
| 89 |
$this->renderLayout();
|
| 90 |
} catch (Exception $e){
|
|
@@ -229,4 +239,4 @@ class Instamojo_Imojo_PaymentController extends Mage_Core_Controller_Front_Actio
|
|
| 229 |
return $res;
|
| 230 |
}
|
| 231 |
|
| 232 |
-
}
|
| 21 |
$amount = $order-> getBaseGrandTotal();
|
| 22 |
$email = $order->getCustomerEmail();
|
| 23 |
$name = $order->getCustomerName();
|
| 24 |
+
$phone = substr(str_replace(' ', '', $order->getBillingAddress()->getTelephone()), 0, 20);
|
| 25 |
$rmTranid = time();
|
| 26 |
|
| 27 |
$index = strpos($amount, '.');
|
| 37 |
$auth_token = Mage::getStoreConfig('payment/imojo/auth_token', $storeId);
|
| 38 |
$private_salt = Mage::getStoreConfig('payment/imojo/private_salt', $storeId);
|
| 39 |
$custom_field = Mage::getStoreConfig('payment/imojo/custom_field', $storeId);
|
| 40 |
+
$disable_phone = boolval(Mage::getStoreConfig('payment/imojo/disable_phone', $storeId));
|
| 41 |
|
| 42 |
+
Mage::log("Data from Backend: $url | $api_key | $auth_token | $private_salt | $custom_field | $disable_phone", Zend_Log::DEBUG, $this->LOG_FILE_NAME);
|
| 43 |
|
| 44 |
$data = Array();
|
| 45 |
$data['data_email'] = substr($email, 0, 75);
|
| 46 |
$data['data_name'] = substr($name, 0, 20);
|
| 47 |
+
if(!$disable_phone){
|
| 48 |
+
$data['data_phone'] = $phone;
|
| 49 |
+
}
|
| 50 |
$data['data_amount'] = $amount;
|
| 51 |
$data['data_' . $custom_field] = $rmTranid . "-". $orderId;
|
| 52 |
|
| 65 |
$message = implode('|', $data);
|
| 66 |
$sign = hash_hmac("sha1", $message, $private_salt);
|
| 67 |
$data['data_sign'] = $sign;
|
| 68 |
+
$data['data_phone'] = $phone;
|
| 69 |
|
| 70 |
Mage::log("Signature is: $sign", Zend_Log::DEBUG, $this->LOG_FILE_NAME);
|
| 71 |
|
| 72 |
+
if(!$disable_phone){
|
| 73 |
+
$link = $url . "?embed=form&data_readonly=data_phone&";
|
| 74 |
+
}
|
| 75 |
+
else{
|
| 76 |
+
$link = $url . "?";
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
$link .= "data_readonly=data_email&data_readonly=data_amount&data_readonly=data_name&data_readonly=data_$custom_field&data_hidden=data_$custom_field";
|
| 80 |
$link.="&data_amount=$amount&data_name=$name&data_email=$email&data_phone=$phone&data_$custom_field=$custom_field&data_sign=$sign";
|
| 81 |
$payment = $order->getPayment();
|
| 82 |
$payment->setTransactionId($rmTranid); // Make it unique.
|
| 94 |
$order->save();
|
| 95 |
|
| 96 |
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'imojo', array('template' => 'imojo/redirect.phtml'))
|
| 97 |
+
->assign(array_merge($data, array('url'=>$url, 'custom_field_name'=>'data_' . $custom_field, 'disable_phone'=> $disable_phone)));
|
| 98 |
$this->getLayout()->getBlock('content')->append($block);
|
| 99 |
$this->renderLayout();
|
| 100 |
} catch (Exception $e){
|
| 239 |
return $res;
|
| 240 |
}
|
| 241 |
|
| 242 |
+
}
|
app/code/community/Instamojo/Imojo/etc/system.xml
CHANGED
|
@@ -13,7 +13,7 @@
|
|
| 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>
|
| 17 |
<fields>
|
| 18 |
<!-- is this payment method active for the website? -->
|
| 19 |
<active translate="label">
|
|
@@ -28,7 +28,7 @@
|
|
| 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>
|
| 32 |
</active>
|
| 33 |
<order_status translate="label">
|
| 34 |
<label>New order status</label>
|
|
@@ -37,7 +37,7 @@
|
|
| 37 |
<sort_order>4</sort_order>
|
| 38 |
<show_in_default>1</show_in_default>
|
| 39 |
<show_in_website>1</show_in_website>
|
| 40 |
-
<show_in_store>
|
| 41 |
</order_status>
|
| 42 |
<api_key translate="label">
|
| 43 |
<label>API Key</label>
|
|
@@ -45,7 +45,7 @@
|
|
| 45 |
<sort_order>57</sort_order>
|
| 46 |
<show_in_default>1</show_in_default>
|
| 47 |
<show_in_website>1</show_in_website>
|
| 48 |
-
<show_in_store>
|
| 49 |
</api_key>
|
| 50 |
<auth_token translate="label">
|
| 51 |
<label>Auth Token</label>
|
|
@@ -53,7 +53,7 @@
|
|
| 53 |
<sort_order>58</sort_order>
|
| 54 |
<show_in_default>1</show_in_default>
|
| 55 |
<show_in_website>1</show_in_website>
|
| 56 |
-
<show_in_store>
|
| 57 |
</auth_token>
|
| 58 |
<private_salt translate="label">
|
| 59 |
<label>Private salt</label>
|
|
@@ -61,7 +61,7 @@
|
|
| 61 |
<sort_order>59</sort_order>
|
| 62 |
<show_in_default>1</show_in_default>
|
| 63 |
<show_in_website>1</show_in_website>
|
| 64 |
-
<show_in_store>
|
| 65 |
</private_salt>
|
| 66 |
<payment_url translate="label">
|
| 67 |
<label>Payment URL</label>
|
|
@@ -69,15 +69,26 @@
|
|
| 69 |
<sort_order>60</sort_order>
|
| 70 |
<show_in_default>1</show_in_default>
|
| 71 |
<show_in_website>1</show_in_website>
|
| 72 |
-
<show_in_store>
|
| 73 |
</payment_url>
|
| 74 |
<custom_field translate="label">
|
| 75 |
<label>Custom Field</label>
|
| 76 |
<frontend_type>text</frontend_type>
|
| 77 |
<sort_order>61</sort_order>
|
| 78 |
<show_in_default>1</show_in_default>
|
| 79 |
-
<show_in_store>
|
| 80 |
</custom_field>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
<payment_action translate="label">
|
| 82 |
<label>Payment Action</label>
|
| 83 |
<frontend_type>select</frontend_type>
|
|
@@ -85,7 +96,7 @@
|
|
| 85 |
<sort_order>2</sort_order>
|
| 86 |
<show_in_default>1</show_in_default>
|
| 87 |
<show_in_website>1</show_in_website>
|
| 88 |
-
<show_in_store>
|
| 89 |
</payment_action>
|
| 90 |
</fields>
|
| 91 |
</imojo>
|
| 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>1</show_in_store>
|
| 17 |
<fields>
|
| 18 |
<!-- is this payment method active for the website? -->
|
| 19 |
<active translate="label">
|
| 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>1</show_in_store>
|
| 32 |
</active>
|
| 33 |
<order_status translate="label">
|
| 34 |
<label>New order status</label>
|
| 37 |
<sort_order>4</sort_order>
|
| 38 |
<show_in_default>1</show_in_default>
|
| 39 |
<show_in_website>1</show_in_website>
|
| 40 |
+
<show_in_store>1</show_in_store>
|
| 41 |
</order_status>
|
| 42 |
<api_key translate="label">
|
| 43 |
<label>API Key</label>
|
| 45 |
<sort_order>57</sort_order>
|
| 46 |
<show_in_default>1</show_in_default>
|
| 47 |
<show_in_website>1</show_in_website>
|
| 48 |
+
<show_in_store>1</show_in_store>
|
| 49 |
</api_key>
|
| 50 |
<auth_token translate="label">
|
| 51 |
<label>Auth Token</label>
|
| 53 |
<sort_order>58</sort_order>
|
| 54 |
<show_in_default>1</show_in_default>
|
| 55 |
<show_in_website>1</show_in_website>
|
| 56 |
+
<show_in_store>1</show_in_store>
|
| 57 |
</auth_token>
|
| 58 |
<private_salt translate="label">
|
| 59 |
<label>Private salt</label>
|
| 61 |
<sort_order>59</sort_order>
|
| 62 |
<show_in_default>1</show_in_default>
|
| 63 |
<show_in_website>1</show_in_website>
|
| 64 |
+
<show_in_store>1</show_in_store>
|
| 65 |
</private_salt>
|
| 66 |
<payment_url translate="label">
|
| 67 |
<label>Payment URL</label>
|
| 69 |
<sort_order>60</sort_order>
|
| 70 |
<show_in_default>1</show_in_default>
|
| 71 |
<show_in_website>1</show_in_website>
|
| 72 |
+
<show_in_store>1</show_in_store>
|
| 73 |
</payment_url>
|
| 74 |
<custom_field translate="label">
|
| 75 |
<label>Custom Field</label>
|
| 76 |
<frontend_type>text</frontend_type>
|
| 77 |
<sort_order>61</sort_order>
|
| 78 |
<show_in_default>1</show_in_default>
|
| 79 |
+
<show_in_store>1</show_in_store>
|
| 80 |
</custom_field>
|
| 81 |
+
<disable_phone translate="label">
|
| 82 |
+
<label>Disable Phone</label>
|
| 83 |
+
<comment>If disabled then user will have to enter phone number on Instamojo again. Useful in preventing phone number errors.</comment>
|
| 84 |
+
<frontend_type>select</frontend_type>
|
| 85 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 86 |
+
<sort_order>10</sort_order>
|
| 87 |
+
<sort_order>62</sort_order>
|
| 88 |
+
<show_in_default>1</show_in_default>
|
| 89 |
+
<show_in_website>1</show_in_website>
|
| 90 |
+
<show_in_store>1</show_in_store>
|
| 91 |
+
</disable_phone>
|
| 92 |
<payment_action translate="label">
|
| 93 |
<label>Payment Action</label>
|
| 94 |
<frontend_type>select</frontend_type>
|
| 96 |
<sort_order>2</sort_order>
|
| 97 |
<show_in_default>1</show_in_default>
|
| 98 |
<show_in_website>1</show_in_website>
|
| 99 |
+
<show_in_store>1</show_in_store>
|
| 100 |
</payment_action>
|
| 101 |
</fields>
|
| 102 |
</imojo>
|
app/design/frontend/base/default/template/imojo/redirect.phtml
CHANGED
|
@@ -21,11 +21,19 @@ $custom_field = $$custom_field_name;
|
|
| 21 |
<input type="hidden" name="data_amount" value="<?php echo $data_amount;?>">
|
| 22 |
<input type="hidden" name="data_email" value="<?php echo $data_email;?>">
|
| 23 |
<input type="hidden" name="data_name" value="<?php echo $data_name;?>">
|
| 24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
<input type="hidden" name="data_readonly" value="data_email">
|
| 26 |
<input type="hidden" name="data_readonly" value="data_name">
|
| 27 |
<input type="hidden" name="data_readonly" value="data_amount">
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
<input type="hidden" name="data_readonly" value="<?php echo $custom_field_name;?>">
|
| 30 |
<input type="hidden" name="data_hidden" value="<?php echo $custom_field_name;?>">
|
| 31 |
<input type="hidden" name="data_sign" value="<?php echo $data_sign;?>">
|
| 21 |
<input type="hidden" name="data_amount" value="<?php echo $data_amount;?>">
|
| 22 |
<input type="hidden" name="data_email" value="<?php echo $data_email;?>">
|
| 23 |
<input type="hidden" name="data_name" value="<?php echo $data_name;?>">
|
| 24 |
+
<?php
|
| 25 |
+
if(!$disable_phone){
|
| 26 |
+
echo "<input type='hidden' name='data_phone' value='$data_phone'>";
|
| 27 |
+
}
|
| 28 |
+
?>
|
| 29 |
<input type="hidden" name="data_readonly" value="data_email">
|
| 30 |
<input type="hidden" name="data_readonly" value="data_name">
|
| 31 |
<input type="hidden" name="data_readonly" value="data_amount">
|
| 32 |
+
<?php
|
| 33 |
+
if(!$disable_phone){
|
| 34 |
+
echo '<input type="hidden" name="data_readonly" value="data_phone">';
|
| 35 |
+
}
|
| 36 |
+
?>
|
| 37 |
<input type="hidden" name="data_readonly" value="<?php echo $custom_field_name;?>">
|
| 38 |
<input type="hidden" name="data_hidden" value="<?php echo $custom_field_name;?>">
|
| 39 |
<input type="hidden" name="data_sign" value="<?php echo $data_sign;?>">
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Instamojo_Imojo</name>
|
| 4 |
-
<version>0.1.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/MIT">MIT</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -70,12 +70,13 @@ This is what we are going to enter in the plugin's settings in Magento backend.&
|
|
| 70 |
<br />
|
| 71 |

|
| 72 |
For detailed steps with screenshots visit our GitHub page: https://github.com/Instamojo/Instamojo-Magento</description>
|
| 73 |
-
<notes>-
|
| 74 |
-
-
|
|
|
|
| 75 |
<authors><author><name>Instamojo</name><user>Instamojo</user><email>dev@instamojo.com</email></author></authors>
|
| 76 |
-
<date>2016-
|
| 77 |
-
<time>
|
| 78 |
-
<contents><target name="magecommunity"><dir name="Instamojo"><dir name="Imojo"><dir name="Helper"><file name="Data.php" hash="e53c6598fa917d8791e046b20d76d221"/></dir><dir name="Model"><file name="PaymentMethod.php" hash="43002098206ee603c86b0b166d359f11"/></dir><dir name="controllers"><file name="PaymentController.php" hash="
|
| 79 |
<compatible/>
|
| 80 |
-
<dependencies><required><php><min>5.2.0</min><max>5.6.
|
| 81 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Instamojo_Imojo</name>
|
| 4 |
+
<version>0.1.3</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/MIT">MIT</license>
|
| 7 |
<channel>community</channel>
|
| 70 |
<br />
|
| 71 |

|
| 72 |
For detailed steps with screenshots visit our GitHub page: https://github.com/Instamojo/Instamojo-Magento</description>
|
| 73 |
+
<notes>- Added an option to disable phone in admin backend. This will help prevent issues related to phone numbers.
|
| 74 |
+
- All configurations can now be done at store level.
|
| 75 |
+
- Updated PHP version to 5.6.20</notes>
|
| 76 |
<authors><author><name>Instamojo</name><user>Instamojo</user><email>dev@instamojo.com</email></author></authors>
|
| 77 |
+
<date>2016-04-06</date>
|
| 78 |
+
<time>08:26:01</time>
|
| 79 |
+
<contents><target name="magecommunity"><dir name="Instamojo"><dir name="Imojo"><dir name="Helper"><file name="Data.php" hash="e53c6598fa917d8791e046b20d76d221"/></dir><dir name="Model"><file name="PaymentMethod.php" hash="43002098206ee603c86b0b166d359f11"/></dir><dir name="controllers"><file name="PaymentController.php" hash="e6483c7d9a32370e62897f0afb4577dc"/></dir><dir name="etc"><file name="config.xml" hash="b829d8aa887ce2461fb050cecbce4099"/><file name="system.xml" hash="cb0e00d7cd4a7d7fb33c58bd79faf0a4"/></dir><file name=".DS_Store" hash="822777d708619165d544d3256174adc2"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Instamojo_Imojo.xml" hash="9a80f70915e53671e26ea6476fdbe6a4"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="imojo"><file name="deposit_failure.phtml" hash="a01f8d2f503ccaf5d3f6a4682b9caf2b"/><file name="deposit_success.phtml" hash="6952afc4383fbf0eab18ee94e185f329"/><file name="redirect.phtml" hash="4e2252a9605cfbc035cc9d809498f333"/><file name="success.phtml" hash="ad5d2318608673f5ba6ea85bd784198f"/></dir></dir></dir></dir></dir></target></contents>
|
| 80 |
<compatible/>
|
| 81 |
+
<dependencies><required><php><min>5.2.0</min><max>5.6.20</max></php></required></dependencies>
|
| 82 |
</package>
|
