DHL XML API 集成错误“SV012a”和“SV014a”

Posted

技术标签:

【中文标题】DHL XML API 集成错误“SV012a”和“SV014a”【英文标题】:DHL XML API Integration error "SV012a" and "SV014a" 【发布时间】:2019-03-22 07:38:00 【问题描述】:

嗯,实际上我正在通过将 API 与我们的应用程序一起使用来执行一些步骤。

(注意:我从 DHL Toolkit 提供的测试 xml 文件中获取了以下所有详细信息,除了运输和账单帐号)

use DHL\Entity\GB\ShipmentResponse;
use DHL\Entity\GB\ShipmentRequest;
use DHL\Client\Web as WebserviceClient;
use DHL\Datatype\GB\Piece;
use DHL\Datatype\GB\SpecialService;
//echo __DIR__ . '/../../init.php';exit;
require(__DIR__ . '/../../init.php');

// DHL Settings
$dhl = $config['dhl'];
//echo "<pre>";print_r($dhl);exit;
// Test a ShipmentRequestRequest using DHL XML API
$sample = new ShipmentRequest();
//echo "<pre>";print_r($dhl);exit;
// Set values of the request
$sample->MessageTime = '2019-03-17T09:30:47-05:00';  
$sample->MessageReference = '1234567890123456789012345678901'; 
$sample->SiteID = $dhl['id'];
$sample->Password = $dhl['pass'];

$sample->RegionCode = 'EU';
//$sample->RequestedPickupTime = 'Y';  
$sample->NewShipper = 'N';  
$sample->LanguageCode = 'en';
$sample->PiecesEnabled = 'Y';
$sample->Billing->ShipperAccountNumber = $dhl['shipperAccountNumber'];
$sample->Billing->ShippingPaymentType = 'S';
$sample->Billing->BillingAccountNumber = $dhl['billingAccountNumber']; 

$sample->Consignee->CompanyName = 'ABCDEFGHIJKLMNOPQRSTUV Life Centre';
$sample->Consignee->addAddressLine('Central 1');  
$sample->Consignee->City = 'Singapore';  
$sample->Consignee->PostalCode = '486048';  
$sample->Consignee->CountryCode = 'SG';
$sample->Consignee->CountryName = 'Singapore';
$sample->Consignee->Contact->PersonName = 'raobeert bere';
$sample->Consignee->Contact->PhoneNumber = '11234-325423';

$sample->Dutiable->DeclaredValue = '2.00';  
$sample->Dutiable->DeclaredCurrency = 'EUR';

$sample->ShipmentDetails->NumberOfPieces = 1;

// All optional but add some data
$piece = new Piece();
$piece->PieceID = '1';
$piece->PackageType = 'EE';
$piece->Weight = '5.0';
$piece->DimWeight = '1.0';
$piece->Width = '2';
$piece->Height = '2';
$piece->Depth = '2';
$sample->ShipmentDetails->addPiece($piece);

$sample->ShipmentDetails->Weight = '5.0';
$sample->ShipmentDetails->WeightUnit = 'K';
$sample->ShipmentDetails->GlobalProductCode = 'P';
$sample->ShipmentDetails->LocalProductCode = 'P';
$sample->ShipmentDetails->Date = date('Y-m-d');
$sample->ShipmentDetails->Contents = 'For testing purpose only. Please do not ship';
$sample->ShipmentDetails->DimensionUnit = 'C';  
$sample->ShipmentDetails->CurrencyCode = 'EUR';

$sample->Shipper->ShipperID = $dhl['shipperAccountNumber'];
$sample->Shipper->CompanyName = 'University of QA';
$sample->Shipper->addAddressLine('1 New Orchard Road');
$sample->Shipper->addAddressLine('Senate House');
$sample->Shipper->City = 'London';  
$sample->Shipper->PostalCode = 'WC1E 7HU';  
$sample->Shipper->CountryCode = 'GB';
$sample->Shipper->CountryName = 'United Kingdom';
$sample->Shipper->Contact->PersonName = 'Mr peter';
$sample->Shipper->Contact->PhoneNumber = '11234-325423';

//$sample->EProcShip = 'N';  
$sample->LabelImageFormat = 'PDF';  

// Call DHL XML API
$start = microtime(true);
//echo $sample->toXML();
$client = new WebserviceClient('staging');
$xml = $client->call($sample);
echo "<pre>";print_r($xml);exit;

这样我会收到如下错误:

SV012a 系统无法验证您的发货 帐号。请更正此号码并 重新提交。如需帮助,请致电 DHL 客户服务

SV014a 系统无法验证您的帐单 帐号。请更正此号码并 重新提交。如需帮助,请致电 DHL 客户服务

但我只是在测试从测试环境 URL 请求“发货验证”流程的流程。 网址是https://xmlpi-validation.dhl.com/serviceval/jsps/main/Main_menu.jsp

步骤:

1) 点击“发货验证”

2) 点击“XML 服务”

3) 点击“Request_Global_EU”

4) 点击“提交”

在执行此过程时,我收到一条错误消息,例如“系统无法验证您的发货帐号。请更正此号码并重新提交。如需帮助,请在您的测试环境中致电 DHL 客户服务。

因此,我无法测试“发货验证”的请求和响应。

任何建议或指导将不胜感激。 谢谢。

【问题讨论】:

【参考方案1】:

您似乎没有有效的 ShippingAccount 编号,或者您使用的是演示 ShippingAccount,您无法使用自己修改大部分运输请求参数。如果你这样做了,你会得到你分享的回复。

【讨论】:

我有同样的问题,这就是我提到上面的原因。即使您认为自己有,但您没有正确的凭据。 DHL 为您提供暂存凭证和实时凭证,看起来您没有有效凭证。您需要联系 DHL 代表

以上是关于DHL XML API 集成错误“SV012a”和“SV014a”的主要内容,如果未能解决你的问题,请参考以下文章

通过 PHP cUrl 创建 DHL 发货标签不起作用

XML :: Simple为大型XML返回“Out of memory”错误

将 Twitter API 集成到 iPhone 应用程序中会出现错误

Code 128 (dhl) 条码和条码中缺少的东西

Woocommerce REST API:自定义字段而不是产品名称

使用代理集成时,API 网关和 Lambda 出现 CORS 错误**仅**