UPS API Endpoints è Esempiu di Codice di Test PHP

ups api endpoints php test code validazione di indirizzu

Avemu travagliatu cù a WooCommerce cliente avà di quale spedizione UPS a validazione di l'indirizzu è i calculi di i costi di spedizione anu cessatu di travaglià. U primu prublema chì avemu identificatu era u plugin di spedizione UPS chì avianu era obsoletu è u duminiu core per a cumpagnia chì hà sviluppatu avia malware ... questu ùn hè mai un bonu signu. Cusì, avemu compru u WooCommerce UPS plugin postu chì hè ben supportatu da i sviluppatori di Woocommerce.

Cù u situ chì ùn cunvalida micca l'indirizzi nè integra u trasportu, u nostru primu passu era di verificà chì l'interfaccia di prugrammazione di l'applicazione UPS (API) era in funzione è operativa. UPS hà un bellu situ per verificà statut de son API.

Siccomu l'API ùn pareva micca esse fattu, u nostru passu prossimu era di debug u prublema in u locu. Curiosamente, nè u plugin ùn avia micca logu nè teste per vede se l'integrazione di spedizione UPS hà veramente travagliatu. Ancu l'impostazione di debug ùn hà micca furnitu alcun feedback, nè i nostri schedarii di log. Allora, per pruvà l'API, aghju avutu à programà un script per pruvà l'API.

Aghju scaricatu u UPS API Developer Kit... chì includeva esempi di codice ... è era cunfusu cum'è sempre. A ducumentazione hè limitata, l'endpoints per l'API ùn sò ancu elencati, è i campioni di codice ùn sò micca ben documentati.

Scarica l'UPS API Developer Kit

In u risultatu, aghju avutu à fà un pocu di scavà ... u primu era di identificà i punti finali per a so API. Aghju trovu endpoints di prova documentati, aghju scrittu u mo codice è l'aghju pruvatu ... senza successu. Un pocu più di scavà è aghju scupertu chì l'endpoints di prova eranu basicamente inutili. Ugh.

UPS API Endpoints

Puderaghju truvà un filu in un situ di sviluppu chì hà listatu Punti finali di produzione API UPS:

  • https://onlinetools.ups.com/ups.app/xml/TimeInTransit
  • https://onlinetools.ups.com/ups.app/xml/License
  • https://onlinetools.ups.com/ups.app/xml/QVEvents
  • https://onlinetools.ups.com/ups.app/xml/Register
  • https://onlinetools.ups.com/ups.app/xml/AV
  • https://onlinetools.ups.com/ups.app/xml/ShipAccept
  • https://onlinetools.ups.com/ups.app/xml/Void
  • https://onlinetools.ups.com/ups.app/xml/XAV
  • https://onlinetools.ups.com/ups.app/xml/Track
  • https://onlinetools.ups.com/ups.app/xml/Rate
  • https://onlinetools.ups.com/ups.app/xml/ShipConfirm
  • https://onlinetools.ups.com/ups.app/xml/LabelRecovery

U più faciule per pruvà hè Validazione di l'indirizzu (grassatu sopra) endpoint cusì aghju utilizatu u codice furnitu per scrive un picculu script PHP chì passava l'indirizzu è hà rispostu cù s'ellu era successu o fallutu. Eccu u codice in casu chì vulete usà:

UPS API PHP Test File per a Validazione di Indirizzu

Eccu u script PHP aghjurnatu per pruvà l'Endpoint API UPS di Validazione di Indirizzu:

<html>
<head>UPS Address Validation Test</head>
<body>Response: <?php

// Configuration
$accessLicenseNumber = "Insert Your API Key";
$userId = "Insert Your User ID";
$password = "Insert Your Password";

$endpointurl = 'https://onlinetools.ups.com/ups.app/xml/AV';

try {
	
	// Create AccessRequest XMl
	$accessRequestXML = new SimpleXMLElement ( "<AccessRequest></AccessRequest>" );
	$accessRequestXML->addChild ( "AccessLicenseNumber", $accessLicenseNumber );
	$accessRequestXML->addChild ( "UserId", $userId );
	$accessRequestXML->addChild ( "Password", $password );
	
	// Create AddressValidationRequest XMl
	$avRequestXML = new SimpleXMLElement ( "<AddressValidationRequest ></AddressValidationRequest >" );
	$request = $avRequestXML->addChild ( 'Request' );
	$request->addChild ( "RequestAction", "AV" );
	
	$address = $avRequestXML->addChild ( 'Address' );
	$address->addChild ( "City", "ALPHARETTA" );
	$address->addChild ( "PostalCode", "300053778" );
	$requestXML = $accessRequestXML->asXML () . $avRequestXML->asXML ();
	
	$form = array (
			'http' => array (
					'method' => 'POST',
					'header' => 'Content-type: application/x-www-form-urlencoded',
					'content' => "$requestXML" 
			) 
	);
	
	// get request
	$request = stream_context_create ( $form );
	$browser = fopen ( $endpointurl, 'rb', false, $request );
	if (! $browser) {
		throw new Exception ( "Connection failed." );
	}
	
	// get response
	$response = stream_get_contents ( $browser );
	fclose ( $browser );
	
	if ($response == false) {
		throw new Exception ( "Bad data." );
	} else {
		
		// get response status
		$resp = new SimpleXMLElement ( $response );
		echo $resp->Response->ResponseStatusDescription . "\n";
	}
	
} catch ( Exception $ex ) {
	echo $ex;
}

?>
</body>
</html>

Stu script vi mostrarà almenu se e vostre credenziali travaglianu cù l'endpoint di validazione di l'indirizzu API UPS. Aghju realizatu chì a metodulugia PHP (fopen) per postà à a so API hè un pocu invechjata in questu esempiu sopra ... ma vulia solu fà u so codice di prova funziona.

Divulgazione: Usu u mo WooCommerce ligami affiliati in questu articulu.