Разработка для fedex API завершена, и я пытаюсь перейти на работу.
Я использую следующие константы для своих учетных данных:
FEDEX_KEY // The fedex production key
FEDEX_PASSWORD // The api passwd
FEDEX_ACCOUNT_NUMBER // The account number tied to the key/pw
FEDEX_METER_NUMBER // The meter number tied to the key/pw
Как указано в разделе «Перейти к производству», я удалил атрибут «бета» из всех файлов .wsdl.
Я получаю живые оценки стоимости поставок, которые говорят мне, что мои учетные данные читаются правильно.
Проблема заключается в том, что создание ярлыков отгрузки не работает и выдает следующую ошибку:
The transaction returned an Error.
Severity: ERROR
Source: prof
Code: 1000
Message: Authentication Failed
Request
//Hiding this due to containing private information
Response
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><v17:ProcessShipmentReply xmlns:v17="http://fedex.com/ws/ship/v17"> <v17:HighestSeverity xmlns:v17="http://fedex.com/ws/ship/v17">ERROR</v17:HighestSeverity> <v17:Notifications xmlns:v17="http://fedex.com/ws/ship/v17"> <v17:Severity xmlns:v17="http://fedex.com/ws/ship/v17">ERROR</v17:Severity> <v17:Source xmlns:v17="http://fedex.com/ws/ship/v17">prof</v17:Source> <v17:Code xmlns:v17="http://fedex.com/ws/ship/v17">1000</v17:Code> <v17:Message xmlns:v17="http://fedex.com/ws/ship/v17">Authentication Failed</v17:Message> </v17:Notifications> <v17:TransactionDetail xmlns:v17="http://fedex.com/ws/ship/v17"><v17:CustomerTransactionId xmlns:v17="http://fedex.com/ws/ship/v17">*** Ground Domestic Shipping Request using PHP ***</v17:CustomerTransactionId> </v17:TransactionDetail> <v17:Version xmlns:v17="http://fedex.com/ws/ship/v17"> <v17:ServiceId xmlns:v17="http://fedex.com/ws/ship/v17">ship</v17:ServiceId> <v17:Major xmlns:v17="http://fedex.com/ws/ship/v17">17</v17:Major> <v17:Intermediate xmlns:v17="http://fedex.com/ws/ship/v17">0</v17:Intermediate> <v17:Minor xmlns:v17="http://fedex.com/ws/ship/v17">0</v17:Minor> </v17:Version> </v17:ProcessShipmentReply></SOAP-ENV:Body></SOAP-ENV:Envelope>
Вот звонок, который я делаю
//Creating new SoapClient and setting path to the Shipping .wsdl
$path_to_wsdl = $_SERVER['DOCUMENT_ROOT']."/portal/API/FedEx/wsdl/ShipService_v17.wsdl";
$client = new SoapClient($path_to_wsdl, array('trace' => 1));
//This is the snippet where I set the credentials
$masterRequest['WebAuthenticationDetail'] = array(
'ParentCredential' => array(
'Key' => getProperty('parentkey'),
'Password' => getProperty('parentpassword')
),
'UserCredential' => array(
'Key' => FEDEX_KEY,
'Password' => FEDEX_PASSWORD
)
);
$masterRequest['ClientDetail'] = array(
'AccountNumber' => FEDEX_ACCOUNT_NUMBER,
'MeterNumber' => FEDEX_METER_NUMBER
);
Номер счета FedEx и номер счетчика в тестовом и живом режиме различаются — изменили ли вы их соответственно? Вы не можете использовать одинаковые значения в тестовом и живом режиме.
Вы также можете получить номер счетчика в центре ресурсов разработчиков FedEx, в разделе «Перейти к производству».
Других решений пока нет …