Netverslun og smásala

UPS API endapunktar og sýnishorn af PHP prófunarkóða

Við erum að vinna með a WooCommerce viðskiptavinur núna hvers UPS sendingarkostnaður staðfesting á heimilisfangi og útreikningar á sendingarkostnaði hættu að virka. Fyrsta vandamálið sem við fundum var UPS sendingarviðbótin sem þeir höfðu var úrelt og kjarnalén fyrirtækisins sem þróaði það var með spilliforrit... það er aldrei gott merki. Svo við keyptum WooCommerce UPS viðbót þar sem það er vel stutt af hönnuðum Woocommerce.

Þar sem vefsíðan staðfestir ekki heimilisföng né samþættir sendingar, var fyrsta skrefið okkar að sannreyna að UPS forritunarviðmótið (API) var uppi og gangfær. UPS er með fína síðu til að athuga stöðu API þess.

Þar sem API virtist ekki vera gert var næsta skref okkar að kemba málið á staðnum. Athyglisvert er að hvorki viðbótin hafði neina skráningu né prófun til að sjá hvort UPS flutningssamþættingin virkaði í raun. Jafnvel villuleitarstillingin gaf enga endurgjöf, né annálaskrár okkar. Svo, til þess að prófa API, þurfti ég að forrita handrit til að prófa API.

Ég sótti niður UPS API þróunarsett… sem innihélt kóðasýni … og var ruglað eins og alltaf. Skjölin eru takmörkuð, endapunktar fyrir API voru ekki einu sinni skráðir og kóðasýnin eru ekki vel skjalfest.

Sæktu UPS API Developer Kit

Fyrir vikið þurfti ég að grafa smá... það fyrsta var að bera kennsl á endapunkta fyrir API þeirra. Ég fann skjalfesta prófunarendapunkta, skrifaði kóðann minn og prófaði hann ... án árangurs. Aðeins meira að grafa og ég komst að því að prófunarendapunktarnir voru í grundvallaratriðum gagnslausir. Úff.

UPS API endapunktar

Ég gat fundið þráð á þróunarsíðu sem skráði UPS API framleiðsluendapunktar:

  • 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

Auðveldast að prófa er Staðfesting heimilisfangs (feitletrað fyrir ofan) endapunkt þannig að ég notaði kóðann sem gefinn var upp til að skrifa lítið PHP forskrift sem fór framhjá heimilisfanginu og svaraði með því hvort það heppnaðist eða mistókst. Hér er kóðinn ef þú vilt nota hann:

UPS API PHP prófunarskrá fyrir staðfestingu heimilisfangs

Hér er uppfært PHP forskrift til að prófa Address Validation UPS API Endpoint:

<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>

Þetta handrit mun að minnsta kosti sýna þér hvort skilríki þín séu að vinna með UPS API Address Validation endapunkti eða ekki. Ég geri mér grein fyrir að PHP aðferðafræðin (fopen) til að senda inn á API þeirra er svolítið gömul í þessu dæmi hér að ofan ... en ég vildi bara fá prófkóðann þeirra til að virka.

Birting: Martech Zone er að nota sitt WooCommerce tengd tenglar í þessari grein.

Douglas Karr

Douglas Karr er CMO af OpenINSIGHTS og stofnandi Martech Zone. Douglas hefur hjálpað tugum farsælra MarTech sprotafyrirtækja, hefur aðstoðað við áreiðanleikakönnun yfir $5 milljarða í kaupum og fjárfestingum Martech og heldur áfram að aðstoða fyrirtæki við að innleiða og gera sjálfvirkan sölu- og markaðsáætlanir sínar. Douglas er alþjóðlega viðurkenndur stafrænn umbreytingu og MarTech sérfræðingur og ræðumaður. Douglas er einnig útgefinn höfundur Dummie's guide og bók um leiðtogaviðskipti.

tengdar greinar

Til baka efst á hnappinn
Loka

Auglýsingablokk greind

Martech Zone er fær um að útvega þér þetta efni að kostnaðarlausu vegna þess að við afla tekna af síðunni okkar með auglýsingatekjum, tengdatenglum og kostun. Okkur þætti vænt um ef þú myndir fjarlægja auglýsingablokkann þinn þegar þú skoðar síðuna okkar.