コード例 #1
0
ファイル: LR280POS.cs プロジェクト: josephca88/510-Null
 private LR280Response Request(LR280Request r)
 {
     lock (_PortLocker)
     {
         try
         {
             byte[] buffer = new byte[1024];
             int    ret    = LR280Interop.bankall_yt(Commport, GetBytes(r), buffer);
             if (ret == 0)
             {
                 return(GetResponse(buffer));
             }
             else if (ret == -1)
             {
                 return(new LR280Response()
                 {
                     返回码 = "-1", 错误说明 = "串口未打开"
                 });
             }
             return(new LR280Response()
             {
                 返回码 = ret.ToString(), 错误说明 = "调用函数出错"
             });
         }
         catch (Exception ex)
         {
             Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex);
             return(new LR280Response()
             {
                 返回码 = "-2", 错误说明 = ex.Message
             });
         }
     }
 }
コード例 #2
0
ファイル: LR280POS.cs プロジェクト: josephca88/510-Null
        /// <summary>
        /// 消费
        /// </summary>
        public LR280Response Pay(string cardID, int money)
        {
            var r = new LR280Request()
            {
                应用类型 = "01", 交易类型标志 = LR280PAYTYPE.消费, 卡号 = cardID, 金额 = money
            };

            return(Request(r));
        }
コード例 #3
0
ファイル: LR280POS.cs プロジェクト: josephca88/510-Null
        /// <summary>
        /// 读卡
        /// </summary>
        /// <returns></returns>
        public LR280Response ReadCard()
        {
            var r = new LR280Request()
            {
                应用类型 = "01", 交易类型标志 = LR280PAYTYPE.读卡
            };

            return(Request(r));
        }
コード例 #4
0
ファイル: LR280POS.cs プロジェクト: josephca88/510-Null
        /// <summary>
        /// 结算
        /// </summary>
        public LR280Response Clear()
        {
            var r = new LR280Request()
            {
                应用类型 = "01", 交易类型标志 = LR280PAYTYPE.结算
            };

            return(Request(r));
        }
コード例 #5
0
ファイル: LR280POS.cs プロジェクト: josephca88/510-Null
        /// <summary>
        /// 签到
        /// </summary>
        public LR280Response CheckIn()
        {
            var r = new LR280Request()
            {
                应用类型 = "01", 交易类型标志 = LR280PAYTYPE.签到
            };

            return(Request(r));
        }
コード例 #6
0
ファイル: LR280POS.cs プロジェクト: josephca88/510-Null
        private byte[] GetBytes(LR280Request r)
        {
            string ret   = "";
            string space = "";

            ret += string.IsNullOrEmpty(r.应用类型) ? "01" : r.应用类型;
            ret += string.IsNullOrEmpty(r.POS机号) ? space.PadRight(8) : r.POS机号.PadRight(8);
            ret += string.IsNullOrEmpty(r.POS员工号) ? space.PadRight(8) : r.POS员工号.PadRight(8);
            ret += r.交易类型标志;
            ret += r.金额.ToString().PadLeft(12, '0');
            ret += string.IsNullOrEmpty(r.原交易日期) ? space.PadRight(8) : r.原交易日期;
            ret += string.IsNullOrEmpty(r.原交易参考号) ? space.PadRight(12) : r.原交易参考号;
            ret += string.IsNullOrEmpty(r.原凭证号) ? space.PadRight(6) : r.原凭证号;
            ret += r.LRC.ToString().PadLeft(3, '0');
            ret += string.IsNullOrEmpty(r.授权码) ? space.PadRight(6) : r.授权码;
            ret += string.IsNullOrEmpty(r.卡号) ? space.PadRight(20) : r.卡号.PadRight(20);
            return(Encoding.GetEncoding("GB2312").GetBytes(ret));
        }