You will need to check for the message that USPS is returning if you have the shipping=fail in the URL when getting to the failure page. Here is the code for USPS and PayPal direct Pay:
<?php
if(!session_id()) session_start();
echo("PayPal Full Request :<br />");
echo("<code>".isset($_SESSION["PP_DirectPayment_postedValues"])?$_SESSION["PP_DirectPayment_postedValues"]:""."</code><br /><br />");
echo("Paypal Full Response :<br />");
echo("<code>".isset($_SESSION["PP_DirectPayment"])?$_SESSION["PP_DirectPayment"]:""."</code><br /><br />");
echo("USPS Full Request :<br />");
echo("<code>".isset($_SESSION["WA_Store_Cart_USPS_FullRequest"])?$_SESSION["WA_Store_Cart_USPS_FullRequest"]:""."</code><br /><br />");
echo("USPS Full Response :<br />");
echo("<code>".isset($_SESSION["WA_Store_Cart_USPS_FullResponse"])?$_SESSION["WA_Store_Cart_USPS_FullResponse"]:""."</code><br /><br />");
?>
Put this in place on the checkout page and run a test to see what is returned. If you have the full username and password for USPS then you should not have to adjust any of the other settings.