eBay API GetSessionID方法不返回会话ID

时间:2013-12-09 11:26:06

标签: c# .net ebay ebay-lms

我正在使用eBay API调用GetSessionId方法,但该方法在我的ASP.NET MVC4应用程序中返回空SessionID

任何人都可以帮我解决这个问题吗?

我正在使用以下代码段。

 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);
        }

1 个答案:

答案 0 :(得分:0)

最后我找出了问题,问题在于eBay API。它不会填充SessionID字段。可能是API中的错误。 可以在响应对象的XmlElement数组字段中找到可恢复的值。 所以我在这里得到了SessionID。

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