UPS API amaierako puntuak eta PHP proba-kode lagina

ups api endpoints php test kodea helbidearen baliozkotzea

A-rekin ari gara lanean Woocommerce bezeroa oraintxe norena UPS bidalketa helbidea baliozkotzea eta bidalketa kostuen kalkuluak funtzionatzeari utzi zion. Identifikatu genuen lehen arazoa zuten UPS bidalketa plugina zaharkituta zegoela eta garatu zuen konpainiaren oinarrizko domeinuak malwarea zuen... hori ez da inoiz seinale ona. Beraz, erosi genuen WooCommerce UPS plugina Woocommerce-ren garatzaileek ondo onartzen baitute.

Guneak helbideak balioztatzen ez bidalketa integratzen ez duenez, gure lehen urratsa UPS aplikazioen programazio interfazea egiaztatzea izan zen (API) martxan zegoen. UPS-ek gune polita dauka egiaztatzeko bere APIaren egoera.

APIa eginda zegoela dirudienez, gure hurrengo urratsa arazoa lokalean araztea izan zen. Interesgarria bada ere, pluginek ez zuten erregistrorik edo probarik izan UPS bidalketa integrazioak benetan funtzionatu zuen ikusteko. Arazketa-ezarpenak ere ez zuen iritzirik eman, ezta gure erregistro-fitxategiak ere. Beraz, APIa probatzeko, APIa benetan probatzeko script bat programatu behar izan nuen.

Deskargatu dut UPS API garatzaileen kit… kode-laginak barne hartzen zituena… eta beti bezala nahasia zen. Dokumentazioa mugatua da, APIaren amaierako puntuak ere ez ziren zerrendatu eta kode-laginak ez daude ondo dokumentatuta.

Deskargatu UPS API Developer Kit

Ondorioz, zundaketa bat egin behar izan nuen... lehena haien APIrako amaierako puntuak identifikatzea izan zen. Dokumentatutako probak egiteko puntuak aurkitu nituen, nire kodea idatzi eta probatu nuen... arrakastarik gabe. Pixka bat gehiago sakondu eta probaren amaierako puntuak funtsean alferrikakoak zirela jakin nuen. Uf.

UPS API amaierako puntuak

Garapen gune batean hari bat aurkitu ahal izan dut zerrendan UPS API produkzio-puntuak:

  • 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

Probatzeko errazena da Helbidea Balioztatzea (goian lodia) amaiera-puntua, hortaz, emandako kodea erabili nuen PHP script txiki bat idazteko, helbidea gainditu zuen eta arrakasta izan edo huts egin zuen ala ez erantzun zuen. Hona hemen kodea erabili nahi baduzu:

Helbidea balioztatzeko UPS API PHP Test fitxategia

Hona hemen PHP script eguneratua Helbidea Balidatzeko UPS API Endpoint-a probatzeko:

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

Script honek gutxienez erakutsiko dizu kredentzialak UPS API Helbidea baliozkotzeko amaierako puntuarekin lan egiten ari zaren ala ez. Konturatzen naiz bere APIan bidaltzeko PHP metodologia (fopen) apur bat zaharra dela goiko adibide honetan... baina haien proba-kodea funtzionatzea nahi nuen.

Dibulgazioa: nire erabiltzen ari naiz Woocommerce kideen estekak artikulu honetan.