protected override byte[] OnGetData() { if (this.Result == ResponseCode.Success && !BadDeals.Check(BatchNo, SerialNo, ShopName, PosName)) { ShopNameTo = (ShopNameTo ?? "").Trim(); lock (string.Intern(string.IsNullOrWhiteSpace(ShopNameTo) ? ShopName : ShopNameTo)) { string accountName = this.AccountName.Substring(0, AccountNameLength); string token = GetToken(); _i8583.settabx_data(1, accountName); // KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { var seriaNo = BatchNo + SerialNo; string passwrod = ""; if (this.AccountName.IndexOf("d") > -1) { passwrod = GetPassword(accountName);//磁条卡 } else { passwrod = GetPassword(this.AccountName);//IC卡 } //string passwrod = GetPassword(this.AccountName);//IC卡 var rsp = GetResponse(token, seriaNo, passwrod, accountName); Result = rsp.Code; if (Result == ResponseCode.Success) { SerialServerNo = rsp.SerialServerNo; Amount = rsp.Amount; //返回余额 DealAmount = rsp.DealAmount; //返回实际交易金额(不能大于上送的交易金额) var theCode = GetTheCode(); base.SetAccount(theCode, rsp.ThisTimePoint, 0, rsp.Point); var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0210"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("deal", mac); _i8583.settabx_data(63, mac); } } } } return(_i8583.Pack8583("0210")); }
public static void SetMac(this I8583 current, string packNo, string key) { var i8583 = current.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583(packNo); string mac = LCDES.MACEncrypt(data, key, 2); current.settabx_data(63, mac); }
protected override byte[] OnGetData() { if (Result == ResponseCode.Success && !BadDeals.Check(BatchNo, SerialNo, ShopName, PosName)) { string accountName = AccountName.Substring(0, AccountNameLength); string token = GetToken(); _i8583.settabx_data(1, accountName); //KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { string passwrod = ""; if (this.AccountName.IndexOf("d") > -1) { passwrod = GetPassword(accountName);//´ÅÌõ¿¨ } else { passwrod = GetPassword(this.AccountName);//IC¿¨ } string seriaNo = _i8583.gettabx_data(60); if (seriaNo.Length > 12) { seriaNo = seriaNo.Substring(0, 12); } AccountServiceResponse rsp = Context.AccountDealService.CancelDonePrePay(new CancelPayRequest(accountName, passwrod, PosName, DealAmount, BatchNo + SerialNo, seriaNo, token, ShopName)); Result = rsp.Code; //this._i8583.settabx_data(37, rsp.DealCode); if (Result == ResponseCode.Success) { this._i8583.settabx_data(37, SerialNo); SerialServerNo = rsp.SerialServerNo.PadLeft(12, '0'); Amount = rsp.Amount; var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0210"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("cancel_done_prepay", mac); _i8583.settabx_data(63, mac); } } } return(_i8583.Pack8583("0210")); }
protected override byte[] OnGetData() { if (this.Result == ResponseCode.Success && !BadDeals.Check(BatchNo, SerialNo, ShopName, PosName)) { string accountName = this.AccountName.Substring(0, AccountNameLength); string token = GetToken(); _i8583.settabx_data(1, accountName); //KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { var seriaNo = BatchNo + SerialNo; string passwrod = ""; if (this.AccountName.IndexOf("d") > -1) { passwrod = GetPassword(accountName);//´ÅÌõ¿¨ } else { passwrod = GetPassword(this.AccountName);//IC¿¨ } //var pos = _posRepository.GetPosByName(PosName); AccountServiceResponse rsp = Context.AccountDealService.DonePrePay(new Ecard.Infrastructure.PrePayRequest(BatchNo + this.OldSerialNo, this.OldPayDate, accountName, passwrod, PosName, DealAmount, seriaNo, token, ShopName)); //rsp = _accountService.Pay(pos, ShopName, accountName, passwrod, DealAmount, dealItem, token); Result = rsp.Code; if (Result == ResponseCode.Success) { this._i8583.settabx_data(37, SerialNo); SerialServerNo = rsp.SerialServerNo.PadLeft(12, '0'); Amount = rsp.Amount; var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0210"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("done_prepay", mac); _i8583.settabx_data(63, mac); } } } return(_i8583.Pack8583("0210")); }
protected override byte[] OnGetData() { if (this.Result == ResponseCode.Success && !BadDeals.Check(BatchNo, SerialNo, ShopName, PosName)) { string accountName = this.AccountName.Substring(0, AccountNameLength); string token = GetToken(); _i8583.settabx_data(1, accountName); // KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { lock (string.Intern(string.IsNullOrWhiteSpace(ShopNameTo) ? ShopName : ShopNameTo)) { string passwrod = ""; if (this.AccountName.IndexOf("d") > -1) { passwrod = GetPassword(accountName);//磁条卡 } else { passwrod = GetPassword(this.AccountName);//IC卡 } var rsp = Context.AccountDealService.PrePay(new PayRequest(accountName, passwrod, PosName, DealAmount, BatchNo + SerialNo, token, ShopName, ShopName)); Result = rsp.Code; this._i8583.settabx_data(37, SerialNo); if (Result == ResponseCode.Success) { SerialServerNo = rsp.SerialServerNo.PadLeft(12, '0'); Amount = rsp.Amount; var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0110"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("prepay", mac); _i8583.settabx_data(63, mac); } } } } return(_i8583.Pack8583("0110")); }
protected override byte[] OnGetData() { if (this.Result == ResponseCode.Success) { //string accountName = this.AccountName.Substring(0, 16); //string token = GetToken(); //_i8583.settabx_data(1, accountName); //KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { var shoptoName = ShopNameTo ?? ""; shoptoName = shoptoName.Trim(); //var pos = _posRepository.GetPosByName(PosName); AccountServiceResponse rsp = Context.AccountDealService.QueryShop(PosName, ShopName, shoptoName); //rsp = _accountService.Pay(pos, ShopName, accountName, passwrod, DealAmount, dealItem, token); Result = rsp.Code; if (Result == ResponseCode.Success) { Amount = rsp.Amount; SerialServerNo = rsp.SerialServerNo; var array = BuildForShop(rsp); //_i8583.settabx_data(47, array); var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0110"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("deal", mac); _i8583.settabx_data(63, mac); } } } return(_i8583.Pack8583("0110")); }
protected override byte[] OnGetData() { if (this.Result == ResponseCode.Success) { //var key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { lock (string.Intern(string.IsNullOrWhiteSpace(ShopNameTo) ? ShopName : ShopNameTo)) { //var pos = _posRepository.GetPosByName(this.PosName); var serialNo = BatchNo + SerialNo; BadDeals.Add(BatchNo, SerialNo, ShopName, PosName); //var rsp = _accountService.Deal_(pos, ShopName, DealAmount, serialNo, this.DealTypeValue); var rsp = Context.AccountDealService.Roolback(new PayRequest_(AccountName, Password, PosName, DealAmount, serialNo, serialNo, "", ShopName)); Result = rsp.Code; if (Result == ResponseCode.Success) { SerialServerNo = rsp.SerialServerNo; Amount = rsp.Amount; var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0410"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); _i8583.settabx_data(63, mac); } } } } return(_i8583.Pack8583("0410")); }
protected override byte[] OnGetData() { if (this.Result == ResponseCode.Success) { string accountName = this.AccountName.Substring(0, AccountNameLength); string token = GetToken(); _i8583.settabx_data(1, accountName); //KeysEntry key = GetCurrentKey(); var PosKey = Context.AccountDealService.GetPosKey(ShopName, PosName); KeysEntry key = PosKey == null ? null : new KeysEntry() { Key1 = PosKey.Key1, Key2 = PosKey.Key2, PosName = PosName, ShopName = ShopName }; if (Result == ResponseCode.Success) { string passwrod = ""; if (this.AccountName.IndexOf("d") > -1) { passwrod = GetPassword(accountName);//´ÅÌõ¿¨ } else { passwrod = GetPassword(this.AccountName);//IC¿¨ } var rsp = Context.AccountDealService.Query(PosName, ShopName, accountName, passwrod, token, NewPassword, OpenCode); Result = rsp.Code; if (OpenCode == "000000000000000000000000000000PASSWORD") { if (Result == ResponseCode.Success) { SerialServerNo = rsp.SerialServerNo; Amount = rsp.Amount; base.SetAccount("PASSWORD", rsp.Amount, 0, rsp.Point); var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0210"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("password", mac); _i8583.settabx_data(63, mac); } } else { if (Result == ResponseCode.Success) { SerialServerNo = rsp.SerialServerNo; Amount = rsp.Amount; base.SetAccount("QUERY", rsp.Amount, 0, rsp.Point); var i8583 = _i8583.Clone(); i8583.settabx_data(63, ""); var data = i8583.Pack8583("0210"); string mac = LCDES.MACEncrypt(data, key.Key2, 2); mac = Helper.WrapMac("query", mac); _i8583.settabx_data(63, mac); } } //var rsp = Context.AccountDealService.Query(PosName, ShopName, accountName, passwrod, token,NewPassword,OpenCode); //Result = rsp.Code; //if (Result == ResponseCode.Success) //{ // SerialServerNo = rsp.SerialServerNo; // Amount = rsp.Amount; // base.SetAccount("QUERY", rsp.Amount, 0, rsp.Point); // var i8583 = _i8583.Clone(); // i8583.settabx_data(63, ""); // var data = i8583.Pack8583("0210"); // string mac = LCDES.MACEncrypt(data, key.Key2, 2); // mac = Helper.WrapMac("query", mac); // _i8583.settabx_data(63, mac); //} } } return(_i8583.Pack8583("0210")); }