Jump to content
Sign in to follow this  
douxbb

payment/paypal.php

Recommended Posts

Warning: before_process(includes/modules/payment/paypal/classes/osC/osC.class.php): failed to open stream: No such file or directory in /hsphere/local/home/mysite/mysite.com/catalog/includes/modules/payment/paypal.php on line 141

 

Warning: before_process(): Failed opening 'includes/modules/payment/paypal/classes/osC/osC.class.php' for inclusion (include_path='.:/usr/local/lib/php') in /hsphere/local/home/mysite/mysite.com/catalog/includes/modules/payment/paypal.php on line 141

 

Fatal error: Undefined class name 'paypal_osc' in /hsphere/local/home/mysite/mysite.com/catalog/includes/modules/payment/paypal.php on line 142

=================================

 

I installed the CCGV516 and now I get this error for checkout confirmation when choosing Paypal method!

Any help, please!!

 

Thanks

I post now my paypal.php:

 

<?php

/*

$Id: paypal.php,v 1.1.1.1 2004/09/22 13:45:13 devosc Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

DevosC, Developing open source Code

http://www.devosc.com

 

Copyright © 2003 osCommerce

Copyright © 2004 DevosC.com

 

Released under the GNU General Public License

 

 

LISTEN UP!!!

I removed all instances of shipping in the cart => paypal transaction. What does this mean?

It means that PayPal will never list shipping in any order transactions. However, should

you use a coupon with free or discounted shipping in it, PayPal will always recieve the correct

charge amount.

 

-Kevin Peno

-Digital-NW.com

-Rent-a-Coder, Coder

*/

 

define('FILENAME_PAYPAL_INFO','popup_paypal.php');

define('FILENAME_IPN','ipn.php');

 

class paypal {

var $code, $title, $description, $enabled;

 

// class constructor

function paypal() {

global $order;

$this->code = 'paypal';

$this->codeTitle = 'PayPal';

$this->title = MODULE_PAYMENT_PAYPAL_TEXT_TITLE;

$this->description = MODULE_PAYMENT_PAYPAL_TEXT_DESCRIPTION;

$this->sort_order = MODULE_PAYMENT_PAYPAL_SORT_ORDER;

$this->enabled = ((MODULE_PAYMENT_PAYPAL_STATUS == 'True') ? true : false);

if ((int)MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID > 0) {

$this->order_status = MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID;

}

if (is_object($order)) $this->update_status();

$this->form_paypal_url = 'https://' . MODULE_PAYMENT_PAYPAL_DOMAIN . '/cgi-bin/webscr';

$this->cc_explain_url = tep_href_link(FILENAME_PAYPAL_INFO, '', 'SSL');

}

 

// catalog payment module class methods

function update_status() {

global $order;

if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PAYPAL_ZONE > 0) ) {

$check_flag = false;

$check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_PAYPAL_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");

while ($check = tep_db_fetch_array($check_query)) {

if ($check['zone_id'] < 1) {

$check_flag = true;

break;

} elseif ($check['zone_id'] == $order->billing['zone_id']) {

$check_flag = true;

break;

}

}

if ($check_flag == false) {

$this->enabled = false;

}

}

}

 

function javascript_validation() {

return false;

}

 

function selection() {

$img_visa = DIR_WS_MODULES .'payment/paypal/images/visa.gif';

$img_mc = DIR_WS_MODULES .'payment/paypal/images/mastercard.gif';

$img_discover = DIR_WS_MODULES .'payment/paypal/images/discover.gif';

$img_amex = DIR_WS_MODULES .'payment/paypal/images/amex.gif';

$img_paypal = DIR_WS_MODULES .'payment/paypal/images/paypal_intl.gif';

$jscript_url = '<a style="cursor: pointer; cursor: hand;"' . " onclick=\"java script:popup=window.open(\'" . $this->cc_explain_url . "\',\'popup\',\'scrollbars,resizable,width=625,height=600,left=50,top=50\'); popup.focus(); return false;\">";

$cc_explain = '<div style="A.hover{cursor:hand}">' . MODULE_PAYMENT_PAYPAL_CC_DESCRIPTION .'?' .

"<script>document.writeln('" . $jscript_url .

MODULE_PAYMENT_PAYPAL_CC_URL_TEXT . "</a>');</script>" .

'<noscript><a href="' . $this->cc_explain_url . '" target="_blank">' .

MODULE_PAYMENT_PAYPAL_CC_URL_TEXT . '</noscript>' ."\n".'</div>';

$paypal_cc_txt = sprintf(MODULE_PAYMENT_PAYPAL_CC_TEXT,

tep_image($img_visa,' Visa ','','','align="absmiddle"'),

tep_image($img_mc,' MasterCard ','','','align="absmiddle"'),

tep_image($img_discover,' Discover ','','','align="absmiddle"'),

tep_image($img_amex,' American Express ','','','align="absmiddle"'),

tep_image($img_paypal,' PayPal ','','','align="absmiddle"')

);

$fields[] = array('title' => '', //MODULE_PAYMENT_PAYPAL_TEXT_TITLE,

'field' => '<div><b>' . $paypal_cc_txt . '</b></div>' . $cc_explain );

return array('id' => $this->code,

'module' => $this->title,

'fields' => $fields);

}

 

function pre_confirmation_check() {

return false;

}

 

function confirmation() {

return false;

}

 

function currency() {

global $currency;

if(!isset($this->currency)) {

if (MODULE_PAYMENT_PAYPAL_CURRENCY == 'Selected Currency') {

$this->currency = $currency;

} else {

$this->currency = substr(MODULE_PAYMENT_PAYPAL_CURRENCY, 5);

}

if (!in_array($this->currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD', 'AUD'))) {

$this->currency = MODULE_PAYMENT_PAYPAL_DEFAULT_CURRENCY;

}

}

return $this->currency;

}

 

//Returns the gross total amount to compare with paypal.mc_gross

function grossPaymentAmount($my_currency) {

global $order, $currencies;

return number_format(($order->info['total']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency));

}

 

function amount($my_currency) {

global $order, $currencies;

return number_format(($order->info['total']/* - $order->info['shipping_cost']*/) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency));

}

 

function process_button() {

return false;

}

 

function before_process() {

if(!class_exists('PayPal_osC')) include_once(DIR_WS_MODULES . 'payment/paypal/classes/osC/osC.class.php');

if (PayPal_osC::check_order_status()) {

tep_redirect(tep_href_link(FILENAME_SHOPPING_CART, '', 'SSL'));

} else {

include(DIR_WS_MODULES . 'payment/paypal/catalog/checkout_process.inc.php');

}

exit;

}

 

function after_process() {

return false;

}

 

function output_error() {

return false;

}

 

function check() {

if (!isset($this->_check)) {

$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_PAYPAL_STATUS'");

$this->_check = tep_db_num_rows($check_query);

}

return $this->_check;

}

 

function install() {

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable PayPal Module', 'MODULE_PAYMENT_PAYPAL_STATUS', 'True', 'Do you want to accept PayPal payments?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('E-Mail Address', 'MODULE_PAYMENT_PAYPAL_ID','".STORE_OWNER_EMAIL_ADDRESS."', 'The e-mail address to use for the PayPal service', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Business ID', 'MODULE_PAYMENT_PAYPAL_BUSINESS_ID','".STORE_OWNER_EMAIL_ADDRESS."', 'Email address or account ID of the payment recipient', '6', '', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Default Currency', 'MODULE_PAYMENT_PAYPAL_DEFAULT_CURRENCY', 'USD', 'The <b>default</b> currency to use for when the customer chooses to checkout via the store using a currency not supported by PayPal.<br />(This currency must exist in your store)', '6', '0', 'tep_cfg_select_option(array(\'USD\',\'CAD\',\'EUR\',\'GBP\',\'JPY\',\'AUD\'), ', now())");

tep_db_query("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_PAYPAL_CURRENCY', 'Selected Currency', 'The currency to use for credit card transactions', '6', '0', 'tep_cfg_select_option(array(\'Selected Currency\',\'Only USD\',\'Only CAD\',\'Only EUR\',\'Only GBP\',\'Only JPY\',\'Only AUD\'), ', now())");

tep_db_query("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_PAYPAL_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '0', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");

tep_db_query("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 Pending Notification Status', 'MODULE_PAYMENT_PAYPAL_PROCESSING_STATUS_ID', '" . DEFAULT_ORDERS_STATUS_ID . "', 'Set the Pending Notification status of orders made with this payment module to this value (\'Pending\' recommended)', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");

tep_db_query("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_PAYPAL_ORDER_STATUS_ID', '" . DEFAULT_ORDERS_STATUS_ID . "', 'Set the status of orders made with this payment module to this value<br>(\'Processing\' recommended)', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");

tep_db_query("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 On Hold Order Status', 'MODULE_PAYMENT_PAYPAL_ORDER_ONHOLD_STATUS_ID', '" . DEFAULT_ORDERS_STATUS_ID . "', 'Set the status of <b>On Hold</b> orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");

tep_db_query("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 Canceled Order Status', 'MODULE_PAYMENT_PAYPAL_ORDER_CANCELED_STATUS_ID', '" . DEFAULT_ORDERS_STATUS_ID . "', 'Set the status of <b>Canceled</b> orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Synchronize Invoice', 'MODULE_PAYMENT_PAYPAL_INVOICE_REQUIRED', 'False', 'Do you want to specify the order number as the PayPal invoice number?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

tep_db_query("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_PAYPAL_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");

tep_db_query("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 Refunded Order Status', 'MODULE_PAYMENT_PAYPAL_ORDER_REFUNDED_STATUS_ID', '" . DEFAULT_ORDERS_STATUS_ID . "', 'Set the status of <b>Refunded</b> orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Background Color', 'MODULE_PAYMENT_PAYPAL_CS', 'White', 'Select the background color of PayPal\'s payment pages.', '6', '0', 'tep_cfg_select_option(array(\'White\',\'Black\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Processing logo', 'MODULE_PAYMENT_PAYPAL_PROCESSING_LOGO', 'oscommerce.gif', 'The image file name to display the store\'s checkout process', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Store logo', 'MODULE_PAYMENT_PAYPAL_STORE_LOGO', '', 'The image file name for PayPal to display (leave empty if your store does not have SSL)', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('PayPal Page Style Name', 'MODULE_PAYMENT_PAYPAL_PAGE_STYLE', 'default', 'The name of the page style you have configured in your PayPal Account', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Include a note with payment', 'MODULE_PAYMENT_PAYPAL_NO_NOTE', 'No', 'Choose whether your customer should be prompted to include a note or not?', '6', '0', 'tep_cfg_select_option(array(\'Yes\',\'No\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Shopping Cart Method', 'MODULE_PAYMENT_PAYPAL_METHOD', 'Aggregate', 'What type of shopping cart do you want to use?', '6', '0', 'tep_cfg_select_option(array(\'Aggregate\',\'Itemized\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable PayPal Shipping Address', 'MODULE_PAYMENT_PAYPAL_SHIPPING_ALLOWED', 'No', 'Allow the customer to choose their own PayPal shipping address?', '6', '0', 'tep_cfg_select_option(array(\'Yes\',\'No\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Debug Email Notifications', 'MODULE_PAYMENT_PAYPAL_IPN_DEBUG', 'Yes', 'Enable debug email notifications', '6', '0', 'tep_cfg_select_option(array(\'Yes\',\'No\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Digest Key', 'MODULE_PAYMENT_PAYPAL_IPN_DIGEST_KEY', 'PayPal_Shopping_Cart_IPN', 'Key to use for the digest functionality', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Test Mode', 'MODULE_PAYMENT_PAYPAL_IPN_TEST_MODE', 'Off', 'Set test mode <a style=\"color: #0033cc;\" href=\"" . tep_href_link(FILENAME_PAYPAL, 'action=itp') . "\" target=\"ipn\">[iPN Test Panel]</a>', '6', '0', 'tep_cfg_select_option(array(\'Off\',\'On\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Cart Test', 'MODULE_PAYMENT_PAYPAL_IPN_CART_TEST', 'On', 'Set cart test mode to verify the transaction amounts', '6', '0', 'tep_cfg_select_option(array(\'Off\',\'On\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Debug Email Notification Address', 'MODULE_PAYMENT_PAYPAL_IPN_DEBUG_EMAIL','".STORE_OWNER_EMAIL_ADDRESS."', 'The e-mail address to send <b>debug</b> notifications to', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('PayPal Domain', 'MODULE_PAYMENT_PAYPAL_DOMAIN', 'www.paypal.com', 'Select which PayPal domain to use<br>(for live production select www.paypal.com)', '6', '0', 'tep_cfg_select_option(array(\'www.paypal.com\',\'www.sandbox.paypal.com\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Return URL behavior', 'MODULE_PAYMENT_PAYPAL_RM', '1', 'How should the customer be sent back from PayPal to the specified URL?<br>0=No IPN, 1=GET, 2=POST', '6', '0', 'tep_cfg_select_option(array(\'0\',\'1\',\'2\'), ', now())");

}

 

function remove() {

tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");

}

 

function keys() {

return array(

'MODULE_PAYMENT_PAYPAL_STATUS',

'MODULE_PAYMENT_PAYPAL_ID',

'MODULE_PAYMENT_PAYPAL_BUSINESS_ID',

'MODULE_PAYMENT_PAYPAL_DEFAULT_CURRENCY',

'MODULE_PAYMENT_PAYPAL_CURRENCY',

'MODULE_PAYMENT_PAYPAL_ZONE',

'MODULE_PAYMENT_PAYPAL_PROCESSING_STATUS_ID',

'MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID',

'MODULE_PAYMENT_PAYPAL_ORDER_ONHOLD_STATUS_ID',

'MODULE_PAYMENT_PAYPAL_ORDER_REFUNDED_STATUS_ID',

'MODULE_PAYMENT_PAYPAL_ORDER_CANCELED_STATUS_ID',

'MODULE_PAYMENT_PAYPAL_INVOICE_REQUIRED',

'MODULE_PAYMENT_PAYPAL_SORT_ORDER',

'MODULE_PAYMENT_PAYPAL_CS',

'MODULE_PAYMENT_PAYPAL_PROCESSING_LOGO',

'MODULE_PAYMENT_PAYPAL_STORE_LOGO',

'MODULE_PAYMENT_PAYPAL_PAGE_STYLE',

'MODULE_PAYMENT_PAYPAL_NO_NOTE',

'MODULE_PAYMENT_PAYPAL_METHOD',

'MODULE_PAYMENT_PAYPAL_SHIPPING_ALLOWED',

'MODULE_PAYMENT_PAYPAL_IPN_DIGEST_KEY',

'MODULE_PAYMENT_PAYPAL_IPN_TEST_MODE',

'MODULE_PAYMENT_PAYPAL_IPN_CART_TEST',

'MODULE_PAYMENT_PAYPAL_IPN_DEBUG',

'MODULE_PAYMENT_PAYPAL_IPN_DEBUG_EMAIL',

'MODULE_PAYMENT_PAYPAL_DOMAIN',

'MODULE_PAYMENT_PAYPAL_RM');

}

 

function setTransactionID() {

global $order, $currencies;

$my_currency = $this->currency();

$trans_id = STORE_NAME . date('Ymdhis');

$this->digest = md5($trans_id . number_format($order->info['total'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency), '.', '') . MODULE_PAYMENT_PAYPAL_IPN_DIGEST_KEY);

return $this->digest;

}

 

function formFields($txn_sign = '', $payment_amount = '', $payment_currency = '', $payment_currency_value = '', $orders_id = '', $return_url = '', $cancel_url = '' ) {

global $order, $currencies;

 

$my_currency = (!empty($payment_currency)) ? $payment_currency : $this->currency();

$my_currency_value = (!empty($payment_currency_value)) ? $payment_currency_value : $currencies->get_value($my_currency);

 

//Merchant Info

$paypal_fields = tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_BUSINESS_ID);

 

//Currency

$paypal_fields .= tep_draw_hidden_field('currency_code', $my_currency);

 

//Shopping Cart Info

if(MODULE_PAYMENT_PAYPAL_METHOD == 'Itemized') {

 

$paypal_fields .= tep_draw_hidden_field('upload', sizeof($order->products)) .

tep_draw_hidden_field('redirect_cmd', '_cart') .

tep_draw_hidden_field('handling_cart', number_format(/*$order->info['shipping_cost']*/0 * $my_currency_value, $currencies->get_decimal_places($my_currency)));

 

//Itemized Order Details

for ($i=0,$index=1; $i<sizeof($order->products); $i++, $index++) {

//$index = $i+1;

$paypal_fields .= tep_draw_hidden_field('item_name_'.$index, $order->products[$i]['name']).

tep_draw_hidden_field('item_number_'.$index, $order->products[$i]['model']).

tep_draw_hidden_field('quantity_'.$index, $order->products[$i]['qty']).

tep_draw_hidden_field('amount_'.$index, number_format($order->products[$i]['final_price']* $my_currency_value,2));

$tax = ($order->products[$i]['final_price'] * ($order->products[$i]['tax'] / 100)) * $my_currency_value;

$paypal_fields .= tep_draw_hidden_field('tax_'.$index, number_format($tax, 2));

 

//Customer Specified Product Options: PayPal Max = 2

if ($order->products[$i]['attributes']) {

//$n = sizeof($order->products[$i]['attributes']);

for ($j=0; $j<2; $j++) {

if($order->products[$i]['attributes'][$j]['option']){

$paypal_fields .= $this->optionSetFields($j,$index,$order->products[$i]['attributes'][$j]['option'],$order->products[$i]['attributes'][$j]['value']);

} else {

$paypal_fields .= $this->optionSetFields($j,$index);

}

}

} else {

for ($j=0; $j<2; $j++) {

$paypal_fields .= $this->optionSetFields($j,$index);

}

}

}

 

} else { //Aggregate Cart (Method 1)

 

$paypal_fields .= tep_draw_hidden_field('item_name', STORE_NAME) .

tep_draw_hidden_field('redirect_cmd', '_xclick') .

tep_draw_hidden_field('amount', !empty($payment_amount) ? $payment_amount : $this->amount($my_currency)) .

tep_draw_hidden_field('shipping', number_format(/*$order->info['shipping_cost']*/0 * $my_currency_value, $currencies->get_decimal_places($my_currency)));

$item_number = '';

for ($i=0; $i<sizeof($order->products); $i++) $item_number .= ' '.$order->products[$i]['name'].' ,';

$item_number = substr_replace($item_number,'',-2);

$paypal_fields .= tep_draw_hidden_field('item_number', $item_number);

 

}

 

//Synchronize invoice

if(MODULE_PAYMENT_PAYPAL_INVOICE_REQUIRED == 'True') $paypal_fields .= tep_draw_hidden_field('invoice', !empty($orders_id) ? $orders_id : $this->orders_id);

//Allow customer to choose their own shipping address

if(MODULE_PAYMENT_PAYPAL_SHIPPING_ALLOWED == 'No' ) $paypal_fields .= tep_draw_hidden_field('no_shipping', '1' );

 

//Customer registration fields

$paypal_fields .= $this->customerDetailsFields($order);

//Customer comment field

$paypal_fields .= $this->noteOptionFields(MODULE_PAYMENT_PAYPAL_NO_NOTE , MODULE_PAYMENT_PAYPAL_CUSTOMER_COMMENTS);

 

//Store Logo

if(tep_not_null(MODULE_PAYMENT_PAYPAL_STORE_LOGO)) $paypal_fields .= tep_draw_hidden_field('image_url', tep_href_link(DIR_WS_IMAGES.MODULE_PAYMENT_PAYPAL_STORE_LOGO, '', 'SSL',false));

//PayPal background color

$paypal_fields .= tep_draw_hidden_field('cs',(MODULE_PAYMENT_PAYPAL_CS == 'White') ? '0' : '1');

//PayPal page style

if(tep_not_null(MODULE_PAYMENT_PAYPAL_PAGE_STYLE)) $paypal_fields .= tep_draw_hidden_field('page_style',MODULE_PAYMENT_PAYPAL_PAGE_STYLE);

 

//PayPal Store Config

$paypal_fields .= tep_draw_hidden_field('custom', !empty($txn_sign) ? $txn_sign : $this->digest) .

tep_draw_hidden_field('return', !empty($return_url) ? $return_url : tep_href_link(FILENAME_CHECKOUT_SUCCESS, 'action=success', 'SSL')) .

tep_draw_hidden_field('cancel_return', !empty($cancel_url) ? $cancel_url : tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')) .

tep_draw_hidden_field('notify_url', tep_href_link(FILENAME_IPN, '', 'SSL',false)) .

tep_draw_hidden_field('rm', MODULE_PAYMENT_PAYPAL_RM) .

tep_draw_hidden_field('bn', 'osc-ipn-v1');

 

return $paypal_fields;

}

 

function customerDetailsFields(&$order) {

//Customer Details - for those who haven't signed up to PayPal

$paypal_fields = tep_draw_hidden_field('cmd', '_ext-enter') . //allows the customer addr details to be passed

tep_draw_hidden_field('email', $order->customer['email_address']) .

tep_draw_hidden_field('first_name', $order->billing['firstname']) .

tep_draw_hidden_field('last_name', $order->billing['lastname']) .

tep_draw_hidden_field('address1', $order->billing['street_address']) .

tep_draw_hidden_field('address2', $order->billing['suburb']) .

tep_draw_hidden_field('city', $order->billing['city']) .

tep_draw_hidden_field('state', tep_get_zone_code($order->billing['country']['id'],$order->billing['zone_id'],$order->billing['zone_id'])) .

tep_draw_hidden_field('zip', $order->billing['postcode']) .

//Note: Anguilla[AI], Dominican Republic[DO], The Netherlands[NL] have different codes to the iso codes in the osC db

tep_draw_hidden_field('country', $order->billing['country']['iso_code_2']);

 

//Telephone is problematic.

/*//OMITTED SINCE NOT SPECIFICALLY BILLING ADDRESS RELATED

$telephone = preg_replace('/\D/', '', $order->customer['telephone']);

$paypal_fields .= tep_draw_hidden_field('night_phone_a',substr($telephone,0,3));

$paypal_fields .= tep_draw_hidden_field('night_phone_b',substr($telephone,3,3));

$paypal_fields .= tep_draw_hidden_field('night_phone_c',substr($telephone,6,4));

$paypal_fields .= tep_draw_hidden_field('day_phone_a',substr($telephone,0,3));

$paypal_fields .= tep_draw_hidden_field('day_phone_b',substr($telephone,3,3));

$paypal_fields .= tep_draw_hidden_field('day_phone_c',substr($telephone,6,4));

*/

 

//Flow Language

$paypal_fields .= tep_draw_hidden_field('lc', $order->billing['country']['iso_code_2']);

 

return $paypal_fields;

}

 

function optionSetFields($sub_index,$index,$option=' ',$value=' ') {

return tep_draw_hidden_field('on'.$sub_index.'_'.$index,$option).

tep_draw_hidden_field('os'.$sub_index.'_'.$index,$value);

}

 

function noteOptionFields($option='No',$msg='Add Comments About Your Order') {

$option = ($option == 'Yes') ? '0': '1';

$no_note = tep_draw_hidden_field('no_note',$option);

if (!$option) return $no_note .= tep_draw_hidden_field('cn',$msg);

else return $no_note;

}

 

function sendMoneyFields(&$order, $orders_id) {

include_once(DIR_WS_MODULES . 'payment/paypal/database_tables.inc.php');

$orders_session_query = tep_db_query("select firstname, lastname, payment_amount, payment_currency, payment_currency_val, txn_signature from " . TABLE_ORDERS_SESSION_INFO . " where orders_id ='" . (int)$orders_id . "'");

$orders_session_info = tep_db_fetch_array($orders_session_query);

$order->billing['firstname'] = $orders_session_info['firstname'];

$order->billing['lastname'] = $orders_session_info['lastname'];

$return_href_link = tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id='.$orders_id, 'SSL');

$cancel_href_link = $return_href_link;

return $this->formFields($orders_session_info['txn_signature'], $orders_session_info['payment_amount']/* - $order->info['shipping_cost']*/, $orders_session_info['payment_currency'], $orders_session_info['payment_currency_val'], $orders_id, $return_href_link, $cancel_href_link);

}

}//end class

?>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×