Php > Miscellaneous
UPS Cost Calculation
UPS Cost Calculation _errors = array(); $this->_action = 3; $this->_delivery_code = 'GND'; $this->_src_country = 'US'; $this->_dst_country = 'US'; $this->_rate_chart = 1; $this->_container = '0'; $this->_rescom = 1; $this->_rate_charts = array('Regular+Daily+Pickup', 'On+Call+Air', 'One+Time+Pickup', 'Letter+Center', 'Customer+Counter'); $this->_containers = array ('00', '01', '21', '22', '23', '1', '2'); $this->_rescoms = array ('1', '2'); } function set_rescom ($int) { $this->_rescom = $int; } function set_container ($int) { $this->_container = $int; } function set_rate_chart($int) { $this->_rate_chart = 1; } function set_action($int) { $this->_action = $int; } function set_delivery_code ($code) { $this->_delivery_code = $code; } function set_src_zip ($zip) { $this->_src_zip = $zip; } function set_dst_zip ($zip) { $this->_dst_zip = $zip; } function set_src_country ($code) { $this->_src_country = $code; } function set_dst_country ($code) { $this->_dst_country = $code; } function set_weight ($int) { $this->_weight = $int; } function get_cost () { if ($this->_action == '') array_push ($this->_errors, 'UPS Action is not defined'); if ($this->_delivery_code == '') array_push ($this->_errors, 'UPS Product Code is not defined'); if ($this->_src_zip == '') array_push ($this->_errors, 'Source Zip Code is unavailable'); if ($this->_src_country == '') array_push ($this->_errors, 'Source Country Code is unavailable'); if ($this->_dst_zip == '') array_push ($this->_errors, 'Destination Zip Code is unavailable'); if ($this->_dst_country == '') array_push ($this->_errors, 'Destination Country Code is unavailable'); if ($this->_weight == '') array_push ($this->_errors, 'Packet weight is not defined'); if ($this->_rate_chart == '') array_push ($this->_errors, 'Rate Chart is not defined'); if ($this->_container == '') array_push ($this->_errors, 'Client Shipping Package Type is not defined'); if ($this->_rescom == '') array_push ($this->_errors, 'Residential or Commercial? define it first!'); if (count ($this->_errors) <= 0) { $url = 'www.ups.com'; $port = '80'; $file = '/using/services/rave/qcostcgi.cgi'; $qs = '?'; $qs .= 'accept_UPS_license_agreement=yes'; $qs .= '&'; $qs .= '10_action='.$this->_action; $qs .= '&'; $qs .= '13_product='.$this->_delivery_code; $qs .= '&'; $qs .= '14_origCountry='. $this->_src_country; $qs .= '&'; $qs .= '15_origPostal='. $this->_src_zip; $qs .= '&'; $qs .= '19_destPostal='. $this->_dst_zip; $qs .= '&'; $qs .= '22_destCountry='. $this->_dst_country; $qs .= '&'; $qs .= '23_weight='. $this->_weight; $qs .= '&'; $qs .= '47_rateChart='.$this->_rate_charts[$this->_rate_chart]; $qs .= '&'; $qs .= '48_container='.$this->_rate_containers[$this->_rate_container]; $qs .= '&'; $qs .= '49_residential='.$this->_rescoms[$this->_rescom]; $rqs = $file.$qs; $fp = @fsockopen ($url, 80, &$errno, &$errstr, 30); if (!$fp) array_push ($this->_errors, 'Could not open socket'); else { fputs($fp,"GET $rqs HTTP/1.0\n\n"); while(!feof($fp)) { $buffer = fgets ($fp, 1024); if (strpos ($buffer, '%')) { $buffers = explode ('%', $buffer, -1); $errcode = substr ($buffers[0], -1); $goodcodes = array ('3', '4', '5', '6'); if (in_array ($errcode, $goodcodes)) { $cost = trim ($buffers[8]); return $cost; } else array_push ($this->_errors, 'Bad Result'); } } fclose($fp); } } } } $ups = new ups; $ups->set_src_zip('08053'); $ups->set_dst_zip('08055'); $ups->set_weight (5); $ups_cost = $ups->get_cost(); if (!$ups_cost) print_r ($ups->_errors); else print $ups_cost; ?>
Php Codes
Algorithms
Arrays
Authentication
Calendar
Code Snippets
Programs
Content Manage
Contest Related
Cookies
Credit Cards
DBase Related
Databases
Date Time
Directories
E-Mail
Errors
File
File System
Forms
Handling
Graphics
HTML and PHP
Informix
Ingres
InterBase
LDAP
Look and Feel
Miscellaneous
MySQL
Other
PHP Classes
Searching
Navigation
Statistics
Strings
User Manage