Version Notes
N/A
Download this release
Release Info
| Developer | Zapper |
| Extension | zapper-deeplinking |
| Version | 1.0.1 |
| Comparing to | |
| See all releases | |
Version 1.0.1
- app/code/community/Zapper/.DS_Store +0 -0
- app/code/community/Zapper/DeepLinking/.DS_Store +0 -0
- app/code/community/Zapper/DeepLinking/Block/Form/DeepLinking.php +16 -0
- app/code/community/Zapper/DeepLinking/Block/Info/DeepLinking.php +16 -0
- app/code/community/Zapper/DeepLinking/Helper/Data.php +3 -0
- app/code/community/Zapper/DeepLinking/Model/DeepLinking.php +60 -0
- app/code/community/Zapper/DeepLinking/controllers/ProcessingController.php +118 -0
- app/code/community/Zapper/DeepLinking/etc/config.xml +55 -0
- app/code/community/Zapper/DeepLinking/etc/system.xml +128 -0
- app/design/frontend/base/default/layout/zapper.xml +15 -0
- app/design/frontend/base/default/template/zapper_deeplinking/form/deeplinking.phtml +17 -0
- app/etc/modules/Zapper_DeepLinking.xml +13 -0
- package.xml +18 -0
app/code/community/Zapper/.DS_Store
ADDED
|
Binary file
|
app/code/community/Zapper/DeepLinking/.DS_Store
ADDED
|
Binary file
|
app/code/community/Zapper/DeepLinking/Block/Form/DeepLinking.php
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Zapper_DeepLinking_Block_Form_DeepLinking extends Mage_Payment_Block_Form
|
| 3 |
+
{
|
| 4 |
+
protected function _construct()
|
| 5 |
+
{
|
| 6 |
+
parent::_construct();
|
| 7 |
+
$this->setTemplate( 'zapper_deeplinking/form/deeplinking.phtml' );
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
public function getOrder() {
|
| 11 |
+
$order = Mage::getModel('sales/order');
|
| 12 |
+
$session = Mage::getSingleton('checkout/session');
|
| 13 |
+
$order->loadByIncrementId($session->getLastRealOrderId());
|
| 14 |
+
return $order;
|
| 15 |
+
}
|
| 16 |
+
}
|
app/code/community/Zapper/DeepLinking/Block/Info/DeepLinking.php
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Zapper_DeepLinking_Block_Info_DeepLinking extends Mage_Payment_Block_Info
|
| 3 |
+
{
|
| 4 |
+
protected function _prepareSpecificInformation($transport = null)
|
| 5 |
+
{
|
| 6 |
+
if (null !== $this->_paymentSpecificInformation) {
|
| 7 |
+
return $this->_paymentSpecificInformation;
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
$data = array();
|
| 11 |
+
|
| 12 |
+
$transport = parent::_prepareSpecificInformation($transport);
|
| 13 |
+
|
| 14 |
+
return $transport->setData(array_merge($data, $transport->getData()));
|
| 15 |
+
}
|
| 16 |
+
}
|
app/code/community/Zapper/DeepLinking/Helper/Data.php
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Zapper_DeepLinking_Helper_Data extends Mage_Payment_Helper_Data {
|
| 3 |
+
}
|
app/code/community/Zapper/DeepLinking/Model/DeepLinking.php
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Zapper_DeepLinking_Model_DeepLinking extends Mage_Payment_Model_Method_Abstract
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'zapperdeeplinking';
|
| 5 |
+
protected $_formBlockType = 'deeplinking/form_deepLinking';
|
| 6 |
+
protected $_canCapture = true;
|
| 7 |
+
|
| 8 |
+
public function getOrderPlaceRedirectUrl()
|
| 9 |
+
{
|
| 10 |
+
return Mage::getUrl('zapperdeeplinking/processing/redirect', array('_secure' => false));
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
public function getMerchantID() {
|
| 14 |
+
return Mage::getStoreConfig('payment/zapperdeeplinking/merchant_id');
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
public function getSiteID() {
|
| 18 |
+
return Mage::getStoreConfig('payment/zapperdeeplinking/site_id');
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
public function getPosKey() {
|
| 22 |
+
return Mage::getStoreConfig('payment/zapperdeeplinking/pos_key');
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
public function getPosSecret() {
|
| 26 |
+
return Mage::getStoreConfig('payment/zapperdeeplinking/pos_secret');
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
public function getAppName() {
|
| 30 |
+
return Mage::getStoreConfig('payment/zapperdeeplinking/app_name');
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
public function getOrderStatus() {
|
| 34 |
+
return $this->getConfigData('order_status');
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
public function getOrderPlacedEmail() {
|
| 38 |
+
return $this->getConfigData('order_placed_email');
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
public function getOrderSuccessfulEmail() {
|
| 42 |
+
return $this->getConfigData('order_successful_email');
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
public function getOrderFailedEmail() {
|
| 46 |
+
return $this->getConfigData('order_failed_email');
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
public function getZapperUrl() {
|
| 50 |
+
// return "https://zapapi.zapzap.mobi/ecommerce/api/v2/";
|
| 51 |
+
return "https://zapqa.zapzapadmin.com/qa-zapperpointofsale/api/v2/";
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
public function getOrder() {
|
| 55 |
+
$order = Mage::getModel('sales/order');
|
| 56 |
+
$session = Mage::getSingleton('checkout/session');
|
| 57 |
+
$order->loadByIncrementId($session->getLastRealOrderId());
|
| 58 |
+
return $order;
|
| 59 |
+
}
|
| 60 |
+
}
|
app/code/community/Zapper/DeepLinking/controllers/ProcessingController.php
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Zapper_DeepLinking_ProcessingController extends Mage_Core_Controller_Front_Action
|
| 3 |
+
{
|
| 4 |
+
public function testAction() {
|
| 5 |
+
$deeplinking = Mage::getModel('deeplinking/deeplinking');
|
| 6 |
+
|
| 7 |
+
$order = $deeplinking->getOrder();
|
| 8 |
+
|
| 9 |
+
$fields['merchantId'] = $deeplinking->getMerchantID();
|
| 10 |
+
$fields['siteId'] = $deeplinking->getSiteID();
|
| 11 |
+
$fields['amount'] = number_format($order->getGrandTotal(),2,'','');
|
| 12 |
+
$fields['amountType'] = 11; // read only
|
| 13 |
+
$fields['tip'] = 0; // not built into STQ yet
|
| 14 |
+
$fields['merchantReference'] = $order->getRealOrderId();
|
| 15 |
+
$fields['shortMerchantName'] = Mage::app()->getStore()->getName();
|
| 16 |
+
$fields['currencyISOCode'] = Mage::app()->getStore()->getBaseCurrencyCode(); // ZAR
|
| 17 |
+
|
| 18 |
+
$urlParams = urlencode("http://2.zap.pe?t=6&");
|
| 19 |
+
$urlParams .= "i=" . urlencode($fields['merchantId'] .":" . $fields['siteId'] . ":7[34|" . $fields['amount'] . "|" . $fields['amountType'] . ",66|" . $fields['merchantReference'] . "|10,60|1:10[38|" . $fields['shortMerchantName'] . ",39|" . $fields['currencyISOCode']);
|
| 20 |
+
$urlParams .= "&appName=" . urlencode($fields['appName']);
|
| 21 |
+
$urlParams .= "&successCallbackURL=" . urlencode(Mage::getBaseUrl() . "zapperdeeplinking/processing/success/");
|
| 22 |
+
$urlParams .= "&failureCallbackURL=" . urlencode(Mage::getBaseUrl() . "zapperdeeplinking/processing/failure/");
|
| 23 |
+
|
| 24 |
+
echo $urlParams;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
public function setZapperIdAction() {
|
| 28 |
+
$zapperId = $this->getRequest()->getParam('id');
|
| 29 |
+
Mage::getSingleton('core/session')->setZapperId($zapperId);
|
| 30 |
+
echo Mage::getSingleton('core/session')->getZapperId();
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
public function redirectAction()
|
| 34 |
+
{
|
| 35 |
+
$deeplinking = Mage::getModel('deeplinking/deepLinking');
|
| 36 |
+
$order = $deeplinking->getOrder();
|
| 37 |
+
|
| 38 |
+
//Get Zapper payment Id
|
| 39 |
+
$zapperPaymentId = Mage::getSingleton('core/session')->getZapperId();
|
| 40 |
+
Mage::getSingleton('core/session')->setZapperId(0);
|
| 41 |
+
if ($zapperPaymentId == "") {
|
| 42 |
+
$this->_redirectUrl(Mage::getBaseUrl() . "zapperdeeplinking/processing/failure/");
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
$merchantId = $deeplinking->getMerchantID();
|
| 46 |
+
$siteId = $deeplinking->getSiteID();
|
| 47 |
+
$posKey = $deeplinking->getPosKey();
|
| 48 |
+
$posSecret = $deeplinking->getPosSecret();
|
| 49 |
+
$signature = $this->createSignature($posKey, $posSecret);
|
| 50 |
+
|
| 51 |
+
$url = $deeplinking->getZapperUrl() . '/merchants/' . $merchantId . '/sites/' . $siteId . '/payments/' . $zapperPaymentId;
|
| 52 |
+
|
| 53 |
+
$opts = array(
|
| 54 |
+
'http'=>array(
|
| 55 |
+
'method'=>"GET",
|
| 56 |
+
'header'=>"SiteId: " . $siteId ."\r\n" .
|
| 57 |
+
"PosKey: " . $posKey . "\r\n" .
|
| 58 |
+
"Signature: " . $signature . "\r\n"
|
| 59 |
+
)
|
| 60 |
+
);
|
| 61 |
+
|
| 62 |
+
$context = stream_context_create($opts);
|
| 63 |
+
|
| 64 |
+
// Open the file using the HTTP headers set above
|
| 65 |
+
$file = file_get_contents($url, false, $context);
|
| 66 |
+
|
| 67 |
+
$zapperOrder = json_decode($file);
|
| 68 |
+
|
| 69 |
+
if ($zapperOrder->data == null || count($zapperOrder->data) == 0) {
|
| 70 |
+
// echo "failure";
|
| 71 |
+
$this->_redirectUrl(Mage::getBaseUrl() . "zapperdeeplinking/processing/failure/");
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
$zapperPayment = $zapperOrder->data[0];
|
| 75 |
+
$lastOrder = $deeplinking->getOrder();
|
| 76 |
+
|
| 77 |
+
if ($zapperPayment->ReceiptStatus == 2) {
|
| 78 |
+
$this->_redirectUrl(Mage::getBaseUrl() . "zapperdeeplinking/processing/success");
|
| 79 |
+
} else {
|
| 80 |
+
$this->_redirectUrl(Mage::getBaseUrl() . "zapperdeeplinking/processing/failure");
|
| 81 |
+
}
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
public function successAction()
|
| 85 |
+
{
|
| 86 |
+
$deeplinking = Mage::getModel('deeplinking/deepLinking');
|
| 87 |
+
$order = $deeplinking->getOrder();
|
| 88 |
+
|
| 89 |
+
$invoice = $order->prepareInvoice();
|
| 90 |
+
$invoice->register()->capture();
|
| 91 |
+
$order->addRelatedObject($invoice);
|
| 92 |
+
$email = ($deeplinking->getOrderSuccessfulEmail() ? true : false);
|
| 93 |
+
$order->addStatusToHistory(Mage_Sales_Model_Order::STATE_PROCESSING,'The user completed payment with the Zapper App',$email);
|
| 94 |
+
if ($email)
|
| 95 |
+
$deeplinking->sendPaymentSuccessfulEmail($order);
|
| 96 |
+
|
| 97 |
+
$order->save();
|
| 98 |
+
|
| 99 |
+
$this->_redirect('checkout/onepage/success', array('_secure'=> false));
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
public function failureAction()
|
| 103 |
+
{
|
| 104 |
+
$deeplinking = Mage::getModel('deeplinking/deepLinking');
|
| 105 |
+
$order = $deeplinking->getOrder();
|
| 106 |
+
$email = ($deeplinking->getOrderFailedEmail() ? true : false);
|
| 107 |
+
$order->addStatusToHistory(Mage_Sales_Model_Order::STATE_CANCELED,'The user failed to make payment with the Zapper App.',$email);
|
| 108 |
+
if ($email)
|
| 109 |
+
$deeplinking->sendPaymentFailedEmail($order);
|
| 110 |
+
|
| 111 |
+
$order->save();
|
| 112 |
+
$this->_redirect('checkout/onepage/failure', array('_secure'=> false));
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
private function createSignature($posKey, $posSecret) {
|
| 116 |
+
return hash('sha256', strtoupper($posSecret . '&' . $posKey));
|
| 117 |
+
}
|
| 118 |
+
}
|
app/code/community/Zapper/DeepLinking/etc/config.xml
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Zapper_DeepLinking>
|
| 5 |
+
<version>0.0.1</version>
|
| 6 |
+
</Zapper_DeepLinking>
|
| 7 |
+
</modules>
|
| 8 |
+
<global>
|
| 9 |
+
<helpers>
|
| 10 |
+
<deeplinking>
|
| 11 |
+
<class>Zapper_DeepLinking_Helper</class>
|
| 12 |
+
</deeplinking>
|
| 13 |
+
</helpers>
|
| 14 |
+
<blocks>
|
| 15 |
+
<deeplinking>
|
| 16 |
+
<class>Zapper_DeepLinking_Block</class>
|
| 17 |
+
</deeplinking>
|
| 18 |
+
</blocks>
|
| 19 |
+
<models>
|
| 20 |
+
<deeplinking>
|
| 21 |
+
<class>Zapper_DeepLinking_Model</class>
|
| 22 |
+
</deeplinking>
|
| 23 |
+
</models>
|
| 24 |
+
</global>
|
| 25 |
+
<frontend>
|
| 26 |
+
<layout>
|
| 27 |
+
<updates>
|
| 28 |
+
<deeplinking>
|
| 29 |
+
<file>zapper.xml</file>
|
| 30 |
+
</deeplinking>
|
| 31 |
+
</updates>
|
| 32 |
+
</layout>
|
| 33 |
+
<routers>
|
| 34 |
+
<deeplinking>
|
| 35 |
+
<use>standard</use>
|
| 36 |
+
<args>
|
| 37 |
+
<module>Zapper_DeepLinking</module>
|
| 38 |
+
<frontName>zapperdeeplinking</frontName>
|
| 39 |
+
</args>
|
| 40 |
+
</deeplinking>
|
| 41 |
+
</routers>
|
| 42 |
+
</frontend>
|
| 43 |
+
<default>
|
| 44 |
+
<payment>
|
| 45 |
+
<zapperdeeplinking>
|
| 46 |
+
<active>1</active>
|
| 47 |
+
<model>deeplinking/deepLinking</model>
|
| 48 |
+
<order_status>pending</order_status>
|
| 49 |
+
<title>Pay with Zapper</title>
|
| 50 |
+
<allowspecific>0</allowspecific>
|
| 51 |
+
<payment_action>sale</payment_action>
|
| 52 |
+
</zapperdeeplinking>
|
| 53 |
+
</payment>
|
| 54 |
+
</default>
|
| 55 |
+
</config>
|
app/code/community/Zapper/DeepLinking/etc/system.xml
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<sections>
|
| 4 |
+
<payment>
|
| 5 |
+
<groups>
|
| 6 |
+
<zapperdeeplinking translate="label" module="deeplinking">
|
| 7 |
+
<label>Zapper Deep Linking</label>
|
| 8 |
+
<sort_order>650</sort_order>
|
| 9 |
+
<show_in_default>1</show_in_default>
|
| 10 |
+
<show_in_website>1</show_in_website>
|
| 11 |
+
<show_in_store>0</show_in_store>
|
| 12 |
+
<fields>
|
| 13 |
+
<active translate="label">
|
| 14 |
+
<label>Enabled</label>
|
| 15 |
+
<frontend_type>select</frontend_type>
|
| 16 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 17 |
+
<sort_order>1</sort_order>
|
| 18 |
+
<show_in_default>1</show_in_default>
|
| 19 |
+
<show_in_website>1</show_in_website>
|
| 20 |
+
<show_in_store>0</show_in_store>
|
| 21 |
+
</active>
|
| 22 |
+
<merchant_id translate="label">
|
| 23 |
+
<label>Merchant ID</label>
|
| 24 |
+
<frontend_type>text</frontend_type>
|
| 25 |
+
<validate>validate-number</validate>
|
| 26 |
+
<sort_order>10</sort_order>
|
| 27 |
+
<show_in_default>1</show_in_default>
|
| 28 |
+
<show_in_website>1</show_in_website>
|
| 29 |
+
<show_in_store>1</show_in_store>
|
| 30 |
+
<comment>Zapper Merchant ID. Ex: 1740</comment>
|
| 31 |
+
</merchant_id>
|
| 32 |
+
<site_id translate="label">
|
| 33 |
+
<label>Site ID</label>
|
| 34 |
+
<frontend_type>text</frontend_type>
|
| 35 |
+
<validate>validate-number</validate>
|
| 36 |
+
<sort_order>15</sort_order>
|
| 37 |
+
<show_in_default>1</show_in_default>
|
| 38 |
+
<show_in_website>1</show_in_website>
|
| 39 |
+
<show_in_store>1</show_in_store>
|
| 40 |
+
<comment>Zapper Site ID. Ex: 1406</comment>
|
| 41 |
+
</site_id>
|
| 42 |
+
<pos_key translate="label">
|
| 43 |
+
<label>POS Key</label>
|
| 44 |
+
<frontend_type>text</frontend_type>
|
| 45 |
+
<sort_order>16</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 |
+
<comment>Zapper POS Key. Ex: 12345678-1234-5678-1234-123456789012</comment>
|
| 50 |
+
</pos_key>
|
| 51 |
+
<pos_secret translate="label">
|
| 52 |
+
<label>POS Secret</label>
|
| 53 |
+
<frontend_type>text</frontend_type>
|
| 54 |
+
<sort_order>17</sort_order>
|
| 55 |
+
<show_in_default>1</show_in_default>
|
| 56 |
+
<show_in_website>1</show_in_website>
|
| 57 |
+
<show_in_store>0</show_in_store>
|
| 58 |
+
<comment>Zapper POS Secret. Ex: 12345678-1234-5678-1234-123456789012</comment>
|
| 59 |
+
</pos_secret>
|
| 60 |
+
<app_name translate="label">
|
| 61 |
+
<label>App Name</label>
|
| 62 |
+
<frontend_type>text</frontend_type>
|
| 63 |
+
<sort_order>18</sort_order>
|
| 64 |
+
<show_in_default>1</show_in_default>
|
| 65 |
+
<show_in_website>1</show_in_website>
|
| 66 |
+
<show_in_store>1</show_in_store>
|
| 67 |
+
</app_name>
|
| 68 |
+
<sandbox translate="label">
|
| 69 |
+
<label>Sandbox</label>
|
| 70 |
+
<frontend_type>select</frontend_type>
|
| 71 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 72 |
+
<sort_order>20</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 |
+
<comment>Put the system in Sandbox Mode.</comment>
|
| 77 |
+
</sandbox>
|
| 78 |
+
<title translate="label">
|
| 79 |
+
<label>Title</label>
|
| 80 |
+
<frontend_type>text</frontend_type>
|
| 81 |
+
<sort_order>25</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 |
+
<comment>The title of the payment method shown "Payment Information".</comment>
|
| 86 |
+
</title>
|
| 87 |
+
<order_status translate="label">
|
| 88 |
+
<label>New Order Status</label>
|
| 89 |
+
<frontend_type>select</frontend_type>
|
| 90 |
+
<source_model>adminhtml/system_config_source_order_status</source_model>
|
| 91 |
+
<sort_order>30</sort_order>
|
| 92 |
+
<show_in_default>1</show_in_default>
|
| 93 |
+
<show_in_website>1</show_in_website>
|
| 94 |
+
<show_in_store>0</show_in_store>
|
| 95 |
+
</order_status>
|
| 96 |
+
<allowspecific translate="label">
|
| 97 |
+
<label>Payment from applicable countries</label>
|
| 98 |
+
<frontend_type>allowspecific</frontend_type>
|
| 99 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 100 |
+
<show_in_default>1</show_in_default>
|
| 101 |
+
<show_in_website>1</show_in_website>
|
| 102 |
+
<show_in_store>1</show_in_store>
|
| 103 |
+
<sort_order>35</sort_order>
|
| 104 |
+
</allowspecific>
|
| 105 |
+
<specificcountry translate="label">
|
| 106 |
+
<label>Payment from Specific countries</label>
|
| 107 |
+
<frontend_type>multiselect</frontend_type>
|
| 108 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 109 |
+
<show_in_default>1</show_in_default>
|
| 110 |
+
<show_in_website>1</show_in_website>
|
| 111 |
+
<show_in_store>1</show_in_store>
|
| 112 |
+
<sort_order>40</sort_order>
|
| 113 |
+
</specificcountry>
|
| 114 |
+
<sort_order>
|
| 115 |
+
<label>Sort Order</label>
|
| 116 |
+
<frontend_type>text</frontend_type>
|
| 117 |
+
<validate>validate-number</validate>
|
| 118 |
+
<sort_order>50</sort_order>
|
| 119 |
+
<show_in_default>1</show_in_default>
|
| 120 |
+
<show_in_website>1</show_in_website>
|
| 121 |
+
<show_in_store>1</show_in_store>
|
| 122 |
+
</sort_order>
|
| 123 |
+
</fields>
|
| 124 |
+
</zapperdeeplinking>
|
| 125 |
+
</groups>
|
| 126 |
+
</payment>
|
| 127 |
+
</sections>
|
| 128 |
+
</config>
|
app/design/frontend/base/default/layout/zapper.xml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<layout>
|
| 3 |
+
<default>
|
| 4 |
+
<reference name="head">
|
| 5 |
+
<block type="core/text" name="zapper_script">
|
| 6 |
+
<action method="setText"><text><![CDATA[<script src="//qa-code.zapzapadmin.com/zapper.js"></script>]]></text></action>
|
| 7 |
+
</block>
|
| 8 |
+
</reference>
|
| 9 |
+
<reference name="head">
|
| 10 |
+
<action method="addJs">
|
| 11 |
+
<script>zapper_deeplinking/zapper-magento.js</script>
|
| 12 |
+
</action>
|
| 13 |
+
</reference>
|
| 14 |
+
</default>
|
| 15 |
+
</layout>
|
app/design/frontend/base/default/template/zapper_deeplinking/form/deeplinking.phtml
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div class="form-list" id="payment_form_<?php echo $this->getMethodCode() ?>" style="display:none;">
|
| 2 |
+
<script type="text/javascript"></script>
|
| 3 |
+
<div id="zapper_magento_wrapper">
|
| 4 |
+
<?php echo $this->__('You will be redirected to the Zapper App when you place the order.') ?>
|
| 5 |
+
</div>
|
| 6 |
+
<?php
|
| 7 |
+
$lastOrderId = Mage::getModel("sales/order")->getCollection()->getLastItem()->getIncrementId();
|
| 8 |
+
// echo var_dump(Mage::getModel('sales/order')->loadByIncrementId($lastOrderId)->getId());
|
| 9 |
+
?>
|
| 10 |
+
<input type="hidden" id="zapperMerchantId" value="<?php echo Mage::getStoreConfig('payment/zapperdeeplinking/merchant_id') ?>" />
|
| 11 |
+
<input type="hidden" id="zapperSiteId" value="<?php echo Mage::getStoreConfig('payment/zapperdeeplinking/site_id') ?>" />
|
| 12 |
+
<input type="hidden" id="zapperAmount" value="<?php echo Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal() ?>" />
|
| 13 |
+
<input type="hidden" id="baseUrl" value="<?php echo Mage::getBaseUrl() ?>" />
|
| 14 |
+
</div>
|
| 15 |
+
<div>
|
| 16 |
+
<?php //echo $this->getMethod()->getConfigData('message');?>
|
| 17 |
+
</div>
|
app/etc/modules/Zapper_DeepLinking.xml
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Zapper_DeepLinking>
|
| 5 |
+
<active>true</active>
|
| 6 |
+
<codePool>community</codePool>
|
| 7 |
+
|
| 8 |
+
<depends>
|
| 9 |
+
<Mage_Payment />
|
| 10 |
+
</depends>
|
| 11 |
+
</Zapper_DeepLinking>
|
| 12 |
+
</modules>
|
| 13 |
+
</config>
|
package.xml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>Zapper</name>
|
| 4 |
+
<version>1.0.0</version>
|
| 5 |
+
<stability>beta</stability>
|
| 6 |
+
<license>MIT</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>Allow customers to pay with Zapper on your website.</summary>
|
| 10 |
+
<description>Allow customers to pay with Zapper on your website.</description>
|
| 11 |
+
<notes>N/A</notes>
|
| 12 |
+
<authors><author><name>Zapper</name><user>Zapper</user><email>ecommercesupport@zapper.com</email></author></authors>
|
| 13 |
+
<date>2016-06-02</date>
|
| 14 |
+
<time>07:52:31</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="Zapper"><dir name="DeepLinking"><dir name="Block"><dir name="Form"><file name="DeepLinking.php" hash="da6b5a26fce15c083e0f695f5d2bea7a"/></dir><dir name="Info"><file name="DeepLinking.php" hash="4ef983a2c691dace0a6cd7556acfbeb8"/></dir></dir><dir name="Helper"><file name="Data.php" hash="992d0c6f9fad5a36c786fe01b2c1f9a5"/></dir><dir name="Model"><file name="DeepLinking.php" hash="beedeb534c3e047b22bd53ccd31f9cf7"/></dir><dir name="controllers"><file name="ProcessingController.php" hash="8b2fd0c7a03d292f23ae976eefe001b6"/></dir><dir name="etc"><file name="config.xml" hash="91ca271e32c8bc5b16a51947bdf82361"/><file name="system.xml" hash="3285fbd8fb2a23dd1f9f2f94d55d4f92"/></dir><file name=".DS_Store" hash="4ec82e219c55ad9ad1a9b3f2c3763bf6"/></dir><file name=".DS_Store" hash="28727f5da84b0199c326d80fceb355bf"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zapper.xml" hash="cdbb2eb5c2cb40b3e505b3a133944944"/></dir><dir name="template"><dir name="zapper_deeplinking"><dir name="form"><file name="deeplinking.phtml" hash="176d53097be7cd5863fe9155389c8223"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zapper_DeepLinking.xml" hash="a9b0cafa2493148bd927f3081d0eec56"/></dir></target></contents>
|
| 16 |
+
<compatible/>
|
| 17 |
+
<dependencies><required><php><min>4.0.0</min><max>7.0.0</max></php></required></dependencies>
|
| 18 |
+
</package>
|
