E-dagang dan Runcit

Titik Akhir API UPS dan Contoh Kod Ujian PHP

Kami sedang bekerjasama dengan a WooCommerce pelanggan sekarang yang Penghantaran UPS pengesahan alamat dan pengiraan kos penghantaran berhenti berfungsi. Isu pertama yang kami kenal pasti ialah pemalam penghantaran UPS yang mereka miliki sudah lapuk dan domain teras untuk syarikat yang membangunkannya mempunyai perisian hasad... itu bukan petanda yang baik. Jadi, kami membeli Pemalam WooCommerce UPS kerana ia disokong dengan baik oleh pembangun Woocommerce.

Dengan tapak tidak mengesahkan alamat atau menyepadukan penghantaran, langkah pertama kami adalah untuk mengesahkan bahawa antara muka pengaturcaraan aplikasi UPS (API) telah siap dan beroperasi. UPS mempunyai tapak yang bagus untuk menyemak status APInya.

Memandangkan API nampaknya tidak selesai, langkah seterusnya kami ialah menyahpepijat isu itu secara setempat. Menariknya, kedua-dua pemalam tidak mempunyai sebarang pengelogan atau ujian untuk melihat sama ada penyepaduan penghantaran UPS benar-benar berfungsi. Malah tetapan nyahpepijat tidak memberikan sebarang maklum balas, begitu juga fail log kami. Jadi, untuk menguji API, saya terpaksa memprogramkan skrip untuk benar-benar menguji API.

Saya muat turun Kit Pembangun API UPS… yang termasuk sampel kod… dan keliru seperti biasa. Dokumentasi adalah terhad, titik akhir untuk API tidak disenaraikan, dan sampel kod tidak didokumenkan dengan baik.

Muat turun Kit Pembangun API UPS

Akibatnya, saya terpaksa melakukan beberapa penggalian... yang pertama ialah mengenal pasti titik akhir untuk API mereka. Saya menemui titik akhir ujian yang didokumenkan, menulis kod saya dan mengujinya… tanpa kejayaan. Menggali sedikit lagi dan saya mendapati bahawa titik akhir ujian pada dasarnya tidak berguna. Ugh.

Titik Akhir API UPS

Saya dapat mencari benang di tapak pembangunan yang menyenaraikan Titik akhir pengeluaran 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

Yang paling mudah untuk diuji ialah Pengesahan Alamat (tebal di atas) titik akhir jadi saya menggunakan kod yang disediakan untuk menulis skrip PHP kecil yang melepasi alamat dan membalas sama ada ia berjaya atau gagal. Berikut ialah kod sekiranya anda ingin menggunakannya:

Fail Ujian PHP API UPS untuk Pengesahan Alamat

Berikut ialah skrip PHP yang dikemas kini untuk menguji Titik Akhir API Pengesahan Alamat:

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

Skrip ini sekurang-kurangnya akan menunjukkan kepada anda sama ada kelayakan anda berfungsi dengan titik akhir Pengesahan Alamat API UPS atau tidak. Saya sedar metodologi PHP (fopen) untuk menghantar ke API mereka agak lama dalam contoh di atas ini... tetapi saya hanya mahu memastikan kod ujian mereka berfungsi.

Pendedahan: Martech Zone sedang menggunakan WooCommerce pautan gabungan dalam artikel ini.

Douglas Karr

Douglas Karr ialah CMO daripada OpenINSIGHTS dan pengasas Martech Zone. Douglas telah membantu berpuluh-puluh syarikat permulaan MarTech yang berjaya, telah membantu dalam usaha wajar lebih $5 bilion dalam pemerolehan dan pelaburan Martech, dan terus membantu syarikat dalam melaksanakan dan mengautomasikan strategi jualan dan pemasaran mereka. Douglas ialah transformasi digital yang diiktiraf di peringkat antarabangsa dan pakar serta penceramah MarTech. Douglas juga merupakan pengarang buku panduan Dummie dan buku kepimpinan perniagaan yang diterbitkan.

Artikel yang berkaitan

Kembali ke atas butang
Tutup

Adblock Dikesan

Martech Zone mampu memberikan anda kandungan ini tanpa sebarang kos kerana kami mengewangkan tapak kami melalui hasil iklan, pautan ahli gabungan dan tajaan. Kami amat menghargai jika anda akan mengalih keluar penyekat iklan anda semasa anda melihat tapak kami.