UPS API Son nöqtələri və Nümunə PHP Test Kodu

ups api endpoints php test kodu ünvanının yoxlanılması

ilə işləyirik Woocommerce müştəri kimin UPS çatdırılması ünvan doğrulama və göndərmə dəyəri hesablamaları işləməyi dayandırdı. Müəyyən etdiyimiz ilk problem onların UPS göndərmə plagininin köhnəlməsi və onu hazırlayan şirkətin əsas domenində zərərli proqramların olması idi... bu heç vaxt yaxşı əlamət deyil. Beləliklə, biz satın aldıq WooCommerce UPS plagini Woocommerce tərtibatçıları tərəfindən yaxşı dəstəkləndiyi üçün.

Saytın ünvanları təsdiqləməməsi və göndərməni birləşdirməməsi ilə bizim ilk addımımız UPS proqramlaşdırma interfeysinin (API) işlək vəziyyətdə idi. UPS-in yoxlanılması üçün gözəl bir saytı var onun API statusu.

API tamamlanmadığı üçün növbəti addımımız problemi yerli olaraq aradan qaldırmaq oldu. Maraqlıdır ki, nə plagində UPS göndərmə inteqrasiyasının həqiqətən işlədiyini görmək üçün heç bir giriş və ya sınaq yox idi. Hətta sazlama parametri heç bir rəy vermədi, nə də bizim log fayllarımız. Beləliklə, API-ni sınaqdan keçirmək üçün mən API-ni sınamaq üçün skript proqramlaşdırmalı oldum.

Yüklədim UPS API Developer Kit… kod nümunələrini ehtiva edən… və həmişəki kimi çaşqın idi. Sənədlər məhduddur, API üçün son nöqtələr belə siyahıya salınmayıb və kod nümunələri yaxşı sənədləşdirilməyib.

UPS API Developer Kitini yükləyin

Nəticədə, mən bir az qazma etməli oldum… birincisi, onların API üçün son nöqtələri müəyyən etmək idi. Mən sənədləşdirilmiş sınaq nöqtələrini tapdım, kodumu yazdım və sınaqdan keçirdim... heç bir uğur əldə etmədim. Bir az daha qazma və test son nöqtələrinin əsasən faydasız olduğunu öyrəndim. uh.

UPS API Son nöqtələri

Mən sadalanan bir inkişaf saytında mövzu tapa bildim UPS API istehsal son nöqtələri:

  • 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

Test etmək üçün ən asanı Ünvan Doğrulaması (yuxarıda qalın) son nöqtə, ona görə də mən ünvandan keçən və onun uğurlu və ya uğursuz olub-olmaması ilə bağlı cavab verən kiçik bir PHP skripti yazmaq üçün verilən koddan istifadə etdim. İstifadə etmək istədiyiniz halda kod budur:

Ünvan Doğrulaması üçün UPS API PHP Test Faylı

Budur Address Validation UPS API Endpoint testi üçün yenilənmiş PHP skripti:

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

Bu skript ən azı etimadnamələrinizin UPS API Address Validation son nöqtəsi ilə işlədiyini və ya işləmədiyinizi göstərəcək. Mən başa düşürəm ki, onların API-lərinə göndərmək üçün PHP metodologiyası (fopen) yuxarıdakı bu misalda bir qədər köhnədir... amma sadəcə onların test kodunun işləməsini istədim.

Açıqlama: Mən özümdən istifadə edirəm Woocommerce bu məqalədəki filial bağlantıları.