private void SetPinEntryCode(Object value) { byte val = 0; if (value is byte[]) { _bytes = (byte[])value; val = (byte)(_bytes[1] & 0x0f); } else { if (value is PosEntryPinModeBytes) { val = (byte)value; } else if (value is String) { byte[] vals = MessageUtility.StringToHex(value.ToString()); if (vals == null || vals.Length != 1 || ((vals[0] & 0xf0) != 0)) { throw new MessageProcessorException("POSEntryMode.PinEntryCodeString: Invalid value."); } val = vals[0]; } else { return; } _bytes[1] = (byte)((_bytes[1] & 0xf0) | val); } _pinEntryCode = (PosEntryPinModeBytes)val; _pinEntryCodeString = MessageUtility.HexToString(val).Substring(1); _pinEntryDescription = PIN_ENTRY.ContainsKey(_pinEntryCode) ? PIN_ENTRY[_pinEntryCode] : null; }
private void SetMediaCode(Object value) { byte val = 0; if (value is byte[]) { _bytes = (byte[])value; val = (byte)((_bytes[0] << 4) | (_bytes[1] >> 4)); } else { if (value is PosEntryMediaModeBytes) { val = (byte)value; } else if (value is String) { byte[] vals = MessageUtility.StringToHex(value.ToString()); if (vals == null || vals.Length != 1) { throw new MessageProcessorException("POSEntryMode.MediaCodeString: Invalid value."); } val = vals[0]; } else { return; } _bytes[0] = (byte)(val >> 4); _bytes[1] = (byte)((_bytes[1] & 0x0f) | (val << 4)); } _mediaCode = (PosEntryMediaModeBytes)val; _mediaCodeString = MessageUtility.HexToString(val); _mediaDescription = MEDIA.ContainsKey(_mediaCode) ? MEDIA[_mediaCode] : null; }
public MessageEditor() { InitializeComponent(); byte[] mediaModeCodes = (byte[])Enum.GetValues(typeof(PosEntryMediaModeBytes)); byte[] pinModeCodes = (byte[])Enum.GetValues(typeof(PosEntryPinModeBytes)); this.PosEntryMode.Items.Clear(); for (int i = 0; i < mediaModeCodes.Length; i++) { for (int j = 0; j < pinModeCodes.Length; j++) { byte[] value = new byte[2]; value[0] = (byte)(mediaModeCodes[i] >> 4); value[1] = (byte)((mediaModeCodes[i] << 4) | (pinModeCodes[j] & 0x0f)); this.PosEntryMode.AddItem(value, MessageUtility.HexToString(value).Substring(1)); } } byte[] conditionCodes = (byte[])Enum.GetValues(typeof(PosConditionCodeBytes)); this.PosConditionCode.Items.Clear(); for (int i = 0; i < conditionCodes.Length; i++) { byte[] value = new byte[] { conditionCodes[i] }; this.PosConditionCode.AddItem(value, MessageUtility.HexToString(value)); } }
public Response0410 Execute(Request0400 request) { if (request == null) { if (ProcessErrorNotification != null) { ProcessErrorNotification(); } return(null); } DateTime now = DateTime.Now; Response0410 response = new RespReversal0410(); response.TransactionDate = now; response.TransactionTime = now; response.RetrievalReferenceNumber = MessageUtility.HexToString(request.SystemAuditTraceNumber); response.ResponseCode = ResponseCode.COMPLETED_SUCCESSFULLY; if (ProcessReversal != null) { ProcessReversal(new ReqReversal0400(request), (RespReversal0410)response); } //ProcessReversal = null; return(response); }
public Response0210 Execute(Request0200 request) { if (request == null) { ProcessErrorNotification?.Invoke(); return(null); } DateTime now = DateTime.Now; Response0210 response = new Response0210(); if (request.ProcessingCode.TransactionType == TransactionTypeCodeBytes.CASH_WITHDRAWAL) { response = new RespCashWithdrawal0210(); } else if (request.ProcessingCode.TransactionType == TransactionTypeCodeBytes.PAYMENT) { response = new RespPayment0210(); } else if (request.ProcessingCode.TransactionType == TransactionTypeCodeBytes.TRANSFER) { response = new RespTransfer0210(); } response.TransactionDate = now; response.TransactionTime = now; response.RetrievalReferenceNumber = MessageUtility.HexToString(request.SystemAuditTraceNumber); response.ResponseCode = ResponseCode.COMPLETED_SUCCESSFULLY; response.MessageAuthenticationCode = new byte[8]; if (request.TransferData != null) { response.TransferData = request.TransferData; //It's just default value, it must be queried from db in the delegates defined above response.TransferData.BeneficiaryName = "BENEFICIARY NAME GENERATED"; response.TransferData.IssuerInstitutionId = "4442"; response.TransferData.CardholderAccountNumber = "1234567890123456"; response.TransferData.CardholderName = "CARD HOLDER NAME GENERATED"; } if (request.ProcessingCode.TransactionType == TransactionTypeCodeBytes.CASH_WITHDRAWAL) { ProcessCashWithdrawal?.Invoke(new ReqCashWithdrawal0200(request), (RespCashWithdrawal0210)response); } else if (request.ProcessingCode.TransactionType == TransactionTypeCodeBytes.PAYMENT) { ProcessPayment?.Invoke(new ReqPayment0200(request), (RespPayment0210)response); } else if (request.ProcessingCode.TransactionType == TransactionTypeCodeBytes.TRANSFER) { ProcessTransfer?.Invoke(new ReqTransfer0200(request), (RespTransfer0210)response); } //ProcessCashWithdrawal = null; //ProcessPayment = null; //ProcessTransfer = null; return(response); }
public override void WriteJson(JsonWriter writer, Object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } writer.WriteValue(MessageUtility.HexToString((byte[])value)); }
public Response0210SB Execute(Request0200SB request) { if (request == null) { if (ProcessErrorNotification != null) { ProcessErrorNotification(); } return(null); } Response0210SB response = new Response0210SB(); if (request is Request0200TB) { response = new Response0210TB(); } DateTime now = DateTime.Now; response.TransactionDate = now; response.TransactionTime = now; response.RetrievalReferenceNumber = MessageUtility.HexToString(request.SystemAuditTraceNumber); response.ResponseCode = ResponseCode.COMPLETED_SUCCESSFULLY; response.MessageAuthenticationCode = new byte[8]; if (request.TransferData != null) { response.TransferData = request.TransferData; //It's just default value, it must be queried from db in the delegates defined above response.TransferData.BeneficiaryName = "BENEFICIARY NAME GENERATED"; response.TransferData.IssuerInstitutionId = "4442"; response.TransferData.CardholderAccountNumber = "1234567890123456"; response.TransferData.CardholderName = "CARD HOLDER NAME GENERATED"; } if (ProcessMessage0200SB != null) { ProcessMessage0200SB(request, response); } return(response); }
public ActionResult Index(String editedItem = "") { Session["requestParams"] = new Dictionary <String, Object>() { { "ServerHost", Request.QueryString["host"] }, { "ServerPort", Request.QueryString["port"] }, { "IsSSL", Request.QueryString["isSSl"] != null }, { "EditedItem", editedItem } }; if (!EditedItems.Item.ContainsKey(editedItem)) { return(Redirect("~/")); } ViewBag.EditedItem = editedItem; ViewBag.Panel = EditedItems.Item[editedItem].Panel; byte[] accountCodes = (byte[])Enum.GetValues(typeof(AccountCodeBytes)); List <SelectListItem> accountCodeList = new List <SelectListItem>(); foreach (byte accountCode in accountCodes) { String accountCodeString = MessageUtility.HexToString(accountCode); accountCodeList.Add( new SelectListItem() { Value = accountCodeString, Text = accountCodeString + " - " + ProcessingCode.ACCOUNT[(AccountCodeBytes)accountCode] } ); } ViewBag.AccountCodeList = accountCodeList; byte[] mediaModeCodes = (byte[])Enum.GetValues(typeof(PosEntryMediaModeBytes)); List <SelectListItem> posEntryMediaList = new List <SelectListItem>(); foreach (byte mediaModeCode in mediaModeCodes) { String mediaModeCodeString = MessageUtility.HexToString(mediaModeCode); posEntryMediaList.Add( new SelectListItem() { Value = mediaModeCodeString, Text = mediaModeCodeString + " - " + POSEntryMode.MEDIA[(PosEntryMediaModeBytes)mediaModeCode] } ); } ViewBag.PosEntryMediaList = posEntryMediaList; byte[] pinModeCodes = (byte[])Enum.GetValues(typeof(PosEntryPinModeBytes)); List <SelectListItem> posEntryPinList = new List <SelectListItem>(); foreach (byte pinModeCode in pinModeCodes) { String pinModeCodeString = MessageUtility.HexToString(pinModeCode).Substring(1); posEntryPinList.Add( new SelectListItem() { Value = pinModeCodeString, Text = pinModeCodeString + " - " + POSEntryMode.PIN_ENTRY[(PosEntryPinModeBytes)pinModeCode] } ); } ViewBag.PosEntryPinList = posEntryPinList; byte[] posConditionCodes = (byte[])Enum.GetValues(typeof(PosConditionCodeBytes)); List <SelectListItem> posConditionList = new List <SelectListItem>(); foreach (byte posConditionCode in posConditionCodes) { String posConditionCodeString = MessageUtility.HexToString(posConditionCode); posConditionList.Add( new SelectListItem() { Value = posConditionCodeString, Text = posConditionCodeString + " - " + POSCondition.DESCRIPTION[(PosConditionCodeBytes)posConditionCode] } ); } ViewBag.PosConditionList = posConditionList; Object model = EditedItems.Item[editedItem].DefaultModel; ViewBag.TransactionDescription = ""; ViewBag.AdditionalField1 = ""; ViewBag.AdditionalField2 = ""; if (model is Request0200SB) { ViewBag.TransactionDescription = (model as Request0200SB).TransactionDescription; } if (model is Request0200TB) { ViewBag.AdditionalField1 = (model as Request0200TB).AdditionalField1; ViewBag.AdditionalField2 = (model as Request0200TB).AdditionalField2; } return(View(model)); }
public override string ToString() { return(MessageUtility.HexToString(this.ToArray())); }
public Response0110 Execute(Request0100 request) { if (request == null) { if (ProcessErrorNotification != null) { ProcessErrorNotification(); } return(null); } DateTime now = DateTime.Now; Response0110 response = new Response0110(); switch (request.ProcessingCode.TransactionType) { case TransactionTypeCodeBytes.BALANCE_INQUIRY: response = new RespBalanceInquiry0110(); break; case TransactionTypeCodeBytes.PIN_CHANGE: response = new RespPinChange0110(); break; case TransactionTypeCodeBytes.PAYMENT_INQUIRY: response = new RespPaymentInquiry0110(); break; case TransactionTypeCodeBytes.TRANSFER_INQUIRY: response = new RespTransferInquiry0110(); break; } response.TransactionDate = now; response.TransactionTime = now; response.RetrievalReferenceNumber = MessageUtility.HexToString(request.SystemAuditTraceNumber); response.ResponseCode = ResponseCode.COMPLETED_SUCCESSFULLY; response.MessageAuthenticationCode = new byte[8]; if (request.TransferData != null) { response.TransferData = request.TransferData; //It's just default value, it must be queried from db in the delegates defined above response.TransferData.BeneficiaryName = "BENEFICIARY NAME GENERATED"; response.TransferData.IssuerInstitutionId = "4442"; response.TransferData.CardholderAccountNumber = "1234567890123456"; response.TransferData.CardholderName = "CARD HOLDER NAME GENERATED"; } switch (request.ProcessingCode.TransactionType) { case TransactionTypeCodeBytes.BALANCE_INQUIRY: if (ProcessBalanceInquiry != null) { ProcessBalanceInquiry(new ReqBalanceInquiry0100(request), (RespBalanceInquiry0110)response); } break; case TransactionTypeCodeBytes.PIN_CHANGE: if (ProcessPinChange != null) { ProcessPinChange(new ReqPinChange0100(request), (RespPinChange0110)response); } break; case TransactionTypeCodeBytes.PAYMENT_INQUIRY: if (ProcessPaymentInquiry != null) { ProcessPaymentInquiry(new ReqPaymentInquiry0100(request), (RespPaymentInquiry0110)response); } break; case TransactionTypeCodeBytes.TRANSFER_INQUIRY: if (ProcessTransferInquiry != null) { ProcessTransferInquiry(new ReqTransferInquiry0100(request), (RespTransferInquiry0110)response); } break; } //ProcessBalanceInquiry = null; //ProcessPinChange = null; //ProcessPaymentInquiry = null; //ProcessTransferInquiry = null; return(response); }
private void InitializeComponent() { this.TransactionType = new Iso8583Client.IntegerTextBox(); this.FromAccount = new Iso8583Client.BytesComboBox(); this.ToAccount = new Iso8583Client.BytesComboBox(); this.SuspendLayout(); // // TransactionType // this.TransactionType.AcceptNegative = false; this.TransactionType.Enabled = false; this.TransactionType.Length = 0; this.TransactionType.Location = new System.Drawing.Point(0, 0); this.TransactionType.MaxLength = 2; this.TransactionType.Name = "TransactionType"; this.TransactionType.Size = new System.Drawing.Size(28, 20); this.TransactionType.TabIndex = 4; this.TransactionType.ReadOnly = true; this.TransactionTypeCode = TransactionTypeCodeBytes.BALANCE_INQUIRY; byte[] accountCodes = (byte[])Enum.GetValues(typeof(AccountCodeBytes)); // // FromAccount // this.FromAccount.FormattingEnabled = true; this.FromAccount.Location = new System.Drawing.Point(34, 0); this.FromAccount.Name = "FromAccount"; this.FromAccount.Size = new System.Drawing.Size(300, 21); this.FromAccount.TabIndex = 5; foreach (byte accountCode in accountCodes) { this.FromAccount.AddItem( new byte[] { accountCode }, MessageUtility.HexToString(accountCode) + " - " + ProcessingCode.ACCOUNT[(AccountCodeBytes)accountCode] ); } this.FromAccount.SelectedIndex = 0; // // ToAccount // this.ToAccount.FormattingEnabled = true; this.ToAccount.Location = new System.Drawing.Point(340, 0); this.ToAccount.Name = "ToAccount"; this.ToAccount.Size = new System.Drawing.Size(300, 21); this.ToAccount.TabIndex = 6; foreach (byte accountCode in accountCodes) { this.ToAccount.AddItem( new byte[] { accountCode }, MessageUtility.HexToString(accountCode) + " - " + ProcessingCode.ACCOUNT[(AccountCodeBytes)accountCode] ); } this.ToAccount.SelectedIndex = 0; // // ProcessingCodeBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.ToAccount); this.Controls.Add(this.FromAccount); this.Controls.Add(this.TransactionType); this.Name = "ProcessingCodeBox"; this.Size = new System.Drawing.Size(640, 21); this.ResumeLayout(false); this.PerformLayout(); }