private ActionResult ProcessingResult_Uniteller(ProcessingResultModel model) { if (model == null) { throw new ArgumentNullException("model"); } PaymentResultContext context = new PaymentResultContext(); if (model.success == true) { context.Success = true; } else { context.Errors.Add(PaymentStrings.PaymentCancelled); } return(base.View("_ProcessingResult", context)); }
private ActionResult ProcessingResult_PayU(ProcessingResultModel model) { if (model == null) { throw new System.ArgumentNullException("model"); } PaymentResultContext context = new PaymentResultContext(); if (model.success == true) { context.Success = true; context.Order = model.order; ConfirmInvoiceResult invoiceResult = BookingProvider.ConfirmInvoice(model.invoice); Tracing.DataTrace.TraceEvent(TraceEventType.Information, 0, "PAYU transaction: invoice: '{0}', invoice confirmation: '{1}'", new object[] { model.invoice, invoiceResult.IsSuccess ? "SUCCESS" : "FAILED" }); if (!invoiceResult.IsSuccess) { context.Errors.Add(string.Format("invoice confirmation error: {0}", invoiceResult.ErrorMessage)); } else { context.Success = true; BookingProvider.AcceptInvoice(Convert.ToInt32(context.Order)); } } else { context.Errors.Add(PaymentStrings.PaymentCancelled); } return(base.View("_ProcessingResult", context)); }
private void onPaymentFinished(PaymentResultContext result) { log(string.Format("PAYMENT FINISHED : " + Environment.NewLine + " ID : {0}" + Environment.NewLine + " Invoice : {1}" + Environment.NewLine + " ApprovalCode : {2}" + Environment.NewLine + " Amount : {3}" + Environment.NewLine + " DateTime : {4}" + Environment.NewLine + " PAN : {5}" + Environment.NewLine + " Terminal : {6}" + Environment.NewLine + " EMVdata : {7}" + Environment.NewLine + " RequiresSignature : {8}", result.TransactionItem.ID, result.TransactionItem.Invoice, result.TransactionItem.AcquirerApprovalCode, result.TransactionItem.Amount, result.TransactionItem.Date, result.TransactionItem.Card != null ? result.TransactionItem.Card.PANMasked : "null", result.TerminalName, result.EmvData, result.RequiresSignature)); log(divider); }
private void onPaymentFinished(PaymentResultContext result) { try { if (result.ScheduleItem != null) { log("PAYMENT FINISHED :"); log(JsonConvert.SerializeObject(result.ScheduleItem, Formatting.Indented)); } else if (result.TransactionItem != null) { Transaction resultTran = result.TransactionItem; if (cb_TestServerFisc.Checked) { resultTran = Task.Factory.StartNew <Transaction>(() => { var transaction = result.TransactionItem; var uptime = DateTime.Now; var timeout = new TimeSpan(0, 1, 0); int i = 0; while (transaction.FiscalInfo == null || (transaction.FiscalInfo.FiscalStatus != FiscalStatus.Success && transaction.FiscalInfo.FiscalStatus != FiscalStatus.Failure)) { if (DateTime.Now - uptime > timeout) { log("Cancelling fiscal data request by timeout"); break; } Thread.Sleep(5000); var statusRequestResult = PaymentController.Instance.TryGetFiscalInfo(transaction.ID); log("Get fiscal data attempt " + ++i); if (statusRequestResult != null && statusRequestResult.ErrorCode == 0) { if (statusRequestResult.Transaction != null) { transaction = statusRequestResult.Transaction; log(JsonConvert.SerializeObject(transaction.FiscalInfo, Formatting.Indented)); } else { log("Failed : transaction not found or not unique"); } } else { log("Failed : " + statusRequestResult == null ? "null" : statusRequestResult.ErrorMessage); } } return(transaction ?? result.TransactionItem); } ).GetAwaiter().GetResult(); } string emvdata = string.Empty; if (resultTran.EMVData != null) { foreach (String key in resultTran.EMVData.Keys) { emvdata += string.Format("{0}: {1}\n", key, resultTran.EMVData[key]); } } log("PAYMENT FINISHED : " + Environment.NewLine + JsonConvert.SerializeObject(resultTran, Formatting.Indented)); log(DIVIDER); if (cb_TestServerFisc.Checked) { log(Utils.BuildInvoice(m_AuthResult.Account, resultTran)); } StringBuilder slipBuilder = new StringBuilder(); slipBuilder.Append("___________SLIP___________\n"); if (m_AuthResult != null && m_AuthResult.ErrorCode == 0) { slipBuilder.AppendLine(m_AuthResult.Account.BankName); slipBuilder.AppendLine(m_AuthResult.Account.ClientName); slipBuilder.AppendLine(m_AuthResult.Account.ClientLegalName); slipBuilder.AppendLine(m_AuthResult.Account.ClientPhone); slipBuilder.AppendLine(m_AuthResult.Account.ClientWeb); } slipBuilder.AppendFormat("Дата и время операции: {0}\n", resultTran.Date); slipBuilder.AppendFormat("Терминал: {0}\n", resultTran.TerminalName); slipBuilder.AppendFormat("Чек: {0}\n", resultTran.Invoice); slipBuilder.AppendFormat("Код подтверждения: {0}\n", resultTran.AcquirerApprovalCode); slipBuilder.AppendFormat("Карта: {0} {1}\n", resultTran.Card.IIN, resultTran.Card.PANMasked.Replace("*", " **** ")); if (resultTran.EMVData != null) { foreach (String key in resultTran.EMVData.Keys) { slipBuilder.AppendFormat("{0}: {1}\n", key, resultTran.EMVData[key]); } } slipBuilder.AppendFormat("Имя: {0}\n", resultTran.CardholderName); slipBuilder.AppendFormat("Операция: {0}\n", resultTran.Operation); slipBuilder.AppendFormat("Итого: {0} р\n", resultTran.Amount); slipBuilder.Append("Комиссия: 0.00 р\n"); slipBuilder.Append("Статус: Успешно\n"); if (resultTran.SignatureRequired) { slipBuilder.Append("Подпись клиента____________________\n"); } else { if (resultTran.InputType == Ibox.Pro.SDK.External.Entry.InputType.Chip || resultTran.InputType == Ibox.Pro.SDK.External.Entry.InputType.NFC) { slipBuilder.Append("Подтверждено вводом PIN\n"); } } log(slipBuilder.ToString()); } else if (result.AttachedCard != null) { log("ATTACH FINISHED :" + Environment.NewLine + JsonConvert.SerializeObject(result, Formatting.Indented)); getLinkedCards(); } else { log("PAYMENT FINISHED"); } log(DIVIDER); } catch (Exception ex) { } }
private ActionResult ProcessingResult_PayPal(ProcessingResultModel model) { if (model == null) { throw new System.ArgumentNullException("model"); } PaymentResultContext context = new PaymentResultContext(); context.Order = model.order; if (model.success == true) { if (model.token == null) { throw new System.ArgumentNullException("token"); } if (model.payerID == null) { throw new System.ArgumentNullException("payerID"); } GetExpressCheckoutDetailsRequestType request = new GetExpressCheckoutDetailsRequestType(); request.Version = "104.0"; request.Token = model.token; GetExpressCheckoutDetailsReq wrapper = new GetExpressCheckoutDetailsReq(); wrapper.GetExpressCheckoutDetailsRequest = request; System.Collections.Generic.Dictionary <string, string> config = PaymentController.PayPal_CreateConfig(); PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(config); GetExpressCheckoutDetailsResponseType ecResponse = service.GetExpressCheckoutDetails(wrapper); if (ecResponse == null) { throw new System.Exception("checkout details result is null"); } if (ecResponse.Errors != null && ecResponse.Errors.Count > 0) { ecResponse.Errors.ForEach(delegate(ErrorType m) { context.Errors.Add(m.LongMessage); }); } if (ecResponse.Ack == AckCodeType.SUCCESS || ecResponse.Ack == AckCodeType.SUCCESSWITHWARNING) { GetExpressCheckoutDetailsResponseDetailsType details = ecResponse.GetExpressCheckoutDetailsResponseDetails; if (details == null) { throw new System.Exception("details object is null"); } if (string.IsNullOrEmpty(details.InvoiceID)) { throw new System.Exception("invoiceID not found"); } if (details.PaymentDetails == null) { throw new System.Exception("payment details is null"); } System.Collections.Generic.List <PaymentDetailsType> paymentDetails = new System.Collections.Generic.List <PaymentDetailsType>(); foreach (PaymentDetailsType payment in details.PaymentDetails) { paymentDetails.Add(new PaymentDetailsType { NotifyURL = null, PaymentAction = payment.PaymentAction, OrderTotal = payment.OrderTotal }); } DoExpressCheckoutPaymentRequestType paymentRequest = new DoExpressCheckoutPaymentRequestType(); paymentRequest.Version = "104.0"; paymentRequest.DoExpressCheckoutPaymentRequestDetails = new DoExpressCheckoutPaymentRequestDetailsType { PaymentDetails = paymentDetails, Token = model.token, PayerID = model.payerID }; DoExpressCheckoutPaymentResponseType doECResponse = service.DoExpressCheckoutPayment(new DoExpressCheckoutPaymentReq { DoExpressCheckoutPaymentRequest = paymentRequest }); if (doECResponse == null) { throw new System.Exception("payment result is null"); } if (doECResponse.Errors != null && doECResponse.Errors.Count > 0) { doECResponse.Errors.ForEach(delegate(ErrorType m) { context.Errors.Add(m.LongMessage); }); } if (doECResponse.Ack == AckCodeType.SUCCESS || doECResponse.Ack == AckCodeType.SUCCESSWITHWARNING) { ConfirmInvoiceResult invoiceResult = BookingProvider.ConfirmInvoice(details.InvoiceID.Trim()); Tracing.DataTrace.TraceEvent(TraceEventType.Information, 0, "PAYPAL transaction: invoice: '{0}', invoice confirmation: '{1}'", new object[] { details.InvoiceID, invoiceResult.IsSuccess ? "SUCCESS" : "FAILED" }); if (!invoiceResult.IsSuccess) { context.Errors.Add(string.Format("invoice confirmation error: {0}", invoiceResult.ErrorMessage)); } else { context.Success = true; BookingProvider.AcceptInvoice(Convert.ToInt32(context.Order)); } } } } else { context.Errors.Add(PaymentStrings.PaymentCancelled); } return(base.View("_ProcessingResult", context)); }