在使用 Axios 向 FedEx API 发送请求时,需要按照 FedEx API 的文档所示结构来构造参数,并且要确保请求头中包含必要的认证信息。
示例代码:
const axios = require('axios');
const base_url = 'https://ws.fedex.com:443';
async function getRates() {
try {
const response = await axios.post(`${base_url}/rate`, {
"RateRequest": {
"WebAuthenticationDetail": {
"UserCredential": {
"Key": "YOUR_KEY",
"Password": "YOUR_PASSWORD"
}
},
"ClientDetail": {
"AccountNumber": "YOUR_ACCOUNT_NUMBER",
"MeterNumber": "YOUR_METER_NUMBER"
},
"TransactionDetail": {
"CustomerTransactionId": "EXAMPLE_TRANSACTION_ID"
},
"Version": {
"ServiceId": "crs",
"Major": "28",
"Intermediate": "0",
"Minor": "0"
},
"ReturnTransitAndCommit": true,
"RequestedShipment": {
"DropoffType": "REGULAR_PICKUP",
"ShipTimestamp": "2022-01-01T08:00:00-08:00",
"PackagingType": "YOUR_PACKAGING_TYPE",
"Shipper": {
"Contact": {
"PersonName": "YOUR_NAME",
"CompanyName": "YOUR_COMPANY_NAME",
"PhoneNumber": "YOUR_PHONE_NUMBER"
},
"Address": {
"StreetLines": [
"YOUR_ADDRESS_LINE_1",
"YOUR_ADDRESS_LINE_2"
],
"City": "YOUR_CITY",
"StateOrProvinceCode": "YOUR_STATE_CODE",
"PostalCode": "YOUR_POSTAL_CODE",
"CountryCode": "YOUR_COUNTRY_CODE"
}
},
"Recipient": {
"Contact": {
"PersonName": "RECIPIENT_NAME",
"CompanyName": "RECIPIENT_COMPANY_NAME",
"PhoneNumber": "RECIPIENT_PHONE_NUMBER"
},
"Address": {
"StreetLines": [
"RECIPIENT_ADDRESS_LINE_1",
"RECIPIENT_ADDRESS_LINE