Example #1
0
 function buyPostage()
 {
     global $messageStack, $currencies;
     $amount = db_prepare_input($_POST['endicia_postage']);
     if (!in_array($amount, array('10', '25', '100', '250', '500', '1000'))) {
         $messageStack->add('The postage purchase amount submitted is an invalid amount!', 'error');
         return false;
     }
     $data = array('RecreditRequest' => array('RequesterID' => MODULE_SHIPPING_ENDICIA_PARTNER_ID, 'RequestID' => time(), 'CertifiedIntermediary' => array('AccountID' => MODULE_SHIPPING_ENDICIA_ACCOUNT_NUMBER, 'PassPhrase' => MODULE_SHIPPING_ENDICIA_PASS_PHRASE), 'RecreditAmount' => $amount));
     $url = MODULE_SHIPPING_ENDICIA_TEST_MODE == 'Prod' ? MODULE_SHIPPING_ENDICIA_WSDL_URL : MODULE_SHIPPING_ENDICIA_TEST_WSDL_URL;
     $client = new SoapClient($url, array('trace' => 1));
     try {
         $response = $client->BuyPostage($data);
         if ($response->RecreditRequestResponse->Status == 0) {
             $messageStack->add(sprintf(SHIPPING_ENDICIA_PURCHASE_SUCCESS_MSG, $currencies->format($response->RecreditRequestResponse->CertifiedIntermediary->PostageBalance), $response->RecreditRequestResponse->CertifiedIntermediary->SerialNumber), 'success');
         } else {
             $messageStack->add(TEXT_ERROR . ' (' . $response->RecreditRequestResponse->Status . ') ' . $response->RecreditRequestResponse->ErrorMessage, 'error');
             return false;
         }
     } catch (SoapFault $exception) {
         $messageStack->add("SOAP error ({$exception->faultcode}) {$exception->faultstring}", 'error');
         return false;
     }
     return true;
 }