/** * Get FedEx meter number */ function fn_settings_actions_shippings_fedex_fedex_meter_get(&$new_value, $old_value) { if ($new_value != 'Y') { return false; } echo "Retreiving information from FEDEX server..."; fn_flush(); include_once DIR_SHIPPING_FILES . 'fedex/fedexdc.php'; $shipping_settings = fn_get_settings('Shippings', 'fedex'); $account_number = $shipping_settings['account_number']; $params = array('fedex_uri' => $shipping_settings['test_mode'] == 'Y' ? 'https://gatewaybeta.fedex.com:443/GatewayDC' : 'https://gateway.fedex.com:443/GatewayDC'); $fed = new FedExDC($shipping_settings['account_number'], '', $params); $ship_ret = $fed->subscribe(array(1 => uniqid(TIME), 4003 => $shipping_settings['fedex_meter_name'], 4008 => $shipping_settings['fedex_meter_street'], 4011 => $shipping_settings['fedex_meter_city'], 4012 => $shipping_settings['fedex_meter_state'], 4013 => $shipping_settings['fedex_meter_zipcode'], 4014 => $shipping_settings['fedex_meter_country'], 4015 => $shipping_settings['fedex_meter_phone'])); echo "<br />Done."; fn_flush(); $error_tr = $fed->lookup('transaction_error_message'); $error_req = $fed->getError(); if ($error_tr || $error_req) { fn_set_notification('E', fn_get_lang_var('error'), (!empty($error_req) ? $error_req . '<br />' : '') . (!empty($error_tr) ? $error_tr : '')); } else { $meter_number = $fed->lookup('meter_number'); db_query("UPDATE ?:settings SET ?u WHERE option_name = 'meter_number' AND section_id = 'Shippings' AND subsection_id = 'fedex'", array('value' => $meter_number)); } $new_value = 'N'; }
if ($_POST['service_type'] == 90) { $shipData[440] = 'Y'; } else { $shipData[440] = 'N'; } // if it's an oversized shipment... if ($oversized) { $shipData[3124] = $_POST['oversized']; } //// // if there's no meter number in the database, ask for a new one if (!$fedex_vars[498]) { $fed = new FedExDC($fedex_keys[10]); // variables needed to subscribe $requestData = array(0 => 211, 10 => $fedex_vars[10], 4003 => $fedex_vars[4], 4008 => $fedex_vars[5], 4011 => $fedex_vars[7], 4012 => $fedex_vars[8], 4013 => $fedex_vars[9], 4014 => $senders_country, 4015 => $fedex_vars[183]); $keyRequest = $fed->subscribe($requestData); // todo: add appropriate error checking for at least some of the possible errors if ($error = $fed->getError()) { echo '<pre>'; print_r($requestData); echo '</pre>'; echo '<pre>'; print_r($keyRequest); echo '</pre>'; die("ERROR: " . $error); } else { tep_db_query("update " . TABLE_CONFIGURATION . " set configuration_value = '" . $keyRequest[498] . "' where configuration_key = 'MODULE_SHIPPING_FEDEX1_METER'"); $fedex_vars[498] = $keyRequest[498]; } } // end meter request
function update_meter_number() { global $vendor_name, $vendor_address, $vendor_city, $vendor_state, $vendor_zip, $vendor_country_2_code, $vendor_phone, $vmLogger; $fed = new FedExDC(FEDEX_ACCOUNT_NUMBER); $db = new ps_DB(); $db->query('SELECT `contact_first_name`, `contact_last_name` FROM `#__{vm}_vendor` WHERE `vendor_id` =' . intval($_SESSION['ps_vendor_id'])); $db->next_record(); $aRet = $fed->subscribe(array(1 => uniqid('vmFed_'), 4003 => $db->f('contact_first_name') . ' ' . $db->f('contact_last_name'), 4008 => $vendor_address, 4011 => $vendor_city, 4012 => $vendor_state, 4013 => $vendor_zip, 4014 => $vendor_country_2_code, 4015 => $vendor_phone)); if ($error = $fed->getError()) { $vmLogger->err($error); return false; } $meter_number = $aRet[498]; foreach ($this->config_array as $config_key) { $d[$config_key] = constant($config_key); } $d['FEDEX_METER_NUMBER'] = $meter_number; $this->write_configuration($d); define('FEDEX_METER_NUMBER_TEMP', $meter_number); return true; }