PHP Code:
<?php
/*
$Id: safepay.php,v 1.0 2006/03/28 16:22:25 SPSTeam Exp $
SafePaySolutions Payment module for OSCommerce
http://www.safepaysolutions.com
Copyright © 2006 SafePay Solutions, All Rights Reserved
*/
class safepay {
var $code, $title, $description, $enabled;
// class constructor
function safepay() {
global $order;
$this->code = 'safepay';
$this->title = MODULE_PAYMENT_SAFEPAY_TEXT_TITLE;
$this->description = MODULE_PAYMENT_SAFEPAY_TEXT_DESCRIPTION;
$this->sort_order = MODULE_PAYMENT_SAFEPAY_SORT_ORDER;
$this->enabled = ((MODULE_PAYMENT_SAFEPAY_STATUS == 'True') ? true : false);
if((int)MODULE_PAYMENT_SAFEPAY_ORDER_STATUS_ID>0)
{
$this->order_status = MODULE_PAYMENT_SAFEPAY_ORDER_STATUS_ID;
}
if(is_object($order)) $this->update_status();
$this->form_action_url = 'https://www.safepaysolutions.com/index.php';
}
// class methods
function update_status()
{
global $order;
if(($this->enabled==true) && ((int)MODULE_PAYMENT_SAFEPAY_ZONE>0))
{
$check_flag = false;
$check_query = $db->Execute("SELECT `zone_id` FROM ".TABLE_ZONES_TO_GEO_ZONES." WHERE `geo_zone_id`='".MODULE_PAYMENT_SAFEPAY_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['zone_id'] == $order->billing['zone_id'])
{
$check_flag = true;
break;
}
$check->MoveNext();
}
if($check_flag==false)
{
$this->enabled = false;
}
}
}
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 $order, $currencies, $currency;
if (MODULE_PAYMENT_SAFEPAY_CURRENCY == "Selected Currency")
{
$my_currency = $currency;
}
else
{
$my_currency = substr(MODULE_PAYMENT_SAFEPAY_CURRENCY, 5);
}
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD')))
{
$my_currency = 'USD';
}
$process_button_string =
"\n".zen_draw_hidden_field("notifyURL", zen_href_link('modules/payment/safepay_ipn/ipn.php', "", "SSL", false, false)) .
"\n".zen_draw_hidden_field("returnURL", zen_href_link(FILENAME_CHECKOUT_PROCESS, "", 'SSL')) .
"\n".zen_draw_hidden_field("cancelURL", zen_href_link(FILENAME_CHECKOUT_PAYMENT, "", "SSL")) .
"\n".zen_draw_hidden_field("_ipn_act", "_ipn_payment") .
"\n".zen_draw_hidden_field("iamount", number_format(($order->info['total']) * $currencies->currencies['USD']['value'], $currencies->currencies['USD']['decimal_places'])) .
"\n".zen_draw_hidden_field("iowner", MODULE_PAYMENT_SAFEPAY_ID) .
"\n".zen_draw_hidden_field("itemName", MODULE_PAYMENT_SAFEPAY_PRODUCT_TYPE) .
"\n".zen_draw_hidden_field("itemNum", MODULE_PAYMENT_SAFEPAY_ID) .
"\n".zen_draw_hidden_field("ireceiver", MODULE_PAYMENT_SAFEPAY_ID) .
"\n".zen_draw_hidden_field("idescr", MODULE_PAYMENT_SAFEPAY_ID) .
"\n".zen_draw_hidden_field("idelivery", "") .
"\n".zen_draw_hidden_field("imultiplyPurchase", "") .
"\n".zen_draw_hidden_field("colortheme", "DefaultSystemTheme") .
"\n".zen_draw_hidden_field("iquantity", "");
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_SAFEPAY_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 SafePay Module', 'MODULE_PAYMENT_SAFEPAY_STATUS', 'True', 'Do you want to accept safepay 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 ('SafePay Account', 'MODULE_PAYMENT_SAFEPAY_ID', 'username', 'Account to use for the SafePay service', '6', '4', now())");
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Transaction Currency', 'MODULE_PAYMENT_SAFEPAY_CURRENCY', 'Selected Currency', 'The currency to use for credit card transactions', '6', '6', 'zen_cfg_select_option(array(\'Selected Currency\',\'Only USD\',\'Only CAD\',\'Only EUR\',\'Only GBP\',\'Only JPY\'), ', 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_SAFEPAY_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, use_function, set_function, date_added) VALUES ('Payment Zone', 'MODULE_PAYMENT_SAFEPAY_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_SAFEPAY_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())");
$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_SAFEPAY_PRODUCT_TYPE', '', 'Need to complete Safepay process.', '6', '5', now())");
}
function remove()
{
global $db;
$db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
}
function keys()
{
return array("MODULE_PAYMENT_SAFEPAY_STATUS", "MODULE_PAYMENT_SAFEPAY_ID",'MODULE_PAYMENT_SAFEPAY_PRODUCT_TYPE', "MODULE_PAYMENT_SAFEPAY_CURRENCY", "MODULE_PAYMENT_SAFEPAY_ZONE", "MODULE_PAYMENT_SAFEPAY_ORDER_STATUS_ID", "MODULE_PAYMENT_SAFEPAY_SORT_ORDER");
}
}
?>
Bookmarks