麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

訂餐系統之自動確認淘點點訂單

2019-11-17 01:29:34
字體:
來源:轉載
供稿:網友

訂餐系統之自動確認淘點點訂單

  最近淘點點好像做了一個重大調整,一個企業帳號只能開10家店,個人帳號只能開5家店,這個對于第三方配送的就有些麻煩了,如果您開的店多了,您就得用多個帳號,如果您要把訂單導入自己的平臺,統一操作,這個又麻煩了。經過這幾天的開發、測試,終于實現多帳號自動確認,導入訂單到自己的平臺了,自動推送給配送員,再讓配送員搶單、配送。之前寫過一篇叫訂餐系統之獲取淘寶外賣訂單的文章介紹獲取未確認的淘寶外賣訂單及確認訂單,有興趣的朋友也可以看下,本文算是那篇文章的一個升級吧。支持多帳號,及自動確認功能。

  點擊這里進入淘寶開放平臺,添加應用,其他操作基本就是按提示傻瓜操作了。有興趣的自己點點哦,這里就不細說了。

  背景交代完畢,開始進入今天的主題。

第一步,維護開放平臺相關信息

  在開放平臺申請應用后會生成兩個信息App Key和App Secret。我先把這些信息維護到數據庫中,如下圖,其中的shopid為此帳號下任意一個商家編號即可。session key在下一步中作介紹

  

第二步,獲取Session key

  Session Key獲取網址為:http://api.taobao.com/apitools/sessionPage.htm?QQ-pf-to=pcqq.c2c,應用上線后,session key的默認過期時間為一個月(也可以申請一年的),也就是過期了,你要重新到這個地址生成,并更新到第一步中的數據表中。

操作步驟如下(第二張圖中session對應的內容就是Session Key了):

  

第三步,具體實現

  大部分代碼和訂餐系統之獲取淘寶外賣訂單中的相同,主要就是換了個思路,把其中變化的參數都保存在數據表中,通常循環獲取訂單,并確認訂單。大概代碼如下,寫得不好,希望大家拍磚哈。

    PRotected void Page_Load(object sender, EventArgs e)    {        if (!Page.IsPostBack)        {            TBShoplist = SectionProxyData.GetTaoBaoShopList();            foreach (var account in SectionProxyData.GettaobaoAPIAcountList())            {                string shopid = account.Priority.ToString();                string appkey = account.classname;                string appsecret = account.pic;                string top_session = account.hovepic;                //參數集合                SortedList<string, string> parameters = new SortedList<string, string>();                //2.1 應用級輸入參數                parameters.Add("is_all", "true");                parameters.Add("store_id", shopid);                parameters.Add("max_size", "20");                //2.2 系統級參數                parameters.Add("method", "taobao.trade.waimai.get");                parameters.Add("session", top_session);                parameters.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));                parameters.Add("format", "json");                parameters.Add("app_key", appkey);                parameters.Add("v", "2.0");                parameters.Add("partner_id", "top-apitools");                //2.3 生成sign,格式: app_secret參數1值1參數2值2,生成md5后轉為大寫                StringBuilder sb = new StringBuilder();                sb.Append(appsecret);                foreach (KeyValuePair<string, string> item in parameters)                {                    sb.Append(item.Key + item.Value);                }                parameters.Add("sign", WebUtility.GetMd5(sb.ToString()).ToUpper());                //3.生成url                string url = "http://gw.api.taobao.com/router/rest?";//線上環境: http://gw.api.taobao.com/router/rest  測試環境: http://gw.sandbox.taobao.com/router/rest                StringBuilder query = new StringBuilder();                foreach (KeyValuePair<string, string> item in parameters)                {                    query.Append(item.Key + "=" + System.Web.HttpUtility.UrlEncode(item.Value, System.Text.Encoding.UTF8) + "&");                }                url += query.ToString().TrimEnd(new char[] { '&' });                ITopClient client = new DefaultTopClient(url, appkey, appsecret, "json");                TradeWaimaiGetRequest req = new TradeWaimaiGetRequest();                req.StoreId = Convert.ToInt32(shopid);                req.IsAll = true;                req.MaxSize = 20L;                TradeWaimaiGetResponse response = client.Execute(req,top_session);                if (response.Result != null && response.Result.ResultList != null)                {                    ttOrderlist = response.Result.ResultList;                    string cbautoconfirm = WebUtility.FixgetCookie("cbautoconfirm");                    if (cbautoconfirm == "true" || cbautoconfirm == "checked")                    {                        //自動確認;                        foreach (var model in ttOrderlist)                        {                            confirmOrder(model, appkey, appsecret, top_session);                        }                    }                }            }                   }    }    /// <summary>    /// 確認訂單    /// </summary>    protected void confirmOrder(TakeoutThirdOrder model, string appkey, string appsecret, string top_session)    {        //1.加到系統,        ...        int rs = bll.AddTBOrder(ordermodel, foodlist);        //2.確認訂單        if (rs > 0)        {            //參數集合            SortedList<string, string> parameters = new SortedList<string, string>();            //2.1 應用級輸入參數            parameters.Add("order_id", model.Id.ToString());            //2.2 系統級參數            parameters.Add("method", "taobao.trade.waimai.confirm");            parameters.Add("session", top_session);            parameters.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));            parameters.Add("format", "json");            parameters.Add("app_key", appkey);            parameters.Add("v", "2.0");            parameters.Add("partner_id", "top-apitools");            //2.3 生成sign,格式: app_secret參數1值1參數2值2,生成md5后轉為大寫            StringBuilder sb = new StringBuilder();            sb.Append(appsecret);            foreach (KeyValuePair<string, string> item in parameters)            {                sb.Append(item.Key + item.Value);            }            //sb.Append(appsecret);            parameters.Add("sign", WebUtility.GetMd5(sb.ToString()).ToUpper());            //3.生成url            string url = "http://gw.api.taobao.com/router/rest?";            StringBuilder query = new StringBuilder();            foreach (KeyValuePair<string, string> item in parameters)            {                query.Append(item.Key + "=" + System.Web.HttpUtility.UrlEncode(item.Value, System.Text.Encoding.UTF8) + "&");            }            url += query.ToString().TrimEnd(new char[] { '&' });            ITopClient client = new DefaultTopClient(url, appkey, appsecret, "json");            TradeWaimaiConfirmRequest req = new TradeWaimaiConfirmRequest();            req.OrderId = Convert.ToInt64(model.Id);            TradeWaimaiConfirmResponse response = client.Execute(req, top_session);        }    }
View Code

界面效果如下圖,默認30秒訪問一次,自動確認(淘寶掌柜確認后,這里就不能再獲取了)。

  

第四步,讓訂單跑起來

  如果在第三步,增加部分代碼,把訂單推送到我們配送員的Android客戶端,讓大家去搶單,然后配送。整個流程就變得相當easy了。

  

結語

  此文與之前的文章描述的內容相關,并沒有增加多少技術含量,只是增加了一些思路,如多帳號問題、自動確認等,當然推送客戶端,讓大家搶單,這只是對接了下我們原有的系統。希望對有需要的同學有點幫助,鄙人技術有限,寫得不好地方也請大家拍磚哈!

成為一名優秀的程序員!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色婷婷久久一区二区 | av在线免费播放网站 | 亚洲草逼视频 | jizzyouxxxx | 日韩黄在线 | 日本成人在线免费 | av电影网站在线 | 2019中文字幕在线播放 | 国产精品99久久久久久宅女 | 国产九色视频在线观看 | 免费久久久久 | 成熟女人特级毛片www免费 | 日本爽快片100色毛片视频 | 国产99久久精品一区二区 | 欧美日韩免费看 | 福利四区 | 蜜桃网站在线观看 | 免费a级片视频 | 午夜生活理论片 | 亚洲网站在线播放 | 91色一区二区三区 | 一边吃奶一边摸下娇喘 | 亚洲精品自在在线观看 | 在线天堂中文在线资源网 | 亚洲精品久久久久久久久久久 | 搜一级毛片 | 蜜桃网站免费 | 国产91中文字幕 | 羞羞网站| 久久久久av69精品 | 国产精品aⅴ| 国产亚洲精品综合一区91555 | 久久中文字幕在线观看 | 成年性羞羞视频免费观看无限 | 国产资源在线视频 | 成人三级在线播放 | 成人福利在线播放 | www.99re14.com| 中文字幕综合 | 毛片视频免费播放 | 国产精品啪一品二区三区粉嫩 |