2017-04-24 86 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的