מסחר אלקטרוני וקמעונאי

נקודות קצה של UPS API וקוד בדיקה לדוגמא של PHP

אנחנו עובדים עם א WooCommerce לקוח כרגע של מי משלוח UPS אימות כתובת וחישובי עלות משלוח הפסיקו לעבוד. הבעיה הראשונה שזיהינו הייתה תוסף המשלוח של UPS שהיה להם מיושן ובדומיין הליבה של החברה שפיתחה אותו יש תוכנות זדוניות... זה אף פעם לא סימן טוב. אז, רכשנו את תוסף WooCommerce UPS מכיוון שהוא נתמך היטב על ידי מפתחי Woocommerce.

מכיוון שהאתר לא מאמת כתובות ולא משלב משלוח, הצעד הראשון שלנו היה לוודא שממשק תכנות האפליקציות של UPS (API) היה פעיל ופעל. ל-UPS יש אתר נחמד לבדיקת ה מצב ה-API שלו.

מכיוון שנראה שה-API לא נעשה, הצעד הבא שלנו היה לנפות את הבעיה באופן מקומי. באופן מעניין למדי, לאף תוסף לא היו רישום או בדיקות כדי לראות אם שילוב המשלוח של UPS אכן עבד. אפילו הגדרת ניפוי הבאגים לא סיפקה משוב, וגם לא קבצי היומן שלנו. אז, כדי לבדוק את ה-API, הייתי צריך לתכנת סקריפט כדי לבדוק את ה-API.

הורדתי את ערכת מפתחי UPS API... שכלל דוגמאות קוד... והיה מבולבל כתמיד. התיעוד מוגבל, נקודות הקצה של ה-API אפילו לא נרשמו, ודוגמאות הקוד אינן מתועדות היטב.

הורד את ערכת המפתחים של UPS API

כתוצאה מכך, הייתי צריך לחפור קצת... הראשון היה לזהות נקודות קצה עבור ה-API שלהם. מצאתי נקודות קצה מתועדות לבדיקה, כתבתי את הקוד שלי ובדקתי אותו... ללא הצלחה. עוד קצת חפרתי וגיליתי שנקודות הקצה של הבדיקה היו בעצם חסרות תועלת. אוף.

נקודות קצה של UPS API

הצלחתי למצוא שרשור באתר פיתוח שרשום את נקודות קצה לייצור 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

הכי קל לבדוק הוא אימות כתובת (מודגש למעלה) אז השתמשתי בקוד שסופק כדי לכתוב סקריפט PHP קטן שהעביר את הכתובת והגיב אם הוא הצליח או לא הצליח. להלן הקוד למקרה שתרצה להשתמש בו:

UPS API PHP קובץ בדיקה לאימות כתובת

להלן סקריפט ה-PHP המעודכן לבדיקת נקודת הקצה של UPS API של אימות כתובת:

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

סקריפט זה יראה לך לפחות אם האישורים שלך עובדים עם נקודת הקצה של UPS API Address Validation. אני מבין שמתודולוגיית ה-PHP (fopen) לפרסם ב-API שלהם קצת מיושן בדוגמה הזו למעלה... אבל רק רציתי לגרום לקוד הבדיקה שלהם לעבוד.

גילוי נאות: Martech Zone משתמש בזה WooCommerce קישורי שותפים במאמר זה.

Douglas Karr

Douglas Karr הוא CMO של פתח INSIGHTS ומייסד ה Martech Zone. דאגלס סייע לעשרות סטארט-אפים מצליחים של MarTech, סייע בבדיקת נאותות של למעלה מ-5 מיליארד דולר ברכישות והשקעות של Martech, וממשיך לסייע לחברות ביישום ואוטומציה של אסטרטגיות המכירות והשיווק שלהן. דאגלס הוא מומחה ודובר בטרנספורמציה דיגיטלית ומוכר בינלאומי ב-MarTech. דאגלס הוא גם מחבר שפורסם של מדריך Dummy וספר מנהיגות עסקית.

מאמרים נוספים

לחצן חזרה למעלה
סְגוֹר

זוהה חסימת מודעות

Martech Zone הוא מסוגל לספק לך תוכן זה ללא עלות מכיוון שאנו מייצרים רווח מהאתר שלנו באמצעות הכנסות ממודעות, קישורי שותפים וחסויות. נשמח אם תסיר את חוסם המודעות שלך בזמן שאתה צופה באתר שלנו.