Puingean crìochnachaidh API UPS agus sampall de chòd deuchainn PHP

ups api endpoints dearbhadh seòladh còd deuchainn php

Tha sinn ag obair le a WooCommerce neach-dèiligidh aig a bheil an-dràsta UPS luchdadh a-nuas stad dearbhadh seòlaidhean agus àireamhachadh cosgais luingeis ag obair. B’ e a’ chiad iris a dh’ ainmich sinn am plugan luingeis UPS a bh’ aca seann-fhasanta agus bha malware aig a’ phrìomh raon airson a’ chompanaidh a leasaich e… chan e soidhne math a tha sin a-riamh. Mar sin, cheannaich sinn an Plugin WooCommerce UPS leis gu bheil e a’ faighinn deagh thaic bho luchd-leasachaidh Woocommerce.

Leis nach eil an làrach a’ dearbhadh sheòlaidhean no a’ toirt a-steach luingearachd, b’ e a’ chiad cheum againn dearbhadh gu robh eadar-aghaidh prògramadh aplacaid UPS (API) suas agus ag obair. Tha làrach math aig UPS airson sùil a thoirt air an inbhe a API.

Leis nach robh coltas ann gun deach an API a dhèanamh, b’ e an ath cheum againn a’ chùis a dheasbad gu h-ionadail. Gu h-inntinneach gu leòr, cha robh logadh no deuchainn aig plugan sam bith gus faicinn an obraich amalachadh luingearachd UPS gu dearbh. Cha tug eadhon an suidheachadh deasbaid fios air ais sam bith, agus cha tug na faidhlichean log againn seachad. Mar sin, gus an API a dhearbhadh, bha agam ri sgriobt a phrògramadh gus an API a dhearbhadh.

Luchdaich mi sìos an Kit leasaiche API UPS... a bha a’ toirt a-steach sampallan còd… agus bha e troimh-a-chèile mar a bha e a-riamh. Tha na sgrìobhainnean cuibhrichte, cha robh na puingean crìochnachaidh airson an API eadhon air an liostadh, agus chan eil na sampallan còd air an deagh chlàradh.

Luchdaich sìos an UPS API Developer Kit

Mar thoradh air an sin, bha agam ri beagan cladhach a dhèanamh… b’ e a’ chiad fhear puingean crìochnachaidh a chomharrachadh airson an API aca. Lorg mi puingean crìochnachaidh deuchainn clàraichte, sgrìobh mi mo chòd, agus rinn mi deuchainn air… Beagan a bharrachd cladhach agus fhuair mi a-mach gu robh na puingean crìochnachaidh deuchainn gu bunaiteach gun fheum. Ugh.

Puingean crìochnachaidh API UPS

Bha e comasach dhomh snàithlean a lorg air làrach leasachaidh a bha a’ liostadh an Puingean crìochnachaidh toraidh 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

Is e am fear as fhasa deuchainn a dhèanamh air Dearbhadh Seòladh (trom gu h-àrd) endpoint agus mar sin chleachd mi an còd a chaidh a thoirt seachad airson sgriobt PHP beag a sgrìobhadh a chaidh seachad air an t-seòladh agus fhreagair e an robh e soirbheachail no nach robh. Seo an còd ma tha thu airson a chleachdadh:

Faidhle deuchainn PHP API UPS airson dearbhadh seòlaidhean

Seo an sgriobt PHP ùraichte airson a bhith a’ dèanamh deuchainn air Seòladh Dearbhadh 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>

Seallaidh an sgriobt seo dhut co-dhiù a bheil no nach eil an teisteanais agad ag obair leis a’ phuing crìochnachaidh UPS API Validation Seòladh. Tha mi a’ tuigsinn gu bheil an dòigh-obrach PHP (fopen) airson a phostadh chun API aca beagan aosda san eisimpleir seo gu h-àrd… ach bha mi dìreach airson an còd deuchainn aca obrachadh.

Foillseachadh: Tha mi a ’cleachdadh mo chuid WooCommerce ceanglaichean ceangailte san artaigil seo.