Code:
<?php
/*
$Id: alertpay.php,v 1.2 2010/07/22
Released under the GNU General Public License
Alertpay module Created By Gray Appleton
This update by Peter Humphrey
This free contribution made by request.
If you have found this script usefull a small
donation by Alertpay to applehobbys##################
would be greatly appreciated.
*/
class alertpay {
var $code, $title, $description, $enabled;
// class constructor
function alertpay() {
global $order;
$this->code = 'alertpay';
$this->title = MODULE_PAYMENT_ALERTPAY_TEXT_TITLE;
$this->description = MODULE_PAYMENT_ALERTPAY_TEXT_DESCRIPTION;
$this->sort_order = MODULE_PAYMENT_ALERTPAY_SORT_ORDER;
$this->enabled = ((MODULE_PAYMENT_ALERTPAY_STATUS == 'True') ? true : false);
if ((int)MODULE_PAYMENT_ALERTPAY_ORDER_STATUS_ID > 0) {
$this->order_status = MODULE_PAYMENT_ALERTPAY_ORDER_STATUS_ID;
}
$this->form_action_url = 'https://www.alertpay.com/PayProcess.aspx';
if (is_object($order)) $this->update_status();
}
function update_status() {
global $db;
global $order;
if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_ALERTPAY_ZONE > 0) ) {
$check_flag = false;
$check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_ALERTPAY_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");
while (!$check->EOF) {
if ($check->fields['zone_id'] < 1) {
$check_flag = true;
break;
} elseif ($check->fields['zone_id'] == $order->billing['zone_id']) {
$check_flag = true;
break;
}
$check->MoveNext();
}
if ($check_flag == false) {
$this->enabled = false;
}
}
}
// class methods
function javascript_validation() {
return false;
}
function selection() {
return array('id' => $this->code,
'module' => $this->title);
}
function pre_confirmation_check() {
return false;
}
function confirmation() {
return false;
}
function process_button() {
global $db, $order, $currencies;
//alertpay accepted currency
$alert_cur = array('CAD', 'EUR', 'GBP', 'USD', 'AUD' , 'SEK' , 'CHF' , 'HKD' , 'NZD' , 'NOK' , 'ZAR' , 'SGD' );
$CUR = $order->info['currency'];
if (!in_array($CUR,$alert_cur)) {
$CUR = 'CAD';
}
//to show complete list of product on alertpay payment gateway page
for($i=0;$i<count($order->products);$i++)
{
if($i > 0 ) $postfix = "_".$i;
$hiddenBox .= zen_draw_hidden_field('ap_itemname'.$postfix, $order->products[$i]['name']) .
zen_draw_hidden_field('ap_amount'.$postfix, $order->products[$i]['price']) .
zen_draw_hidden_field('ap_quantity'.$postfix, $order->products[$i]['qty']);
}
$process_button_string = zen_draw_hidden_field('ap_merchant', MODULE_PAYMENT_ALERTPAY_ACCOUNT) .
zen_draw_hidden_field('ap_currency', $CUR) .
zen_draw_hidden_field('ap_taxamount', number_format($order->info['tax'], 2, '.', '')) .
zen_draw_hidden_field('ap_purchasetype', 'Item') .
// prefills the customers details in alertpay payment page
zen_draw_hidden_field('ap_fname', $order->customer['firstname']) .
zen_draw_hidden_field('ap_lname', $order->customer['lastname']) .
zen_draw_hidden_field('ap_contactemail', $order->customer['email_address']) .
zen_draw_hidden_field('ap_zippostalcode', $order->billing['postcode']) .
zen_draw_hidden_field('ap_city', $order->billing['city']) .
zen_draw_hidden_field('ap_country', $order->billing['country']) .
zen_draw_hidden_field('ap_stateprovince', $order->billing['state']) .
zen_draw_hidden_field('ap_addressline1', $order->billing['street_address']) .
zen_draw_hidden_field('ap_addressline2', $order->billing['suburb']) .
zen_draw_hidden_field('ap_contactphone', $order->customer['telephone']) .
// end prefill data
$hiddenBox .
//pass shipping information to alertpay payment gateway
zen_draw_hidden_field('ap_shippingcharges', number_format($order->info['shipping_cost'], 2, '.', '')) .
zen_draw_hidden_field('ap_returnurl', zen_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
zen_draw_hidden_field('ap_cancelurl', zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
return $process_button_string;
}
function before_process() {
return false;
}
function after_process() {
return false;
}
function output_error() {
return false;
}
function check() {
global $db;
if (!isset($this->_check)) {
$check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_ALERTPAY_STATUS'");
$this->_check = $check_query->RecordCount();
}
return $this->_check;
}
function install() {
global $db;
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Alertpay Module', 'MODULE_PAYMENT_ALERTPAY_STATUS', 'True', 'Do you want to accept Alertpay payments?', '6', '3', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now());");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_ALERTPAY_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('General product description.', 'MODULE_PAYMENT_ALERTPAY_PRODUCT_TYPE', '', 'Needed to complete Alertpay process.', '6', '5', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Alertpay Account Number', 'MODULE_PAYMENT_ALERTPAY_ACCOUNT', '[email protected]', 'Your Alertpay account number to which the payment is to be made.', '6', '4', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_ALERTPAY_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_ALERTPAY_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
}
function remove() {
global $db;
$db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
}
function keys() {
return array('MODULE_PAYMENT_ALERTPAY_STATUS', 'MODULE_PAYMENT_ALERTPAY_SORT_ORDER', 'MODULE_PAYMENT_ALERTPAY_PRODUCT_TYPE', 'MODULE_PAYMENT_ALERTPAY_ACCOUNT', 'MODULE_PAYMENT_ALERTPAY_ZONE', 'MODULE_PAYMENT_ALERTPAY_ORDER_STATUS_ID');
}
}
?>
Bookmarks