Version Notes
First release
Download this release
Release Info
| Developer | wps |
| Extension | WebPaymentSoftware_Pay |
| Version | 0.1.0 |
| Comparing to | |
| See all releases | |
Version 0.1.0
- app/code/community/WebPaymentSoftware/Pay/Block/Form/Pay.php +23 -0
- app/code/community/WebPaymentSoftware/Pay/Block/Info/Pay.php +39 -0
- app/code/community/WebPaymentSoftware/Pay/Helper/Data.php +23 -0
- app/code/community/WebPaymentSoftware/Pay/Model/Api.php +290 -0
- app/code/community/WebPaymentSoftware/Pay/Model/Pay.php +196 -0
- app/code/community/WebPaymentSoftware/Pay/Model/Source/Action.php +37 -0
- app/code/community/WebPaymentSoftware/Pay/Model/Source/Cctype.php +27 -0
- app/code/community/WebPaymentSoftware/Pay/etc/config.xml +120 -0
- app/code/community/WebPaymentSoftware/Pay/etc/system.xml +143 -0
- app/code/community/WebPaymentSoftware/Pay/sql/pay_setup/mysql4-install-0.1.0.php +44 -0
- app/etc/modules/WebPaymentSoftware_Pay.xml +33 -0
- package.xml +24 -0
app/code/community/WebPaymentSoftware/Pay/Block/Form/Pay.php
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 Payment
|
| 16 |
+
* @package WebPaymentSoftware_Pay
|
| 17 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 19 |
+
*/
|
| 20 |
+
|
| 21 |
+
class WebPaymentSoftware_Pay_Block_Form_Pay extends Mage_Payment_Block_Form_Ccsave
|
| 22 |
+
{
|
| 23 |
+
}
|
app/code/community/WebPaymentSoftware/Pay/Block/Info/Pay.php
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 Payment
|
| 16 |
+
* @package WebPaymentSoftware_Pay
|
| 17 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 19 |
+
*/
|
| 20 |
+
|
| 21 |
+
class WebPaymentSoftware_Pay_Block_Info_Pay extends Mage_Payment_Block_Info
|
| 22 |
+
{
|
| 23 |
+
protected function _prepareSpecificInformation($transport = null)
|
| 24 |
+
{
|
| 25 |
+
if (null !== $this->_paymentSpecificInformation) {
|
| 26 |
+
return $this->_paymentSpecificInformation;
|
| 27 |
+
}
|
| 28 |
+
$info = $this->getInfo();
|
| 29 |
+
$transport = new Varien_Object();
|
| 30 |
+
$transport = parent::_prepareSpecificInformation($transport);
|
| 31 |
+
$transport->addData(array(
|
| 32 |
+
Mage::helper('payment')->__('Credit Card No Last 4') => $info->getCcLast4(),
|
| 33 |
+
Mage::helper('payment')->__('Card Type') => $info->getCcType(),
|
| 34 |
+
Mage::helper('payment')->__('Exp Date') => $info->getCcExpMonth() . ' / '.$info->getCcExpYear(),
|
| 35 |
+
Mage::helper('payment')->__('Card Owner') => $info->getCcOwner(),
|
| 36 |
+
));
|
| 37 |
+
return $transport;
|
| 38 |
+
}
|
| 39 |
+
}
|
app/code/community/WebPaymentSoftware/Pay/Helper/Data.php
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 Payment
|
| 16 |
+
* @package WebPaymentSoftware_Pay
|
| 17 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 19 |
+
*/
|
| 20 |
+
|
| 21 |
+
class WebPaymentSoftware_Pay_Helper_Data extends Mage_Core_Helper_Abstract
|
| 22 |
+
{
|
| 23 |
+
}
|
app/code/community/WebPaymentSoftware/Pay/Model/Api.php
ADDED
|
@@ -0,0 +1,290 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 Payment
|
| 16 |
+
* @package WebPaymentSoftware_Pay
|
| 17 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 19 |
+
*/
|
| 20 |
+
|
| 21 |
+
class WebPaymentSoftware_Pay_Model_Api {
|
| 22 |
+
|
| 23 |
+
// Config
|
| 24 |
+
//var $host = "secure.web-payment-software.com";
|
| 25 |
+
var $port = 443;
|
| 26 |
+
var $path = "/gateway/";
|
| 27 |
+
var $payment_method = 'card';
|
| 28 |
+
|
| 29 |
+
// Request fields
|
| 30 |
+
var $merchant_id;
|
| 31 |
+
var $merchant_key;
|
| 32 |
+
var $trans_type;
|
| 33 |
+
var $order_id;
|
| 34 |
+
var $amount;
|
| 35 |
+
var $tax;
|
| 36 |
+
var $shipping;
|
| 37 |
+
|
| 38 |
+
var $cc_number;
|
| 39 |
+
var $cc_exp;
|
| 40 |
+
var $cc_cvv;
|
| 41 |
+
|
| 42 |
+
var $check_routing_num;
|
| 43 |
+
var $check_account_num;
|
| 44 |
+
var $check_account_type = 'C';
|
| 45 |
+
var $check_num;
|
| 46 |
+
var $check_ssn;
|
| 47 |
+
var $check_dl_num;
|
| 48 |
+
var $check_dl_state;
|
| 49 |
+
|
| 50 |
+
var $company;
|
| 51 |
+
var $name;
|
| 52 |
+
var $address;
|
| 53 |
+
var $city;
|
| 54 |
+
var $state;
|
| 55 |
+
var $zip;
|
| 56 |
+
var $country;
|
| 57 |
+
var $phone;
|
| 58 |
+
var $email;
|
| 59 |
+
|
| 60 |
+
var $ip_address;
|
| 61 |
+
var $invoice_num;
|
| 62 |
+
var $memo;
|
| 63 |
+
var $test_mode = 0;
|
| 64 |
+
|
| 65 |
+
// Response fields
|
| 66 |
+
var $response;
|
| 67 |
+
var $response_code;
|
| 68 |
+
var $approval_code;
|
| 69 |
+
var $auth_response_text;
|
| 70 |
+
var $avs_result_code;
|
| 71 |
+
var $cvv_result_code;
|
| 72 |
+
var $response_text;
|
| 73 |
+
|
| 74 |
+
// Check-only responses
|
| 75 |
+
var $trace_num;
|
| 76 |
+
var $preauth_result;
|
| 77 |
+
var $preauth_text;
|
| 78 |
+
|
| 79 |
+
// Socket error responses
|
| 80 |
+
var $error_num;
|
| 81 |
+
var $error_string;
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
//////////
|
| 85 |
+
//// INTERFACE METHOD TO THE PAYGATE GATEWAY
|
| 86 |
+
//// Do some basic error handling and post to PayGate
|
| 87 |
+
function transact() {
|
| 88 |
+
|
| 89 |
+
$required = array( 'merchant_id',
|
| 90 |
+
'merchant_key',
|
| 91 |
+
'trans_type',
|
| 92 |
+
'ip_address'
|
| 93 |
+
);
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
if (!isset($this->ip_address)) $this->ip_address = $_SERVER['REMOTE_ADDR'];
|
| 97 |
+
//if (!isset($this->referer)) $this->referer = $_SERVER[''];
|
| 98 |
+
|
| 99 |
+
if ($this->payment_method != 'card' && $this->payment_method != 'check') die ("\$payment_method must be 'card' or 'check'!");
|
| 100 |
+
|
| 101 |
+
$this->trans_type = strtolower($this->trans_type);
|
| 102 |
+
if ($this->trans_type == 'unmark') $this->trans_type == 'void';
|
| 103 |
+
if ($this->trans_type == 'mark') $this->trans_type == 'postauth';
|
| 104 |
+
|
| 105 |
+
// Set required fields array
|
| 106 |
+
if (($this->trans_type == 'authonly') || ($this->trans_type == 'authcapture')) {
|
| 107 |
+
array_push( $required,
|
| 108 |
+
'amount',
|
| 109 |
+
'name',
|
| 110 |
+
'address',
|
| 111 |
+
'city',
|
| 112 |
+
'state',
|
| 113 |
+
'zip',
|
| 114 |
+
'country'
|
| 115 |
+
);
|
| 116 |
+
|
| 117 |
+
if ($this->payment_method == 'card') {
|
| 118 |
+
array_push($required,'cc_number','cc_exp');
|
| 119 |
+
} elseif ($this->payment_method == 'check') {
|
| 120 |
+
array_push($required,'check_routing_num','check_account_num');
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
} elseif (($this->trans_type == 'void') || ($this->trans_type == 'postauth')) {
|
| 124 |
+
array_push( $required,'order_id');
|
| 125 |
+
|
| 126 |
+
} elseif (($this->trans_type == 'credit') || ($this->trans_type == 'force')) {
|
| 127 |
+
array_push( $required,
|
| 128 |
+
'amount',
|
| 129 |
+
'name'
|
| 130 |
+
);
|
| 131 |
+
if ($this->payment_method == 'card') {
|
| 132 |
+
array_push($required,'cc_number','cc_exp');
|
| 133 |
+
|
| 134 |
+
if ($this->trans_type == 'force') {
|
| 135 |
+
array_push($required,'approval_code');
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
} elseif ($this->payment_method == 'check') {
|
| 139 |
+
array_push($required,'check_routing_num','check_account_num');
|
| 140 |
+
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
// first do a quick check to make sure required fields
|
| 146 |
+
// are set
|
| 147 |
+
foreach ($required as $field) {
|
| 148 |
+
if (!isset($this->$field)) die ("$field must be set!");
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
return $this->_post2PayGate();
|
| 152 |
+
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
|
| 156 |
+
// PRIVATE METHOD FOR POSTING TO PAYGATE
|
| 157 |
+
function _post2PayGate() {
|
| 158 |
+
|
| 159 |
+
// Array of fields that may be posted
|
| 160 |
+
$fields = array(
|
| 161 |
+
'merchant_id',
|
| 162 |
+
'merchant_key',
|
| 163 |
+
'trans_type',
|
| 164 |
+
'order_id',
|
| 165 |
+
'amount',
|
| 166 |
+
'tax',
|
| 167 |
+
'shipping',
|
| 168 |
+
|
| 169 |
+
'cc_number',
|
| 170 |
+
'cc_exp',
|
| 171 |
+
'cc_cvv',
|
| 172 |
+
|
| 173 |
+
'check_routing_num',
|
| 174 |
+
'check_account_num',
|
| 175 |
+
'check_account_type',
|
| 176 |
+
'check_num',
|
| 177 |
+
'check_ssn',
|
| 178 |
+
'check_dl_num',
|
| 179 |
+
'check_dl_state',
|
| 180 |
+
|
| 181 |
+
'company',
|
| 182 |
+
'name',
|
| 183 |
+
'address',
|
| 184 |
+
'city',
|
| 185 |
+
'state',
|
| 186 |
+
'zip',
|
| 187 |
+
'country',
|
| 188 |
+
'phone',
|
| 189 |
+
'email',
|
| 190 |
+
|
| 191 |
+
'ip_address',
|
| 192 |
+
'invoice_num',
|
| 193 |
+
'memo',
|
| 194 |
+
'test_mode',
|
| 195 |
+
);
|
| 196 |
+
|
| 197 |
+
// Fields whose names must be changed to cc_... or check_...
|
| 198 |
+
$prepend_fields = array('company','name','address','city','state','zip','country','phone','email');
|
| 199 |
+
|
| 200 |
+
|
| 201 |
+
// build request
|
| 202 |
+
$post = '';
|
| 203 |
+
foreach($fields as $field) {
|
| 204 |
+
if (isset($this->$field)) {
|
| 205 |
+
if ($post!='') $post.="&";
|
| 206 |
+
|
| 207 |
+
if (in_array($field,$prepend_fields)) {
|
| 208 |
+
$field_name = ($this->payment_method=='card'?'cc_':'check_').$field;
|
| 209 |
+
} else {
|
| 210 |
+
$field_name = $field;
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
$post .= urlencode($field_name)."=".urlencode($this->$field);
|
| 214 |
+
//$post.="&";
|
| 215 |
+
}
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
// Build header and body string
|
| 219 |
+
$req = "POST ".$this->path.$this->payment_method." HTTP/1.0\r\n" .
|
| 220 |
+
"Host: ".$this->host."\r\n" .
|
| 221 |
+
"Content-Type: application/x-www-form-urlencoded\r\n" .
|
| 222 |
+
"Content-Length: ".strlen($post)."\r\n" .
|
| 223 |
+
"User-Agent: PayGate-Zilla/1.0\r\n" .
|
| 224 |
+
"Connection: Close\r\n" .
|
| 225 |
+
"\r\n" .
|
| 226 |
+
$post .
|
| 227 |
+
"\r\n\r\n";
|
| 228 |
+
|
| 229 |
+
// if ($this->debug) echo "<pre>\n";
|
| 230 |
+
// if ($this->debug) echo $req;
|
| 231 |
+
|
| 232 |
+
|
| 233 |
+
$timeout = 5;
|
| 234 |
+
$attempt_count = 5;
|
| 235 |
+
$sleep_between = 2;
|
| 236 |
+
|
| 237 |
+
for ($i=0;$i<$attempt_count;$i++) {
|
| 238 |
+
$socket = fsockopen("ssl://".$this->host, $this->port, $errno, $errstr, $timeout);
|
| 239 |
+
if ($socket) break;
|
| 240 |
+
|
| 241 |
+
// If we haven't exhausted connexion attempts, sleep then try again.
|
| 242 |
+
if ($i < $attempt_count-1) {
|
| 243 |
+
sleep($sleep_between);
|
| 244 |
+
continue;
|
| 245 |
+
} else {
|
| 246 |
+
$this->error_string = $errstr;
|
| 247 |
+
$this->error_num = $errno;
|
| 248 |
+
$this->response_code = 501;
|
| 249 |
+
$this->response_text = 'Error connecting to financial network.';
|
| 250 |
+
return;
|
| 251 |
+
}
|
| 252 |
+
|
| 253 |
+
}
|
| 254 |
+
|
| 255 |
+
// Send the server request
|
| 256 |
+
$header = ''; //marcel
|
| 257 |
+
fwrite($socket, $req, strlen($req));
|
| 258 |
+
do $header.=fgets($socket); while (!preg_match('/\\r\\n\\r\\n$/',$header));
|
| 259 |
+
|
| 260 |
+
// create regex for parsing xml response
|
| 261 |
+
$match = "/^<([a-z_]+)>([ \(\)&\+,A-Za-z0-9\.-]+)<\/[a-z_]+>/";
|
| 262 |
+
|
| 263 |
+
// Parse response
|
| 264 |
+
while (!feof($socket)) {
|
| 265 |
+
$buffer = @fgets($socket);
|
| 266 |
+
$this->response .= $buffer;
|
| 267 |
+
|
| 268 |
+
// parse xml
|
| 269 |
+
if(preg_match($match,$buffer,$matches))
|
| 270 |
+
$this->$matches[1] = $matches[2];
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
// Close socket
|
| 274 |
+
fclose ($socket);
|
| 275 |
+
|
| 276 |
+
if ($this->debug) {
|
| 277 |
+
$responses = array( 'response_code','approval_code','auth_response_text',
|
| 278 |
+
'avs_result_code','cvv_result_code','response_text',
|
| 279 |
+
'trace_num','preauth_result','preauth_text','order_id');
|
| 280 |
+
$result = array();
|
| 281 |
+
foreach($responses as $row) {
|
| 282 |
+
if (!isset($this->$row)) continue;
|
| 283 |
+
$result[$row] = $this->$row;
|
| 284 |
+
}
|
| 285 |
+
Mage::log($result, null, 'paygate.log');
|
| 286 |
+
}
|
| 287 |
+
return true;
|
| 288 |
+
}
|
| 289 |
+
|
| 290 |
+
}
|
app/code/community/WebPaymentSoftware/Pay/Model/Pay.php
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 Payment
|
| 16 |
+
* @package WebPaymentSoftware_Pay
|
| 17 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 19 |
+
*/
|
| 20 |
+
|
| 21 |
+
class WebPaymentSoftware_Pay_Model_Pay extends Mage_Payment_Model_Method_Cc
|
| 22 |
+
{
|
| 23 |
+
protected $_code = 'pay';
|
| 24 |
+
protected $_formBlockType = 'pay/form_pay';
|
| 25 |
+
protected $_infoBlockType = 'pay/info_pay';
|
| 26 |
+
|
| 27 |
+
//protected $_isGateway = true;
|
| 28 |
+
protected $_canAuthorize = true;
|
| 29 |
+
protected $_canCapture = true;
|
| 30 |
+
protected $_canRefund = true;
|
| 31 |
+
//protected $_canCapturePartial = true;
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
protected $_canSaveCc = false; //if made try, the actual credit card number and cvv code are stored in database.
|
| 35 |
+
|
| 36 |
+
//protected $_canRefundInvoicePartial = true;
|
| 37 |
+
//protected $_canVoid = true;
|
| 38 |
+
//protected $_canUseInternal = true;
|
| 39 |
+
//protected $_canUseCheckout = true;
|
| 40 |
+
//protected $_canUseForMultishipping = true;
|
| 41 |
+
//protected $_canFetchTransactionInfo = true;
|
| 42 |
+
//protected $_canReviewPayment = true;
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
public function process($data){
|
| 46 |
+
|
| 47 |
+
if($data['cancel'] == 1){
|
| 48 |
+
$order->getPayment()
|
| 49 |
+
->setTransactionId(null)
|
| 50 |
+
->setParentTransactionId(time())
|
| 51 |
+
->void();
|
| 52 |
+
$message = 'Unable to process Payment';
|
| 53 |
+
$order->registerCancellation($message)->save();
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
/** For capture **/
|
| 58 |
+
public function capture(Varien_Object $payment, $amount)
|
| 59 |
+
{
|
| 60 |
+
$order = $payment->getOrder();
|
| 61 |
+
$result = $this->callApi($payment, $amount, 'AuthCapture');
|
| 62 |
+
if($result == false) {
|
| 63 |
+
$errorCode = 'Invalid Data';
|
| 64 |
+
$errorMsg = $this->_getHelper()->__('Error Processing the request');
|
| 65 |
+
} else {
|
| 66 |
+
if($result['status'] == '00'){
|
| 67 |
+
$payment->setTransactionId($result['transaction_id']);
|
| 68 |
+
$payment->setIsTransactionClosed(1);
|
| 69 |
+
$order->save();
|
| 70 |
+
}else{
|
| 71 |
+
$errorMsg = $this->_getHelper()->__($result['response_text']);
|
| 72 |
+
Mage::throwException($errorMsg);
|
| 73 |
+
}
|
| 74 |
+
}
|
| 75 |
+
if(isset($errorMsg)){
|
| 76 |
+
Mage::throwException($errorMsg);
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
return $this;
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
/** For authorization **/
|
| 84 |
+
public function authorize(Varien_Object $payment, $amount)
|
| 85 |
+
{
|
| 86 |
+
$order = $payment->getOrder();
|
| 87 |
+
$result = $this->callApi($payment, $amount, 'AuthOnly');
|
| 88 |
+
|
| 89 |
+
if($result == false) {
|
| 90 |
+
$errorCode = 'Invalid Data';
|
| 91 |
+
$errorMsg = $this->_getHelper()->__('Error Processing the request');
|
| 92 |
+
} else {
|
| 93 |
+
if($result['status'] == '00'){
|
| 94 |
+
$payment->setTransactionId($result['transaction_id']);
|
| 95 |
+
$payment->setIsTransactionClosed(1);
|
| 96 |
+
$order->save();
|
| 97 |
+
}else{
|
| 98 |
+
$errorMsg = $this->_getHelper()->__($result['response_text']);
|
| 99 |
+
Mage::throwException($errorMsg);
|
| 100 |
+
}
|
| 101 |
+
}
|
| 102 |
+
if(isset($errorMsg)){
|
| 103 |
+
Mage::throwException($errorMsg);
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
return $this;
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
public function processBeforeRefund($invoice, $payment){
|
| 110 |
+
return parent::processBeforeRefund($invoice, $payment);
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
public function refund(Varien_Object $payment, $amount){
|
| 114 |
+
$order = $payment->getOrder();
|
| 115 |
+
$result = $this->callApi($payment,$amount,'Reversal');
|
| 116 |
+
if($result == false) {
|
| 117 |
+
$errorCode = 'Invalid Data';
|
| 118 |
+
$errorMsg = $this->_getHelper()->__('Error Processing the request');
|
| 119 |
+
Mage::throwException($errorMsg);
|
| 120 |
+
}
|
| 121 |
+
return $this;
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
public function processCreditmemo($creditmemo, $payment){
|
| 125 |
+
return parent::processCreditmemo($creditmemo, $payment);
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
private function callApi(Varien_Object $payment, $amount, $type){
|
| 129 |
+
|
| 130 |
+
$order = $payment->getOrder();
|
| 131 |
+
$billingaddress = $order->getBillingAddress();
|
| 132 |
+
$totals = number_format($amount, 2, '.', '');
|
| 133 |
+
$orderId = $order->getIncrementId();
|
| 134 |
+
$currencyDesc = $order->getBaseCurrencyCode();
|
| 135 |
+
|
| 136 |
+
$trans = Mage::getModel('pay/api');
|
| 137 |
+
$trans->host = $this->getConfigData('gateway_url');
|
| 138 |
+
$trans->merchant_id = $this->getConfigData('merchant_id');
|
| 139 |
+
$trans->merchant_key = $this->getConfigData('merchant_key');
|
| 140 |
+
$trans->trans_type = $type;
|
| 141 |
+
$trans->amount = $totals;
|
| 142 |
+
$trans->cc_number = $payment->getCcNumber();
|
| 143 |
+
$trans->cc_exp = $this->getExp($payment->getCcExpMonth(), $payment->getCcExpYear());
|
| 144 |
+
$trans->cc_cvv = $payment->getCcCid();
|
| 145 |
+
$trans->name = $billingaddress->getData('firstname') . ' ' . $billingaddress->getData('lastname');
|
| 146 |
+
$trans->address = $billingaddress->getData('street');
|
| 147 |
+
$trans->city = $billingaddress->getData('city');
|
| 148 |
+
$trans->state = $this->getState($billingaddress->getData('region_id'));
|
| 149 |
+
$trans->zip = $billingaddress->getData('postcode');
|
| 150 |
+
$trans->country = $billingaddress->getData('country_id');
|
| 151 |
+
$trans->test_mode = $this->getConfigData('test');
|
| 152 |
+
$trans->debug = $this->getConfigData('debug');
|
| 153 |
+
|
| 154 |
+
$trans->transact();
|
| 155 |
+
|
| 156 |
+
return array('status' => $trans->response_code, 'transaction_id' => $trans->approval_code, 'response_text' => $trans->response_text);
|
| 157 |
+
|
| 158 |
+
//return array('status'=>1,'transaction_id' => time() , 'fraud' => rand(0,1));
|
| 159 |
+
//return array('status'=>rand(0, 1),'transaction_id' => time() , 'fraud' => rand(0,1));
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
function getState($region_id, $region){
|
| 163 |
+
if($region_id){
|
| 164 |
+
$region = Mage::getModel('directory/region')->load($region_id);
|
| 165 |
+
$state = $region->getName();
|
| 166 |
+
|
| 167 |
+
$explode = explode(' ', $state);
|
| 168 |
+
if (count($explode) >= 2) {
|
| 169 |
+
$state = substr($explode[0], 0, 1) . substr($explode[1], 0, 1);
|
| 170 |
+
} else {
|
| 171 |
+
$state = substr($state, 0, 2);
|
| 172 |
+
}
|
| 173 |
+
|
| 174 |
+
return $state;
|
| 175 |
+
}elseif ($region) {
|
| 176 |
+
$state = $region;
|
| 177 |
+
$explode = explode(' ', $state);
|
| 178 |
+
if (count($explode) >= 2) {
|
| 179 |
+
$state = substr($explode[0], 0, 1) . substr($explode[1], 0, 1);
|
| 180 |
+
} else {
|
| 181 |
+
$state = substr($state, 0, 2);
|
| 182 |
+
}
|
| 183 |
+
|
| 184 |
+
return $state;
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
function getExp($month, $year){
|
| 189 |
+
if(strlen($month) == 1) {
|
| 190 |
+
$month = '0'.$month;
|
| 191 |
+
}
|
| 192 |
+
$year = substr($year, -2);
|
| 193 |
+
|
| 194 |
+
return "$month$year";
|
| 195 |
+
}
|
| 196 |
+
}
|
app/code/community/WebPaymentSoftware/Pay/Model/Source/Action.php
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 Payment
|
| 16 |
+
* @package WebPaymentSoftware_Pay
|
| 17 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 19 |
+
*/
|
| 20 |
+
|
| 21 |
+
class WebPaymentSoftware_Pay_Model_Source_Action
|
| 22 |
+
{
|
| 23 |
+
public function toOptionArray()
|
| 24 |
+
{
|
| 25 |
+
return array(
|
| 26 |
+
array(
|
| 27 |
+
'value' => Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE,
|
| 28 |
+
'label' => Mage::helper('core')->__('Authorize & Capture')
|
| 29 |
+
),
|
| 30 |
+
array(
|
| 31 |
+
'value' => Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE,
|
| 32 |
+
'label' => Mage::helper('core')->__('Authorize')
|
| 33 |
+
),
|
| 34 |
+
|
| 35 |
+
);
|
| 36 |
+
}
|
| 37 |
+
}
|
app/code/community/WebPaymentSoftware/Pay/Model/Source/Cctype.php
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 Payment
|
| 16 |
+
* @package WebPaymentSoftware_Pay
|
| 17 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 19 |
+
*/
|
| 20 |
+
|
| 21 |
+
class WebPaymentSoftware_Pay_Model_Source_Cctype extends Mage_Payment_Model_Source_Cctype
|
| 22 |
+
{
|
| 23 |
+
public function getAllowedTypes()
|
| 24 |
+
{
|
| 25 |
+
return array('VI', 'MC', 'AE', 'DI', 'OT');
|
| 26 |
+
}
|
| 27 |
+
}
|
app/code/community/WebPaymentSoftware/Pay/etc/config.xml
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 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 bundled with this package in the file LICENSE.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* @category Payment
|
| 17 |
+
* @package WebPaymentSoftware_Pay
|
| 18 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 19 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 20 |
+
*/
|
| 21 |
+
-->
|
| 22 |
+
|
| 23 |
+
<config>
|
| 24 |
+
<modules>
|
| 25 |
+
<WebPaymentSoftware_Pay>
|
| 26 |
+
<version>0.1.0</version>
|
| 27 |
+
</WebPaymentSoftware_Pay>
|
| 28 |
+
</modules>
|
| 29 |
+
<frontend>
|
| 30 |
+
<!-- <routers>
|
| 31 |
+
<pay>
|
| 32 |
+
<use>standard</use>
|
| 33 |
+
<args>
|
| 34 |
+
<module>WebPaymentSoftware_Pay</module>
|
| 35 |
+
<frontName>pay</frontName>
|
| 36 |
+
</args>
|
| 37 |
+
</pay>
|
| 38 |
+
</routers>
|
| 39 |
+
<layout>
|
| 40 |
+
<updates>
|
| 41 |
+
<pay>
|
| 42 |
+
<file>pay.xml</file>
|
| 43 |
+
</pay>
|
| 44 |
+
</updates>
|
| 45 |
+
</layout>-->
|
| 46 |
+
</frontend>
|
| 47 |
+
<global>
|
| 48 |
+
<fieldsets>
|
| 49 |
+
<sales_convert_quote_payment>
|
| 50 |
+
<check_no>
|
| 51 |
+
<to_order_payment>*</to_order_payment>
|
| 52 |
+
</check_no>
|
| 53 |
+
<check_date>
|
| 54 |
+
<to_order_payment>*</to_order_payment>
|
| 55 |
+
</check_date>
|
| 56 |
+
</sales_convert_quote_payment>
|
| 57 |
+
</fieldsets>
|
| 58 |
+
<models>
|
| 59 |
+
<pay>
|
| 60 |
+
<class>WebPaymentSoftware_Pay_Model</class>
|
| 61 |
+
<resourceModel>pay_mysql4</resourceModel>
|
| 62 |
+
</pay>
|
| 63 |
+
<pay_mysql4>
|
| 64 |
+
<class>WebPaymentSoftware_Pay_Model_Mysql4</class>
|
| 65 |
+
<entities>
|
| 66 |
+
<pay>
|
| 67 |
+
<table>pay</table>
|
| 68 |
+
</pay>
|
| 69 |
+
</entities>
|
| 70 |
+
</pay_mysql4>
|
| 71 |
+
</models>
|
| 72 |
+
<resources>
|
| 73 |
+
<pay_setup>
|
| 74 |
+
<setup>
|
| 75 |
+
<module>WebPaymentSoftware_Pay</module>
|
| 76 |
+
</setup>
|
| 77 |
+
<connection>
|
| 78 |
+
<use>core_setup</use>
|
| 79 |
+
</connection>
|
| 80 |
+
</pay_setup>
|
| 81 |
+
<pay_write>
|
| 82 |
+
<connection>
|
| 83 |
+
<use>core_write</use>
|
| 84 |
+
</connection>
|
| 85 |
+
</pay_write>
|
| 86 |
+
<pay_read>
|
| 87 |
+
<connection>
|
| 88 |
+
<use>core_read</use>
|
| 89 |
+
</connection>
|
| 90 |
+
</pay_read>
|
| 91 |
+
</resources>
|
| 92 |
+
<blocks>
|
| 93 |
+
<pay>
|
| 94 |
+
<class>WebPaymentSoftware_Pay_Block</class>
|
| 95 |
+
</pay>
|
| 96 |
+
</blocks>
|
| 97 |
+
<helpers>
|
| 98 |
+
<pay>
|
| 99 |
+
<class>WebPaymentSoftware_Pay_Helper</class>
|
| 100 |
+
</pay>
|
| 101 |
+
</helpers>
|
| 102 |
+
</global>
|
| 103 |
+
<default>
|
| 104 |
+
<payment>
|
| 105 |
+
<pay>
|
| 106 |
+
<active>0</active>
|
| 107 |
+
<model>pay/pay</model>
|
| 108 |
+
<order_status>processing</order_status>
|
| 109 |
+
<title>Web Payment Software</title>
|
| 110 |
+
<gateway_url>secure.web-payment-software.com</gateway_url>
|
| 111 |
+
<cctypes>AE,VI,MC,DI</cctypes>
|
| 112 |
+
<test>1</test>
|
| 113 |
+
<debug>1</debug>
|
| 114 |
+
<payment_action>authorize</payment_action>
|
| 115 |
+
<order_status>processing</order_status>
|
| 116 |
+
<allowspecific>0</allowspecific>
|
| 117 |
+
</pay>
|
| 118 |
+
</payment>
|
| 119 |
+
</default>
|
| 120 |
+
</config>
|
app/code/community/WebPaymentSoftware/Pay/etc/system.xml
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 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 bundled with this package in the file LICENSE.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* @category Payment
|
| 17 |
+
* @package WebPaymentSoftware_Pay
|
| 18 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 19 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 20 |
+
*/
|
| 21 |
+
-->
|
| 22 |
+
|
| 23 |
+
<config>
|
| 24 |
+
<sections>
|
| 25 |
+
<payment>
|
| 26 |
+
<groups>
|
| 27 |
+
<pay translate="label" module="pay">
|
| 28 |
+
<label>Web Payment Software</label>
|
| 29 |
+
<sort_order>1</sort_order>
|
| 30 |
+
<show_in_default>1</show_in_default>
|
| 31 |
+
<show_in_website>1</show_in_website>
|
| 32 |
+
<show_in_store>0</show_in_store>
|
| 33 |
+
<fields>
|
| 34 |
+
<active translate="label">
|
| 35 |
+
<label>Enabled</label>
|
| 36 |
+
<frontend_type>select</frontend_type>
|
| 37 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 38 |
+
<sort_order>10</sort_order>
|
| 39 |
+
<show_in_default>1</show_in_default>
|
| 40 |
+
<show_in_website>1</show_in_website>
|
| 41 |
+
<show_in_store>0</show_in_store>
|
| 42 |
+
</active>
|
| 43 |
+
<title translate="label">
|
| 44 |
+
<label>Title</label>
|
| 45 |
+
<frontend_type>text</frontend_type>
|
| 46 |
+
<sort_order>11</sort_order>
|
| 47 |
+
<show_in_default>1</show_in_default>
|
| 48 |
+
<show_in_website>1</show_in_website>
|
| 49 |
+
<show_in_store>0</show_in_store>
|
| 50 |
+
</title>
|
| 51 |
+
<merchant_id translate="label">
|
| 52 |
+
<label>Merchant ID</label>
|
| 53 |
+
<frontend_type>text</frontend_type>
|
| 54 |
+
<sort_order>20</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 |
+
</merchant_id>
|
| 59 |
+
<merchant_key translate="label">
|
| 60 |
+
<label>Merchant KEY</label>
|
| 61 |
+
<frontend_type>text</frontend_type>
|
| 62 |
+
<sort_order>30</sort_order>
|
| 63 |
+
<show_in_default>1</show_in_default>
|
| 64 |
+
<show_in_website>1</show_in_website>
|
| 65 |
+
<show_in_store>0</show_in_store>
|
| 66 |
+
</merchant_key>
|
| 67 |
+
<gateway_url translate="label">
|
| 68 |
+
<label>Gateway</label>
|
| 69 |
+
<frontend_type>text</frontend_type>
|
| 70 |
+
<sort_order>40</sort_order>
|
| 71 |
+
<show_in_default>1</show_in_default>
|
| 72 |
+
<show_in_website>1</show_in_website>
|
| 73 |
+
<show_in_store>0</show_in_store>
|
| 74 |
+
</gateway_url>
|
| 75 |
+
<cctypes translate="label">
|
| 76 |
+
<label>Credit Card Types</label>
|
| 77 |
+
<frontend_type>multiselect</frontend_type>
|
| 78 |
+
<source_model>pay/source_cctype</source_model>
|
| 79 |
+
<sort_order>50</sort_order>
|
| 80 |
+
<show_in_default>1</show_in_default>
|
| 81 |
+
<show_in_website>1</show_in_website>
|
| 82 |
+
<show_in_store>0</show_in_store>
|
| 83 |
+
<can_be_empty>1</can_be_empty>
|
| 84 |
+
</cctypes>
|
| 85 |
+
<test translate="label">
|
| 86 |
+
<label>Test Mode</label>
|
| 87 |
+
<frontend_type>select</frontend_type>
|
| 88 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 89 |
+
<sort_order>51</sort_order>
|
| 90 |
+
<show_in_default>1</show_in_default>
|
| 91 |
+
<show_in_website>1</show_in_website>
|
| 92 |
+
<show_in_store>0</show_in_store>
|
| 93 |
+
</test>
|
| 94 |
+
<debug translate="label">
|
| 95 |
+
<label>Debug</label>
|
| 96 |
+
<frontend_type>select</frontend_type>
|
| 97 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 98 |
+
<sort_order>52</sort_order>
|
| 99 |
+
<show_in_default>1</show_in_default>
|
| 100 |
+
<show_in_website>1</show_in_website>
|
| 101 |
+
<show_in_store>0</show_in_store>
|
| 102 |
+
</debug>
|
| 103 |
+
<payment_action translate="label">
|
| 104 |
+
<label>Payment Action</label>
|
| 105 |
+
<frontend_type>select</frontend_type>
|
| 106 |
+
<source_model>pay/source_action</source_model>
|
| 107 |
+
<sort_order>70</sort_order>
|
| 108 |
+
<show_in_default>1</show_in_default>
|
| 109 |
+
<show_in_website>1</show_in_website>
|
| 110 |
+
</payment_action>
|
| 111 |
+
<order_status translate="label">
|
| 112 |
+
<label>New order status</label>
|
| 113 |
+
<frontend_type>select</frontend_type>
|
| 114 |
+
<source_model>adminhtml/system_config_source_order_status_processing</source_model>
|
| 115 |
+
<sort_order>80</sort_order>
|
| 116 |
+
<show_in_default>1</show_in_default>
|
| 117 |
+
<show_in_website>1</show_in_website>
|
| 118 |
+
<show_in_store>0</show_in_store>
|
| 119 |
+
</order_status>
|
| 120 |
+
<allowspecific translate="label">
|
| 121 |
+
<label>Payment from Applicable Countries</label>
|
| 122 |
+
<frontend_type>allowspecific</frontend_type>
|
| 123 |
+
<sort_order>81</sort_order>
|
| 124 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 125 |
+
<show_in_default>1</show_in_default>
|
| 126 |
+
<show_in_website>1</show_in_website>
|
| 127 |
+
<show_in_store>0</show_in_store>
|
| 128 |
+
</allowspecific>
|
| 129 |
+
<specificcountry translate="label">
|
| 130 |
+
<label>Payment from Specific Countries</label>
|
| 131 |
+
<frontend_type>multiselect</frontend_type>
|
| 132 |
+
<sort_order>82</sort_order>
|
| 133 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 134 |
+
<show_in_default>1</show_in_default>
|
| 135 |
+
<show_in_website>1</show_in_website>
|
| 136 |
+
<show_in_store>0</show_in_store>
|
| 137 |
+
</specificcountry>
|
| 138 |
+
</fields>
|
| 139 |
+
</pay>
|
| 140 |
+
</groups>
|
| 141 |
+
</payment>
|
| 142 |
+
</sections>
|
| 143 |
+
</config>
|
app/code/community/WebPaymentSoftware/Pay/sql/pay_setup/mysql4-install-0.1.0.php
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 Payment
|
| 16 |
+
* @package WebPaymentSoftware_Pay
|
| 17 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 19 |
+
*/
|
| 20 |
+
|
| 21 |
+
$installer = $this;
|
| 22 |
+
/* @var $installer Mage_Customer_Model_Entity_Setup */
|
| 23 |
+
|
| 24 |
+
$installer->startSetup();
|
| 25 |
+
|
| 26 |
+
$installer->run("
|
| 27 |
+
|
| 28 |
+
ALTER TABLE `{$installer->getTable('sales/quote_payment')}` ADD `pay_cc_expmo` VARCHAR( 255 ) NOT NULL ;
|
| 29 |
+
ALTER TABLE `{$installer->getTable('sales/quote_payment')}` ADD `pay_cc_expyr` VARCHAR( 255 ) NOT NULL ;
|
| 30 |
+
ALTER TABLE `{$installer->getTable('sales/quote_payment')}` ADD `pay_cc_number` VARCHAR( 255 ) NOT NULL ;
|
| 31 |
+
ALTER TABLE `{$installer->getTable('sales/quote_payment')}` ADD `pay_cc_type` VARCHAR( 255 ) NOT NULL ;
|
| 32 |
+
ALTER TABLE `{$installer->getTable('sales/quote_payment')}` ADD `pay_cc_cvc` VARCHAR( 255 ) NOT NULL ;
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
ALTER TABLE `{$installer->getTable('sales/order_payment')}` ADD `pay_cc_expmo` VARCHAR( 255 ) NOT NULL ;
|
| 37 |
+
ALTER TABLE `{$installer->getTable('sales/order_payment')}` ADD `pay_cc_expyr` VARCHAR( 255 ) NOT NULL ;
|
| 38 |
+
ALTER TABLE `{$installer->getTable('sales/order_payment')}` ADD `pay_cc_number` VARCHAR( 255 ) NOT NULL ;
|
| 39 |
+
ALTER TABLE `{$installer->getTable('sales/order_payment')}` ADD `pay_cc_type` VARCHAR( 255 ) NOT NULL ;
|
| 40 |
+
ALTER TABLE `{$installer->getTable('sales/order_payment')}` ADD `pay_cc_cvc` VARCHAR( 255 ) NOT NULL ;
|
| 41 |
+
|
| 42 |
+
");
|
| 43 |
+
|
| 44 |
+
$installer->endSetup();
|
app/etc/modules/WebPaymentSoftware_Pay.xml
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 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 bundled with this package in the file LICENSE.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* @category Payment
|
| 17 |
+
* @package WebPaymentSoftware_Pay
|
| 18 |
+
* @copyright Copyright (c) 2013 Web Payment Software (http://www.web-payment-software.com/)
|
| 19 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 20 |
+
*/
|
| 21 |
+
-->
|
| 22 |
+
|
| 23 |
+
<config>
|
| 24 |
+
<modules>
|
| 25 |
+
<WebPaymentSoftware_Pay>
|
| 26 |
+
<active>true</active>
|
| 27 |
+
<codePool>community</codePool>
|
| 28 |
+
<depends>
|
| 29 |
+
<Mage_Payment />
|
| 30 |
+
</depends>
|
| 31 |
+
</WebPaymentSoftware_Pay>
|
| 32 |
+
</modules>
|
| 33 |
+
</config>
|
package.xml
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>WebPaymentSoftware_Pay</name>
|
| 4 |
+
<version>0.1.0</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>WPS, a PCI Level 1 service provider, offering you the most safe and secure online payment solutions available.</summary>
|
| 10 |
+
<description>Web Payment Software™ is a product and service of Mountain Media. Mountain Media has been serving the eCommerce development marketplace since 1998.
|
| 11 |
+

|
| 12 |
+
As a compliment to Mountain Commerce, the company’s full-featured eCommerce platform, Mountain Media has developed a payment gateway for use with eCommerce Web sites with an added twist. Not only does Web Payment Software™ function as a traditional ecommerce gateway and virtual terminal, it also offers a hosted solution for constructing and managing “payment pages.” This flexible new system is great for accepting online invoice payments, donations or event registrations or as an alternative to PayPal.
|
| 13 |
+

|
| 14 |
+
Mountain Media is a PCI DSS compliant hosting provider which ensures that your transactions will be protected by the toughest data security standards and technology available.
|
| 15 |
+

|
| 16 |
+
Contact a payment consultant today at (877) 583-0300 for a free consultation.</description>
|
| 17 |
+
<notes>First release</notes>
|
| 18 |
+
<authors><author><name>wps</name><user>wps_magento</user><email>dev@web-payment-software.com</email></author></authors>
|
| 19 |
+
<date>2013-11-08</date>
|
| 20 |
+
<time>18:05:47</time>
|
| 21 |
+
<contents><target name="magecommunity"><dir name="WebPaymentSoftware"><dir name="Pay"><dir name="Block"><dir name="Form"><file name="Pay.php" hash="e135ba0b5c3d15fee6598e141ac75ff2"/></dir><dir name="Info"><file name="Pay.php" hash="f70b683675249e1d2a37c48dc65fd06c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="7374e037a98af0661be9c67d3e66aaaf"/></dir><dir name="Model"><file name="Api.php" hash="785ace2ecac6f78af74e350b8ff78364"/><file name="Pay.php" hash="07ace6a00da2c2f727da201d6fe64822"/><dir name="Source"><file name="Action.php" hash="5e9830f2921b3bd0b3e246f9832d7f18"/><file name="Cctype.php" hash="45e6997f63628c826b554cf8dc85f35a"/></dir></dir><dir name="etc"><file name="config.xml" hash="11afb437534b15877c14758695af51cd"/><file name="system.xml" hash="87fb20507d5455fdbd36d447b6dab24e"/></dir><dir name="sql"><dir name="pay_setup"><file name="mysql4-install-0.1.0.php" hash="80f739cd45919dab5648ff12faf083ee"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="WebPaymentSoftware_Pay.xml" hash="1286d3ba81e449140c2366c77582c7e2"/></dir></target></contents>
|
| 22 |
+
<compatible/>
|
| 23 |
+
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
| 24 |
+
</package>
|
