Tregtia elektronike dhe pakicë

Pikat përfundimtare të UPS API dhe shembulli i kodit të testit PHP

Ne jemi duke punuar me një WooCommerce klienti tani i kujt Transporti me UPS vërtetimi i adresës dhe llogaritjet e kostos së transportit nuk funksionuan. Çështja e parë që identifikuam ishte shtojca e transportit të UPS-së që ata kishin ishte e vjetëruar dhe domeni kryesor për kompaninë që e zhvilloi atë kishte malware… kjo nuk është kurrë një shenjë e mirë. Pra, ne kemi blerë Shtojca WooCommerce UPS pasi mbështetet mirë nga zhvilluesit e Woocommerce.

Me faktin se siti nuk vërteton adresat dhe nuk integron transportin, hapi ynë i parë ishte të verifikonim që ndërfaqja e programimit të aplikacionit UPS (API) ishte ngritur dhe funksionale. UPS ka një faqe të bukur për të kontrolluar statusi i API-së së tij.

Meqenëse API nuk dukej se ishte kryer, hapi ynë tjetër ishte korrigjimi i problemit në nivel lokal. Mjaft interesante, as plugin-i nuk kishte asnjë regjistrim apo testim për të parë nëse integrimi i transportit të UPS-së funksionoi vërtet. Edhe cilësimi i korrigjimit nuk dha asnjë reagim, as skedarët tanë të regjistrit. Pra, për të testuar API-në, më duhej të programoja një skript për të testuar në të vërtetë API-në.

Kam shkarkuar Kompleti zhvillues i UPS API… i cili përfshinte mostra kodi… dhe ishte i hutuar si kurrë më parë. Dokumentacioni është i kufizuar, pikat përfundimtare për API nuk janë renditur as dhe mostrat e kodit nuk janë të dokumentuara mirë.

Shkarkoni Kompletin e Zhvilluesit të UPS API

Si rezultat, më duhej të bëja disa gërmime… e para ishte të identifikoja pikat përfundimtare për API-në e tyre. Gjeta pikat përfundimtare të testimit të dokumentuara, shkrova kodin tim dhe e testova… pa sukses. Pak më shumë duke gërmuar dhe kuptova se pikat përfundimtare të testimit ishin në thelb të padobishme. Uh.

Pikat e fundit të UPS API

Unë isha në gjendje të gjeja një temë në një faqe zhvillimi që listonte Pikat përfundimtare të prodhimit të UPS API:

  • 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

Më e lehtë për t'u testuar është Vleresimi i adreses (me shkronja të zeza sipër) pikën fundore, kështu që përdora kodin e dhënë për të shkruar një skript të vogël PHP që kalonte adresën dhe u përgjigj nëse ishte apo jo i suksesshëm apo dështuar. Këtu është kodi në rast se dëshironi ta përdorni:

Skedari testues i UPS API PHP për vërtetimin e adresës

Këtu është skripti i përditësuar PHP për testimin e pikës përfundimtare të UPS API të Vlefshmërisë së Adresave:

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

Ky skript të paktën do t'ju tregojë nëse kredencialet po punojnë apo jo me pikën përfundimtare të Vlefshmërisë së Adresës së UPS API. E kuptoj që metodologjia PHP (fopen) për të postuar në API-në e tyre është pak e vjetëruar në këtë shembull më lart… por thjesht doja që kodi i tyre i testimit të funksiononte.

Disclosure: Martech Zone po e përdor atë WooCommerce lidhjet e filialeve në këtë artikull.

Douglas Karr

Douglas Karr është CMO i OpenINSIGHTS dhe themeluesi i Martech Zone. Douglas ka ndihmuar dhjetëra startup të suksesshëm të MarTech, ka ndihmuar në analizën e duhur prej mbi 5 miliardë dollarësh në blerjet dhe investimet e Martech dhe vazhdon të ndihmojë kompanitë në zbatimin dhe automatizimin e strategjive të tyre të shitjeve dhe marketingut. Douglas është një ekspert dhe folës i transformimit dixhital dhe i njohur ndërkombëtarisht në MarTech. Douglas është gjithashtu një autor i botuar i një udhëzuesi Dummie dhe një libri për udhëheqjen e biznesit.

Artikuj Të Ngjashëm

Kthehu në krye të faqes
afër

Blloku i reklamave u zbulua

Martech Zone është në gjendje t'ju ofrojë këtë përmbajtje pa kosto, sepse ne fitojmë para nga faqja jonë përmes të ardhurave nga reklamat, lidhjeve të filialeve dhe sponsorizimeve. Do të vlerësonim nëse do të hiqnit bllokuesin tuaj të reklamave ndërsa shikoni faqen tonë.