Пример #1
0
 /// <summary>
 /// Fills the g2s DMN.
 /// </summary>
 /// <param name="query">The query.</param>
 /// <returns>G2S DMN Model.</returns>
 private G2SDMNModel FillG2SDMN(string query)
 {
     G2SDMNModel dmn = new G2SDMNModel();
     dmn.PPPStatus = HttpUtility.ParseQueryString(query).Get("ppp_status");
     dmn.CardCompany = HttpUtility.ParseQueryString(query).Get("cardCompany");
     dmn.NameOnCard = HttpUtility.ParseQueryString(query).Get("nameOnCard");
     dmn.FirstName = HttpUtility.ParseQueryString(query).Get("first_name");
     dmn.LastName = HttpUtility.ParseQueryString(query).Get("last_name");
     dmn.Address = HttpUtility.ParseQueryString(query).Get("address1");
     dmn.City = HttpUtility.ParseQueryString(query).Get("city");
     dmn.Country = HttpUtility.ParseQueryString(query).Get("country");
     dmn.Email = HttpUtility.ParseQueryString(query).Get("email");
     dmn.State = HttpUtility.ParseQueryString(query).Get("state");
     dmn.Zip = HttpUtility.ParseQueryString(query).Get("zip");
     dmn.Phone = HttpUtility.ParseQueryString(query).Get("phone1");
     dmn.Currency = HttpUtility.ParseQueryString(query).Get("currency");
     dmn.UserId = HttpUtility.ParseQueryString(query).Get("customField1");
     dmn.Interest = HttpUtility.ParseQueryString(query).Get("customField2");
     dmn.CompanyId = HttpUtility.ParseQueryString(query).Get("customField3");
     dmn.MerchantSiteId = HttpUtility.ParseQueryString(query).Get("merchant_site_id");
     dmn.MerchantId = HttpUtility.ParseQueryString(query).Get("merchant_id");
     dmn.MerchantLocale = HttpUtility.ParseQueryString(query).Get("merchantLocale");
     dmn.RequestVersion = HttpUtility.ParseQueryString(query).Get("requestVersion");
     dmn.PPPTransactionID = HttpUtility.ParseQueryString(query).Get("PPP_TransactionID");
     dmn.ProductId = HttpUtility.ParseQueryString(query).Get("productId");
     dmn.CustomData = HttpUtility.ParseQueryString(query).Get("customData");
     dmn.PaymentMethod = HttpUtility.ParseQueryString(query).Get("payment_method");
     dmn.InvoiceId = HttpUtility.ParseQueryString(query).Get("invoice_id");
     dmn.ResponseTimeStamp = HttpUtility.ParseQueryString(query).Get("responseTimeStamp");
     dmn.Message = HttpUtility.ParseQueryString(query).Get("message");
     dmn.Error = HttpUtility.ParseQueryString(query).Get("Error");
     dmn.Status = HttpUtility.ParseQueryString(query).Get("Status");
     dmn.ExErrCode = HttpUtility.ParseQueryString(query).Get("ExErrCode");
     dmn.ErrCode = HttpUtility.ParseQueryString(query).Get("ErrCode");
     dmn.AuthCode = HttpUtility.ParseQueryString(query).Get("AuthCode");
     dmn.ReasonCode = HttpUtility.ParseQueryString(query).Get("ReasonCode");
     dmn.Token = HttpUtility.ParseQueryString(query).Get("Token");
     dmn.TokenId = HttpUtility.ParseQueryString(query).Get("tokenId");
     dmn.ResponseChecksum = HttpUtility.ParseQueryString(query).Get("responsechecksum");
     dmn.AdvanceResponseChecksum = HttpUtility.ParseQueryString(query).Get("advanceResponseChecksum");
     dmn.TotalAmount = HttpUtility.ParseQueryString(query).Get("totalAmount");
     dmn.TransactionID = HttpUtility.ParseQueryString(query).Get("TransactionID");
     dmn.DynamicDescriptor = HttpUtility.ParseQueryString(query).Get("dynamicDescriptor");
     dmn.UniqueCC = HttpUtility.ParseQueryString(query).Get("uniqueCC");
     dmn.ItemNumber = HttpUtility.ParseQueryString(query).Get("item_number_1");
     dmn.ItemAmount = HttpUtility.ParseQueryString(query).Get("item_amount_1");
     dmn.ItemQuantity = HttpUtility.ParseQueryString(query).Get("item_quantity_1");
     dmn.IsValid = this.IsChecksumValid(dmn.TotalAmount, dmn.Currency, dmn.ResponseTimeStamp, dmn.PPPTransactionID, dmn.Status, dmn.ProductId, dmn.ResponseChecksum, dmn.AdvanceResponseChecksum);
     return dmn;
 }
Пример #2
0
 /// <summary>
 /// Inserts the g2S DMN.
 /// </summary>
 /// <param name="g2SDMNModel">The invoice model.</param>
 /// <returns>returns int of the inserted row</returns>
 public long InsertG2SDMN(G2SDMNModel g2SDMNModel)
 {
     try
     {
         G2SDMN g2SDMN = this.mapperFactory.GetMapper<G2SDMNModel, G2SDMN>().Map(g2SDMNModel);
         g2SDMN.CreatedOn = DateTime.UtcNow;
         this.g2SDMNRepository.Insert(g2SDMN);
         this.g2SDMNRepository.Commit();
         return g2SDMN.Id;
     }
     catch (Exception ex)
     {
         return 0;
     }
 }
Пример #3
0
        public async Task<IHttpActionResult> DMN()
        {
            G2SDMNModel g2SDMNModel = new G2SDMNModel();
            InvoiceStatus invoiceStatus = InvoiceStatus.Invalid;
            try
            {
                g2SDMNModel = this.FillG2SDMN(Request.RequestUri.Query);
                if (g2SDMNModel.PPPStatus.ToLower() == "OK".ToLower())
                {
                    if (g2SDMNModel.Status.ToLower() == "Approved".ToLower() || g2SDMNModel.Status.ToLower() == "Success".ToLower())
                    {
                        invoiceStatus = InvoiceStatus.Success;
                        this.UpdateInvoice(Convert.ToInt64(g2SDMNModel.InvoiceId), InvoiceStatus.Success);
                    }
                    else if (g2SDMNModel.Status.ToLower() == "Declined".ToLower() || g2SDMNModel.Status.ToLower() == "Error".ToLower())
                    {
                        invoiceStatus = InvoiceStatus.Failure;
                        this.UpdateInvoice(Convert.ToInt64(g2SDMNModel.InvoiceId), InvoiceStatus.Failure);
                    }
                    else if (g2SDMNModel.Status.ToLower() == "Pending".ToLower())
                    {
                        invoiceStatus = InvoiceStatus.Pending;
                        this.UpdateInvoice(Convert.ToInt64(g2SDMNModel.InvoiceId), InvoiceStatus.Pending);
                    }
                }
                else if (g2SDMNModel.PPPStatus.ToLower() == "Fail".ToLower())
                {
                    invoiceStatus = InvoiceStatus.Failure;
                    this.UpdateInvoice(Convert.ToInt64(g2SDMNModel.InvoiceId), InvoiceStatus.Failure);
                }

                try
                {
                    if (invoiceStatus != InvoiceStatus.Invalid)
                    {
                        this.UpdateInvoice(Convert.ToInt64(g2SDMNModel.InvoiceId), invoiceStatus);
                    }
                    else
                    {
                        this.LoggerService.LogException("PaymentController > DMN(Manually Generated): Unrecognized PPPStatus in G2S DMN Request.");
                    }
                }
                catch (Exception ex)
                {
                    this.LoggerService.LogException("PaymentController > DMN(while updating invoice): " + ex.StackTrace);
                }

                this.paymentService.InsertG2SDMN(g2SDMNModel);
            }
            catch (Exception ex)
            {
                this.LoggerService.LogException("PaymentController > DMN(while filling or inserting response): " + ex.StackTrace);
            }

            return this.Ok();
        }