Kummerċ elettroniku u bejgħ bl-imnut

UPS API Endpoints u Kampjun ta' Kodiċi tat-Test PHP

Qed naħdmu ma' a WooCommerce klijent issa li Tbaħħir UPS il-validazzjoni tal-indirizz u l-kalkoli tal-ispiża tat-tbaħħir waqfu jaħdmu. L-ewwel kwistjoni li identifikajna kienet il-plugin tat-tbaħħir UPS li kellhom kien skadut u d-dominju ewlieni għall-kumpanija li żviluppatha kellu malware... dak qatt mhu sinjal tajjeb. Allura, xtrajna l- WooCommerce UPS plugin peress li huwa appoġġjat tajjeb mill-iżviluppaturi ta 'Woocommerce.

Billi s-sit ma jivvalidax l-indirizzi u lanqas jintegra t-tbaħħir, l-ewwel pass tagħna kien li nivverifikaw li l-interface tal-ipprogrammar tal-applikazzjoni tal-UPS (API) kienet stabbilita u operattiva. UPS għandu sit sabiħ għall-iċċekkjar l-istatus tal-API tagħha.

Peress li l-API ma deherx li saret, il-pass li jmiss tagħna kien li niddebuggjaw il-kwistjoni lokalment. Interessanti biżżejjed, la l-plugin ma kellu l-ebda logging u lanqas ttestjar biex tara jekk l-integrazzjoni tat-tbaħħir UPS fil-fatt ħadmet. Anke l-issettjar tad-debug ma pprovda l-ebda feedback, u lanqas il-log files tagħna. Allura, sabiex nittestja l-API, kelli nipprogramma script biex fil-fatt tittestja l-API.

Jiena niżżilt UPS API Developer Kit… li kien jinkludi kampjuni ta’ kodiċi… u kien konfuż bħal qatt qabel. Id-dokumentazzjoni hija limitata, l-endpoints għall-API lanqas biss kienu elenkati, u l-kampjuni tal-kodiċi mhumiex dokumentati tajjeb.

Niżżel il-Kit għall-Iżviluppaturi tal-API UPS

Bħala riżultat, kelli nagħmel xi tħaffir... l-ewwel kien li nidentifika endpoints għall-API tagħhom. Sibt endpoints tal-ittestjar dokumentati, ktibt il-kodiċi tiegħi, u ttestjawh... mingħajr suċċess. Ftit aktar tħaffir u sibt li l-endpoints tal-ittestjar kienu bażikament inutli. Ugh.

UPS API Endpoints

Stajt insib ħajta fuq sit ta 'żvilupp li elenka l- Punti finali tal-produzzjoni 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

L-eħfef waħda biex tittestja hija l- Validazzjoni ta' l-Indirizz (grassett hawn fuq) endpoint għalhekk użajt il-kodiċi pprovdut biex nikteb script PHP żgħir li għadda l-indirizz u wieġeb jekk kienx suċċess jew le. Hawn il-kodiċi fil-każ li tixtieq tużah:

UPS API PHP Test File għall-Validazzjoni tal-Indirizz

Hawn l-iskript PHP aġġornat għall-ittestjar tal-Endpoint tal-API tal-UPS tal-Validazzjoni tal-Indirizz:

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

Din l-iskrittura għall-inqas turik jekk intx il-kredenzjali qed taħdem jew le mal-endpoint tal-Validazzjoni tal-Indirizzi tal-API tal-UPS. Nirrealizza li l-metodoloġija tal-PHP (fopen) għall-post fl-API tagħhom hija daqsxejn antika f'dan l-eżempju ta 'hawn fuq ... imma jien ridt biss li l-kodiċi tat-test tagħhom jaħdem.

Żvelar: Martech Zone qed juża tiegħu WooCommerce links tal-affiljati f'dan l-artikolu.

Douglas Karr

Douglas Karr huwa CMO ta OpenINSIGHTS u l-fundatur tal- Martech Zone. Douglas għen għexieren ta’ startups ta’ MarTech ta’ suċċess, għen fid-diliġenza dovuta ta’ aktar minn $5 biljun f’akkwisti u investimenti ta’ Martech, u jkompli jgħin lill-kumpaniji fl-implimentazzjoni u l-awtomatizzazzjoni tal-istrateġiji tal-bejgħ u l-kummerċjalizzazzjoni tagħhom. Douglas huwa trasformazzjoni diġitali rikonoxxuta internazzjonalment u espert u kelliem tal-MarTech. Douglas huwa wkoll awtur ippubblikat ta 'gwida ta' Dummie u ktieb ta 'tmexxija tan-negozju.

Artikli relatati

Lura għall-buttuna ta 'fuq
Agħlaq

Adblock Individwat

Martech Zone huwa kapaċi jagħtik dan il-kontenut mingħajr ebda spiża għaliex aħna monetize is-sit tagħna permezz ta 'dħul minn reklam, links affiljati, u sponsorships. Napprezzaw jekk tneħħi l-imblokkatur tar-reklami tiegħek hekk kif tara s-sit tagħna.