Version Notes
*support both HPP and silent post
*support for authorization then capture
*support refund
*fixed email send and order status in HPP
Download this release
Release Info
| Developer | Udi |
| Extension | NetpayIntl_PaymentInt_CheckOut |
| Version | 1.0.8 |
| Comparing to | |
| See all releases | |
Version 1.0.8
- app/code/community/NetpayIntl/PaymentInt/Block/Form/Cc.php +30 -0
- app/code/community/NetpayIntl/PaymentInt/Block/Info/Cc.php +41 -0
- app/code/community/NetpayIntl/PaymentInt/Block/Redirect.php +30 -0
- app/code/community/NetpayIntl/PaymentInt/Model/PaymentMethod.php +307 -0
- app/code/community/NetpayIntl/PaymentInt/controllers/RedirectController.php +44 -0
- app/code/community/NetpayIntl/PaymentInt/etc/config.xml +68 -0
- app/code/community/NetpayIntl/PaymentInt/etc/system.xml +96 -0
- app/etc/modules/NetpayIntl_PaymentInt.xml +11 -0
- package.xml +22 -0
app/code/community/NetpayIntl/PaymentInt/Block/Form/Cc.php
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
| 9 |
+
* that is available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
| 11 |
+
*
|
| 12 |
+
* @category Mage
|
| 13 |
+
* @package Mage_BankPayment
|
| 14 |
+
* @copyright Copyright (c) 2008 Andrej Sinicyn
|
| 15 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 16 |
+
*/
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
class NetpayIntl_PaymentInt_Block_Form_Cc extends Mage_Payment_Block_Form_Cc
|
| 20 |
+
{
|
| 21 |
+
public function getChildHtml(){
|
| 22 |
+
if ($this->getMethod()->ShowOwnerID() != '1') return;
|
| 23 |
+
return '<li>' .
|
| 24 |
+
'<label for="' . $_code . '_cc_ownerID" class="required"><em>*</em>' . $this->__('Card Owner ID') . '</label>' .
|
| 25 |
+
' <div class="input-box">' .
|
| 26 |
+
' <input type="text" title=""' . $this->__('Card Owner ID') . '" class="input-text required-entry" id="' . $_code . '_cc_ownerID" name="payment[cc_ownerID]" value="' . $this->htmlEscape($this->getInfoData('cc_ownerID')) . '" />' .
|
| 27 |
+
' </div>' .
|
| 28 |
+
'</li>';
|
| 29 |
+
}
|
| 30 |
+
}
|
app/code/community/NetpayIntl/PaymentInt/Block/Info/Cc.php
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category Mage
|
| 22 |
+
* @package Mage_Payment
|
| 23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
|
| 27 |
+
/**
|
| 28 |
+
* Credit card generic payment info
|
| 29 |
+
*/
|
| 30 |
+
class NetpayIntl_PaymentInt_Block_Info_Cc extends Mage_Payment_Block_Info_Cc
|
| 31 |
+
{
|
| 32 |
+
protected function _prepareSpecificInformation($transport = null)
|
| 33 |
+
{
|
| 34 |
+
//if (null !== $this->_paymentSpecificInformation) return $this->_paymentSpecificInformation;
|
| 35 |
+
$transport = parent::_prepareSpecificInformation($transport);
|
| 36 |
+
$data = array();
|
| 37 |
+
$ownerID = $this->getInfo()->getAdditionalInformation('OwnerID');
|
| 38 |
+
if ($ownerID) $data[Mage::helper('payment')->__('Owner ID')] = $ownerID;
|
| 39 |
+
return $transport->setData(array_merge($data, $transport->getData()));
|
| 40 |
+
}
|
| 41 |
+
}
|
app/code/community/NetpayIntl/PaymentInt/Block/Redirect.php
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class NetpayIntl_PaymentInt_Block_Redirect extends Mage_Core_Block_Abstract
|
| 3 |
+
{
|
| 4 |
+
protected function _toHtml()
|
| 5 |
+
{
|
| 6 |
+
$session = Mage::getSingleton('checkout/session');
|
| 7 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
|
| 8 |
+
if (!$order->getId()) {
|
| 9 |
+
Mage::throwException('No order for processing found');
|
| 10 |
+
}
|
| 11 |
+
$pmModel = Mage::getModel('NetpayIntl_PaymentInt/PaymentMethod');
|
| 12 |
+
$form = new Varien_Data_Form();
|
| 13 |
+
$form->setAction($pmModel->getNetpayIntlUrl())
|
| 14 |
+
->setId('pay')
|
| 15 |
+
->setName('pay')
|
| 16 |
+
->setMethod('GET')
|
| 17 |
+
->setUseContainer(true);
|
| 18 |
+
foreach ($pmModel->getCheckoutFormFields($order) as $field=>$value)
|
| 19 |
+
$form->addField($field, 'hidden', array('name'=>$field, 'value'=>$value));
|
| 20 |
+
$html = '<html><body>';
|
| 21 |
+
$html.= $this->__('You will be redirected to NetpayIntl in a few seconds.');
|
| 22 |
+
$html.= '<br>';
|
| 23 |
+
$html.= $form->toHtml();
|
| 24 |
+
$html.= '<br>';
|
| 25 |
+
$html.= '<script type="text/javascript">document.getElementById("pay").submit();</script>';
|
| 26 |
+
$html.= '</body></html>';
|
| 27 |
+
return $html;
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
?>
|
app/code/community/NetpayIntl/PaymentInt/Model/PaymentMethod.php
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class NetpayIntl_PaymentInt_Model_PaymentMethod extends Mage_Payment_Model_Method_Abstract
|
| 3 |
+
{
|
| 4 |
+
const CGI_URL = 'https://process.netpay-intl.com/member/remote_charge.asp';
|
| 5 |
+
const REDIRECT_URL = 'https://services.netpay-intl.com/hosted/';
|
| 6 |
+
const RESPONSE_CODE_APPROVED = '000';
|
| 7 |
+
|
| 8 |
+
protected $_code = 'NetpayIntl_PaymentInt';
|
| 9 |
+
protected $_isGateway = true;
|
| 10 |
+
protected $_canAuthorize = true;
|
| 11 |
+
protected $_canCapture = true;
|
| 12 |
+
protected $_canCapturePartial = true;
|
| 13 |
+
protected $_canRefund = true;
|
| 14 |
+
protected $_canRefundInvoicePartial = true;
|
| 15 |
+
protected $_canVoid = false;
|
| 16 |
+
protected $_canUseInternal = false;
|
| 17 |
+
protected $_canUseCheckout = true;
|
| 18 |
+
protected $_canUseForMultishipping = false;
|
| 19 |
+
|
| 20 |
+
protected $_formBlockType = 'NetpayIntl_PaymentInt/form_cc';
|
| 21 |
+
protected $_infoBlockType = 'NetpayIntl_PaymentInt/info_cc';
|
| 22 |
+
|
| 23 |
+
public function ShowOwnerID() { return $this->getConfigData('ShowOwnerID'); }
|
| 24 |
+
public function getUseRedirect() { return $this->getConfigData('UseRedirect'); }
|
| 25 |
+
|
| 26 |
+
public function assignData($data)
|
| 27 |
+
{
|
| 28 |
+
$result = parent::assignData($data);
|
| 29 |
+
$this->getInfoInstance()->setAdditionalInformation('OwnerID', $data['cc_ownerID']);
|
| 30 |
+
return $result;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
/**
|
| 34 |
+
* Send authorize request to gateway
|
| 35 |
+
*
|
| 36 |
+
* @param Varien_Object $payment
|
| 37 |
+
* @param decimal $amount
|
| 38 |
+
* @throws Mage_Core_Exception
|
| 39 |
+
*/
|
| 40 |
+
|
| 41 |
+
public function getShouldRedirect(Varien_Object $payment)
|
| 42 |
+
{
|
| 43 |
+
if(!$this->getUseRedirect()) return false;
|
| 44 |
+
if($payment != null && $payment->getTransactionId()) return false;
|
| 45 |
+
return true;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
public function authorize(Varien_Object $payment, $amount)
|
| 49 |
+
{
|
| 50 |
+
if ($this->getShouldRedirect($payment)) return $this;
|
| 51 |
+
if ($amount <= 0) {
|
| 52 |
+
Mage::throwException(Mage::helper('paygate')->__('Invalid amount for authorization.'));
|
| 53 |
+
}
|
| 54 |
+
$payment->setAmount($amount);
|
| 55 |
+
|
| 56 |
+
$request= $this->_buildRequest($payment, 1, 1);
|
| 57 |
+
$result = $this->_postRequest($request);
|
| 58 |
+
|
| 59 |
+
$payment->setCcApproval($result->getApprovalCode())
|
| 60 |
+
->setLastTransId($result->getTransactionId())
|
| 61 |
+
->setTransactionId($result->getTransactionId())
|
| 62 |
+
->setIsTransactionClosed(0);
|
| 63 |
+
|
| 64 |
+
switch ($result->getResponseCode()) {
|
| 65 |
+
case self::RESPONSE_CODE_APPROVED:
|
| 66 |
+
$payment->setStatus(self::STATUS_APPROVED);
|
| 67 |
+
return $this;
|
| 68 |
+
default:
|
| 69 |
+
Mage::throwException(Mage::helper('paygate')->__('Payment authorization error:') . ' ' . $result->getResponseReasonText());
|
| 70 |
+
}
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
/**
|
| 74 |
+
* Send capture request to gateway
|
| 75 |
+
*
|
| 76 |
+
* @param Varien_Object $payment
|
| 77 |
+
* @param decimal $amount
|
| 78 |
+
* @throws Mage_Core_Exception
|
| 79 |
+
*/
|
| 80 |
+
public function capture(Varien_Object $payment, $amount)
|
| 81 |
+
{
|
| 82 |
+
if ($this->getShouldRedirect($payment)) return $this;
|
| 83 |
+
$nTransType = 0;
|
| 84 |
+
$authTransaction = $payment->getAuthorizationTransaction();
|
| 85 |
+
$payment->setAmount($amount);
|
| 86 |
+
if ($authTransaction) $nTransType = 2;
|
| 87 |
+
$request = $this->_buildRequest($payment, $nTransType, 1);
|
| 88 |
+
if ($authTransaction){
|
| 89 |
+
$request .= "&TransApprovalID=" . $authTransaction->getTxnId();
|
| 90 |
+
$request .= "&RefTransID=" . $authTransaction->getTxnId();
|
| 91 |
+
}
|
| 92 |
+
$result = $this->_postRequest($request);
|
| 93 |
+
if ($result->getResponseCode() == self::RESPONSE_CODE_APPROVED) {
|
| 94 |
+
$payment->setStatus(self::STATUS_APPROVED);
|
| 95 |
+
$payment->setLastTransId($result->getTransactionId());
|
| 96 |
+
if (!$payment->getParentTransactionId() || $result->getTransactionId() != $payment->getParentTransactionId()) {
|
| 97 |
+
$payment->setTransactionId($result->getTransactionId());
|
| 98 |
+
}
|
| 99 |
+
return $this;
|
| 100 |
+
}
|
| 101 |
+
if ($result->getResponseReasonText()) Mage::throwException($this->_wrapGatewayError($result->getResponseReasonText()));
|
| 102 |
+
Mage::throwException(Mage::helper('paygate')->__('Error in capturing the payment.'));
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
/**
|
| 106 |
+
* refund the amount with transaction id
|
| 107 |
+
*
|
| 108 |
+
* @param string $payment Varien_Object object
|
| 109 |
+
* @throws Mage_Core_Exception
|
| 110 |
+
*/
|
| 111 |
+
public function refund(Varien_Object $payment, $amount)
|
| 112 |
+
{
|
| 113 |
+
$captureTrans = $payment->lookupTransaction(false, Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE);
|
| 114 |
+
if ($captureTrans && $amount > 0) {
|
| 115 |
+
$payment->setAmount($amount);
|
| 116 |
+
$request = $this->_buildRequest($payment, 0, 0);
|
| 117 |
+
$request .= "&RefTransID=" . $captureTrans->getTxnId();
|
| 118 |
+
|
| 119 |
+
$result = $this->_postRequest($request);
|
| 120 |
+
if ($result->getResponseCode()==self::RESPONSE_CODE_APPROVED) {
|
| 121 |
+
$payment->setStatus(self::STATUS_SUCCESS);
|
| 122 |
+
$payment->setTransactionId($result->getTransactionId());
|
| 123 |
+
$payment->setLastTransId($result->getTransactionId());
|
| 124 |
+
return $this;
|
| 125 |
+
}
|
| 126 |
+
Mage::throwException($this->_wrapGatewayError($result->getResponseReasonText()));
|
| 127 |
+
}
|
| 128 |
+
Mage::throwException(Mage::helper('paygate')->__('Error in refunding the payment.'));
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
/**
|
| 132 |
+
* Prepare request to gateway
|
| 133 |
+
*
|
| 134 |
+
* @link http://process.NetpayIntl.co.il/
|
| 135 |
+
* @param Mage_Sales_Model_Document $order
|
| 136 |
+
* @return unknown
|
| 137 |
+
*/
|
| 138 |
+
protected function _buildRequest(Varien_Object $payment, int $nTransType, int $nTypeCredit)
|
| 139 |
+
{
|
| 140 |
+
$order = $payment->getOrder();
|
| 141 |
+
$this->setStore($order->getStoreId());
|
| 142 |
+
$ReqStr = '?CompanyNum=' . $this->getConfigData('CompanyNum');
|
| 143 |
+
if ($order && $order->getIncrementId()) $ReqStr .= "&Order=" . $order->getIncrementId();
|
| 144 |
+
//$payment->getCcTransId() $payment->getCcAuthCode()
|
| 145 |
+
if($payment->getAmount()){
|
| 146 |
+
$ReqStr .= "&Amount=" . $payment->getAmount();
|
| 147 |
+
$ReqStr .= "&Currency=" . $order->getBaseCurrencyCode();
|
| 148 |
+
}
|
| 149 |
+
$ReqStr .= "&TypeCredit=" . $nTypeCredit;
|
| 150 |
+
$ReqStr .= "&TransType=" . $nTransType;
|
| 151 |
+
if (!empty($order)) {
|
| 152 |
+
$ReqStr .= "&ClientIP=" . $order->getRemoteIp();
|
| 153 |
+
$billing = $order->getBillingAddress();
|
| 154 |
+
if (!empty($billing)) {
|
| 155 |
+
$ReqStr .= "&Member=" . urlencode($billing->getFirstname() . ' ' . $billing->getLastname());
|
| 156 |
+
$ReqStr .= "&BillingAddress1=" . urlencode($billing->getStreet(1));
|
| 157 |
+
$ReqStr .= "&BillingAddress2=" . urlencode($billing->getRegion());
|
| 158 |
+
$ReqStr .= "&BillingCity=" . urlencode($billing->getCity());
|
| 159 |
+
$ReqStr .= "&BillingZipCode=" . urlencode($billing->getPostcode());
|
| 160 |
+
$ReqStr .= "&BillingState=" . urlencode($billing->getState());
|
| 161 |
+
$ReqStr .= "&BillingCountry=" . urlencode($billing->getCountry());
|
| 162 |
+
$ReqStr .= "&PhoneNumber=" . urlencode($billing->getTelephone());
|
| 163 |
+
$ReqStr .= "&PersonalNum=" . urlencode($payment->getAdditionalInformation('OwnerID'));
|
| 164 |
+
if($billing->getCustomerEmail()) $ReqStr .= "&Email=" . urlencode($billing->getCustomerEmail());
|
| 165 |
+
}
|
| 166 |
+
}
|
| 167 |
+
if ($payment->getCcExpMonth()) $ReqStr .= "&ExpMonth=" . sprintf('%02d', $payment->getCcExpMonth());
|
| 168 |
+
if ($payment->getCcExpYear()) $ReqStr .= "&ExpYear=" . sprintf('%04d', $payment->getCcExpYear());
|
| 169 |
+
if($nTypeCredit != 0 && $nTransType != 2){
|
| 170 |
+
$ReqStr .= "&CardNum=" . $payment->getCcNumber();
|
| 171 |
+
$ReqStr .= "&CVV2=" . $payment->getCcCid();
|
| 172 |
+
}
|
| 173 |
+
$ReqStr .= "&Payments=1";
|
| 174 |
+
if ($this->getConfigData('UseCCStorage')) $ReqStr .= "&StoreCc=1";
|
| 175 |
+
//echo $ReqStr; exit();
|
| 176 |
+
return $ReqStr;
|
| 177 |
+
}
|
| 178 |
+
|
| 179 |
+
protected function _postRequest($request)
|
| 180 |
+
{
|
| 181 |
+
$debugData = array('request' => $request);
|
| 182 |
+
$result = new Varien_Object();
|
| 183 |
+
|
| 184 |
+
$client = new Varien_Http_Client();
|
| 185 |
+
$uri = $this->getConfigData('cgi_url');
|
| 186 |
+
$client->setUri(($uri ? $uri : self::CGI_URL) . $request);
|
| 187 |
+
$client->setConfig( array('maxredirects'=>0, 'timeout'=>30));
|
| 188 |
+
|
| 189 |
+
$client->setParameterPost($request);
|
| 190 |
+
//$client->setMethod(Zend_Http_Client::POST);
|
| 191 |
+
|
| 192 |
+
try { $response = $client->setUrlEncodeBody(false)->request(); /*$client->request();*/ }
|
| 193 |
+
catch (Exception $e) {
|
| 194 |
+
$result->setResponseCode(-1)
|
| 195 |
+
->setResponseReasonCode($e->getCode())
|
| 196 |
+
->setResponseReasonText($e->getMessage());
|
| 197 |
+
|
| 198 |
+
$debugData['result'] = $result->getData();
|
| 199 |
+
$this->_debug($debugData);
|
| 200 |
+
Mage::throwException($this->_wrapGatewayError($e->getMessage()));
|
| 201 |
+
}
|
| 202 |
+
$responseBody = $response->getBody();
|
| 203 |
+
//echo $uri . $request . ' ' . $responseBody; Exit();
|
| 204 |
+
parse_str($responseBody, $r);
|
| 205 |
+
if ($r) {
|
| 206 |
+
$result->setResponseCode((int)str_replace('"','',$r['Reply']))
|
| 207 |
+
->setResponseReasonText($r['ReplyDesc'])
|
| 208 |
+
->setApprovalCode($r['ConfirmationNum'])
|
| 209 |
+
->setTransactionId($r['TransID'])
|
| 210 |
+
->setAmount($r['Amount']);
|
| 211 |
+
} else {
|
| 212 |
+
Mage::throwException( Mage::helper('paygate')->__('Error in payment gateway.') );
|
| 213 |
+
}
|
| 214 |
+
$debugData['result'] = $result->getData();
|
| 215 |
+
$this->_debug($debugData);
|
| 216 |
+
return $result;
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
/**
|
| 220 |
+
* Gateway response wrapper
|
| 221 |
+
*
|
| 222 |
+
* @param string $text
|
| 223 |
+
* @return string
|
| 224 |
+
*/
|
| 225 |
+
protected function _wrapGatewayError($text)
|
| 226 |
+
{
|
| 227 |
+
return Mage::helper('paygate')->__('Gateway error: %s', $text);
|
| 228 |
+
}
|
| 229 |
+
|
| 230 |
+
|
| 231 |
+
/*************************************************************************************************/
|
| 232 |
+
/* HOSTED */
|
| 233 |
+
/*************************************************************************************************/
|
| 234 |
+
public function getNetpayIntlUrl() { return self::REDIRECT_URL; }
|
| 235 |
+
public function getFormBlockType() { if ($this->getShouldRedirect(null)) return 'payment/form'; return $this->_formBlockType; }
|
| 236 |
+
public function getInfoBlockType() { if ($this->getShouldRedirect(null)) return 'payment/info'; return $this->_infoBlockType; }
|
| 237 |
+
public function getCanUseForMultishipping() { return !getUseRedirect(); }
|
| 238 |
+
|
| 239 |
+
public function getConfigPaymentAction()
|
| 240 |
+
{
|
| 241 |
+
if ($this->getShouldRedirect(null)) return null;
|
| 242 |
+
return $this->getConfigData('payment_action');
|
| 243 |
+
}
|
| 244 |
+
|
| 245 |
+
public function getOrderPlaceRedirectUrl() {
|
| 246 |
+
if (!$this->getShouldRedirect(null)) return null;
|
| 247 |
+
return Mage::getUrl('NetpayIntl_PaymentInt/Redirect', array('_secure' => true));
|
| 248 |
+
}
|
| 249 |
+
|
| 250 |
+
public function doPostRedirect(Varien_Object $payment, $request)
|
| 251 |
+
{
|
| 252 |
+
$trans_id = $request->getParam('trans_id');
|
| 253 |
+
$auth_code = $request->getParam('auth_code');
|
| 254 |
+
$transCustomData = array('GW TransID' => $trans_id, 'Auth Code' => $auth_code);
|
| 255 |
+
|
| 256 |
+
$order = $payment->getOrder();
|
| 257 |
+
$payment->setTransactionId($trans_id);
|
| 258 |
+
$payment->setTransactionAdditionalInfo($transCustomData);
|
| 259 |
+
$transType = Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE;
|
| 260 |
+
if ($this->getConfigData('payment_action') == 'authorize') {
|
| 261 |
+
$payment->setIsTransactionClosed(0);
|
| 262 |
+
$payment->registerAuthorizationNotification($order->getGrandTotal());
|
| 263 |
+
} else $payment->registerCaptureNotification($order->getGrandTotal());
|
| 264 |
+
$order->sendNewOrderEmail();
|
| 265 |
+
$order->setEmailSent(true);
|
| 266 |
+
$order->save();
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
public function getCheckoutFormFields($order)
|
| 270 |
+
{
|
| 271 |
+
$nTransType = 0;
|
| 272 |
+
if ($this->getConfigData('payment_action') == 'authorize') $nTransType = 1;
|
| 273 |
+
$order_id = $order->getRealOrderId();
|
| 274 |
+
$signature = base64_encode(md5($this->getConfigData('CompanyNum') . trim(round($order->getGrandTotal(), 2)) . $order->getBaseCurrencyCode() . $this->getConfigData('HashKey'), true));
|
| 275 |
+
|
| 276 |
+
$params = array();
|
| 277 |
+
$params['trans_refNum'] = $order_id;
|
| 278 |
+
$params['merchantID'] = $this->getConfigData('CompanyNum');
|
| 279 |
+
$params['disp_payFor'] = 'Payment for order #'.$order_id;
|
| 280 |
+
$params['trans_amount'] = trim(round($order->getGrandTotal(), 2));
|
| 281 |
+
$params['trans_currency'] = $order->getBaseCurrencyCode();
|
| 282 |
+
$params['trans_type'] = $nTransType;
|
| 283 |
+
if ($this->getConfigData('UseCCStorage')) $params['trans_storePm'] = "1";
|
| 284 |
+
$params['signature'] = $signature;
|
| 285 |
+
$params['disp_lng'] = $this->getConfigData('UILanguage');
|
| 286 |
+
$params['url_redirect'] = Mage::getUrl('NetpayIntl_PaymentInt/Redirect/success');
|
| 287 |
+
|
| 288 |
+
if (!empty($order)) {
|
| 289 |
+
$billing = $order->getBillingAddress();
|
| 290 |
+
if (!empty($billing)) {
|
| 291 |
+
$params['client_fullName'] = $billing->getFirstname() . ' ' . $billing->getLastname();
|
| 292 |
+
$params['client_billAddress1'] = $billing->getStreet(1);
|
| 293 |
+
$params['client_billAddress2'] = $billing->getRegion();
|
| 294 |
+
$params['client_billCity'] = $billing->getCity();
|
| 295 |
+
$params['client_billZipcode'] = $billing->getPostcode();
|
| 296 |
+
$params['client_billState'] = $billing->getState();
|
| 297 |
+
$params['client_billCountry'] = $billing->getCountry();
|
| 298 |
+
$params['client_phoneNum'] = $billing->getTelephone();
|
| 299 |
+
if ($billing->getCustomerEmail()) $params['client_email'] = $billing->getCustomerEmail();
|
| 300 |
+
}
|
| 301 |
+
}
|
| 302 |
+
$order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, 'the customer redirected to NetpayIntl');
|
| 303 |
+
$order->save();
|
| 304 |
+
return $params;
|
| 305 |
+
}
|
| 306 |
+
}
|
| 307 |
+
?>
|
app/code/community/NetpayIntl/PaymentInt/controllers/RedirectController.php
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
class NetpayIntl_PaymentInt_RedirectController extends Mage_Core_Controller_Front_Action {
|
| 5 |
+
const RESPONSE_CODE_APPROVED = '000';
|
| 6 |
+
protected function _expireAjax() {
|
| 7 |
+
if (!Mage::getSingleton('checkout/session')->getQuote()->hasItems()) {
|
| 8 |
+
$this->getResponse()->setHeader('HTTP/1.1','403 Session Expired');
|
| 9 |
+
exit;
|
| 10 |
+
}
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
public function indexAction() {
|
| 14 |
+
$this->getResponse()
|
| 15 |
+
->setHeader('Content-type', 'text/html; charset=utf8')
|
| 16 |
+
->setBody($this->getLayout()
|
| 17 |
+
->createBlock('NetpayIntl_PaymentInt/Redirect')
|
| 18 |
+
->toHtml());
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
public function successAction()
|
| 22 |
+
{
|
| 23 |
+
$session = Mage::getSingleton('checkout/session');
|
| 24 |
+
$realOrderId = $this->getRequest()->getParam('trans_refNum');
|
| 25 |
+
$replyCode = $this->getRequest()->getParam('replyCode');
|
| 26 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($realOrderId);
|
| 27 |
+
if ($replyCode == self::RESPONSE_CODE_APPROVED) {
|
| 28 |
+
$payment = $order->getPayment();
|
| 29 |
+
$method = $payment->getMethodInstance();
|
| 30 |
+
$method->doPostRedirect($payment, $this->getRequest());
|
| 31 |
+
$this->_redirect('checkout/onepage/success', array('_secure'=>true));
|
| 32 |
+
}else{
|
| 33 |
+
$session->addError($this->getRequest()->getParam('replyDesc'));
|
| 34 |
+
$quote = Mage::getModel('sales/quote')->load($order->getQuoteId());
|
| 35 |
+
if ($quote->getId()) {
|
| 36 |
+
$quote->setIsActive(true)->save();
|
| 37 |
+
$session->setQuoteId($quoteId);
|
| 38 |
+
}
|
| 39 |
+
$this->_redirect('checkout/cart');
|
| 40 |
+
}
|
| 41 |
+
}
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
?>
|
app/code/community/NetpayIntl/PaymentInt/etc/config.xml
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<NetpayIntl_PaymentInt>
|
| 5 |
+
<version>1.0.8</version>
|
| 6 |
+
</NetpayIntl_PaymentInt>
|
| 7 |
+
</modules>
|
| 8 |
+
|
| 9 |
+
<global>
|
| 10 |
+
<blocks>
|
| 11 |
+
<NetpayIntl_PaymentInt>
|
| 12 |
+
<class>NetpayIntl_PaymentInt_Block</class>
|
| 13 |
+
</NetpayIntl_PaymentInt>
|
| 14 |
+
</blocks>
|
| 15 |
+
<models>
|
| 16 |
+
<NetpayIntl_PaymentInt>
|
| 17 |
+
<class>NetpayIntl_PaymentInt_Model</class>
|
| 18 |
+
</NetpayIntl_PaymentInt>
|
| 19 |
+
</models>
|
| 20 |
+
<resources>
|
| 21 |
+
<NetpayIntl_PaymentInt_setup>
|
| 22 |
+
<setup>
|
| 23 |
+
<module>NetpayIntl_PaymentInt</module>
|
| 24 |
+
</setup>
|
| 25 |
+
<connection>
|
| 26 |
+
<use>core_setup</use>
|
| 27 |
+
</connection>
|
| 28 |
+
</NetpayIntl_PaymentInt_setup>
|
| 29 |
+
<NetpayIntl_PaymentInt_write>
|
| 30 |
+
<connection>
|
| 31 |
+
<use>core_write</use>
|
| 32 |
+
</connection>
|
| 33 |
+
</NetpayIntl_PaymentInt_write>
|
| 34 |
+
<NetpayIntl_PaymentInt_read>
|
| 35 |
+
<connection>
|
| 36 |
+
<use>core_read</use>
|
| 37 |
+
</connection>
|
| 38 |
+
</NetpayIntl_PaymentInt_read>
|
| 39 |
+
|
| 40 |
+
</resources>
|
| 41 |
+
</global>
|
| 42 |
+
<frontend>
|
| 43 |
+
<routers>
|
| 44 |
+
<NetpayIntl_PaymentInt>
|
| 45 |
+
<use>standard</use>
|
| 46 |
+
<args>
|
| 47 |
+
<module>NetpayIntl_PaymentInt</module>
|
| 48 |
+
<frontName>NetpayIntl_PaymentInt</frontName>
|
| 49 |
+
</args>
|
| 50 |
+
</NetpayIntl_PaymentInt>
|
| 51 |
+
</routers>
|
| 52 |
+
</frontend>
|
| 53 |
+
|
| 54 |
+
<default>
|
| 55 |
+
<payment>
|
| 56 |
+
<NetpayIntl_PaymentInt>
|
| 57 |
+
<active>0</active>
|
| 58 |
+
<model>NetpayIntl_PaymentInt/PaymentMethod</model>
|
| 59 |
+
<order_status>pending_payment</order_status>
|
| 60 |
+
<title>NetpayIntl</title>
|
| 61 |
+
<UseRedirect>1</UseRedirect>
|
| 62 |
+
<UseCCStorage>0</UseCCStorage>
|
| 63 |
+
<payment_action>authorize</payment_action>
|
| 64 |
+
<allowspecific>0</allowspecific>
|
| 65 |
+
</NetpayIntl_PaymentInt>
|
| 66 |
+
</payment>
|
| 67 |
+
</default>
|
| 68 |
+
</config>
|
app/code/community/NetpayIntl/PaymentInt/etc/system.xml
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<sections>
|
| 4 |
+
<payment>
|
| 5 |
+
<groups>
|
| 6 |
+
<NetpayIntl_PaymentInt translate="label" module="paygate">
|
| 7 |
+
<label>NetpayIntl Payment Services</label>
|
| 8 |
+
<sort_order>670</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>0</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 |
+
<title translate="label">
|
| 23 |
+
<label>Title</label>
|
| 24 |
+
<frontend_type>text</frontend_type>
|
| 25 |
+
<sort_order>1</sort_order>
|
| 26 |
+
<show_in_default>1</show_in_default>
|
| 27 |
+
<show_in_website>1</show_in_website>
|
| 28 |
+
<show_in_store>0</show_in_store>
|
| 29 |
+
</title>
|
| 30 |
+
<payment_action translate="label">
|
| 31 |
+
<label>Payment Action</label>
|
| 32 |
+
<frontend_type>select</frontend_type>
|
| 33 |
+
<source_model>paygate/authorizenet_source_paymentAction</source_model>
|
| 34 |
+
<sort_order>2</sort_order>
|
| 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 |
+
</payment_action>
|
| 39 |
+
<UseRedirect translate="label">
|
| 40 |
+
<label>Use Redirect method</label>
|
| 41 |
+
<frontend_type>select</frontend_type>
|
| 42 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 43 |
+
<sort_order>3</sort_order>
|
| 44 |
+
<show_in_default>1</show_in_default>
|
| 45 |
+
<show_in_website>1</show_in_website>
|
| 46 |
+
<show_in_store>0</show_in_store>
|
| 47 |
+
</UseRedirect>
|
| 48 |
+
<CompanyNum translate="label">
|
| 49 |
+
<label>Company Number</label>
|
| 50 |
+
<frontend_type>text</frontend_type>
|
| 51 |
+
<sort_order>4</sort_order>
|
| 52 |
+
<show_in_default>1</show_in_default>
|
| 53 |
+
<show_in_website>0</show_in_website>
|
| 54 |
+
<show_in_store>0</show_in_store>
|
| 55 |
+
</CompanyNum>
|
| 56 |
+
<HashKey translate="label">
|
| 57 |
+
<label>Hash Key</label>
|
| 58 |
+
<frontend_type>text</frontend_type>
|
| 59 |
+
<sort_order>5</sort_order>
|
| 60 |
+
<show_in_default>1</show_in_default>
|
| 61 |
+
<show_in_website>0</show_in_website>
|
| 62 |
+
<show_in_store>0</show_in_store>
|
| 63 |
+
</HashKey>
|
| 64 |
+
<UILanguage translate="label">
|
| 65 |
+
<label>UI Language</label>
|
| 66 |
+
<frontend_type>text</frontend_type>
|
| 67 |
+
<sort_order>6</sort_order>
|
| 68 |
+
<show_in_default>1</show_in_default>
|
| 69 |
+
<show_in_website>1</show_in_website>
|
| 70 |
+
<show_in_store>0</show_in_store>
|
| 71 |
+
</UILanguage>
|
| 72 |
+
<ShowOwnerID translate="label">
|
| 73 |
+
<label>Show Card Owner ID Field</label>
|
| 74 |
+
<frontend_type>select</frontend_type>
|
| 75 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 76 |
+
<sort_order>7</sort_order>
|
| 77 |
+
<show_in_default>1</show_in_default>
|
| 78 |
+
<show_in_website>1</show_in_website>
|
| 79 |
+
<show_in_store>0</show_in_store>
|
| 80 |
+
</ShowOwnerID>
|
| 81 |
+
<UseCCStorage translate="label">
|
| 82 |
+
<label>Use Token System</label>
|
| 83 |
+
<frontend_type>select</frontend_type>
|
| 84 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 85 |
+
<sort_order>8</sort_order>
|
| 86 |
+
<show_in_default>1</show_in_default>
|
| 87 |
+
<show_in_website>1</show_in_website>
|
| 88 |
+
<show_in_store>0</show_in_store>
|
| 89 |
+
</UseCCStorage>
|
| 90 |
+
</fields>
|
| 91 |
+
</NetpayIntl_PaymentInt>
|
| 92 |
+
|
| 93 |
+
</groups>
|
| 94 |
+
</payment>
|
| 95 |
+
</sections>
|
| 96 |
+
</config>
|
app/etc/modules/NetpayIntl_PaymentInt.xml
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<config>
|
| 2 |
+
<modules>
|
| 3 |
+
<NetpayIntl_PaymentInt>
|
| 4 |
+
<active>true</active>
|
| 5 |
+
<codePool>community</codePool>
|
| 6 |
+
<depends>
|
| 7 |
+
<Mage_Payment />
|
| 8 |
+
</depends>
|
| 9 |
+
</NetpayIntl_PaymentInt>
|
| 10 |
+
</modules>
|
| 11 |
+
</config>
|
package.xml
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>NetpayIntl_PaymentInt_CheckOut</name>
|
| 4 |
+
<version>1.0.8</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license uri="http://www.netpay-intl.com">Freeware</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>NetpayIntl's magento integration for magento versions 1.6 to 1.8</summary>
|
| 10 |
+
<description>This module is use to process from you magento online store</description>
|
| 11 |
+
<notes>*support both HPP and silent post
|
| 12 |
+
*support for authorization then capture
|
| 13 |
+
*support refund
|
| 14 |
+
*fixed email send and order status in HPP
|
| 15 |
+
</notes>
|
| 16 |
+
<authors><author><name>Udi</name><user>Udi</user><email>udi@ctrlz.co.il</email></author></authors>
|
| 17 |
+
<date>2014-02-25</date>
|
| 18 |
+
<time>15:46:33</time>
|
| 19 |
+
<contents><target name="magecommunity"><dir name="NetpayIntl"><dir name="PaymentInt"><dir name="Block"><dir name="Form"><file name="Cc.php" hash="42aba28ee76c01318b03cdf14600eca2"/></dir><dir name="Info"><file name="Cc.php" hash="522c8caeb4c4ee1f19b1830543304d27"/></dir><file name="Redirect.php" hash="d386ae50f986b3b79d94d2af3146e2e2"/></dir><dir name="Model"><file name="PaymentMethod.php" hash="af04b5d13d0bc9a2d4059f1731f10a80"/></dir><dir name="controllers"><file name="RedirectController.php" hash="e1089d13bfb4a315dc27d9ab1ab4c954"/></dir><dir name="etc"><file name="config.xml" hash="acea593db40bb32aea2b937cfe0339ae"/><file name="system.xml" hash="f7f27cded9c6e40081c3180297f93250"/></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="NetpayIntl_PaymentInt.xml" hash="de444be58ec40ca344b4f69f0e17eb56"/></dir></dir></dir></target></contents>
|
| 20 |
+
<compatible/>
|
| 21 |
+
<dependencies><required><php><min>5.2.0</min><max>5.6.0</max></php></required></dependencies>
|
| 22 |
+
</package>
|
