You are here

function commerce_usps_api_request in Commerce USPS 7.2

Same name and namespace in other branches
  1. 7 commerce_usps.xml.inc \commerce_usps_api_request()

Submits an API request to USPS.

Parameters

string $request: A request string.

string $message: Optional log message.

Return value

string XML string response from USPS

2 calls to commerce_usps_api_request()
commerce_usps_intl_rate_v2_request in includes/commerce_usps.xml.inc
Builds an international USPS rate request.
commerce_usps_rate_v4_request in includes/commerce_usps.xml.inc
Builds a domestics USPS rate request.

File

includes/commerce_usps.xml.inc, line 155
Handles rate request/response related stuff for the Commerce USPS module.

Code

function commerce_usps_api_request($request, $message = '') {
  commerce_usps_log('Submitting API request to USPS. @message:<pre>@request</pre>', array(
    '@message' => $message,
    '@request' => $request,
  ));
  $request_url = variable_get('commerce_usps_connection_address', 'http://Production.ShippingAPIs.com/ShippingAPI.dll');

  // Send the request.
  $response = drupal_http_request($request_url, array(
    'method' => 'POST',
    'data' => $request,
  ));

  // If we received a response.
  if (!empty($response->data)) {
    commerce_usps_log('Response code:@code<br />Response:<pre>@response</pre>', array(
      '@code' => $response->code,
      '@response' => $response->data,
    ));
    return new SimpleXMLElement($response->data);
  }
  else {
    $settings_url = l(t('settings'), 'admin/commerce/config/shipping/methods/usps/edit');
    commerce_usps_log('We did not receive a response from USPS. Make sure you have the correct server url in your !settings.', array(
      '!settings' => $settings_url,
    ), WATCHDOG_ERROR);
  }
  return FALSE;
}