飛鵝雲打印 API_C#

飛鵝雲打印: 提交訂單支付成功後臺自動打印,實現無人銷售,自動打印,後臺統計打印記錄功能;
 
有自帶WIFY:鏈接到wify就能夠打印小票;
有自動SIM卡:第1年免流量費,第2年30一年       
 
#region 飛鵝雲打印-API
        //飛鵝雲打印
        public string print(string USER, string UKEY, string SN, string merchantName, string payType, string payTotalMoney, string realyPayTotalMoney, string payStatus, string orderNo, string deviceNo, string qrurl)
        {
            //標籤說明:
            //單標籤:
            //"<BR>"爲換行,"<CUT>"爲切刀指令(主動切紙,僅限切刀打印機使用纔有效果)
            //"<LOGO>"爲打印LOGO指令(前提是預先在機器內置LOGO圖片),"<PLUGIN>"爲錢箱或者外置音響指令
            //成對標籤:
            //"<CB></CB>"爲居中放大一倍,"<B></B>"爲放大一倍,"<C></C>"爲居中,<L></L>字體變高一倍
            //<W></W>字體變寬一倍,"<QR></QR>"爲二維碼,"<BOLD></BOLD>"爲字體加粗,"<RIGHT></RIGHT>"爲右對齊
            //string USER =  //*必填*:登陸管理後臺的帳號名
            //string UKEY =//*必填*: 註冊帳號後生成的UKEY
            //string SN =        //*必填*:打印機編號,必需要在管理後臺裏手動添加打印機或者經過API添加以後,才能調用API
            string URL = "http://api.feieyun.cn/Api/Open/";//不須要修改
            //拼湊訂單內容時可參考以下格式
            string orderInfo;
            //orderInfo = "<CB>中國福彩惠州</CB><BR>";
            //orderInfo += "<BR>";
            //orderInfo += "--------------------------------<BR>";
            //orderInfo += "交易類型:" + "     微信支付<BR>";
            //orderInfo += "總金額:" + "      100.00元<BR>";
            //orderInfo += "用戶實付:" + "    100.00元<BR>";
            //orderInfo += "支付狀態:" + "    支付完成<BR>";
            //orderInfo += "--------------------------------<BR>";
            //orderInfo += "訂單編號:" + "<BR>";
            //orderInfo += "終端編號:" + SN + "<BR>";
            //orderInfo += "臺號:" + "    *** <BR>";
            //orderInfo += "日期:" + System.DateTime.Now + "     <BR>";
            //orderInfo += "----------請掃描二維碼----------";
            //orderInfo += "<QR>http://www.dzist.com</QR>";//把二維碼字符串用標籤套上便可自動生成二維碼
            //orderInfo += "<BR>";
            orderInfo = "<CB>" + merchantName + "</CB><BR>";
            orderInfo += "<BR>";
            orderInfo += "--------------------------------<BR>";
            orderInfo += "交易類型:" + payType + "<BR>";
            orderInfo += "總金額:" + payTotalMoney + "元<BR>";
            orderInfo += "用戶實付:" + realyPayTotalMoney + "元<BR>";
            orderInfo += "支付狀態:" + payStatus + "<BR>";
            orderInfo += "--------------------------------<BR>";
            orderInfo += "訂單編號:" + orderNo + "<BR>";
            orderInfo += "終端編號:" + SN + "<BR>";
            orderInfo += "臺號:" + deviceNo + "<BR>";
            orderInfo += "日期:" + System.DateTime.Now + "     <BR>";
            //orderInfo += "----------請掃描二維碼----------";
            orderInfo += "--------------------------------";
            orderInfo += "請妥善保管好購物憑證 多謝惠顧!";
            orderInfo += "<QR>" + qrurl + "</QR>";//把二維碼字符串用標籤套上便可自動生成二維碼
            orderInfo += "<BR>";
            orderInfo = Uri.EscapeDataString(orderInfo);
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(URL);
            req.Method = "POST";
            UTF8Encoding encoding = new UTF8Encoding();
            string postData = "sn=" + SN;
            postData += ("&content=" + orderInfo);
            postData += ("&times=" + "1");//默認1聯
            int itime = DateTimeToStamp(System.DateTime.Now);//時間戳秒數
            string stime = itime.ToString();
            string sig = sha1(USER, UKEY, stime);
            //公共參數
            postData += ("&user=" + USER);
            postData += ("&stime=" + stime);
            postData += ("&sig=" + sig);
            postData += ("&apiname=" + "Open_printMsg");
            byte[] data = encoding.GetBytes(postData);
            req.ContentType = "application/x-www-form-urlencoded";
            req.ContentLength = data.Length;
            Stream resStream = req.GetRequestStream();
            resStream.Write(data, 0, data.Length);
            resStream.Close();
            HttpWebResponse response;
            string strResult;
            try
            {
                response = (HttpWebResponse)req.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                strResult = reader.ReadToEnd();
            }
            catch (WebException ex)
            {
                response = (HttpWebResponse)ex.Response;
                strResult = response.StatusCode.ToString();//錯誤信息
            }
            response.Close();
            req.Abort();
            //服務器返回的JSON字符串,建議要當作日誌記錄起來
            Logger.Instance.APIInfoFormat("飛鵝雲打印 result->{0}", strResult);
            return strResult;
        }
        //簽名USER,UKEY,STIME
        public static string sha1(string user, string ukey, string stime)
        {
            var buffer = Encoding.UTF8.GetBytes(user + ukey + stime);
            var data = SHA1.Create().ComputeHash(buffer);
            var sb = new StringBuilder();
            foreach (var t in data)
            {
                sb.Append(t.ToString("X2"));
            }
            return sb.ToString().ToLower();
        }
        private static int DateTimeToStamp(System.DateTime time)
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); return (int)(time - startTime).TotalSeconds;
        }
        #endregion
相關文章
相關標籤/搜索