我正在使用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);
}
答案 0 :(得分:0)
最后我找出了问题,问题在于eBay API。它不会填充SessionID字段。可能是API中的错误。 可以在响应对象的XmlElement数组字段中找到可恢复的值。 所以我在这里得到了SessionID。
if (response.Any.Length >= 1)
{
var SessionId=response.Any.First().InnerText;
}