[ic] Updated usps_query.tag
Josh Lavin
josh-ic at att.net
Wed May 6 14:14:45 UTC 2009
On May 5, 2009, at 5:56 PM, Mathew Jones wrote:
> Mark Johnson wrote:
>> Randy Moore wrote:
>>> Hi,
>>>
>>> Does anyone know any reason this patch should not be committed? We
>>> have
>>> several customers using USPS International shipping and so we have
>>> to
>>> re-install this patch after each upgrade. It works perfectly for
>>> us.
>>>
>>> If it is acceptable, could someone with commit rights, please
>>> commit this?
>>>
>>> Thanks and special thanks to Josh Lavin for sharing this.
>>
>> This has now been committed.
>>
>> If folks could remember to submit patches as attachments instead of
>> inline, that would be really helpful and appreciated.
>>
>> Thanks,
>> Mark
>
> Hi Mark,
>
> I don't have a patch file, but there are some issues with "First-Class
> Mail International". USPS apparently separated out the method to the
> following (note the absence of the - ):
>
> First Class Mail International Package
> First Class Mail International Large Envelope
> First Class Mail International Letters
> First Class Mail International Flats
> First Class Mail Int Parcels
>
> I can confirm that the first one on the list works, but have not been
> able to get the other 4 to return a shipping rate.
>
> Mat
In looking over the latest version of this file (1.9), I realized I
had made some additional adjustments. Attached is a patch for the
latest version to get the service names up to par.
Note that I do not use this tag any longer, due to USPS WebTools being
offline for over a week a few months ago. I made the switch to rate
tables, which I update when new prices are posted.
Below is a Perl script I wrote to grab service names from the XML
response to a rate request. Add your WebTools user and password, then
you can use the output of this script to update the tag. USPS seems to
change service names often, sometimes just adding or removing a
hyphen, and the only documentation of valid service names is found via
a rate request.
#!/usr/bin/perl
require LWP::UserAgent;
$userid = 'your id here';
$passwd = 'your pass here';
$url = 'http://Production.ShippingAPIs.com/ShippingAPI.dll';
$weight = '0';
$ounces = '10';
$mailtype = 'Package';
$country = 'Canada';
$xml = qq{API=IntlRate\&XML=<IntlRateRequest USERID="$userid"
PASSWORD="$passwd">};
$xml .= <<EOXML;
<Package ID="0">
<Pounds>$weight</Pounds>
<Ounces>$ounces</Ounces>
<MailType>$mailtype</MailType>
<Country>$country</Country>
</Package>
</IntlRateRequest>
EOXML
my $ua = new LWP::UserAgent;
my $req = new HTTP::Request 'POST', "$url";
$req->content_type('application/x-www-form-urlencoded');
$req->content($xml);
my $response = $ua->request($req);
$error_msg = 'USPS: ';
if ($response->is_success) {
$resp = $response->content;
}
else {
$error_msg .= 'Error obtaining rate quote from usps.com.';
}
@intl = split /<Service/, $resp;
foreach (@intl) {
m|<SvcDescription>(.+)</SvcDescription>|;
$svc = uc $1;
print "$svc\n";
}
#print $resp;
--
Josh Lavin
Perusion -- Expert Interchange Consulting http://www.perusion.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: usps_query.tag.patch
Type: application/octet-stream
Size: 2610 bytes
Desc: not available
Url : http://www.icdevgroup.org/pipermail/interchange-users/attachments/20090506/b0556c97/attachment.obj
More information about the interchange-users
mailing list