2017-04-24 85 views
0

我正在嘗試使用node-soap對FedEx API進行簡單的速率請求。我已經閱讀了文檔和WSDL以包含所有必需的信息,但我得到的只是一個空對象作爲響應。使用node-soap使用node.js對FedEx進行速率請求

由於我沒有得到任何錯誤,我不知道我在做什麼錯誤或如果我錯過了一些步驟。

這裏是我的代碼:

var express = require('express'); 
var app = express(); 
var port = process.env.PORT || 7000; 
var path = require('path'); 
var soap = require('soap'); 

var url = path.join(__dirname, 'wsdl', 'RateService_v20.wsdl'); 

var params = { 
     WebAuthenticationDetail: { 
     UserCredential: { 
      Key: 'the key I was given by FedEx', 
      Password: 'the password I was given' 
     } 
     }, 
     ClientDetail: { 
     AccountNumber: 'the acc number I was given', 
     MeterNumber: 'the meter number I was given', 
     Localization: { 
      LanguageCode: 'EN' 
     } 
     }, 
     Version: { 
     ServiceId: 'crs', 
     Major: '20', 
     Intermediate: '0', 
     Minor: '0' 
     }, 
     RateRequest: { 
     ReturnTransitAndCommit: true, 
     RequestedShipment: { 
      DropoffType: 'REGULAR_PICKUP', 
      PackagingType: 'FEDEX_10KG_BOX', 
      RateRequestTypes: 'LIST', 
      PackageCount: '1', 
      Shipper: { 
       Contact: { 
        PersonName: 'Sender Name', 
        CompanyName: 'Company Name', 
        PhoneNumber: '5555555555' 
       }, 
       Address: { 
        StreetLines: [ 
        'Address Line 1' 
        ], 
        City: 'Collierville', 
        StateOrProvinceCode: 'TN', 
        PostalCode: '38017', 
        CountryCode: 'US' 
       } 
      }, 
      Recipient: { 
       Contact: { 
        PersonName: 'Recipient Name', 
        CompanyName: 'Company Receipt Name', 
        PhoneNumber: '5555555555' 
       }, 
       Address: { 
        StreetLines: [ 
        'Address Line 1' 
        ], 
        City: 'Charlotte', 
        StateOrProvinceCode: 'NC', 
        PostalCode: '28202', 
        CountryCode: 'US' 
       } 
      } 
     } 
    } 
}; 

app.get('/describe',function(req,res){ 
    soap.createClient(url, function(err, client) { 
     if (err) throw err; 
     res.send(client.describe()); 
    }); 
}); 

app.get('/test',function(req,res){ 
    soap.createClient(url, function(err, client) { 
     if (err) throw err; 
     client.RateService.RateServicePort.getRates(params, function(err, result) { 
      res.send(result); 
     }); 
    }); 
}) 

app.listen(port, function(){ 
    console.log('app listening on port '+ port); 
}) 

回答

0

客戶帳戶資料數量應該是由聯邦快遞公司訪問提供的憑據他們的API的