<?
/*
UPS XML Address Verification Tool PHP Function Library

file: xmlship.php


*** Copyrights

Ownership rights and intellectual property rights of this software belong to
Sonicode.  This software is protected by copyright laws and treaties. Title and
related rights in the content accessed through the software is the property of
the applicable content owner and may be protected by applicable law. This
license gives you no rights to such content.

*** Scope of grant

You may:
-    Use the software on one or more computers.
-    Customize the software's design to suit your own needs.

You may not:
-    Modify and/or remove the copyright notice in the the header of this source file.
-    Reverse engineer, disassemble, or create derivative works based on this script
    for distribution or usage outside your website.
-    Distribute this script without written consent from Sonicode.
-    Permit other individuals to use this script except under the terms listed above.

*** Third party modifications

Technical support will not be provided for third-party modifications to the
software including modifications to code to any license holder.

*** Disclaimer of warranty

The UPS XML Address Verification Tool PHP Function Library is provided on an "as is" basis,
without warranty of any kind, including without limitation the warranties of
merchantability, fitness for a particular purpose and non-infringement. The
entire risk as to the quality and performance of this software is borne by you.

*/
if (isset($_POST["city"])) {
    
$city $_POST["city"];
} else {
    
$city 'New York';
}
if (isset(
$_POST["state"])) {
    
$state $_POST["state"];
} else {
    
$state 'NY';
}
if (isset(
$_POST["zipcode"])) {
    
$zipcode $_POST["zipcode"];
} else {
    
$zipcode '12345';
}
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Sonicode :: UPS Address Verification</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
td {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #2B2B2B;
}
th {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    background: #dddddd;
    text-align: left;
}
table {
    border: #000000 1px solid;
}
</style>
</head>
<body bgcolor="#FFFFFF">


<form action="xmladdress_example.php" method="POST">
<table width="600" cellpadding="4" cellspacing="0" border="0" bgcolor="#dddddd" align="center">
<tr>
  <td rowspan="4" bgcolor="#FFFFFF" width="200" valign="top">
  Please begin by entering one of the following combinations:<br>
  <br>
  <li>city, state, and zipcode
  <li>city and state
  <li>city and zipcode
  <li>state and zipcode
  <li>city
  <li>zipcode.
  </td>
  <td>City:<br><input type="text" name="city" value="<?=$city?>" size="30"></td>
</tr>
<tr>
  <td>State:<br><input type="text" name="state" value="<?=$state?>" size="2"></td>
</tr>
<tr>
  <td>Zipcode:<br><input type="text" name="zipcode" value="<?=$zipcode?>" size="5"></td>
</tr>
<tr>
  <td align="right"><input type="submit"></td>
</tr>
</table>
<br>
<?
if (isset($_POST["city"]) || isset($_POST["state"]) || isset($_POST["zipcode"])) {
/* UPS user information.  These values will be persisitant in your web application */
    
$CFG->ups_userid            "Prismblue";                // Enter your UPS User ID
    
$CFG->ups_password            "nouw18ew";                // Enter your UPS Password
    
$CFG->ups_xml_access_key    "1BA07299E63DC1D2";        // Enter your UPS Access Key
    
$CFG->ups_shipper_number    "Y8E547";                // Enter your UPS Shipper Number
    
$CFG->ups_testmode            "FALSE";                    // "TRUE" for test transactions "FALSE" for live transactions
/*
    You will most likely want to load this data from a database, or receive the data from
    a html form.  For details on each of the field requirements, please refer to the UPS
    API Documentation.
*/

    
$ship_to = array();
    
$ship_to["city"]                            = $_POST["city"];                    // Ship To City
    
$ship_to["state_province_code"]                = $_POST["state"];                        // Ship To State
    
$ship_to["postal_code"]                        = $_POST["zipcode"];                    // Ship To Postal Code

// Include the required functions supplied by the UPS XML Address Verification Tool PHP Function Library
include("lib/xmladdress.php");

// Post the XML query for UPS ship confirm
$result ups_address_verify($ship_to);
    
if (
$result["response_status_code"] == 1) {
    
// The result was successful

?><table width="600" border="0" align="center">
<tr>
<th>Rank:</th><th>City:</th><th>State:</th><th>Postal Code Low End:</th><th>Postal Code High End:</th>
</tr>
<?
$i 
0;
while (
$i <= $result["count"]) {
//var_dump($result);
    
print "<tr><td>" $result[$i]["rank"] . "</td><td>" .
            
$result[$i]["city"] . "</td><td>" .
            
$result[$i]["state"] . "</td><td>" .
            
$result[$i]["postal_low_end"] . "</td><td>" .
            
$result[$i]["postal_high_end"] . "</td></tr>";
$i++;
}
print 
"</table>";

} else {
    
// There was an error

    
print "Error: ".$result["error_description"];

}

}
/*
NOTES:

Once the Ship Confirm request is successful, you will want to move on to the
Ship Accept transaction.  You will only need to pass the
$result["shipment_digest"] value to the ups_ship_accept function for UPS
to finalize the shipment as "billable" and return the shipping label.  The
shipping label data is base64 encoded for transport from UPS's XML servers.
You will need to simply base64 decode the result data and output the data
to be spooled to the printer.  Thermal label support exists, as well as GIF
labels to be printed on laser printers.  Please consult your UPS Ship Tools
API documentation for more details on shipping options.
*/

?>