' . CRM_Utils_Array::value('supplemental_address_1', $values, '') . '' . $address2 . '' . $values['city'] . '' . $values['state_province'] . '' . $values['postal_code'] . '' . CRM_Utils_Array::value('postal_code_suffix', $values, '') . '
'; require_once 'HTTP/Request.php'; $request = new HTTP_Request(); $request->setURL($url); $request->addQueryString('API', 'Verify'); $request->addQueryString('XML', $XMLQuery); $response = $request->sendRequest(); $session = CRM_Core_Session::singleton(); $code = $request->getResponseCode(); if ($code != 200) { $session->setStatus(ts('USPS Address Lookup Failed with HTTP status code: %1', array(1 => $code) )); return FALSE; } $responseBody = $request->getResponseBody(); $xml = simplexml_load_string($responseBody); if (is_null($xml) || is_null($xml->Address)) { $session->setStatus(ts('Your USPS API Lookup has Failed.')); return FALSE; } if ($xml->Number == '80040b1a') { $session->setStatus(ts('Your USPS API Authorization has Failed.')); return FALSE; } if (array_key_exists('Error', $xml->Address)) { $session->setStatus(ts('Address not found in USPS database.')); return FALSE; } $values['street_address'] = (string) $xml->Address->Address2; $values['city'] = (string) $xml->Address->City; $values['state_province'] = (string) $xml->Address->State; $values['postal_code'] = (string) $xml->Address->Zip5; $values['postal_code_suffix'] = (string) $xml->Address->Zip4; if (array_key_exists('Address1', $xml->Address)) { $values['supplemental_address_1'] = (string) $xml->Address->Address1; } return TRUE; } }