Xalên Dawî yên UPS API û Koda Testê ya PHP-ê Nimûne
Em bi a WooCommerce muwekîlê niha yê ku barkirina UPS erêkirina navnîşan û hesabên lêçûnên barkirinê kar rawestandin. Pirsgirêka yekem a ku me nas kir ev pêveka barkirina UPS-ê ya ku wan hebû kevn bû û qada bingehîn a pargîdaniya ku ew pêşxistibû malware hebû… ew qet nîşanek baş e. Ji ber vê yekê, me kirî Pêveka WooCommerce UPS ji ber ku ew ji hêla pêşdebirên Woocommerce ve baş tê piştgirî kirin.
Digel ku malper ne navnîşanan pejirand û ne jî barkirinê yekpare kir, gava meya yekem ev bû ku em verast bikin ku pêwendiya bernamesaziya serîlêdana UPS (API) rabû û xebitî. UPS ji bo kontrolkirina malperê malperek xweş heye rewşa API-ya wê.
Ji ber ku API nehate çêkirin, gava meya paşîn ev bû ku pirsgirêkê li herêmî derxînin. Tiştê balkêş, ne pêvek têketin û ne jî ceribandinek hebû ku bibîne ka entegrasyona barkirina UPS-ê bi rastî kar dike. Tewra mîhenga debugkirinê jî tu bertek peyda nekir, ne jî pelên têketinê yên me. Ji ber vê yekê, ji bo ceribandina API-ê, min neçar ma ku skrîptek bi rastî API-ê ceriband.
Min daxistin UPS API Developer Kit… ku nimûneyên kodê tê de… û wekî berê tevlihev bû. Belgekirin tixûbdar e, xalên dawî yên ji bo API-ê jî nehatine navnîş kirin, û nimûneyên kodê baş ne belge ne.
Kita Pêşdebir a UPS API dakêşin
Wekî encamek, min neçar ma ku hin kolandinê bikim… ya yekem ew bû ku xalên dawî ji bo API-ya wan nas bikim. Min xalên dawiya ceribandinê yên belgekirî dîtin, koda xwe nivîsand, û ew ceriband… bê serkeftin. Piçek bêtir kolandin û min fêr kir ku xalên dawiya ceribandinê bi bingehîn bêkêr bûn. Ugh.
UPS API Endpoints
Min karî li ser malperek pêşkeftinê ku navnîşek navnîşek tê de bibînim Xalên dawiya hilberîna 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
Ya herî hêsan a ceribandinê ev e Navnîşan Validation (li jor stûr) xala paşîn ji ber vê yekê min koda peydakirî bikar anî da ku nivîsek piçûk a PHP-ê binivîsim ku navnîşan derbas kir û bersiv da ka ew serketî bû an neserketî bû. Li vir koda ku hûn dixwazin wê bikar bînin ev e:
UPS API PHP Pelê Testê ji bo Rastkirina Navnîşanê
Li vir nivîsara PHP-ê ya nûvekirî ya ji bo ceribandina Serlêdana Navnîşana UPS API Endpoint heye:
<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>
Ev skrîpt dê bi kêmanî nîşanî we bide ka hûn pêbawer in an na bi xala dawîn a Rastkirina Navnîşana UPS API re dixebitin an na. Ez fêhm dikim ku metodolojiya PHP-ê (fopen) ku ji API-ya xwe re bişîne di vê mînaka li jor de hinekî pîr e… lê min tenê dixwest ku koda testa wan bixebite.
Kişivî: Martech Zone xwe bi kar tîne WooCommerce di vê gotarê de girêdanên hevkariyê.