Pwyntiau Terfyn API UPS a Chod Prawf PHP Sampl

ups api endpoints php dilysu cyfeiriad cod prawf

Rydyn ni'n gweithio gydag a WooCommerce cleient ar hyn o bryd y mae ei Llongau UPS dilysu cyfeiriad a chyfrifiadau cost cludo wedi rhoi'r gorau i weithio. Y mater cyntaf a nodwyd gennym oedd yr ategyn llongau UPS oedd ganddynt yn hen ffasiwn ac roedd gan y parth craidd ar gyfer y cwmni a'i datblygodd malware ... nid yw hynny byth yn arwydd da. Felly, fe brynon ni'r Ategyn WooCommerce UPS gan ei fod yn cael ei gefnogi'n dda gan ddatblygwyr Woocommerce.

Gyda'r wefan ddim yn dilysu cyfeiriadau nac yn integreiddio llongau, ein cam cyntaf oedd gwirio bod rhyngwyneb rhaglennu cymwysiadau UPS (API) i fyny ac yn weithredol. Mae gan UPS wefan braf ar gyfer gwirio'r statws ei API.

Gan nad oedd yn ymddangos bod yr API wedi'i wneud, ein cam nesaf oedd dadfygio'r mater yn lleol. Yn ddiddorol ddigon, nid oedd gan yr ategyn unrhyw logio na phrofi i weld a oedd integreiddio llongau UPS yn gweithio mewn gwirionedd. Ni roddodd hyd yn oed y gosodiad dadfygio unrhyw adborth, na'n ffeiliau log. Felly, er mwyn profi'r API, roedd yn rhaid i mi raglennu sgript i brofi'r API mewn gwirionedd.

Yr wyf wedi llwytho i lawr y Pecyn Datblygwr API UPS… a oedd yn cynnwys samplau cod … ac a oedd wedi drysu ag erioed. Mae'r ddogfennaeth yn gyfyngedig, nid oedd y diweddbwyntiau ar gyfer yr API hyd yn oed wedi'u rhestru, ac nid yw'r samplau cod wedi'u dogfennu'n dda.

Dadlwythwch y Pecyn Datblygwr API UPS

O ganlyniad, bu'n rhaid i mi gloddio rhywfaint ... y cyntaf oedd nodi pwyntiau terfyn ar gyfer eu API. Deuthum o hyd i bwyntiau terfyn profi wedi'u dogfennu, ysgrifennais fy nghod, a'i brofi ... heb unrhyw lwyddiant. Ychydig mwy o gloddio a darganfyddais fod y pwyntiau terfyn profi yn ddiwerth yn y bôn. Ych.

Pwyntiau Terfyn API UPS

Roeddwn yn gallu dod o hyd i edefyn ar safle datblygu a oedd yn rhestru'r Pwyntiau terfyn cynhyrchu 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

Yr un hawsaf i'w brofi yw'r Dilysu Cyfeiriad pwynt terfyn (mewn print trwm uchod) felly defnyddiais y cod a ddarparwyd i ysgrifennu sgript PHP fach a basiodd y cyfeiriad ac ymateb i p'un a oedd yn llwyddiannus neu'n methu ai peidio. Dyma'r cod yn y digwyddiad yr hoffech ei ddefnyddio:

Ffeil Prawf PHP API UPS ar gyfer Dilysu Cyfeiriad

Dyma'r sgript PHP wedi'i diweddaru ar gyfer profi Endpoint API Dilysu Cyfeiriad UPS:

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

Bydd y sgript hon o leiaf yn dangos i chi a yw'ch tystlythyrau yn gweithio gyda phwynt terfyn Dilysu Cyfeiriad API UPS ai peidio. Rwy'n sylweddoli bod y fethodoleg PHP (fopen) i bostio i'w API ychydig yn hen yn yr enghraifft hon uchod ... ond roeddwn i eisiau i'w cod prawf weithio.

Datgeliad: Rwy'n defnyddio fy WooCommerce dolenni cyswllt yn yr erthygl hon.