2013-12-09 67 views
1

我正在使用eBay API調用GetSessionId方法,但該方法在我的ASP.NET MVC4應用程序中返回空SessionIDeBay API GetSessionID方法不返回會話ID

任何人都可以幫我解決最新的問題嗎?

我正在使用以下代碼片段。

string signinURL = "https://api.sandbox.ebay.com/wsapi"; 
     string callname = "GetSessionID"; 
     string appID = ConfigurationManager.AppSettings["ebay_AppId"]; 
     string version = "768"; 
     string eBayToken = ConfigurationManager.AppSettings["testToken"]; 
     string endpoint = signinURL + "?callname=" + callname + 
          "&appid=" + appID + 
          "&version=" + version + 
          "&routing=default"; 



     eBayAPIInterfaceClient service = new eBayAPIInterfaceClient("eBayAPI", endpoint); 
     GetSessionIDRequest req = new GetSessionIDRequest(); 
     req.RequesterCredentials = new CustomSecurityHeaderType(); 

     req.RequesterCredentials.Credentials = new UserIdPasswordType(); 
     req.RequesterCredentials.Credentials.AppId = AppConstants.AppId; 
     req.RequesterCredentials.Credentials.DevId = AppConstants.DevId; 
     req.RequesterCredentials.Credentials.AuthCert = AppConstants.CertId; 
     req.RequesterCredentials.eBayAuthToken = AppConstants.ebayToken; 
     GetSessionIDRequestType reqType = new GetSessionIDRequestType(); 
     reqType.RuName = AppConstants.RuName; 
     reqType.Version = version; 
     GetSessionIDResponseType res = service.GetSessionID(ref req.RequesterCredentials, reqType); 
     if (res.Ack == AckCodeType.Success) 
     { 
      string ebaySignInUrl = "https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&RuName=" + AppConstants.RuName 
             + "&SessionID=" + res.SessionID; 
      Response.Redirect(ebaySignInUrl); 
     } 

回答

0

最後我找出問題所在,問題在於eBay API。它不填充SessionID字段。可能是API中的錯誤。 retured值可以在響應對象的XmlElement Array字段中找到。 所以我得到這裏的SessionID。

if (response.Any.Length >= 1) 
     { 
     var SessionId=response.Any.First().InnerText; 
     }