淘宝API刷新SessionKey的方法

本文介绍了如何使用淘宝API刷新SessionKey的步骤,包括获取签名、构造请求参数、发送POST请求以及处理响应。通过示例代码展示了处理错误和更新配置的细节。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

        public void RefreshToken()
        {
            try
            {
                SecretSettings secretSettings = new SecretSettings();
                string sign = GetRefrashSign(secretSettings.AppKey, secretSettings.SessionKey, secretSettings.refresh_token, secretSettings.AppSecret);
                Dictionary<string, string> urlParams = new Dictionary<string, string>();
                urlParams.Add("appkey", secretSettings.AppKey);
                urlParams.Add("refresh_token", secretSettings.refresh_token);
                urlParams.Add("sessionkey", secretSettings.SessionKey);
                urlParams.Add("sign", sign);
                try
                {
                    WebUtils webUtils=new WebUtils();
                    string responsStr= webUtils.DoPost(secretSettings.refresh_token_Url, urlParams);
                    IDictionary result = TopUtils.ParseJson(responsStr);
                    if(result.Contains("error"))
                    {
                        Ext.Net.ResourceManager.AjaxSuccess = false;
                        Ext.Net.ResourceManager.AjaxErrorMessage = result["error"].ToString() + ":" + result["error_description"].ToString();
                    }
                    else
                    {
                        DateTime refrashDate = DateTime.Now;
                        secretSettings.SessionKey = result["top_session"].ToString();
                        secretSettings.refresh_token = result["refresh_token"].ToString();
                        secretSettings.expires_in = Convert.ToInt32(result["expires_in"].ToString());
                        secretSettings.SessionCreateDate = refrashDate;
                        secretSettings.re_expires_in = Convert.ToInt32(result["re_expires_in"].ToString());
                        secretSettings.refresh_token_RefreshDate = refrashDate;

                        secretSettings.r1_expires_in = Convert.ToInt32(result["r1_expires_in"].ToString());
                        secretSettings.r1_expires_in_RefreshDate = refrashDate;
                        secretSettings.r2_expires_in = Convert.ToInt32(result["r2_expires_in"].ToString());
                        secretSettings.r2_expires_in_RefreshDate = refrashDate;
                        secretSettings.w1_expires_in = Convert.ToInt32(result["w1_expires_in"].ToString());
                        secretSettings.w1_expires_in_RefreshDate = refrashDate;
                        secretSettings.w2_expires_in = Convert.ToInt32(result["w2_expires_in"].ToString());
                        secretSettings.w2_expires_in_RefreshDate = refrashDate;
                        secretSettings.SaveConfig();
                        SetPropertyGrid(secretSettings);
                    }
                }
                catch (Exception e)
                {
                    Ext.Net.ResourceManager.AjaxSuccess = false;
                    Ext.Net.ResourceManager.AjaxErrorMessage = e.Message;
                }
            }
            catch (Exception e)
            {
                Ext.Net.ResourceManager.AjaxSuccess = false;
                Ext.Net.ResourceManager.AjaxErrorMessage = e.Message;
            }
        }

鉴于某些小童鞋的要求,补充一下刷新SESSIONKEY的方法。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值