コード例 #1
0
        public void ParseIPN(int orderId, string transId, string status, int storeId, int portalId, string userName, int customerId, string sessionCode)
        {
            var ph = new PayPalHandler();

            try
            {
                var ot     = new OrderDetailsCollection();
                var odinfo = new OrderDetailsInfo();
                var cms    = new CartManageSQLProvider();
                var cf     = new CommonInfo {
                    StoreID = storeId, PortalID = portalId, AddedBy = userName
                };
                // UpdateOrderDetails
                var objad = new AspxOrderDetails();
                var sqlH  = new SQLHandler();
                // use split to split array we already have using "=" as delimiter
                // WcfSession ws = new WcfSession();
                odinfo.OrderID            = orderId;//ws.GetSessionVariable("OrderID");
                odinfo.ResponseReasonText = status;
                odinfo.TransactionID      = transId;
                ot.ObjOrderDetails        = odinfo;
                ot.ObjCommonInfo          = cf;
                odinfo.OrderStatusID      = 8;
                objad.UpdateOrderDetails(ot);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
    public static void ParseIPN(int orderID, string transID, string status, int storeID, int portalID, string userName, int customerID, string sessionCode)
    {
        GoogleCheckOutHandler ph = new GoogleCheckOutHandler();

        try
        {
            OrderDetailsCollection ot     = new OrderDetailsCollection();
            OrderDetailsInfo       odinfo = new OrderDetailsInfo();
            CartManageSQLProvider  cms    = new CartManageSQLProvider();
            CommonInfo             cf     = new CommonInfo();
            cf.StoreID  = storeID;
            cf.PortalID = portalID;
            cf.AddedBy  = userName;
            // UpdateOrderDetails
            AspxOrderDetails objad = new AspxOrderDetails();
            SQLHandler       sqlH  = new SQLHandler();
            // use split to split array we already have using "=" as delimiter
            // WcfSession ws = new WcfSession();
            odinfo.OrderID            = orderID;//ws.GetSessionVariable("OrderID");
            odinfo.ResponseReasonText = status;
            odinfo.TransactionID      = transID;
            ot.ObjOrderDetails        = odinfo;
            ot.ObjCommonInfo          = cf;
            odinfo.OrderStatusID      = 8;
            objad.UpdateOrderDetails(ot);
            // UpdateItemQuantity
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
コード例 #3
0
        public OrderDetailsCollection OrderDetails_LoadAll()
        {
            OrderDetailsCollection coll = new OrderDetailsCollection();

            coll.es.IsLazyLoadDisabled = true;
            coll.LoadAll();
            return(coll);
        }
コード例 #4
0
        public OrderDetailsCollection.OrderDetailsCollectionWCFPacket OrderDetails_LoadAll()
        {
            OrderDetailsCollection coll = new OrderDetailsCollection();

            if (coll.LoadAll())
            {
                return(coll);
            }

            return(null);
        }
コード例 #5
0
        public OrderDetailsCollection OrderDetails_LoadByDynamic(string serializedQuery)
        {
            OrderDetailsQuery query = OrderDetailsQuery.SerializeHelper.FromXml(
                serializedQuery, typeof(OrderDetailsQuery), AllKnownTypes) as OrderDetailsQuery;

            OrderDetailsCollection coll = new OrderDetailsCollection();

            coll.es.IsLazyLoadDisabled = true;
            coll.Load(query);
            return(coll);
        }
コード例 #6
0
        public OrderDetailsCollectionProxyStub OrderDetails_SaveCollection(OrderDetailsCollectionProxyStub collection)
        {
            if (collection != null)
            {
                OrderDetailsCollection c = collection.GetCollection();
                c.Save();
                return(c);
            }

            return(null);
        }
コード例 #7
0
        public OrderDetailsCollectionProxyStub OrderDetails_LoadAll()
        {
            OrderDetailsCollection coll = new OrderDetailsCollection();

            if (coll.LoadAll())
            {
                return(coll);
            }

            return(null);
        }
コード例 #8
0
        public OrderDetailsCollectionProxyStub OrderDetails_QueryForCollection(string serializedQuery)
        {
            OrderDetailsQuery query = OrderDetailsQuery.SerializeHelper.FromXml(
                serializedQuery, typeof(OrderDetailsQuery), AllKnownTypes) as OrderDetailsQuery;

            OrderDetailsCollection coll = new OrderDetailsCollection();

            if (coll.Load(query))
            {
                return(coll);
            }

            return(null);
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: wanddy/EntitySpaces
        static private void CorrelatedSubQuery()
        {
            OrderDetailsQuery oiq = new OrderDetailsQuery("oi");
            ProductsQuery     pq  = new ProductsQuery("p");

            oiq.Select(oiq.OrderID, (oiq.Quantity * oiq.UnitPrice).Sum().As("Total"))
            .Where(oiq.ProductID
                   .In(
                       pq.Select(pq.ProductID).Where(oiq.ProductID == pq.ProductID).Distinct()
                       )
                   )
            .GroupBy(oiq.OrderID);

            OrderDetailsCollection coll = new OrderDetailsCollection();

            if (coll.Load(oiq))
            {
            }
        }
コード例 #10
0
 public static string Parse(string transId, string invoice, string POrderno, int responseCode, int responsereasonCode, string responsetext, int storeID, int portalID, string userName, int customerID, string sessionCode)
 {
     try
     {
         OrderDetailsCollection ot     = new OrderDetailsCollection();
         OrderDetailsInfo       odinfo = new OrderDetailsInfo();
         CartManageSQLProvider  cms    = new CartManageSQLProvider();
         CommonInfo             cf     = new CommonInfo();
         cf.StoreID  = storeID;
         cf.PortalID = portalID;
         cf.AddedBy  = userName;
         // UpdateOrderDetails
         AspxOrderDetails objad = new AspxOrderDetails();
         SQLHandler       sqlH  = new SQLHandler();
         odinfo.OrderID             = int.Parse(HttpContext.Current.Session["OrderID"].ToString());
         odinfo.TransactionID       = odinfo.ResponseCode.ToString(transId);
         odinfo.InvoiceNumber       = Convert.ToString(invoice);
         odinfo.PurchaseOrderNumber = Convert.ToString(POrderno);
         odinfo.ResponseCode        = Convert.ToInt32(responseCode);
         odinfo.ResponseReasonCode  = Convert.ToInt32(responsereasonCode);
         odinfo.ResponseReasonText  = Convert.ToString(responsetext);
         ot.ObjOrderDetails         = odinfo;
         ot.ObjCommonInfo           = cf;
         odinfo.OrderStatusID       = 8;
         objad.UpdateOrderDetails(ot);
         if (HttpContext.Current.Session["OrderCollection"] != null)
         {
             OrderDetailsCollection orderdata2 = new OrderDetailsCollection();
             orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
             objad.UpdateItemQuantity(orderdata2);
         }
         HttpContext.Current.Session.Remove("OrderID");
         // cms.ClearCartAfterPayment(customerID, sessionCode, storeID, portalID);
         return("This transaction has been approved");
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #11
0
ファイル: Program.cs プロジェクト: wanddy/EntitySpaces
        static private void CaseWhenThenEnd()
        {
            OrderDetailsQuery oq = new OrderDetailsQuery();

            oq.Select
            (
                oq.Quantity,
                oq.UnitPrice,
                oq.UnitPrice
                .Case()
                .When(oq.Quantity < 50).Then(oq.UnitPrice)
                .When(oq.Quantity >= 50 && oq.Quantity < 70).Then(oq.UnitPrice * .90)
                .When(oq.Quantity >= 70 && oq.Quantity < 99).Then(oq.UnitPrice * .80)
                .Else(oq.UnitPrice * .70)
                .End().As("Adjusted Unit Price")
            ).OrderBy(oq.Quantity.Descending);

            OrderDetailsCollection coll = new OrderDetailsCollection();

            if (coll.Load(oq))
            {
            }
        }
コード例 #12
0
 public static string ParseForMobile(string transId, OrderInfo orderInfo, string POrderno, int responseCode, int responsereasonCode, string responsetext)
 {
     try
     {
         var ot     = new OrderDetailsCollection();
         var odinfo = new OrderDetailsInfo();
         var cms    = new CartManageSQLProvider();
         var cf     = new CommonInfo
         {
             StoreID = orderInfo.StoreId, PortalID = orderInfo.PortalId, AddedBy = orderInfo.AddedBy
         };
         // UpdateOrderDetails
         var objad = new AspxOrderDetails();
         odinfo.OrderID             = orderInfo.OrderId;
         odinfo.TransactionID       = odinfo.ResponseCode.ToString(transId);
         odinfo.InvoiceNumber       = orderInfo.InvoiceNumber;
         odinfo.PurchaseOrderNumber = Convert.ToString(POrderno);
         odinfo.ResponseCode        = Convert.ToInt32(responseCode);
         odinfo.ResponseReasonCode  = Convert.ToInt32(responsereasonCode);
         odinfo.ResponseReasonText  = Convert.ToString(responsetext);
         ot.ObjOrderDetails         = odinfo;
         ot.ObjCommonInfo           = cf;
         odinfo.OrderStatusID       = 8;
         objad.UpdateOrderDetails(ot);
         AspxCommonInfo aspxCommonObj = new AspxCommonInfo();
         aspxCommonObj.CustomerID  = orderInfo.CustomerId;
         aspxCommonObj.SessionCode = orderInfo.SessionCode;
         aspxCommonObj.StoreID     = orderInfo.StoreId;
         aspxCommonObj.PortalID    = orderInfo.PortalId;
         cms.ClearCartAfterPayment(aspxCommonObj);
         return("This transaction has been approved");
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #13
0
 public static string Parse(string transId, string invoice, string POrderno, int responseCode, int responsereasonCode, string responsetext, AspxCommonInfo aspxCommonObj)
 {
     try
     {
         var ot     = new OrderDetailsCollection();
         var odinfo = new OrderDetailsInfo();
         var cms    = new CartManageSQLProvider();
         var cf     = new CommonInfo {
             StoreID = aspxCommonObj.StoreID, PortalID = aspxCommonObj.PortalID, AddedBy = aspxCommonObj.UserName
         };
         // UpdateOrderDetails
         var objad = new AspxOrderDetails();
         odinfo.OrderID             = int.Parse(HttpContext.Current.Session["OrderID"].ToString());
         odinfo.TransactionID       = odinfo.ResponseCode.ToString(transId);
         odinfo.InvoiceNumber       = Convert.ToString(invoice);
         odinfo.PurchaseOrderNumber = Convert.ToString(POrderno);
         odinfo.ResponseCode        = Convert.ToInt32(responseCode);
         odinfo.ResponseReasonCode  = Convert.ToInt32(responsereasonCode);
         odinfo.ResponseReasonText  = Convert.ToString(responsetext);
         ot.ObjOrderDetails         = odinfo;
         ot.ObjCommonInfo           = cf;
         odinfo.OrderStatusID       = 8;
         objad.UpdateOrderDetails(ot);
         if (HttpContext.Current.Session["OrderCollection"] != null)
         {
             var orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
             objad.UpdateItemQuantity(orderdata2);
         }
         HttpContext.Current.Session.Remove("OrderID");
         cms.ClearCartAfterPayment(aspxCommonObj);
         return("This transaction has been approved");
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #14
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            try
            {
                SageFrameConfig sfConfig = new SageFrameConfig();
                IsUseFriendlyUrls = sfConfig.GetSettingBollByKey(SageFrameSettingKeys.UseFriendlyUrls);
                string sageRedirectPath = string.Empty;
                if (IsUseFriendlyUrls)
                {
                    if (GetPortalID > 1)
                    {
                        sageRedirectPath = ResolveUrl("~/portal/" + GetPortalSEOName + "/" + sfConfig.GetSettingsByKey(SageFrameSettingKeys.PortalDefaultPage) + ".aspx");
                        addressPath      = HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + "/portal/" + GetPortalSEOName + "/";
                    }
                    else
                    {
                        sageRedirectPath = ResolveUrl("~/" + sfConfig.GetSettingsByKey(SageFrameSettingKeys.PortalDefaultPage) + ".aspx");
                        addressPath      = HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + "/";
                    }
                }
                else
                {
                    sageRedirectPath = ResolveUrl("{~/Default.aspx?ptlid=" + GetPortalID + "&ptSEO=" + GetPortalSEOName + "&pgnm=" + sfConfig.GetSettingsByKey(SageFrameSettingKeys.PortalDefaultPage));
                }

                Image imgProgress = (Image)UpdateProgress1.FindControl("imgPrgress");
                if (imgProgress != null)
                {
                    imgProgress.ImageUrl = GetTemplateImageUrl("ajax-loader.gif", true);
                }
                hlnkHomePage.NavigateUrl = sageRedirectPath;


                OrderDetailsCollection orderdata     = new OrderDetailsCollection();
                AspxCommonInfo         aspxCommonObj = new AspxCommonInfo();
                aspxCommonObj.CustomerID  = GetCustomerID;
                aspxCommonObj.SessionCode = HttpContext.Current.Session.SessionID;
                aspxCommonObj.StoreID     = GetStoreID;
                aspxCommonObj.PortalID    = GetPortalID;
                aspxCommonObj.CultureName = GetCurrentCultureName;
                aspxCommonObj.UserName    = GetUsername;

                if (Session["OrderID"] != null)
                {
                    orderID = int.Parse(Session["OrderID"].ToString());
                    int    storeID    = int.Parse(GetStoreID.ToString());
                    int    portalID   = int.Parse(GetPortalID.ToString());
                    string userName   = GetUsername.ToString();
                    int    customerID = int.Parse(GetCustomerID.ToString());
                    transID = GetTransactionDetailById(int.Parse(Session["OrderID"].ToString()));
                    if (HttpContext.Current.Session["OrderCollection"] != null)
                    {
                        orderdata = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                        AspxGiftCardController.IssueGiftCard(orderdata.LstOrderItemsInfo, false, aspxCommonObj);
                        if (orderdata.GiftCardDetail != null && HttpContext.Current.Session["UsedGiftCard"] != null)
                        {   //updating giftcard used in chekout
                            AspxGiftCardController.UpdateGiftCardUsage(orderdata.GiftCardDetail, orderdata.ObjCommonInfo.StoreID,
                                                                       orderdata.ObjCommonInfo.PortalID, orderdata.ObjOrderDetails.OrderID, orderdata.ObjCommonInfo.AddedBy,
                                                                       orderdata.ObjCommonInfo.CultureName);
                            HttpContext.Current.Session.Remove("UsedGiftCard");
                        }
                        invoice = orderdata.ObjOrderDetails.InvoiceNumber;
                        orderdata.ObjOrderDetails.OrderStatus = "Successful";
                        EmailTemplate.SendEmailForOrder(portalID, orderdata, addressPath, TemplateName, transID);
                    }

                    lblTransaction.Text   = transID;
                    lblPaymentMethod.Text = "GoogleCheckOut";
                    lblDateTime.Text      = DateTime.Now.ToString("dddd, dd MMMM yyyy ");
                    lblInvoice.Text       = invoice;
                    ClearAllSession();
                }
                else
                {
                    Response.Redirect(sageRedirectPath, false);
                }
                IncludeLanguageJS();
            }
            catch (Exception ex)
            {
                ProcessException(ex);
            }
        }
    }
コード例 #15
0
    public static PayPalHandler ParseAfterIPN(string postData, int storeID, int portalID, string userName, int customerID, string sessionCode, string TemplateName, string addressPath)
    {
        String        sKey, sValue;
        PayPalHandler ph      = new PayPalHandler();
        string        transID = string.Empty;

        try
        {
            String[] StringArray = postData.Split('\n');

            /*
             * loop is set to start at 1 rather than 0 because first
             * string in array will be single word SUCCESS or FAIL
             * Only used to verify post data
             */
            OrderDetailsCollection ot     = new OrderDetailsCollection();
            OrderDetailsInfo       odinfo = new OrderDetailsInfo();
            CartManageSQLProvider  cms    = new CartManageSQLProvider();
            CommonInfo             cf     = new CommonInfo();
            cf.StoreID  = storeID;
            cf.PortalID = portalID;
            cf.AddedBy  = userName;
            AspxOrderDetails objad = new AspxOrderDetails();
            SQLHandler       sqlH  = new SQLHandler();
            odinfo.OrderID = int.Parse(HttpContext.Current.Session["OrderID"].ToString());
            int i;
            for (i = 1; i < StringArray.Length - 1; i++)
            {
                String[] StringArray1 = StringArray[i].Split('=');

                sKey   = StringArray1[0];
                sValue = HttpUtility.UrlDecode(StringArray1[1]);

                switch (sKey)
                {
                case "payment_status":
                    odinfo.ResponseReasonText = Convert.ToString(sValue);
                    break;

                case "mc_fee":
                    break;

                case "payer_email":
                    break;

                case "Tx Token":
                    break;

                case "txn_id":
                    odinfo.TransactionID = Convert.ToString(sValue);
                    transID = Convert.ToString(sValue);
                    break;
                }
            }

            ot.ObjOrderDetails = odinfo;
            ot.ObjCommonInfo   = cf;
            HttpContext.Current.Session.Remove("OrderID");
            HttpContext.Current.Session.Remove("OrderCollection");

            return(ph);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
コード例 #16
0
    public void LoadSetting()
    {
        PayPalWCFService         pw = new PayPalWCFService();
        List <PayPalSettingInfo> sf;
        OrderDetailsCollection   orderdata2 = new OrderDetailsCollection();

        orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
        string postURL = string.Empty;

        try
        {
            sf = pw.GetAllPayPalSetting(int.Parse(Session["GateWay"].ToString()), storeID, portalID);

            if (bool.Parse(sf[0].IsTestPaypal.ToString()))
            {
                postURL = "https://www.sandbox.paypal.com/us/cgi-bin/webscr";
                HttpContext.Current.Session["IsTestPayPal"] = true;
            }
            else
            {
                postURL = "https://www.paypal.com/us/cgi-bin/webscr";
                HttpContext.Current.Session["IsTestPayPal"] = false;
            }
            string ids = Session["OrderID"].ToString() + "#" + storeID + "#" + portalID + "#" + userName + "#" + customerID + "#" + sessionCode + "#" + Session["IsTestPayPal"].ToString() + "#" + Session["GateWay"].ToString();


            StringBuilder url = new StringBuilder();

            url.Append(postURL + "?cmd=_cart&business=" +
                       HttpUtility.UrlEncode(sf[0].BusinessAccount.ToString()));

            List <CartInfoforPaypal> cd;

            cd = pw.GetCartDetails(storeID, portalID, customerID, userName, GetCurrentCultureName, sessionCode);
            int nCount = 1;


            foreach (CartInfoforPaypal oItem in cd)
            {
                url.AppendFormat("&item_name_" + nCount.ToString() + "={0}", HttpUtility.UrlEncode(oItem.ItemName.ToString()));
                url.AppendFormat("&amount_" + nCount.ToString() + "={0}", HttpUtility.UrlEncode(oItem.Price.ToString()));
                url.AppendFormat("&quantity_" + nCount.ToString() + "={0}", HttpUtility.UrlEncode(oItem.Quantity.ToString()));
                nCount++;
            }
            nCount--;
            url.AppendFormat("&num_cart_items={0}", HttpUtility.UrlEncode(nCount.ToString()));
            url.AppendFormat("&discount_amount_cart={0}", HttpUtility.UrlEncode(Session["DiscountAll"].ToString()));
            url.AppendFormat("&tax_cart={0}", HttpUtility.UrlEncode(Session["TaxAll"].ToString()));
            url.AppendFormat("&no_shipping={0}", HttpUtility.UrlEncode("1"));
            url.AppendFormat("&shipping_1={0}", HttpUtility.UrlEncode(Session["ShippingCostAll"].ToString()));

            if (sf[0].ReturnUrl.ToString() != null && sf[0].ReturnUrl.ToString() != "")
            {
                url.AppendFormat("&return={0}", HttpUtility.UrlEncode(sf[0].ReturnUrl.ToString()));
            }
            if (sf[0].VerificationUrl != null && sf[0].VerificationUrl != "")
            {
                url.AppendFormat("&notify_url={0}", HttpUtility.UrlEncode(sf[0].VerificationUrl));
            }
            if (sf[0].CancelUrl != null && sf[0].CancelUrl != "")
            {
                url.AppendFormat("&cancel_return={0}", HttpUtility.UrlEncode(sf[0].CancelUrl));
            }

            url.AppendFormat("&upload={0}", HttpUtility.UrlEncode("1"));
            url.AppendFormat("&rm={0}", HttpUtility.UrlEncode("1"));

            url.AppendFormat("&custom={0}", HttpUtility.UrlEncode(ids));

            Response.Redirect(url.ToString(), false);
        }
        catch (Exception ex)
        {
            lblnotity.Text    = "Something goes wrong, hit refresh or go back to checkout";
            clickhere.Visible = false;
            ProcessException(ex);
        }
    }
コード例 #17
0
    public void LoadSetting()
    {
        GoogleCheckOutWCFService         pw = new GoogleCheckOutWCFService();
        List <GoogleCheckOutSettingInfo> sf;
        OrderDetailsCollection           orderdata2 = new OrderDetailsCollection();

        orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
        string itemidsWithVar = "";

        foreach (var item in orderdata2.LstOrderItemsInfo)
        {
            itemidsWithVar += item.ItemID + "&" + item.Quantity + "&" + orderdata2.ObjOrderDetails.OrderID + "&" + item.Variants + ",";
        }
        string country   = orderdata2.ObjShippingAddressInfo.Country.ToString();
        string state     = orderdata2.ObjShippingAddressInfo.State.ToString();
        string zip       = orderdata2.ObjShippingAddressInfo.Zip.ToString();
        int    addressID = Convert.ToInt32(orderdata2.ObjShippingAddressInfo.AddressID);

        try
        {
            sf = pw.GetAllGoogleCheckOutSetting(int.Parse(Session["GateWay"].ToString()), storeID, portalID);

            double  amountTotal          = double.Parse(Session["GrandTotalAll"].ToString()) * rate;
            decimal grandTotal           = decimal.Parse(amountTotal.ToString(CultureInfo.InvariantCulture));
            decimal totalTaxableAmount   = 0;
            decimal subtotalAmount       = 0;
            decimal taxSubTotal          = 0;
            decimal shipping             = Convert.ToDecimal(Convert.ToDouble(Session["ShippingCostAll"].ToString()) * rate);
            decimal shippingCost         = decimal.Parse(shipping.ToString(CultureInfo.InvariantCulture));
            decimal discountAmount       = 0;
            decimal couponDiscountAmount = 0;
            decimal rewardDiscountAmount = 0;

            if (sf[0].GoogleEnvironmentType == "Sandbox")
            {
                CheckoutShoppingCartRequest gCartRequest = new CheckoutShoppingCartRequest(sf[0].GoogleMerchantID, sf[0].GoogleMerchantKey, GCheckout.EnvironmentType.Sandbox, sf[0].GoogleCurrencyType, 30, false);
                HttpContext.Current.Session["EnvironmentType"] = "Sandbox";

                List <CartInfoforGoogleCheckOut> cd;
                cd = pw.GetCartDetailsForPG(storeID, portalID, customerID, userName, GetCurrentCultureName, sessionCode, country, state, zip, addressID);

                int nCount = 1;
                foreach (CartInfoforGoogleCheckOut oItem in cd)
                {
                    string  itemName     = oItem.ItemName.ToString();
                    string  description  = oItem.ShortDescription.ToString();
                    int     qty          = Convert.ToInt32(oItem.Quantity.ToString());
                    decimal TaxRateValue = Convert.ToDecimal(Convert.ToDouble(oItem.TaxRateValue.ToString()) * rate) / qty;
                    decimal amount       = Convert.ToDecimal(Convert.ToDouble(oItem.Price.ToString()) * rate);
                    decimal subTotal     = amount;// +TaxRateValue;

                    gCartRequest.AddItem(itemName, description, subTotal, qty);
                    nCount++;
                }
                nCount--;

                //Send Discount Amount
                if (orderdata2.ObjOrderDetails.DiscountAmount != 0)
                {
                    string itemName    = "Cart Discount Amount";
                    string description = "Discount Applied on Cart Items";
                    int    qty         = 1;
                    discountAmount = 0;
                    decimal discount = Convert.ToDecimal(Convert.ToDouble(orderdata2.ObjOrderDetails.DiscountAmount) * rate);
                    discountAmount = decimal.Parse(discount.ToString(CultureInfo.InvariantCulture));
                    gCartRequest.AddItem(itemName, description, -discountAmount, qty);
                }
                //Send Coupon Amount
                if (orderdata2.ObjOrderDetails.CouponDiscountAmount != 0)
                {
                    string itemName    = "Coupon Discount Amount";
                    string description = "Coupon Discount Applied on Cart Items";
                    int    qty         = 1;
                    couponDiscountAmount = 0;
                    decimal couponDiscount = Convert.ToDecimal(Convert.ToDouble(orderdata2.ObjOrderDetails.CouponDiscountAmount) * rate);
                    couponDiscountAmount = decimal.Parse(couponDiscount.ToString(CultureInfo.InvariantCulture));
                    gCartRequest.AddItem(itemName, description, -couponDiscountAmount, qty);
                }
                //Send Reward Discount Amount
                if (orderdata2.ObjOrderDetails.RewardDiscountAmount != 0)
                {
                    string itemName    = "Reward Points Discount Amount";
                    string description = "Reward Points Discount Applied on Cart Items";
                    int    qty         = 1;
                    rewardDiscountAmount = 0;
                    decimal rewardDiscount = Convert.ToDecimal(Convert.ToDouble(orderdata2.ObjOrderDetails.RewardDiscountAmount) * rate);
                    rewardDiscountAmount = decimal.Parse(rewardDiscount.ToString(CultureInfo.InvariantCulture));
                    gCartRequest.AddItem(itemName, description, -rewardDiscountAmount, qty);
                }
                //tax
                if (orderdata2.ObjOrderDetails.TaxTotal != 0)
                {
                    decimal tax = Convert.ToDecimal(Convert.ToDouble(orderdata2.ObjOrderDetails.TaxTotal) * rate);
                    taxSubTotal = decimal.Parse(tax.ToString(CultureInfo.InvariantCulture));
                }
                subtotalAmount     = grandTotal - shippingCost - taxSubTotal + discountAmount + couponDiscountAmount;
                totalTaxableAmount = subtotalAmount - discountAmount - couponDiscountAmount;
                double taxp   = Convert.ToDouble((taxSubTotal * 100) / totalTaxableAmount);
                double taxPer = taxp / 100;

                gCartRequest.AddCountryTaxRule(USAreas.ALL, taxPer, false);

                //Shipping Cost
                string shippingMethod;
                if (HttpContext.Current.Session["ShippingMethodName"] != null)
                {
                    shippingMethod = HttpContext.Current.Session["ShippingMethodName"].ToString();
                }
                else
                {
                    shippingMethod = "Default Shipping";
                }
                //shippingMethod = "Default Shipping";
                //decimal shippingcost = Convert.ToDecimal(Convert.ToDouble(Session["ShippingCostAll"].ToString()) * rate);
                gCartRequest.AddFlatRateShippingMethod(shippingMethod, shippingCost);

                //Create extra data to pass
                XmlDocument tempDoc = new System.Xml.XmlDocument();
                tempDoc.LoadXml("<root />");

                XmlNode orderIdNode = tempDoc.CreateElement("OrderID");
                orderIdNode.InnerText = Session["OrderID"].ToString();
                gCartRequest.AddMerchantPrivateDataNode(orderIdNode);

                XmlNode userIdNode = tempDoc.CreateElement("userName");
                userIdNode.InnerText = userName;
                gCartRequest.AddMerchantPrivateDataNode(userIdNode);

                XmlNode amountNode = tempDoc.CreateElement("amount");
                amountNode.InnerText = (double.Parse(Session["GrandTotalAll"].ToString()) * rate).ToString();
                gCartRequest.AddMerchantPrivateDataNode(amountNode);

                XmlNode currencyNode = tempDoc.CreateElement("selectedCurrency");
                currencyNode.InnerText = SelectedCurrency;
                gCartRequest.AddMerchantPrivateDataNode(currencyNode);


                XmlNode portalIDNode = tempDoc.CreateElement("portalID");
                portalIDNode.InnerText = portalID.ToString();
                gCartRequest.AddMerchantPrivateDataNode(portalIDNode);

                XmlNode customerIDNode = tempDoc.CreateElement("customerID");
                customerIDNode.InnerText = customerID.ToString();
                gCartRequest.AddMerchantPrivateDataNode(customerIDNode);

                XmlNode itemIdsNode = tempDoc.CreateElement("itemIds");
                itemIdsNode.InnerText = itemidsWithVar;
                gCartRequest.AddMerchantPrivateDataNode(itemIdsNode);

                XmlNode storeIDNode = tempDoc.CreateElement("storeID");
                storeIDNode.InnerText = storeID.ToString();
                gCartRequest.AddMerchantPrivateDataNode(storeIDNode);

                XmlNode couponCodeNode = tempDoc.CreateElement("couponCode");
                couponCodeNode.InnerText = couponCode;
                gCartRequest.AddMerchantPrivateDataNode(couponCodeNode);

                XmlNode sessionCodeNode = tempDoc.CreateElement("sessionCode");
                sessionCodeNode.InnerText = sessionCode;
                gCartRequest.AddMerchantPrivateDataNode(sessionCodeNode);

                XmlNode pgIDNode = tempDoc.CreateElement("pgID");
                pgIDNode.InnerText = Session["GateWay"].ToString();
                gCartRequest.AddMerchantPrivateDataNode(pgIDNode);

                XmlNode MerchantIDNode = tempDoc.CreateElement("MerchantID");
                MerchantIDNode.InnerText = sf[0].GoogleMerchantID;
                gCartRequest.AddMerchantPrivateDataNode(MerchantIDNode);

                XmlNode MerchantKeyNode = tempDoc.CreateElement("MerchantKey");
                MerchantKeyNode.InnerText = sf[0].GoogleMerchantKey;
                gCartRequest.AddMerchantPrivateDataNode(MerchantKeyNode);

                //Get response
                GCheckoutResponse response = gCartRequest.Send();
                // Post the request for Google checkout

                if (response.IsGood)
                {
                    Response.Redirect(response.RedirectUrl, false);
                }
            }


            if (sf[0].GoogleEnvironmentType == "Production")
            {
                CheckoutShoppingCartRequest gCartRequest = new CheckoutShoppingCartRequest(sf[0].GoogleMerchantID, sf[0].GoogleMerchantKey, GCheckout.EnvironmentType.Production, sf[0].GoogleCurrencyType, 30, false);
                HttpContext.Current.Session["EnvironmentType"] = "Production";

                List <CartInfoforGoogleCheckOut> cd;
                cd = pw.GetCartDetailsForPG(storeID, portalID, customerID, userName, GetCurrentCultureName, sessionCode, country, state, zip, addressID);

                int nCount = 1;
                foreach (CartInfoforGoogleCheckOut oItem in cd)
                {
                    string  itemName     = oItem.ItemName.ToString();
                    string  description  = oItem.ShortDescription.ToString();
                    int     qty          = Convert.ToInt32(oItem.Quantity.ToString());
                    decimal TaxRateValue = Convert.ToDecimal(Convert.ToDouble(oItem.TaxRateValue.ToString()) * rate) / qty;
                    decimal amount       = Convert.ToDecimal(Convert.ToDouble(oItem.Price.ToString()) * rate);
                    decimal subTotal     = amount + TaxRateValue;

                    gCartRequest.AddItem(itemName, description, subTotal, qty);
                    nCount++;
                }
                nCount--;

                //Send Discount Amount
                if (orderdata2.ObjOrderDetails.DiscountAmount != 0)
                {
                    string itemName    = "Cart Discount Amount";
                    string description = "Discount Applied on Cart Items";
                    int    qty         = 1;
                    discountAmount = 0;
                    decimal discount = Convert.ToDecimal(Convert.ToDouble(orderdata2.ObjOrderDetails.DiscountAmount) * rate);
                    discountAmount = decimal.Parse(discount.ToString(CultureInfo.InvariantCulture));
                    gCartRequest.AddItem(itemName, description, -discountAmount, qty);
                }
                //Send Coupon Amount
                if (orderdata2.ObjOrderDetails.CouponDiscountAmount != 0)
                {
                    string itemName    = "Coupon Discount Amount";
                    string description = "Coupon Discount Applied on Cart Items";
                    int    qty         = 1;
                    couponDiscountAmount = 0;
                    decimal couponDiscount = Convert.ToDecimal(Convert.ToDouble(orderdata2.ObjOrderDetails.CouponDiscountAmount) * rate);
                    couponDiscountAmount = decimal.Parse(couponDiscount.ToString(CultureInfo.InvariantCulture));
                    gCartRequest.AddItem(itemName, description, -couponDiscountAmount, qty);
                }
                //Send Reward Discount Amount
                if (orderdata2.ObjOrderDetails.RewardDiscountAmount != 0)
                {
                    string itemName    = "Reward Points Discount Amount";
                    string description = "Reward Points Discount Applied on Cart Items";
                    int    qty         = 1;
                    rewardDiscountAmount = 0;
                    decimal rewardDiscount = Convert.ToDecimal(Convert.ToDouble(orderdata2.ObjOrderDetails.RewardDiscountAmount) * rate);
                    rewardDiscountAmount = decimal.Parse(rewardDiscount.ToString(CultureInfo.InvariantCulture));
                    gCartRequest.AddItem(itemName, description, -rewardDiscountAmount, qty);
                }
                //tax
                if (orderdata2.ObjOrderDetails.TaxTotal != 0)
                {
                    decimal tax = Convert.ToDecimal(Convert.ToDouble(orderdata2.ObjOrderDetails.TaxTotal) * rate);
                    taxSubTotal = decimal.Parse(tax.ToString(CultureInfo.InvariantCulture));
                }
                subtotalAmount     = grandTotal - shippingCost - taxSubTotal + discountAmount + couponDiscountAmount;
                totalTaxableAmount = subtotalAmount - discountAmount - couponDiscountAmount;
                double taxp   = Convert.ToDouble((taxSubTotal * 100) / totalTaxableAmount);
                double taxPer = taxp / 100;
                gCartRequest.AddCountryTaxRule(USAreas.ALL, taxPer, false);

                //Shipping Cost
                string shippingMethod;
                if (HttpContext.Current.Session["ShippingMethodName"] != null)
                {
                    shippingMethod = HttpContext.Current.Session["ShippingMethodName"].ToString();
                }
                else
                {
                    shippingMethod = "Default Shipping";
                }
                //shippingMethod = "Default Shipping";
                //decimal shippingcost = Convert.ToDecimal(Convert.ToDouble(Session["ShippingCostAll"].ToString()) * rate);
                gCartRequest.AddFlatRateShippingMethod(shippingMethod, shippingCost);


                //Create extra data to pass
                XmlDocument tempDoc = new System.Xml.XmlDocument();
                tempDoc.LoadXml("<root />");

                XmlNode orderIdNode = tempDoc.CreateElement("OrderID");
                orderIdNode.InnerText = Session["OrderID"].ToString();
                gCartRequest.AddMerchantPrivateDataNode(orderIdNode);

                XmlNode userIdNode = tempDoc.CreateElement("userName");
                userIdNode.InnerText = userName;
                gCartRequest.AddMerchantPrivateDataNode(userIdNode);

                XmlNode amountNode = tempDoc.CreateElement("amount");
                amountNode.InnerText = (double.Parse(Session["GrandTotalAll"].ToString()) * rate).ToString();
                gCartRequest.AddMerchantPrivateDataNode(amountNode);

                XmlNode currencyNode = tempDoc.CreateElement("selectedCurrency");
                currencyNode.InnerText = SelectedCurrency;
                gCartRequest.AddMerchantPrivateDataNode(currencyNode);

                XmlNode portalIDNode = tempDoc.CreateElement("portalID");
                portalIDNode.InnerText = portalID.ToString();
                gCartRequest.AddMerchantPrivateDataNode(portalIDNode);

                XmlNode customerIDNode = tempDoc.CreateElement("customerID");
                customerIDNode.InnerText = customerID.ToString();
                gCartRequest.AddMerchantPrivateDataNode(customerIDNode);

                XmlNode itemIdsNode = tempDoc.CreateElement("itemIds");
                itemIdsNode.InnerText = itemidsWithVar;
                gCartRequest.AddMerchantPrivateDataNode(itemIdsNode);

                XmlNode storeIDNode = tempDoc.CreateElement("storeID");
                storeIDNode.InnerText = storeID.ToString();
                gCartRequest.AddMerchantPrivateDataNode(storeIDNode);

                XmlNode couponCodeNode = tempDoc.CreateElement("couponCode");
                couponCodeNode.InnerText = couponCode;
                gCartRequest.AddMerchantPrivateDataNode(couponCodeNode);

                XmlNode sessionCodeNode = tempDoc.CreateElement("sessionCode");
                sessionCodeNode.InnerText = sessionCode;
                gCartRequest.AddMerchantPrivateDataNode(sessionCodeNode);

                XmlNode pgIDNode = tempDoc.CreateElement("pgID");
                pgIDNode.InnerText = Session["GateWay"].ToString();
                gCartRequest.AddMerchantPrivateDataNode(pgIDNode);

                XmlNode MerchantIDNode = tempDoc.CreateElement("MerchantID");
                MerchantIDNode.InnerText = sf[0].GoogleMerchantID;
                gCartRequest.AddMerchantPrivateDataNode(MerchantIDNode);

                XmlNode MerchantKeyNode = tempDoc.CreateElement("MerchantKey");
                MerchantKeyNode.InnerText = sf[0].GoogleMerchantKey;
                gCartRequest.AddMerchantPrivateDataNode(MerchantKeyNode);

                //Get response
                GCheckoutResponse response = gCartRequest.Send();
                // Post the request for Google checkout

                if (response.IsGood)
                {
                    Response.Redirect(response.RedirectUrl, false);
                }
            }
        }
        catch (Exception ex)
        {
            lblnotity.Text    = "Something goes wrong, hit refresh or go back to checkout";
            clickhere.Visible = false;
            ProcessException(ex);
        }
    }
コード例 #18
0
        public void ParseAfterIPNMobile(OrderInfo orderInfo, string couponUsage, List <OrderItem> itemsInfo, string postData, UserAddressInfo billingAddress, UserAddressInfo shippingAddress, string templateName, string addressPath)
        {
            string transId = string.Empty;

            try
            {
                String[] stringArray = postData.Split('\n');
                var      ot          = new OrderDetailsCollection();
                var      odinfo      = new OrderDetailsInfo();
                var      cms         = new CartManageSQLProvider();
                var      cf          = new CommonInfo
                {
                    StoreID = orderInfo.StoreId, PortalID = orderInfo.PortalId, AddedBy = orderInfo.AddedBy
                };
                // UpdateOrderDetails
                var objad = new AspxOrderDetails();
                var sqlH  = new SQLHandler();
                // use split to split array we already have using "=" as delimiter

                int i;
                for (i = 1; i < stringArray.Length - 1; i++)
                {
                    String[] stringArray1 = stringArray[i].Split('=');

                    String sKey   = stringArray1[0];
                    String sValue = HttpUtility.UrlDecode(stringArray1[1]);

                    // set string vars to hold variable names using a switch
                    switch (sKey)
                    {
                    case "payment_status":
                        odinfo.ResponseReasonText = Convert.ToString(sValue);
                        break;

                    case "mc_fee":
                        // ph.PaymentFee = Convert.ToDouble(sValue);
                        break;

                    case "payer_email":
                        // ph.PayerEmail = Convert.ToString(sValue);
                        break;

                    case "Tx Token":
                        // ph.TxToken = Convert.ToString(sValue);
                        break;

                    case "txn_id":
                        odinfo.TransactionID = Convert.ToString(sValue);
                        transId = Convert.ToString(sValue);
                        break;
                    }
                }

                ot.ObjCommonInfo = cf;
                //odinfo.OrderStatusID = 8; var orderInfo = (OrderInfo) HttpContext.Current.Session["OrderCollection"];

                UpdateItemQuantityAndCoupon(orderInfo, itemsInfo, couponUsage, orderInfo.StoreId, orderInfo.PortalId,
                                            orderInfo.AddedBy);
                AspxCommonInfo aspxCommonObj = new AspxCommonInfo();
                aspxCommonObj.CustomerID  = orderInfo.CustomerId;
                aspxCommonObj.SessionCode = orderInfo.SessionCode;
                aspxCommonObj.StoreID     = orderInfo.StoreId;
                aspxCommonObj.PortalID    = orderInfo.PortalId;
                cms.ClearCartAfterPayment(aspxCommonObj);
                EmailTemplate.SendEmailForOrderMobile(orderInfo, billingAddress, shippingAddress, addressPath,
                                                      templateName, transId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #19
0
    public string SendPaymentInfoAIM(OrderDetailsCollection OrderDetail, string TemplateName, string addressPath)
    {
        WebClient objRequest = new WebClient();

        System.Collections.Specialized.NameValueCollection objInf = new System.Collections.Specialized.NameValueCollection(30);

        string strError;

        //OrderDetail.ObjOrderDetails.CustomerID = int.Parse(Crypto.GenerateCustomerID());
        OrderDetail.ObjOrderDetails.InvoiceNumber       = Crypto.GenerateInvoiceNumber();
        OrderDetail.ObjOrderDetails.PurchaseOrderNumber = Crypto.GeneratePurchaseOrderNumber();

        //merchant generated field
        objInf.Add("x_version", OrderDetail.ObjOrderDetails.Version);
        objInf.Add("x_delim_data", OrderDetail.ObjOrderDetails.DelimData);
        objInf.Add("x_login", OrderDetail.ObjOrderDetails.APILogin);
        objInf.Add("x_tran_key", OrderDetail.ObjOrderDetails.TransactionKey);
        objInf.Add("x_relay_response", OrderDetail.ObjOrderDetails.RelayResponse);
        objInf.Add("x_delim_char", OrderDetail.ObjOrderDetails.DelimChar);
        objInf.Add("x_encap_char", OrderDetail.ObjOrderDetails.EncapeChar);
        objInf.Add("x_invoice_num", OrderDetail.ObjOrderDetails.InvoiceNumber);
        objInf.Add("x_cust_id", OrderDetail.ObjOrderDetails.CustomerID.ToString());
        objInf.Add("x_po_num", OrderDetail.ObjOrderDetails.PurchaseOrderNumber);
        //for (int i = 0; i < arr; i++)
        //{

        //}

        // Billing Address
        objInf.Add("x_first_name", OrderDetail.ObjBillingAddressInfo.FirstName);
        objInf.Add("x_last_name", OrderDetail.ObjBillingAddressInfo.LastName);
        objInf.Add("x_company", OrderDetail.ObjBillingAddressInfo.CompanyName);
        objInf.Add("x_email", OrderDetail.ObjBillingAddressInfo.EmailAddress);
        objInf.Add("x_address", OrderDetail.ObjBillingAddressInfo.Address);
        objInf.Add("x_city", OrderDetail.ObjBillingAddressInfo.City);
        objInf.Add("x_state", OrderDetail.ObjBillingAddressInfo.State);
        objInf.Add("x_zip", OrderDetail.ObjBillingAddressInfo.Zip);
        objInf.Add("x_country", OrderDetail.ObjBillingAddressInfo.Country);
        objInf.Add("x_phone", OrderDetail.ObjBillingAddressInfo.Phone);
        objInf.Add("x_fax", OrderDetail.ObjBillingAddressInfo.Fax);
        objInf.Add("x_email_customer", OrderDetail.ObjOrderDetails.IsEmailCustomer);

        if (OrderDetail.ObjOrderDetails.IsMultipleCheckOut == false)
        {
            //shipping address
            objInf.Add("x_ship_to_first_name", OrderDetail.ObjShippingAddressInfo.FirstName);
            objInf.Add("x_ship_to_last_name", OrderDetail.ObjShippingAddressInfo.LastName);
            objInf.Add("x_ship_to_company", OrderDetail.ObjShippingAddressInfo.CompanyName);
            objInf.Add("x_ship_to_address", OrderDetail.ObjShippingAddressInfo.Address);
            objInf.Add("x_ship_to_city", OrderDetail.ObjShippingAddressInfo.City);
            objInf.Add("x_ship_to_state", OrderDetail.ObjShippingAddressInfo.State);
            objInf.Add("x_ship_to_zip", OrderDetail.ObjShippingAddressInfo.Zip);
            objInf.Add("x_ship_to_country", OrderDetail.ObjShippingAddressInfo.Country);
        }
        // Card Details
        objInf.Add("x_card_num", OrderDetail.ObjPaymentInfo.CardNumber);
        objInf.Add("x_card_type", OrderDetail.ObjPaymentInfo.CardType);
        objInf.Add("x_exp_date", OrderDetail.ObjPaymentInfo.ExpireDate);
        if (OrderDetail.ObjPaymentInfo.PaymentMethodCode == "CC")
        {
            // Authorization code of the card (CCV)
            objInf.Add("x_card_code", OrderDetail.ObjPaymentInfo.CardCode.ToString());
            objInf.Add("x_method", OrderDetail.ObjPaymentInfo.PaymentMethodCode);
            objInf.Add("x_type", OrderDetail.ObjPaymentInfo.TransactionType);
            string amount = Regex.Replace(OrderDetail.ObjOrderDetails.GrandTotal.ToString("0.00"), @"[A-Z]", String.Empty);
            objInf.Add("x_amount", amount);
            objInf.Add("x_description", OrderDetail.ObjOrderDetails.Remarks);
            objInf.Add("x_test_request", OrderDetail.ObjOrderDetails.IsTest);
        }
        else
        {
            //bank
            objInf.Add("x_bank_aba_code", OrderDetail.ObjPaymentInfo.RoutingNumber);
            objInf.Add("x_bank_acct_num", OrderDetail.ObjPaymentInfo.AccountNumber);
            objInf.Add("x_bank_acct_type", OrderDetail.ObjPaymentInfo.AccountType);
            objInf.Add("x_bank_name", OrderDetail.ObjPaymentInfo.BankName);
            objInf.Add("x_bank_acct_name", OrderDetail.ObjPaymentInfo.AccountHolderName);
            objInf.Add("x_echeck_type", OrderDetail.ObjPaymentInfo.ChequeType);
            objInf.Add("x_bank_check_number", OrderDetail.ObjPaymentInfo.ChequeNumber);
        }

        // Currency setting. Check the guide for other supported currencies
        objInf.Add("x_currency_code", OrderDetail.ObjOrderDetails.CurrencyCode);
        objRequest.BaseAddress = "https://test.authorize.net/gateway/transact.dll";

        try
        {
            // POST request
            byte[]   objRetBytes;
            string[] objRetVals;

            objRetBytes =
                objRequest.UploadValues(objRequest.BaseAddress, "POST", objInf);
            objRetVals =
                System.Text.Encoding.ASCII.GetString(objRetBytes).Split(",".ToCharArray());

            // Process Return Values
            OrderDetail.ObjOrderDetails.ResponseCode       = int.Parse(objRetVals[0].Trim(char.Parse("|")));
            OrderDetail.ObjOrderDetails.ResponseReasonCode = int.Parse(objRetVals[2].Trim(char.Parse("|")));
            if (objRetVals[0].Trim(char.Parse("|")) == "1")
            {
                // Returned Authorisation Code
                //response.AuthorizationCode = objRetVals[4].Trim(char.Parse("|"));
                // Returned Transaction ID
                OrderDetail.ObjOrderDetails.TransactionID = Convert.ToString(objRetVals[6].Trim(char.Parse("|")));
                strError = "Transaction completed successfully.";
                // AspxCommerceWebService asws = new AspxCommerceWebService();
                AspxCoreController asws = new AspxCoreController();
                OrderDetail.ObjOrderDetails.OrderStatusID = 8;
                OrderDetail.ObjOrderDetails.TransactionID = Convert.ToString(objRetVals[6].Trim(char.Parse("|")));
                asws.AddOrderDetails(OrderDetail);
                CartManageSQLProvider cms           = new CartManageSQLProvider();
                AspxCommonInfo        aspxCommonObj = new AspxCommonInfo();
                aspxCommonObj.CustomerID  = OrderDetail.ObjOrderDetails.CustomerID;
                aspxCommonObj.SessionCode = OrderDetail.ObjOrderDetails.SessionCode;
                aspxCommonObj.StoreID     = OrderDetail.ObjCommonInfo.StoreID;
                aspxCommonObj.PortalID    = OrderDetail.ObjCommonInfo.PortalID;
                cms.ClearCartAfterPayment(aspxCommonObj);
            }
            else
            {
                // Error!
                strError = objRetVals[3].Trim(char.Parse("|")) + " (" +
                           objRetVals[2].Trim(char.Parse("|")) + ")";

                if (objRetVals[2].Trim(char.Parse("|")) == "44")
                {
                    // CCV transaction decline
                    strError += "Our Card Code Verification (CCV) returned " +
                                "the following error: ";

                    switch (objRetVals[38].Trim(char.Parse("|")))
                    {
                    case "N":
                        strError += "Card Code does not match.";
                        break;

                    case "P":
                        strError += "Card Code was not processed.";
                        break;

                    case "S":
                        strError += "Card Code should be on card but was not indicated.";
                        break;

                    case "U":
                        strError += "Issuer was not certified for Card Code.";
                        break;
                    }
                }

                if (objRetVals[2].Trim(char.Parse("|")) == "45")
                {
                    if (strError.Length > 1)
                    {
                        strError += "<br />n";
                    }

                    // AVS transaction decline
                    strError += "Our Address Verification System (AVS) " +
                                "returned the following error: ";

                    switch (objRetVals[5].Trim(char.Parse("|")))
                    {
                    case "A":
                        strError += " the zip code entered does not match " +
                                    "the billing address.";
                        break;

                    case "B":
                        strError += " no information was provided for the AVS check.";
                        break;

                    case "E":
                        strError += " a general error occurred in the AVS system.";
                        break;

                    case "G":
                        strError += " the credit card was issued by a non-US bank.";
                        break;

                    case "N":
                        strError += " neither the entered street address nor zip " +
                                    "code matches the billing address.";
                        break;

                    case "P":
                        strError += " AVS is not applicable for this transaction.";
                        break;

                    case "R":
                        strError += " please retry the transaction; the AVS system " +
                                    "was unavailable or timed out.";
                        break;

                    case "S":
                        strError += " the AVS service is not supported by your " +
                                    "credit card issuer.";
                        break;

                    case "U":
                        strError += " address information is unavailable for the " +
                                    "credit card.";
                        break;

                    case "W":
                        strError += " the 9 digit zip code matches, but the " +
                                    "street address does not.";
                        break;

                    case "Z":
                        strError += " the zip code matches, but the address does not.";
                        break;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            strError = ex.Message;
        }
        OrderDetail.ObjOrderDetails.ResponseReasonText = strError;
        return(OrderDetail.ObjOrderDetails.ResponseReasonText);
    }
コード例 #20
0
    protected void SendConfrimMessage()
    {
        try
        {
            if (Session["OrderID"] != null)
            {
                string transID            = string.Empty; // transaction ID from Relay Response
                int    responseCode       = 1;            // response code, defaulted to Invalid
                string responsereasontext = string.Empty;
                responsereasontext = "Transaction occured Successfully";
                int    responsereasonCode         = 1;
                string purchaseorderNo            = string.Empty;
                string invoice                    = string.Empty;
                string paymentmethod              = string.Empty;
                OrderDetailsCollection orderdata2 = new OrderDetailsCollection();
                if (HttpContext.Current.Session["OrderCollection"] != null)
                {
                    orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                }
                invoice = orderdata2.ObjOrderDetails.InvoiceNumber.ToString();
                Random random = new Random();
                purchaseorderNo = (random.Next(0, 1000)).ToString();
                string timeStamp = ((int)(DateTime.UtcNow - new DateTime(2011, 1, 1)).TotalSeconds).ToString();
                transID               = (random.Next(99999, 111111)).ToString();
                lblTransaction.Text   = transID;
                lblInvoice.Text       = invoice;
                lblPaymentMethod.Text = "Cash On Delivery";
                lblDateTime.Text      = DateTime.Now.ToString("dddd, dd MMMM yyyy ");
                int    storeID     = int.Parse(GetStoreID.ToString());
                int    portalID    = int.Parse(GetPortalID.ToString());
                string userName    = GetUsername.ToString();
                int    customerID  = int.Parse(GetCustomerID.ToString());
                string sessionCode = HttpContext.Current.Session.SessionID.ToString();
                string result      = CashOnDelivery.Parse(transID, invoice, purchaseorderNo, responseCode, responsereasonCode, responsereasontext, storeID, portalID, userName, customerID, sessionCode);
                lblerror.Text = result.ToString();
                lblerror.Text = GetSageMessage("Payment", "PaymentProcessed");
                TransactionLogInfo tinfo = new TransactionLogInfo();
                TransactionLog     Tlog  = new TransactionLog();

                tinfo.TransactionID      = transID;
                tinfo.AuthCode           = "";
                tinfo.TotalAmount        = decimal.Parse(orderdata2.ObjOrderDetails.GrandTotal.ToString());
                tinfo.ResponseCode       = responseCode.ToString();
                tinfo.ResponseReasonText = responsereasontext;
                tinfo.OrderID            = orderdata2.ObjOrderDetails.OrderID;
                tinfo.StoreID            = orderdata2.ObjCommonInfo.StoreID;
                tinfo.PortalID           = orderdata2.ObjCommonInfo.PortalID;
                tinfo.AddedBy            = orderdata2.ObjCommonInfo.AddedBy;
                tinfo.CustomerID         = orderdata2.ObjOrderDetails.CustomerID;
                tinfo.SessionCode        = orderdata2.ObjOrderDetails.SessionCode;
                tinfo.PaymentGatewayID   = orderdata2.ObjOrderDetails.PaymentGatewayTypeID;
                tinfo.PaymentStatus      = "Processed";
                tinfo.CreditCard         = "";
                Tlog.SaveTransactionLog(tinfo);

                AspxCommerceWebService clSes = new AspxCommerceWebService();
                if (Session["IsFreeShipping"] != null)
                {
                    HttpContext.Current.Session.Remove("IsFreeShipping");
                }
                if (Session["DiscountAmount"] != null)
                {
                    HttpContext.Current.Session.Remove("DiscountAmount");
                }
                if (Session["CouponCode"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponCode");
                }
                if (Session["CouponApplied"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponApplied");
                }
                if (Session["DiscountAll"] != null)
                {
                    HttpContext.Current.Session.Remove("DiscountAll");
                }
                if (Session["TaxAll"] != null)
                {
                    HttpContext.Current.Session.Remove("TaxAll");
                }
                if (Session["ShippingCostAll"] != null)
                {
                    HttpContext.Current.Session.Remove("ShippingCostAll");
                }
                if (Session["GrandTotalAll"] != null)
                {
                    HttpContext.Current.Session.Remove("GrandTotalAll");
                }
                if (Session["Gateway"] != null)
                {
                    HttpContext.Current.Session.Remove("Gateway");
                }

                //invoice  transID

                if (Session["OrderCollection"] != null)
                {
                    OrderDetailsCollection orderdata = new OrderDetailsCollection();
                    orderdata = (OrderDetailsCollection)Session["OrderCollection"];
                    try
                    {
                        EmailTemplate.SendEmailForOrder(GetPortalID, orderdata, addressPath, TemplateName, transID);
                    }
                    catch
                    {
                        lblerror.Text = "";
                        lblerror.Text = GetSageMessage("Payment", "EmailSendOrderProblem");
                    }
                    clSes.ClearSessionVariable("OrderCollection");
                }
            }
            else
            {
                Response.Redirect(sageRedirectPath, false);
            }
        }
        catch (Exception ex)
        {
            ProcessException(ex);
        }
    }
コード例 #21
0
    protected void SendConfrimMessage(string redirectPat)
    {
        try
        {
            if (Session["OrderID"] != null)
            {
                const int responseCode = 1;                const string responsereasontext = "Transaction occured successfully";
                const int responsereasonCode = 1;
                string    paymentmethod      = string.Empty;
                var       orderdata2         = new OrderDetailsCollection();
                if (HttpContext.Current.Session["OrderCollection"] != null)
                {
                    orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                }
                string invoice         = orderdata2.ObjOrderDetails.InvoiceNumber;
                var    random          = new Random();
                string purchaseorderNo = (random.Next(0, 1000)).ToString();
                string timeStamp       = ((int)(DateTime.UtcNow - new DateTime(2011, 1, 1)).TotalSeconds).ToString();
                string transID         = (random.Next(99999, 111111)).ToString();
                lblTransaction.Text   = transID;
                lblInvoice.Text       = invoice;
                lblPaymentMethod.Text = "Cash On Delivery";
                lblPaymentStatus.Text = "Successfull";
                lblDateTime.Text      = DateTime.Now.ToString("dddd, dd MMMM yyyy ");
                lblOrderNo.Text       = "#" + Session["OrderID"].ToString();
                AspxCommonInfo aspxCommonObj = new AspxCommonInfo();
                aspxCommonObj.StoreID     = GetStoreID;
                aspxCommonObj.PortalID    = GetPortalID;
                aspxCommonObj.UserName    = GetUsername;
                aspxCommonObj.CustomerID  = GetCustomerID;
                aspxCommonObj.SessionCode = HttpContext.Current.Session.SessionID;
                aspxCommonObj.CultureName = GetCurrentCultureName;
                int    orderID = orderdata2.ObjOrderDetails.OrderID;
                string result  = CashOnDelivery.Parse(transID, invoice, purchaseorderNo, responseCode, responsereasonCode, responsereasontext, aspxCommonObj);
                AspxGiftCardController.IssueGiftCard(orderdata2.LstOrderItemsInfo, orderID, true, aspxCommonObj);
                if (orderdata2.GiftCardDetail != null && CheckOutSessions.Get <List <GiftCardUsage> >("UsedGiftCard").Count > 0)
                {
                    AspxGiftCardController.UpdateGiftCardUsage(orderdata2.GiftCardDetail, orderdata2.ObjCommonInfo.StoreID,
                                                               orderdata2.ObjCommonInfo.PortalID, orderdata2.ObjOrderDetails.OrderID, orderdata2.ObjCommonInfo.AddedBy,
                                                               orderdata2.ObjCommonInfo.CultureName);
                }

                lblerror.Text = result;
                lblerror.Text = GetSageMessage("Payment", "PaymentProcessed");
                var tinfo = new TransactionLogInfo();
                var tlog  = new TransactionLog();

                tinfo.TransactionID      = transID;
                tinfo.AuthCode           = "";
                tinfo.TotalAmount        = orderdata2.ObjOrderDetails.GrandTotal * currencyRate;
                tinfo.ResponseCode       = responseCode.ToString();
                tinfo.ResponseReasonText = responsereasontext;
                tinfo.OrderID            = orderdata2.ObjOrderDetails.OrderID;
                tinfo.StoreID            = orderdata2.ObjCommonInfo.StoreID;
                tinfo.PortalID           = orderdata2.ObjCommonInfo.PortalID;
                tinfo.AddedBy            = orderdata2.ObjCommonInfo.AddedBy;
                tinfo.CustomerID         = orderdata2.ObjOrderDetails.CustomerID;
                tinfo.SessionCode        = orderdata2.ObjOrderDetails.SessionCode;
                tinfo.PaymentGatewayID   = orderdata2.ObjOrderDetails.PaymentGatewayTypeID;
                tinfo.PaymentStatus      = "Processed";
                tinfo.CreditCard         = "";
                tinfo.CurrencyCode       = SelectedCurrency;
                tlog.SaveTransactionLog(tinfo);
                CheckOutHelper cHelper = new CheckOutHelper();
                cHelper.ClearSessions();

                if (Session["OrderCollection"] != null)
                {
                    var orderdata = (OrderDetailsCollection)Session["OrderCollection"];
                    try
                    {
                        orderdata.ObjOrderDetails.OrderStatus = "Processed";
                        EmailTemplate.SendEmailForOrder(GetPortalID, orderdata, _addressPath, TemplateName, transID);
                    }
                    catch (Exception ex)
                    {
                        lblerror.Text = "";
                        lblerror.Text = GetSageMessage("Payment", "EmailSendOrderProblem");
                        ProcessException(ex);
                    }
                    Session.Remove("OrderCollection");
                }
            }
            else
            {
                Response.Redirect(_sageRedirectPath, false);
            }
        }
        catch (Exception ex)
        {
            ProcessException(ex);
        }
    }
コード例 #22
0
    private void WebSuccess(string sageRedirectPath)
    {
        if (Session["OrderID"] != null)
        {
            int    storeID    = GetStoreID;
            int    portalID   = GetPortalID;
            string userName   = GetUsername;
            int    customerID = GetCustomerID;
            var    orderdata  = new OrderDetailsCollection();
            if (HttpContext.Current.Session["OrderCollection"] != null)
            {
                orderdata = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                _invoice  = orderdata.ObjOrderDetails.InvoiceNumber;
                var pw = new PayPalWCFService();
                int i  = orderdata.ObjOrderDetails.PaymentGatewayTypeID;
                List <PayPalSettingInfo> setting = pw.GetAllPayPalSetting(i, storeID, portalID);
                _authToken = setting[0].AuthToken;
                if (orderdata.GiftCardDetail != null && HttpContext.Current.Session["UsedGiftCard"] != null)
                {   //updating giftcard used in chekout
                    AspxGiftCardController.UpdateGiftCardUsage(orderdata.GiftCardDetail, orderdata.ObjCommonInfo.StoreID,
                                                               orderdata.ObjCommonInfo.PortalID, orderdata.ObjOrderDetails.OrderID, orderdata.ObjCommonInfo.AddedBy,
                                                               orderdata.ObjCommonInfo.CultureName);
                    HttpContext.Current.Session.Remove("UsedGiftCard");
                }
            }


            // authToken = "QMtOC54_YHYUkoggkMZ81ivNWSxPXduIqS5oMynafeUGRL1Rv5OTtUd4rvq";

            //read in txn token from querystring
            _txToken = Request.QueryString.Get("tx");
            _query   = string.Format("cmd=_notify-synch&tx={0}&at={1}", _txToken, _authToken);
            // Create the request back
            // string url = "https://www.sandbox.paypal.com/cgi-bin/webscr";
            const string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
            const string strLive    = "https://www.paypal.com/cgi-bin/webscr";
            string       test       = string.Empty;
            if (Session["IsTestPayPal"] != null)
            {
                test = bool.Parse(Session["IsTestPayPal"].ToString()) ? strSandbox : strLive;
            }
            var req = (HttpWebRequest)WebRequest.Create(test);

            // Set values for the request back
            req.Method        = "POST";
            req.ContentType   = "application/x-www-form-urlencoded";
            req.ContentLength = _query.Length;

            // Write the request back IPN strings
            var stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
            stOut.Write(_query);
            stOut.Close();

            // Do the request to PayPal and get the response
            var stIn = new StreamReader(req.GetResponse().GetResponseStream());
            _strResponse = stIn.ReadToEnd();
            stIn.Close();

            // If response was SUCCESS, parse response string and output details
            if (_strResponse.StartsWith("SUCCESS"))
            {
                string sessionCode = HttpContext.Current.Session.SessionID;
                //for localhost
                // PayPalHandler pdt = PayPalHandler.Parse(strResponse, storeID, portalID, userName, customerID, sessionCode);
                //for live site
                try
                {
                    var paypalHandler = new PayPalHandler();
                    var aspxCommonObj = new AspxCommonInfo();
                    aspxCommonObj.StoreID     = storeID;
                    aspxCommonObj.PortalID    = portalID;
                    aspxCommonObj.UserName    = userName;
                    aspxCommonObj.CustomerID  = customerID;
                    aspxCommonObj.SessionCode = sessionCode;
                    paypalHandler.ParseAfterIPN(_strResponse, aspxCommonObj, TemplateName, _addressPath);

                    AspxGiftCardController.IssueGiftCard(orderdata.LstOrderItemsInfo, false, aspxCommonObj);
                    if (orderdata.GiftCardDetail != null && HttpContext.Current.Session["UsedGiftCard"] != null)
                    {
                        AspxGiftCardController.UpdateGiftCardUsage(orderdata.GiftCardDetail, orderdata.ObjCommonInfo.StoreID,
                                                                   orderdata.ObjCommonInfo.PortalID, orderdata.ObjOrderDetails.OrderID, orderdata.ObjCommonInfo.AddedBy,
                                                                   orderdata.ObjCommonInfo.CultureName);
                        HttpContext.Current.Session.Remove("UsedGiftCard");
                    }
                }
                catch (Exception)
                {
                    lblerror.Text = GetSageMessage("Payment", "PaymentParsingIPNError");
                }
                var clSes = new AspxCommerceWebService();

                String[] stringArray = _strResponse.Split('\n');
                int      i;
                string   status = string.Empty;
                for (i = 1; i < stringArray.Length - 1; i++)
                {
                    String[] stringArray1 = stringArray[i].Split('=');

                    String sKey   = stringArray1[0];
                    String sValue = HttpUtility.UrlDecode(stringArray1[1]);

                    // set string vars to hold variable names using a switch
                    switch (sKey)
                    {
                    case "txn_id":
                        _transID = Convert.ToString(sValue);
                        break;

                    case "payment_status":
                        status = Convert.ToString(sValue);
                        break;
                    }
                }
                lblOrderNo.Text       = "#" + Session["OrderID"].ToString();
                lblTransaction.Text   = _transID;
                lblInvoice.Text       = _invoice;
                lblPaymentMethod.Text = "Paypal";
                lblDateTime.Text      = DateTime.Now.ToString("dddd, dd MMMM yyyy ");
                if (status.ToLower().Trim() == "completed")
                {
                    lblerror.Text = GetSageMessage("Payment", "PaymentProcessed");
                }
                else if (status.ToLower().Trim() == "pending")
                {
                    lblerror.Text = GetSageMessage("Payment", "PaymentPending");
                }

                if (Session["IsFreeShipping"] != null)
                {
                    HttpContext.Current.Session.Remove("IsFreeShipping");
                }
                if (Session["OrderID"] != null)
                {
                    HttpContext.Current.Session.Remove("OrderID");
                }
                if (Session["DiscountAmount"] != null)
                {
                    HttpContext.Current.Session.Remove("DiscountAmount");
                }
                if (Session["IsCouponInPercent"] != null)
                {
                    HttpContext.Current.Session.Remove("IsCouponInPercent");
                }
                if (Session["CouponPercentValue"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponPercentValue");
                }
                if (Session["CouponSessionPercentAmount"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponSessionPercentAmount");
                }
                if (Session["CouponSessionAmount"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponSessionAmount");
                }
                if (Session["CouponCode"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponCode");
                }
                if (Session["CouponApplied"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponApplied");
                }
                Session.Remove("IsTestPayPal");
                if (Session["DiscountAll"] != null)
                {
                    HttpContext.Current.Session.Remove("DiscountAll");
                }
                if (Session["TaxAll"] != null)
                {
                    HttpContext.Current.Session.Remove("TaxAll");
                }
                if (Session["ShippingCostAll"] != null)
                {
                    HttpContext.Current.Session.Remove("ShippingCostAll");
                }
                if (Session["GrandTotalAll"] != null)
                {
                    HttpContext.Current.Session.Remove("GrandTotalAll");
                }
                if (Session["Gateway"] != null)
                {
                    HttpContext.Current.Session.Remove("Gateway");
                }
            }
            else
            {
                lblerror.Text = GetSageMessage("Payment", "PaymentError");
            }
        }
        else
        {
            Response.Redirect(sageRedirectPath, false);
        }
    }
コード例 #23
0
    private void WebSuccess(string sageRedirectPath)
    {
        if (Session["OrderID"] != null)
        {
            int    storeID    = GetStoreID;
            int    portalID   = GetPortalID;
            string userName   = GetUsername;
            int    customerID = GetCustomerID;
            var    orderdata  = new OrderDetailsCollection();
            if (HttpContext.Current.Session["OrderCollection"] != null)
            {
                orderdata = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                _invoice  = orderdata.ObjOrderDetails.InvoiceNumber;
                var pw = new PayPalWCFService();
                int i  = orderdata.ObjOrderDetails.PaymentGatewayTypeID;
                List <PayPalSettingInfo> setting = pw.GetAllPayPalSetting(i, storeID, portalID);
                _authToken = setting[0].AuthToken;
                if (orderdata.GiftCardDetail != null && HttpContext.Current.Session["UsedGiftCard"] != null)
                {
                    AspxGiftCardController.UpdateGiftCardUsage(orderdata.GiftCardDetail, orderdata.ObjCommonInfo.StoreID,
                                                               orderdata.ObjCommonInfo.PortalID, orderdata.ObjOrderDetails.OrderID, orderdata.ObjCommonInfo.AddedBy,
                                                               orderdata.ObjCommonInfo.CultureName);
                    HttpContext.Current.Session.Remove("UsedGiftCard");
                }
            }



            _txToken = Request.QueryString.Get("tx");
            _query   = string.Format("cmd=_notify-synch&tx={0}&at={1}", _txToken, _authToken);
            const string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
            const string strLive    = "https://www.paypal.com/cgi-bin/webscr";
            string       test       = string.Empty;
            if (Session["IsTestPayPal"] != null)
            {
                test = bool.Parse(Session["IsTestPayPal"].ToString()) ? strSandbox : strLive;
            }
            var req = (HttpWebRequest)WebRequest.Create(test);

            req.Method        = "POST";
            req.ContentType   = "application/x-www-form-urlencoded";
            req.ContentLength = _query.Length;

            var stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
            stOut.Write(_query);
            stOut.Close();

            var stIn = new StreamReader(req.GetResponse().GetResponseStream());
            _strResponse = stIn.ReadToEnd();
            stIn.Close();

            if (_strResponse.StartsWith("SUCCESS"))
            {
                string sessionCode = HttpContext.Current.Session.SessionID;
                try
                {
                    var paypalHandler = new PayPalHandler();
                    var aspxCommonObj = new AspxCommonInfo();
                    aspxCommonObj.StoreID     = storeID;
                    aspxCommonObj.PortalID    = portalID;
                    aspxCommonObj.UserName    = userName;
                    aspxCommonObj.CustomerID  = customerID;
                    aspxCommonObj.SessionCode = sessionCode;
                    int orderID = orderdata.ObjOrderDetails.OrderID;
                    paypalHandler.ParseAfterIPN(_strResponse, aspxCommonObj, TemplateName, _addressPath);

                    AspxGiftCardController.IssueGiftCard(orderdata.LstOrderItemsInfo, orderID, true, aspxCommonObj);
                    if (orderdata.GiftCardDetail != null && CheckOutSessions.Get <List <GiftCardUsage> >("UsedGiftCard").Count > 0)
                    {
                        AspxGiftCardController.UpdateGiftCardUsage(orderdata.GiftCardDetail, orderdata.ObjCommonInfo.StoreID,
                                                                   orderdata.ObjCommonInfo.PortalID, orderdata.ObjOrderDetails.OrderID, orderdata.ObjCommonInfo.AddedBy,
                                                                   orderdata.ObjCommonInfo.CultureName);
                    }
                }
                catch (Exception)
                {
                    lblerror.Text = GetSageMessage("Payment", "PaymentParsingIPNError");
                }

                String[] stringArray = _strResponse.Split('\n');
                int      i;
                string   status = string.Empty;
                for (i = 1; i < stringArray.Length - 1; i++)
                {
                    String[] stringArray1 = stringArray[i].Split('=');

                    String sKey   = stringArray1[0];
                    String sValue = HttpUtility.UrlDecode(stringArray1[1]);

                    switch (sKey)
                    {
                    case "txn_id":
                        _transID = Convert.ToString(sValue);
                        break;

                    case "payment_status":
                        status = Convert.ToString(sValue);
                        break;
                    }
                }
                lblOrderNo.Text       = "#" + Session["OrderID"].ToString();
                lblTransaction.Text   = _transID;
                lblInvoice.Text       = _invoice;
                lblPaymentMethod.Text = "Paypal";
                lblDateTime.Text      = DateTime.Now.ToString("dddd, dd MMMM yyyy ");
                if (status.ToLower().Trim() == "completed")
                {
                    lblerror.Text = GetSageMessage("Payment", "PaymentProcessed");
                }
                else if (status.ToLower().Trim() == "pending")
                {
                    lblerror.Text = GetSageMessage("Payment", "PaymentPending");
                }

                CheckOutHelper cHelper = new CheckOutHelper();
                cHelper.ClearSessions();
            }
            else
            {
                lblerror.Text = GetSageMessage("Payment", "PaymentError");
            }
        }
        else
        {
            Response.Redirect(sageRedirectPath, false);
        }
    }
コード例 #24
0
        public string SendPaymentInfoAIM(OrderDetailsCollection OrderDetail, string TemplateName, string addressPath)
        {
            var objRequest = new WebClient();
            var objInf     = new System.Collections.Specialized.NameValueCollection(30);

            string strError;

            //OrderDetail.ObjOrderDetails.CustomerID = int.Parse(Crypto.GenerateCustomerID());
            OrderDetail.ObjOrderDetails.InvoiceNumber       = Crypto.GenerateInvoiceNumber();
            OrderDetail.ObjOrderDetails.PurchaseOrderNumber = Crypto.GeneratePurchaseOrderNumber();

            //merchant generated field
            objInf.Add("x_version", OrderDetail.ObjOrderDetails.Version);
            objInf.Add("x_delim_data", "True");
            objInf.Add("x_login", OrderDetail.ObjOrderDetails.APILogin);
            objInf.Add("x_tran_key", OrderDetail.ObjOrderDetails.TransactionKey);
            objInf.Add("x_relay_response", "False");
            objInf.Add("x_delim_char", ",");
            objInf.Add("x_encap_char", "|");
            objInf.Add("x_invoice_num", OrderDetail.ObjOrderDetails.InvoiceNumber);
            objInf.Add("x_cust_id", OrderDetail.ObjOrderDetails.CustomerID.ToString(CultureInfo.InvariantCulture));
            objInf.Add("x_po_num", OrderDetail.ObjOrderDetails.PurchaseOrderNumber);

            // Billing Address
            objInf.Add("x_first_name", OrderDetail.ObjBillingAddressInfo.FirstName);
            objInf.Add("x_last_name", OrderDetail.ObjBillingAddressInfo.LastName);
            objInf.Add("x_company", OrderDetail.ObjBillingAddressInfo.CompanyName);
            objInf.Add("x_email", OrderDetail.ObjBillingAddressInfo.EmailAddress);
            objInf.Add("x_address", OrderDetail.ObjBillingAddressInfo.Address);
            objInf.Add("x_city", OrderDetail.ObjBillingAddressInfo.City);
            objInf.Add("x_state", OrderDetail.ObjBillingAddressInfo.State);
            objInf.Add("x_zip", OrderDetail.ObjBillingAddressInfo.Zip);
            objInf.Add("x_country", OrderDetail.ObjBillingAddressInfo.Country);
            objInf.Add("x_phone", OrderDetail.ObjBillingAddressInfo.Phone);
            objInf.Add("x_fax", OrderDetail.ObjBillingAddressInfo.Fax);
            objInf.Add("x_email_customer", OrderDetail.ObjOrderDetails.IsEmailCustomer);

            if (OrderDetail.ObjOrderDetails.IsMultipleCheckOut == false)
            {
                //shipping address
                objInf.Add("x_ship_to_first_name", OrderDetail.ObjShippingAddressInfo.FirstName);
                objInf.Add("x_ship_to_last_name", OrderDetail.ObjShippingAddressInfo.LastName);
                objInf.Add("x_ship_to_company", OrderDetail.ObjShippingAddressInfo.CompanyName);
                objInf.Add("x_ship_to_address", OrderDetail.ObjShippingAddressInfo.Address);
                objInf.Add("x_ship_to_city", OrderDetail.ObjShippingAddressInfo.City);
                objInf.Add("x_ship_to_state", OrderDetail.ObjShippingAddressInfo.State);
                objInf.Add("x_ship_to_zip", OrderDetail.ObjShippingAddressInfo.Zip);
                objInf.Add("x_ship_to_country", OrderDetail.ObjShippingAddressInfo.Country);
            }
            // Card Details
            objInf.Add("x_card_num", OrderDetail.ObjPaymentInfo.CardNumber);
            objInf.Add("x_card_type", OrderDetail.ObjPaymentInfo.CardType);
            objInf.Add("x_exp_date", OrderDetail.ObjPaymentInfo.ExpireDate);

            var            ssc = new StoreSettingConfig();
            double         rate;
            string         mainCurrency    = ssc.GetStoreSettingsByKey(StoreSetting.MainCurrency, OrderDetail.ObjCommonInfo.StoreID, OrderDetail.ObjCommonInfo.PortalID, OrderDetail.ObjCommonInfo.CultureName);
            const string   gateWayCurrency = "USD";
            AspxCommonInfo aspxCommonObj   = new AspxCommonInfo();

            aspxCommonObj.CustomerID  = OrderDetail.ObjOrderDetails.CustomerID;
            aspxCommonObj.SessionCode = OrderDetail.ObjOrderDetails.SessionCode;
            aspxCommonObj.StoreID     = OrderDetail.ObjCommonInfo.StoreID;
            aspxCommonObj.PortalID    = OrderDetail.ObjCommonInfo.PortalID;

            if (gateWayCurrency.ToLower().Trim() == mainCurrency.ToLower().Trim())
            {
                rate = 1;
            }
            else
            {
                AspxCoreController acc = new AspxCoreController();
                rate = acc.GetCurrencyRateOnChange(aspxCommonObj, mainCurrency, gateWayCurrency.Trim(), "en-US");
            }
            //double amountTotal = double.Parse(HttpContext.Current.Session["GrandTotalAll"].ToString()) * rate;
            double  amountTotal = double.Parse(CheckOutSessions.Get <Double>("GrandTotalAll", 0).ToString()) * rate;
            decimal amount      = decimal.Parse(amountTotal.ToString(CultureInfo.InvariantCulture));

            //string amount = Regex.Replace(OrderDetail.ObjOrderDetails.GrandTotal.ToString("0.00"), @"[A-Z]", String.Empty);
            objInf.Add("x_amount", Math.Round(amount, 2).ToString(CultureInfo.InvariantCulture));
            objInf.Add("x_test_request", "False");
            if (OrderDetail.ObjPaymentInfo.PaymentMethodCode == "CC")
            {
                // Authorization code of the card (CCV)
                objInf.Add("x_card_code", OrderDetail.ObjPaymentInfo.CardCode.Trim());
                objInf.Add("x_method", OrderDetail.ObjPaymentInfo.PaymentMethodCode.Trim());
                objInf.Add("x_type", OrderDetail.ObjPaymentInfo.TransactionType.Trim());
                // string amount = Regex.Replace(OrderDetail.ObjOrderDetails.GrandTotal.ToString("0.00"), @"[A-Z]", String.Empty);
                // objInf.Add("x_amount", amount);
                objInf.Add("x_description", OrderDetail.ObjOrderDetails.Remarks.Trim());
            }
            else
            {
                //bank
                objInf.Add("x_bank_aba_code", OrderDetail.ObjPaymentInfo.RoutingNumber.Trim());
                objInf.Add("x_bank_acct_num", OrderDetail.ObjPaymentInfo.AccountNumber.Trim());
                objInf.Add("x_bank_acct_type", OrderDetail.ObjPaymentInfo.AccountType.Trim());
                objInf.Add("x_bank_name", OrderDetail.ObjPaymentInfo.BankName.Trim());
                objInf.Add("x_bank_acct_name", OrderDetail.ObjPaymentInfo.AccountHolderName.Trim());
                objInf.Add("x_echeck_type", OrderDetail.ObjPaymentInfo.ChequeType.Trim());
                objInf.Add("x_bank_check_number", OrderDetail.ObjPaymentInfo.ChequeNumber.Trim());
            }

            // Currency setting. Check the guide for other supported currencies
            objInf.Add("x_currency_code", OrderDetail.ObjOrderDetails.CurrencyCode.Trim());

            if (OrderDetail.ObjOrderDetails.IsTest.ToLower().Trim() == "true" || OrderDetail.ObjOrderDetails.IsTest.ToLower() == "1")
            {
                objRequest.BaseAddress = "https://test.authorize.net/gateway/transact.dll";
            }
            else
            {
                objRequest.BaseAddress = "https://secure.authorize.net/gateway/transact.dll";
            }

            try
            {
                // POST request

                byte[]   objRetBytes = objRequest.UploadValues(objRequest.BaseAddress, "POST", objInf);
                string[] objRetVals  = System.Text.Encoding.ASCII.GetString(objRetBytes).Split(",".ToCharArray());

                // Process Return Values
                OrderDetail.ObjOrderDetails.ResponseCode       = int.Parse(objRetVals[0].Trim(char.Parse("|")));
                OrderDetail.ObjOrderDetails.ResponseReasonCode = int.Parse(objRetVals[2].Trim(char.Parse("|")));

                if (objRetVals[0].Trim(char.Parse("|")) == "1")
                {
                    // Returned Authorisation Code
                    //response.AuthorizationCode = objRetVals[4].Trim(char.Parse("|"));
                    // Returned Transaction ID
                    OrderDetail.ObjOrderDetails.TransactionID = Convert.ToString(objRetVals[6].Trim(char.Parse("|")));
                    strError = "Transaction completed successfully.";

                    AspxCoreController acc = new AspxCoreController();
                    OrderDetail.ObjOrderDetails.OrderStatusID = 8;
                    OrderDetail.ObjOrderDetails.TransactionID = Convert.ToString(objRetVals[6].Trim(char.Parse("|")));
                    acc.AddOrderDetails(OrderDetail);
                    HttpContext.Current.Session["TransDetailsAIM"] = OrderDetail.ObjOrderDetails.InvoiceNumber + "#" + OrderDetail.ObjOrderDetails.TransactionID + "#" + "AIM Authorize.Net";
                    if (HttpContext.Current.Session["OrderCollection"] != null)
                    {
                        OrderDetailsCollection orderdata2 = new OrderDetailsCollection();
                        if (HttpContext.Current.Session["OrderCollection"] != null)
                        {
                            orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                        }

                        AspxOrderController.UpdateItemQuantity(orderdata2);
                        AspxGiftCardController.IssueGiftCard(orderdata2.LstOrderItemsInfo, orderdata2.ObjOrderDetails.OrderID, true, aspxCommonObj);
                        if (orderdata2.GiftCardDetail != null && HttpContext.Current.Session["UsedGiftCard"] != null)
                        {   //updating giftcard used in chekout
                            AspxGiftCardController.UpdateGiftCardUsage(orderdata2.GiftCardDetail, orderdata2.ObjCommonInfo.StoreID,
                                                                       orderdata2.ObjCommonInfo.PortalID, orderdata2.ObjOrderDetails.OrderID, orderdata2.ObjCommonInfo.AddedBy,
                                                                       orderdata2.ObjCommonInfo.CultureName);
                            HttpContext.Current.Session.Remove("UsedGiftCard");
                        }


                        var tinfo = new TransactionLogInfo();
                        var tlog  = new TransactionLog();

                        tinfo.TransactionID      = OrderDetail.ObjOrderDetails.TransactionID;
                        tinfo.AuthCode           = objRetVals[4].Trim(char.Parse("|"));//auth Code
                        tinfo.TotalAmount        = OrderDetail.ObjOrderDetails.GrandTotal;
                        tinfo.ResponseCode       = "1";
                        tinfo.ResponseReasonText = strError;
                        tinfo.OrderID            = orderdata2.ObjOrderDetails.OrderID;
                        tinfo.StoreID            = OrderDetail.ObjCommonInfo.StoreID;
                        tinfo.PortalID           = OrderDetail.ObjCommonInfo.PortalID;
                        tinfo.AddedBy            = OrderDetail.ObjCommonInfo.AddedBy;
                        tinfo.CustomerID         = OrderDetail.ObjOrderDetails.CustomerID;
                        tinfo.SessionCode        = OrderDetail.ObjOrderDetails.SessionCode;
                        tinfo.PaymentGatewayID   = OrderDetail.ObjOrderDetails.PaymentGatewayTypeID;
                        tinfo.PaymentStatus      = "Processed";
                        tinfo.PayerEmail         = OrderDetail.ObjBillingAddressInfo.EmailAddress;
                        tinfo.CreditCard         = OrderDetail.ObjPaymentInfo.CardNumber;
                        tinfo.CurrencyCode       = gateWayCurrency.Trim();
                        tlog.SaveTransactionLog(tinfo);
                    }

                    var cms = new AspxCommerce.Core.CartManageSQLProvider();
                    cms.ClearCartAfterPayment(aspxCommonObj);

                    // StoreSettingConfig ssc = new StoreSettingConfig();
                    string sendEmailFrom   = ssc.GetStoreSettingsByKey(StoreSetting.SendEcommerceEmailsFrom, OrderDetail.ObjCommonInfo.StoreID, OrderDetail.ObjCommonInfo.PortalID, OrderDetail.ObjCommonInfo.CultureName);
                    string sendOrderNotice = ssc.GetStoreSettingsByKey(StoreSetting.SendOrderNotification, OrderDetail.ObjCommonInfo.StoreID, OrderDetail.ObjCommonInfo.PortalID, OrderDetail.ObjCommonInfo.CultureName);



                    if (sendOrderNotice.ToLower() == "true")
                    {
                        try
                        {
                            EmailTemplate.SendEmailForOrder(OrderDetail.ObjCommonInfo.PortalID, OrderDetail, addressPath,
                                                            TemplateName, OrderDetail.ObjOrderDetails.TransactionID);
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                    }
                    acc.ClearSessionVariable("OrderCollection");
                    CheckOutHelper cHelper = new CheckOutHelper();
                    cHelper.ClearSessions();
                }
                else
                {
                    // Error!
                    strError = objRetVals[3].Trim(char.Parse("|")) + " (" +
                               objRetVals[2].Trim(char.Parse("|")) + ")";

                    if (objRetVals[2].Trim(char.Parse("|")) == "44")
                    {
                        // CCV transaction decline
                        strError += "Our Card Code Verification (CCV) returned " +
                                    "the following error: ";

                        switch (objRetVals[38].Trim(char.Parse("|")))
                        {
                        case "N":
                            strError += "Card Code does not match.";
                            break;

                        case "P":
                            strError += "Card Code was not processed.";
                            break;

                        case "S":
                            strError += "Card Code should be on card but was not indicated.";
                            break;

                        case "U":
                            strError += "Issuer was not certified for Card Code.";
                            break;
                        }
                    }

                    if (objRetVals[2].Trim(char.Parse("|")) == "45")
                    {
                        if (strError.Length > 1)
                        {
                            strError += "<br />n";
                        }

                        // AVS transaction decline
                        strError += "Our Address Verification System (AVS) " +
                                    "returned the following error: ";

                        switch (objRetVals[5].Trim(char.Parse("|")))
                        {
                        case "A":
                            strError += " the zip code entered does not match " +
                                        "the billing address.";
                            break;

                        case "B":
                            strError += " no information was provided for the AVS check.";
                            break;

                        case "E":
                            strError += " a general error occurred in the AVS system.";
                            break;

                        case "G":
                            strError += " the credit card was issued by a non-US bank.";
                            break;

                        case "N":
                            strError += " neither the entered street address nor zip " +
                                        "code matches the billing address.";
                            break;

                        case "P":
                            strError += " AVS is not applicable for this transaction.";
                            break;

                        case "R":
                            strError += " please retry the transaction; the AVS system " +
                                        "was unavailable or timed out.";
                            break;

                        case "S":
                            strError += " the AVS service is not supported by your " +
                                        "credit card issuer.";
                            break;

                        case "U":
                            strError += " address information is unavailable for the " +
                                        "credit card.";
                            break;

                        case "W":
                            strError += " the 9 digit zip code matches, but the " +
                                        "street address does not.";
                            break;

                        case "Z":
                            strError += " the zip code matches, but the address does not.";
                            break;
                        }
                    }
                    var tinfo = new TransactionLogInfo();
                    var tlog  = new TransactionLog();

                    tinfo.TransactionID      = "";
                    tinfo.AuthCode           = objRetVals[4].Trim(char.Parse("|"));//auth Code
                    tinfo.TotalAmount        = amount;
                    tinfo.ResponseCode       = objRetVals[2].Trim(char.Parse("|"));
                    tinfo.ResponseReasonText = strError;
                    tinfo.OrderID            = OrderDetail.ObjOrderDetails.OrderID;
                    tinfo.StoreID            = OrderDetail.ObjCommonInfo.StoreID;
                    tinfo.PortalID           = OrderDetail.ObjCommonInfo.PortalID;
                    tinfo.AddedBy            = OrderDetail.ObjCommonInfo.AddedBy;
                    tinfo.CustomerID         = OrderDetail.ObjOrderDetails.CustomerID;
                    tinfo.SessionCode        = OrderDetail.ObjOrderDetails.SessionCode;
                    tinfo.PaymentGatewayID   = OrderDetail.ObjOrderDetails.PaymentGatewayTypeID;
                    tinfo.PaymentStatus      = "Failed";
                    tinfo.PayerEmail         = OrderDetail.ObjBillingAddressInfo.EmailAddress;
                    tinfo.CreditCard         = OrderDetail.ObjPaymentInfo.CardNumber;
                    tinfo.CurrencyCode       = gateWayCurrency.Trim();
                    tlog.SaveTransactionLog(tinfo);
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
            }
            OrderDetail.ObjOrderDetails.ResponseReasonText = strError;
            return(OrderDetail.ObjOrderDetails.ResponseReasonText);
        }
コード例 #25
0
    protected void SendConfrimMessage()
    {
        AspxCommerce.ServiceItem.BookAnAppointmentInfo appointmentInfo = new AspxCommerce.ServiceItem.BookAnAppointmentInfo();
        if (Session["OrderID"] != null)
        {
            int    storeID    = GetStoreID;
            int    portalID   = GetPortalID;
            string userName   = GetUsername;
            int    customerID = GetCustomerID;
            var    orderdata  = new OrderDetailsCollection();
            if (HttpContext.Current.Session["OrderCollection"] != null)
            {
                orderdata = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
            }
            string invoice = orderdata.ObjOrderDetails.InvoiceNumber;
            lblInvoice.Text = invoice;

            var    random  = new Random();
            string transID = (random.Next(99999, 111111)).ToString();
            lblTransaction.Text = transID.Trim();

            if (Session["PaymentMethodName"] != null)
            {
                if (HttpContext.Current.Session["PaymentMethodName"].ToString() == "paypal")
                {
                    var pw = new PayPalWCFService();
                    int j  = orderdata.ObjOrderDetails.PaymentGatewayTypeID;
                    List <PayPalSettingInfo> setting = pw.GetAllPayPalSetting(j, storeID, portalID);
                    _authToken = setting[0].AuthToken;

                    _txToken = Request.QueryString.Get("tx");
                    _query   = string.Format("cmd=_notify-synch&tx={0}&at={1}", _txToken, _authToken);
                    const string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
                    const string strLive    = "https://www.paypal.com/cgi-bin/webscr";
                    string       test       = string.Empty;

                    if (Session["IsTestPayPal"] != null)
                    {
                        test = bool.Parse(Session["IsTestPayPal"].ToString()) ? strSandbox : strLive;
                    }
                    var req = (HttpWebRequest)WebRequest.Create(test);

                    req.Method        = "POST";
                    req.ContentType   = "application/x-www-form-urlencoded";
                    req.ContentLength = _query.Length;

                    var stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                    stOut.Write(_query);
                    stOut.Close();

                    var stIn = new StreamReader(req.GetResponse().GetResponseStream());
                    _strResponse = stIn.ReadToEnd();
                    stIn.Close();

                    if (_strResponse.StartsWith("SUCCESS"))
                    {
                        string sessionCode = HttpContext.Current.Session.SessionID;
                        try
                        {
                            PayPalHandler pdtt = ParseAfterIPN(_strResponse, storeID, portalID, userName, customerID, sessionCode, TemplateName, _addressPath);
                        }
                        catch (Exception)
                        {
                            lblerror.Text = GetSageMessage("Payment", "PaymentParsingIPNError");
                        }

                        String[] stringArray = _strResponse.Split('\n');
                        int      i;
                        string   status = string.Empty;
                        for (i = 1; i < stringArray.Length - 1; i++)
                        {
                            String[] stringArray1 = stringArray[i].Split('=');

                            String sKey   = stringArray1[0];
                            String sValue = HttpUtility.UrlDecode(stringArray1[1]);

                            switch (sKey)
                            {
                            case "txn_id":
                                _transID = Convert.ToString(sValue);
                                break;

                            case "payment_status":
                                status = Convert.ToString(sValue);
                                break;
                            }
                        }
                        lblTransaction.Text = _transID.Trim();
                        //lblInvoice.Text = _invoice;
                        lblPaymentMethod.Text = "Paypal";
                        if (status.ToLower().Trim() == "completed")
                        {
                            lblerror.Text = GetSageMessage("Payment", "PaymentProcessed");
                        }
                        else if (status.ToLower().Trim() == "pending")
                        {
                            lblerror.Text = GetSageMessage("Payment", "PaymentPending");
                        }
                    }
                    else
                    {
                        lblerror.Text = GetSageMessage("Payment", "PaymentError");
                    }
                }
                else if (HttpContext.Current.Session["PaymentMethodName"].ToString().ToLower() == "cashondelivery")
                {
                    const int responseCode = 1;                    const string responsereasontext = "Transaction occured successfully";
                    const int responsereasonCode = 1;

                    string purchaseorderNo = (random.Next(0, 1000)).ToString();
                    string sessionCode     = HttpContext.Current.Session.SessionID;
                    string result          = Parse(transID, invoice, purchaseorderNo, responseCode, responsereasonCode, responsereasontext, storeID, portalID, userName, customerID, sessionCode);
                    lblerror.Text = result;
                    lblerror.Text = GetSageMessage("Payment", "PaymentProcessed");
                    var tinfo = new TransactionLogInfo();
                    var tlog  = new TransactionLog();
                }
            }
            else
            {
                Response.Redirect(_sageRedirectPath, false);
            }
            if (HttpContext.Current.Session["AppointmentCollection"] != null)
            {
                appointmentInfo = (AspxCommerce.ServiceItem.BookAnAppointmentInfo)HttpContext.Current.Session["AppointmentCollection"];
            }

            lblServiceName.Text         = appointmentInfo.ServiceCategoryName.Trim();
            lblServiceProduct.Text      = appointmentInfo.ServiceProductName;
            lblServiceDuration.Text     = appointmentInfo.ServiceDuration;
            lblStoreLocation.Text       = appointmentInfo.StoreLocationName;
            lblServiceProviderName.Text = appointmentInfo.EmployeeName;
            lblProductPrice.Text        = appointmentInfo.ServiceProductPrice.Trim();

            lblPaymentMethod.Text = appointmentInfo.PaymentMethodName;
            lblDate.Text          = appointmentInfo.PreferredDate.ToString("MM/dd/yyyy");
            lblTime.Text          = appointmentInfo.PreferredTimeInterval.Trim();
        }
    }
コード例 #26
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            try
            {
                SageFrameConfig sfConfig = new SageFrameConfig();
                IsUseFriendlyUrls = sfConfig.GetSettingBollByKey(SageFrameSettingKeys.UseFriendlyUrls);
                string sageRedirectPath = string.Empty;
                if (IsUseFriendlyUrls)
                {
                    if (GetPortalID > 1)
                    {
                        sageRedirectPath = ResolveUrl("~/portal/" + GetPortalSEOName + "/" + sfConfig.GetSettingsByKey(SageFrameSettingKeys.PortalDefaultPage) + ".aspx");
                        addressPath      = HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + "/portal/" + GetPortalSEOName + "/";
                    }
                    else
                    {
                        sageRedirectPath = ResolveUrl("~/" + sfConfig.GetSettingsByKey(SageFrameSettingKeys.PortalDefaultPage) + ".aspx");
                        addressPath      = HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + "/";
                    }
                }
                else
                {
                    sageRedirectPath = ResolveUrl("{~/Default.aspx?ptlid=" + GetPortalID + "&ptSEO=" + GetPortalSEOName + "&pgnm=" + sfConfig.GetSettingsByKey(SageFrameSettingKeys.PortalDefaultPage));
                }

                Image imgProgress = (Image)UpdateProgress1.FindControl("imgPrgress");
                if (imgProgress != null)
                {
                    imgProgress.ImageUrl = GetTemplateImageUrl("ajax-loader.gif", true);
                }
                hlnkHomePage.NavigateUrl = sageRedirectPath;

                if (Session["OrderID"] != null)
                {
                    int    storeID    = int.Parse(GetStoreID.ToString());
                    int    portalID   = int.Parse(GetPortalID.ToString());
                    string userName   = GetUsername.ToString();
                    int    customerID = int.Parse(GetCustomerID.ToString());
                    OrderDetailsCollection   orderdata = new OrderDetailsCollection();
                    List <PayPalSettingInfo> setting;
                    if (HttpContext.Current.Session["OrderCollection"] != null)
                    {
                        orderdata = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                        invoice   = orderdata.ObjOrderDetails.InvoiceNumber.ToString();
                        PayPalWCFService pw = new PayPalWCFService();
                        int i = int.Parse(orderdata.ObjOrderDetails.PaymentGatewayTypeID.ToString());
                        setting   = pw.GetAllPayPalSetting(i, storeID, portalID);
                        authToken = setting[0].AuthToken.ToString();
                    }

                    // authToken = "QMtOC54_YHYUkoggkMZ81ivNWSxPXduIqS5oMynafeUGRL1Rv5OTtUd4rvq";

                    //read in txn token from querystring
                    txToken = Request.QueryString.Get("tx");
                    query   = string.Format("cmd=_notify-synch&tx={0}&at={1}", txToken, authToken);
                    // Create the request back
                    // string url = "https://www.sandbox.paypal.com/cgi-bin/webscr";
                    string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
                    string strLive    = "https://www.paypal.com/cgi-bin/webscr";
                    string test       = string.Empty;
                    if (Session["IsTestPayPal"] != null)
                    {
                        if (bool.Parse(Session["IsTestPayPal"].ToString()))
                        {
                            test = strSandbox;
                        }
                        else
                        {
                            test = strLive;
                        }
                    }
                    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(test);

                    // Set values for the request back
                    req.Method        = "POST";
                    req.ContentType   = "application/x-www-form-urlencoded";
                    req.ContentLength = query.Length;

                    // Write the request back IPN strings
                    StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                    stOut.Write(query);
                    stOut.Close();

                    // Do the request to PayPal and get the response
                    StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
                    strResponse = stIn.ReadToEnd();
                    stIn.Close();

                    // If response was SUCCESS, parse response string and output details
                    if (strResponse.StartsWith("SUCCESS"))
                    {
                        string sessionCode = HttpContext.Current.Session.SessionID.ToString();
                        //for localhost
                        // PayPalHandler pdt = PayPalHandler.Parse(strResponse, storeID, portalID, userName, customerID, sessionCode);
                        //for live site
                        try
                        {
                            PayPalHandler pdtt = PayPalHandler.ParseAfterIPN(strResponse, storeID, portalID, userName, customerID, sessionCode, TemplateName, addressPath);
                        }
                        catch (Exception)
                        {
                            lblerror.Text = GetSageMessage("Payment", "PaymentParsingIPNError");
                        }
                        AspxCommerceWebService clSes = new AspxCommerceWebService();

                        String   sKey, sValue;
                        String[] StringArray = strResponse.Split('\n');
                        int      i;
                        string   status = string.Empty;
                        for (i = 1; i < StringArray.Length - 1; i++)
                        {
                            String[] StringArray1 = StringArray[i].Split('=');

                            sKey   = StringArray1[0];
                            sValue = HttpUtility.UrlDecode(StringArray1[1]);

                            // set string vars to hold variable names using a switch
                            switch (sKey)
                            {
                            case "txn_id":
                                transID = Convert.ToString(sValue);
                                break;

                            case "payment_status":
                                status = Convert.ToString(sValue);
                                break;
                            }
                        }

                        lblTransaction.Text   = transID;
                        lblInvoice.Text       = invoice;
                        lblPaymentMethod.Text = "Paypal";
                        lblDateTime.Text      = DateTime.Now.ToString("dddd, dd MMMM yyyy ");
                        if (status.ToLower().Trim() == "completed")
                        {
                            lblerror.Text = GetSageMessage("Payment", "PaymentProcessed");
                        }
                        else if (status.ToLower().Trim() == "pending")
                        {
                            lblerror.Text = GetSageMessage("Payment", "PaymentPending");
                        }

                        if (Session["IsFreeShipping"] != null)
                        {
                            clSes.ClearSessionVariable("IsFreeShipping");
                        }
                        if (Session["DiscountAmount"] != null)
                        {
                            clSes.ClearSessionVariable("DiscountAmount");
                        }
                        if (Session["CouponCode"] != null)
                        {
                            clSes.ClearSessionVariable("CouponCode");
                        }
                        if (Session["CouponApplied"] != null)
                        {
                            HttpContext.Current.Session.Remove("CouponApplied");
                        }
                        Session.Remove("IsTestPayPal");
                        if (Session["DiscountAll"] != null)
                        {
                            HttpContext.Current.Session.Remove("DiscountAll");
                        }
                        if (Session["TaxAll"] != null)
                        {
                            HttpContext.Current.Session.Remove("TaxAll");
                        }
                        if (Session["ShippingCostAll"] != null)
                        {
                            HttpContext.Current.Session.Remove("ShippingCostAll");
                        }
                        if (Session["GrandTotalAll"] != null)
                        {
                            HttpContext.Current.Session.Remove("GrandTotalAll");
                        }
                        if (Session["Gateway"] != null)
                        {
                            HttpContext.Current.Session.Remove("Gateway");
                        }
                    }
                    else
                    {
                        lblerror.Text = GetSageMessage("Payment", "PaymentError");
                    }
                }
                else
                {
                    Response.Redirect(sageRedirectPath, false);
                }
            }
            catch (Exception ex)
            {
                ProcessException(ex);
            }
        }
    }
コード例 #27
0
    public void LoadSetting()
    {
        MoneybookersWCFService         pw = new MoneybookersWCFService();
        List <MoneybookersSettingInfo> sf;
        OrderDetailsCollection         orderdata2 = new OrderDetailsCollection();

        orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
        string itemidsWithVar = "";

        foreach (var item in orderdata2.LstOrderItemsInfo)
        {
            itemidsWithVar += item.ItemID + "&" + item.Quantity + "&" + orderdata2.ObjOrderDetails.OrderID + "&" + item.Variants + ",";
        }
        double  amountTotal = CheckOutSessions.Get <double>("GrandTotalAll", 0) * rate;
        decimal amount      = decimal.Parse(amountTotal.ToString(CultureInfo.InvariantCulture));

        string postURL = string.Empty;

        try
        {
            sf = pw.GetAllMoneybookersSetting(CheckOutSessions.Get <int>("GateWay", 0), storeID, portalID);

            if (bool.Parse(sf[0].IsTestMoneybookers.ToString()))
            {
                postURL = "https://www.moneybookers.com/app/payment.pl";
                HttpContext.Current.Session["IsTestMoneybookers"] = true;
            }
            else
            {
                postURL = "https://www.moneybookers.com/app/payment.pl";
                HttpContext.Current.Session["IsTestMoneybookers"] = false;
            }
            string ids = Session["OrderID"].ToString() + "#" + storeID + "#" + portalID + "#" + userName + "#" + customerID + "#" + sessionCode + "#" + Session["IsTestMoneybookers"].ToString() + "#" + CheckOutSessions.Get <int>("GateWay", 0) + "#" + SelectedCurrency;

            var sb = new StringBuilder();
            sb.Append("<html>");
            sb.AppendFormat(@"<body onload='document.forms[""payment""].submit()' >");
            sb.AppendFormat("<form name='payment' action='{0}' method='post'><div sytle='display:none;'>", postURL);
            sb.AppendFormat("<input type=\"hidden\" name=\"pay_to_email\" value=\"" + sf[0].MoneybookersMerchantAccount + "\" />");
            sb.AppendFormat("<input type=\"hidden\" name=\"return_url\" value=\"" + sf[0].MoneybookersSuccessUrl + "\" />");
            sb.AppendFormat("<input type=\"hidden\" name=\"status_url\" value=\"" + sf[0].MoneybookersStatusUrl + "\" />");
            sb.AppendFormat("<input type=\"hidden\" name=\"amount\" value=\"" + Math.Round(amount, 2) + "\"  />");
            sb.AppendFormat("<input type=\"hidden\" name=\"currency\" value=\"" + MainCurrency + "\" />");
            sb.AppendFormat("<input type=\"hidden\" name=\"logo_url\" value=\"" + sf[0].MoneybookersLogoUrl + "\" />");
            sb.AppendFormat("<input type=\"hidden\" name=\"cancel_url\" id=\"cancel_url\" value=\"" + sf[0].MoneybookersCancelUrl + "\" />");
            sb.AppendFormat("<input type=\"hidden\" name=\"merchant_fields\" id=\"merchant_fields\" value=\"field1,field2\"  />");
            sb.AppendFormat("<input type=\"hidden\" name=\"field1\" id=\"field1\" value=\"" + ids + "\" />");
            sb.AppendFormat("<input type=\"hidden\" name=\"field2\" value=\"" + itemidsWithVar + "#" + couponCode + "\" />");
            sb.Append("</div></form>");
            sb.Append("</body>");
            sb.Append("</html>");
            Response.Write(sb.ToString());
            HttpContext.Current.ApplicationInstance.CompleteRequest();
        }
        catch (Exception ex)
        {
            lblnotity.Text    = "Something goes wrong, hit refresh or go back to checkout";
            clickhere.Visible = false;
            ProcessException(ex);
        }
    }
コード例 #28
0
        public void ParseAfterIPN(string postData, AspxCommonInfo aspxCommonObj, string templateName, string addressPath)
        {
            var    ph          = new PayPalHandler();
            string transId     = string.Empty;
            string orderStatus = string.Empty;

            try
            {
                //split response into string array using whitespace delimeter
                String[] stringArray = postData.Split('\n');

                // NOTE:

                /*
                 * loop is set to start at 1 rather than 0 because first
                 * string in array will be single word SUCCESS or FAIL
                 * Only used to verify post data
                 */
                var ot     = new OrderDetailsCollection();
                var odinfo = new OrderDetailsInfo();
                var cms    = new CartManageSQLProvider();
                var cf     = new CommonInfo {
                    StoreID = aspxCommonObj.StoreID, PortalID = aspxCommonObj.PortalID, AddedBy = aspxCommonObj.UserName
                };
                // UpdateOrderDetails
                var objad = new AspxOrderDetails();
                var sqlH  = new SQLHandler();
                // use split to split array we already have using "=" as delimiter

                int i;
                for (i = 1; i < stringArray.Length - 1; i++)
                {
                    String[] stringArray1 = stringArray[i].Split('=');

                    String sKey   = stringArray1[0];
                    String sValue = HttpUtility.UrlDecode(stringArray1[1]);

                    // set string vars to hold variable names using a switch
                    switch (sKey)
                    {
                    case "payment_status":
                        odinfo.ResponseReasonText = Convert.ToString(sValue);
                        orderStatus = Convert.ToString(sValue);
                        break;

                    case "mc_fee":
                        // ph.PaymentFee = Convert.ToDouble(sValue);
                        break;

                    case "payer_email":
                        // ph.PayerEmail = Convert.ToString(sValue);
                        break;

                    case "Tx Token":
                        // ph.TxToken = Convert.ToString(sValue);
                        break;

                    case "txn_id":
                        odinfo.TransactionID = Convert.ToString(sValue);
                        transId = Convert.ToString(sValue);
                        break;
                    }
                }

                ot.ObjCommonInfo = cf;
                //odinfo.OrderStatusID = 8;
                //objad.UpdateOrderDetails(ot);
                if (odinfo.ResponseReasonText.ToLower().Trim() == "completed")
                {
                    if (HttpContext.Current.Session["OrderCollection"] != null)
                    {
                        var orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                        objad.UpdateItemQuantity(orderdata2);
                    }
                }
                cms.ClearCartAfterPayment(aspxCommonObj);

                //invoice  transID
                if (HttpContext.Current.Session["OrderCollection"] != null)
                {
                    var orderdata = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                    orderdata.ObjOrderDetails.OrderStatus = orderStatus;
                    EmailTemplate.SendEmailForOrder(aspxCommonObj.PortalID, orderdata, addressPath, templateName, transId);
                }
                HttpContext.Current.Session.Remove("OrderCollection");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #29
0
    private static void HandleNewOrderNotification(GCheckout.AutoGen.NewOrderNotification inputNewOrderNotification)
    {
        try
        {
            if (inputNewOrderNotification.shoppingcart.merchantprivatedata != null && inputNewOrderNotification.shoppingcart.merchantprivatedata.Any != null && inputNewOrderNotification.shoppingcart.merchantprivatedata.Any.Length > 0)
            {
                //Retrieve data from MerchantPrivateData
                GCheckout.AutoGen.anyMultiple oneAnyMultiple  = inputNewOrderNotification.shoppingcart.merchantprivatedata;
                System.Xml.XmlNode[]          oneXmlNodeArray = oneAnyMultiple.Any;
                foreach (XmlNode xn in oneXmlNodeArray)
                {
                    if (xn.Name == "OrderID")
                    {
                        orderID = Int32.Parse(xn.InnerText.ToString());
                    }

                    if (xn.Name == "userName")
                    {
                        userName = xn.InnerText.ToString();
                    }

                    if (xn.Name == "amount")
                    {
                        totalAmount = decimal.Parse(xn.InnerText.ToString());
                    }

                    if (xn.Name == "selectedCurrency")
                    {
                        selectedCurrency = xn.InnerText.ToString();
                    }

                    if (xn.Name == "portalID")
                    {
                        portalID = int.Parse(xn.InnerText.ToString());
                    }
                    if (xn.Name == "customerID")
                    {
                        customerID = int.Parse(xn.InnerText.ToString());
                    }
                    if (xn.Name == "itemIds")
                    {
                        itemIds = xn.InnerText.ToString();
                    }
                    if (xn.Name == "storeID")
                    {
                        storeID = int.Parse(xn.InnerText.ToString());
                    }
                    if (xn.Name == "couponCode")
                    {
                        couponCode = xn.InnerText.ToString();
                    }
                    if (xn.Name == "sessionCode")
                    {
                        sessionCode = xn.InnerText.ToString();
                    }
                    if (xn.Name == "pgID")
                    {
                        pgID = int.Parse(xn.InnerText.ToString());
                    }
                    if (xn.Name == "MerchantID")
                    {
                        MerchantID = xn.InnerText.ToString();
                    }
                    if (xn.Name == "MerchantKey")
                    {
                        MerchantID = xn.InnerText.ToString();
                    }
                }
                paymentStatus = GCNotificationStatus.Succeeded.ToString();
                transID       = inputNewOrderNotification.googleordernumber;

                if (paymentStatus == "Succeeded")
                {
                    TransactionLogInfo     tinfo = new TransactionLogInfo();
                    TransactionLog         Tlog  = new TransactionLog();
                    OrderDetailsCollection odc   = new OrderDetailsCollection();

                    tinfo.ResponseReasonText = "Succeeded";
                    tinfo.OrderID            = orderID;
                    tinfo.StoreID            = storeID;
                    tinfo.PortalID           = portalID;
                    tinfo.AddedBy            = userName;
                    tinfo.CustomerID         = customerID;
                    tinfo.SessionCode        = sessionCode;
                    tinfo.PaymentGatewayID   = pgID;
                    tinfo.PaymentStatus      = paymentStatus;
                    tinfo.PayerEmail         = "";
                    tinfo.CreditCard         = "";
                    tinfo.TotalAmount        = totalAmount;
                    tinfo.TransactionID      = transID;
                    tinfo.RecieverEmail      = "";
                    tinfo.CurrencyCode       = selectedCurrency;
                    Tlog.SaveTransactionLog(tinfo);

                    GoogleCheckOutHandler.ParseIPN(orderID, transID, paymentStatus, storeID, portalID, userName, customerID, sessionCode);
                    GoogleCheckOutHandler.UpdateItemQuantity(itemIds, couponCode, storeID, portalID, userName);
                    CartManageSQLProvider cms           = new CartManageSQLProvider();
                    AspxCommonInfo        aspxCommonObj = new AspxCommonInfo();
                    aspxCommonObj.CustomerID  = customerID;
                    aspxCommonObj.SessionCode = sessionCode;
                    aspxCommonObj.StoreID     = storeID;
                    aspxCommonObj.PortalID    = portalID;
                    aspxCommonObj.CultureName = null;
                    aspxCommonObj.UserName    = null;
                    cms.ClearCartAfterPayment(aspxCommonObj);
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }

        // TODO: Process the MerchantPrivateData if provided

        foreach (GCheckout.AutoGen.Item oneItem in inputNewOrderNotification.shoppingcart.items)
        {
            // TODO: Get MerchantItemId from shopping cart item (oneItem.merchantitemid) and process it
        }

        // TODO: Add custom processing for this notification type
    }
コード例 #30
0
    protected void SendConfrimMessage(string redirectPat)
    {
        try
        {
            if (Session["OrderID"] != null)
            {
                const int    responseCode       = 1; // response code, defaulted to Invalid
                const string responsereasontext = "Transaction occured successfully";
                const int    responsereasonCode = 1;
                string       paymentmethod      = string.Empty;
                var          orderdata2         = new OrderDetailsCollection();
                if (HttpContext.Current.Session["OrderCollection"] != null)
                {
                    orderdata2 = (OrderDetailsCollection)HttpContext.Current.Session["OrderCollection"];
                }
                string invoice         = orderdata2.ObjOrderDetails.InvoiceNumber;
                var    random          = new Random();
                string purchaseorderNo = (random.Next(0, 1000)).ToString();
                string timeStamp       = ((int)(DateTime.UtcNow - new DateTime(2011, 1, 1)).TotalSeconds).ToString();
                string transID         = (random.Next(99999, 111111)).ToString();
                lblTransaction.Text   = transID;
                lblInvoice.Text       = invoice;
                lblPaymentMethod.Text = "Cash On Delivery";
                lblPaymentStatus.Text = "Successfull";
                lblDateTime.Text      = DateTime.Now.ToString("dddd, dd MMMM yyyy ");
                lblOrderNo.Text       = "#" + Session["OrderID"].ToString();
                AspxCommonInfo aspxCommonObj = new AspxCommonInfo();
                aspxCommonObj.StoreID     = GetStoreID;
                aspxCommonObj.PortalID    = GetPortalID;
                aspxCommonObj.UserName    = GetUsername;
                aspxCommonObj.CustomerID  = GetCustomerID;
                aspxCommonObj.SessionCode = HttpContext.Current.Session.SessionID;
                aspxCommonObj.CultureName = GetCurrentCultureName;
                string result = CashOnDelivery.Parse(transID, invoice, purchaseorderNo, responseCode, responsereasonCode, responsereasontext, aspxCommonObj);
                AspxGiftCardController.IssueGiftCard(orderdata2.LstOrderItemsInfo, false, aspxCommonObj);
                if (orderdata2.GiftCardDetail != null && HttpContext.Current.Session["UsedGiftCard"] != null)
                {
                    AspxGiftCardController.UpdateGiftCardUsage(orderdata2.GiftCardDetail, orderdata2.ObjCommonInfo.StoreID,
                                                               orderdata2.ObjCommonInfo.PortalID, orderdata2.ObjOrderDetails.OrderID, orderdata2.ObjCommonInfo.AddedBy,
                                                               orderdata2.ObjCommonInfo.CultureName);
                    HttpContext.Current.Session.Remove("UsedGiftCard");
                }

                lblerror.Text = result;
                lblerror.Text = GetSageMessage("Payment", "PaymentProcessed");
                var tinfo = new TransactionLogInfo();
                var tlog  = new TransactionLog();

                tinfo.TransactionID = transID;
                tinfo.AuthCode      = "";
                // tinfo.TotalAmount = decimal.Parse(orderdata2.ObjOrderDetails.GrandTotal.ToString());
                tinfo.TotalAmount        = decimal.Parse(Session["GrandTotalAll"].ToString()) * currencyRate;
                tinfo.ResponseCode       = responseCode.ToString();
                tinfo.ResponseReasonText = responsereasontext;
                tinfo.OrderID            = orderdata2.ObjOrderDetails.OrderID;
                tinfo.StoreID            = orderdata2.ObjCommonInfo.StoreID;
                tinfo.PortalID           = orderdata2.ObjCommonInfo.PortalID;
                tinfo.AddedBy            = orderdata2.ObjCommonInfo.AddedBy;
                tinfo.CustomerID         = orderdata2.ObjOrderDetails.CustomerID;
                tinfo.SessionCode        = orderdata2.ObjOrderDetails.SessionCode;
                tinfo.PaymentGatewayID   = orderdata2.ObjOrderDetails.PaymentGatewayTypeID;
                tinfo.PaymentStatus      = "Processed";
                tinfo.CreditCard         = "";
                tinfo.CurrencyCode       = SelectedCurrency;
                tlog.SaveTransactionLog(tinfo);

                var clSes = new AspxCommerceWebService();
                if (Session["IsFreeShipping"] != null)
                {
                    HttpContext.Current.Session.Remove("IsFreeShipping");
                }
                if (Session["DiscountAmount"] != null)
                {
                    HttpContext.Current.Session.Remove("DiscountAmount");
                }
                if (Session["CouponDiscountAmount"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponDiscountAmount");
                }
                if (Session["IsCouponInPercent"] != null)
                {
                    HttpContext.Current.Session.Remove("IsCouponInPercent");
                }
                if (Session["CouponPercentValue"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponPercentValue");
                }
                if (Session["CouponSessionPercentAmount"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponSessionPercentAmount");
                }
                if (Session["CouponSessionAmount"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponSessionAmount");
                }
                if (Session["CouponCode"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponCode");
                }
                if (Session["CouponApplied"] != null)
                {
                    HttpContext.Current.Session.Remove("CouponApplied");
                }
                if (Session["DiscountAll"] != null)
                {
                    HttpContext.Current.Session.Remove("DiscountAll");
                }
                if (Session["TaxAll"] != null)
                {
                    HttpContext.Current.Session.Remove("TaxAll");
                }
                if (Session["ShippingCostAll"] != null)
                {
                    HttpContext.Current.Session.Remove("ShippingCostAll");
                }
                if (Session["GrandTotalAll"] != null)
                {
                    HttpContext.Current.Session.Remove("GrandTotalAll");
                }
                if (Session["Gateway"] != null)
                {
                    HttpContext.Current.Session.Remove("Gateway");
                }

                //invoice  transID

                if (Session["OrderCollection"] != null)
                {
                    var orderdata = (OrderDetailsCollection)Session["OrderCollection"];
                    try
                    {
                        orderdata.ObjOrderDetails.OrderStatus = "Processed";
                        EmailTemplate.SendEmailForOrder(GetPortalID, orderdata, _addressPath, TemplateName, transID);
                    }
                    catch (Exception ex)
                    {
                        lblerror.Text = "";
                        lblerror.Text = GetSageMessage("Payment", "EmailSendOrderProblem");
                        ProcessException(ex);
                    }
                    clSes.ClearSessionVariable("OrderCollection");
                }
            }
            else
            {
                Response.Redirect(_sageRedirectPath, false);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }