首頁>技術>

專案中遇到對接【MIS刷卡系統介面文件(for WINDOWS)】的同學可以參考使用

1. 介面呼叫事項需使用DllImport呼叫銀聯提供的/gmc/posinf.dll所以引數需連續拼接,引數為NULL需空格佔用引數均為byte[]型別長度部分長度單位為位元組2. 動態庫呼叫

dll呼叫(posinf.dl)函式名為:int bankall (char * request,char *response),其中第一個引數為傳入引數。

3. C#呼叫方法
        public static string UnionPay(Parameter m)        {            try            {                string request = string.Empty;                byte[] response = new byte[2000];                request = m.CreditCardType;                request += GetContent(m.POSMachine, 8, " ");                request += GetContent(m.POSEmployee, 8, " ");                request += m.TypeFlag;                request += GetContent((Convert.ToDecimal(m.Amount) * 100).ToString("0"), 12, "0");                request += m.Date;                request += GetContent(m.ReferenceNum, 12, " ");                request += GetContent(m.VoucherNo, 6, " ");                request += getTreeNumRandom();                request += m.ReservedDomain;//GetContent("", 500, " ");                               bankall(System.Text.Encoding.Default.GetBytes(request), response);                Thread.Sleep(1000);                return System.Text.Encoding.Default.GetString(response);            }            catch (Exception)            {                return "01";            }        }
4. 呼叫引數
        public class Parameter        {            /// <summary>            /// 刷卡型別(2)            /// </summary>            public string CreditCardType { get; set; }            /// <summary>            /// POS機號(8)            /// </summary>            public string POSMachine { get; set; }            /// <summary>            /// POS員工號(8)            /// </summary>            public string POSEmployee { get; set; }            /// <summary>            /// 交易型別標誌(2)            /// </summary>            public string TypeFlag { get; set; }            /// <summary>            /// 金額(12)            /// </summary>            public string Amount { get; set; }            /// <summary>            /// 原交易日期(8)            /// </summary>            public string Date { get; set; }            /// <summary>            /// 原交易參考號(12)            /// </summary>            public string ReferenceNum { get; set; }            /// <summary>            /// 原憑證號(6)            /// </summary>            public string VoucherNo { get; set; }            /// <summary>            /// LRC校驗(3)            /// </summary>            public string LRCCheck { get; set; }            /// <summary>            /// 保留域(500)            /// </summary>            public string ReservedDomain { get; set; }        }
5. 呼叫引數
       /// <summary>       /// 引數長度不夠增加       /// </summary>       /// <param name="str">引數</param>       /// <param name="leng">引數長度</param>       /// <param name="type">佔用引數</param>       /// <returns></returns>        public static string GetContent(string str, int leng, string type)        {            string text = str;            int strlen = str.Length;            if (strlen < leng)            {                for (int i = strlen; i < leng; i++)                {                    if (type == "0")                    {                        text = type + text;                    }                    else                    {                        text = text + type;                    }                }            }            else if (strlen > leng)            {                text = str.Substring(0, leng);            }            else if (strlen == leng)            {                text = str;            }            return text;        }
6. 獲得三位的隨機數
        /// <summary>        /// 獲得三位的隨機數        /// </summary>        /// <returns></returns>        public static string getTreeNumRandom()        {            Random ro = new Random();            int iResult;            int iUp = 999;            int iDown = 100;            iResult = ro.Next(iDown, iUp);            return iResult.ToString().Trim();        }

11
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • InputBox函式語法引數,詳細介紹,VBA程式設計學習