示例#1
0
        protected void btnProductKey_OnClick(object sender, EventArgs e)
        {
            SueetiePackageType spt      = (SueetiePackageType)Enum.ToObject(typeof(SueetiePackageType), int.Parse(this.rblPackageTypes.SelectedValue));
            SueetieLicenseType type2    = (SueetieLicenseType)Enum.ToObject(typeof(SueetieLicenseType), int.Parse(this.rblLicenseTypes.SelectedValue));
            CartLink           cartLink = CommerceCommon.GetCartLink((int)spt, (int)type2);

            base.CurrentSueetieProduct = Products.GetSueetieProduct(cartLink.ProductID);
            ProductPurchase productPurchase = new ProductPurchase {
                UserID      = this.ProductKeySueetieUser.UserID,
                CartLinkID  = cartLink.CartLinkID,
                ProductID   = cartLink.ProductID,
                PurchaseKey = CommerceCommon.GeneratePurchaseKey(),
                ActionID    = base.CurrentSueetieProduct.ActionType()
            };
            int            num            = Purchases.RecordPurchase(productPurchase);
            ProductPackage productPackage = CommerceCommon.GetProductPackage(cartLink.ProductID);

            Licenses.CreateProductLicense(new ProductLicense {
                PackageTypeID = productPackage.PackageTypeID, LicenseTypeID = cartLink.LicenseTypeID, Version = productPackage.Version, UserID = this.ProductKeySueetieUser.UserID, CartLinkID = cartLink.CartLinkID, PurchaseID = num, License = LicensingCommon.CreateLicenseKey(type2, spt)
            });
            this.txtKey.Text = LicensingCommon.CreateLicenseKey(type2, spt);
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!this.Page.IsPostBack)
     {
         this.lblPurchaseTitle.Text = SueetieLocalizer.GetMarketplaceString("productpurchase_title_success");
         this.pnlLicenses.Visible   = false;
         this.transactionXID        = base.Request.QueryString["tx"];
         PaymentService primaryPaymentService = CommerceContext.Current.PrimaryPaymentService;
         HttpWebRequest request = (HttpWebRequest)WebRequest.Create(primaryPaymentService.TransactionUrl);
         request.Method      = "POST";
         request.ContentType = "application/x-www-form-urlencoded";
         byte[] bytes = base.Request.BinaryRead(HttpContext.Current.Request.ContentLength);
         string str   = Encoding.ASCII.GetString(bytes) + string.Format("&cmd=_notify-synch&tx={0}&at={1}", this.transactionXID, primaryPaymentService.IdentityToken);
         request.ContentLength = str.Length;
         StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII);
         writer.Write(str);
         writer.Close();
         StreamReader reader = new StreamReader(request.GetResponse().GetResponseStream());
         string       input  = reader.ReadToEnd();
         reader.Close();
         this.lblTransactionXID.Text = this.transactionXID;
         List <string> list = (from s in Regex.Split(input, "\n", RegexOptions.ExplicitCapture)
                               where !string.IsNullOrEmpty(s)
                               select s).ToList <string>();
         if (list[0] == "SUCCESS")
         {
             List <ProductPurchase> list2 = new List <ProductPurchase>();
             List <ProductLicense>  list3 = new List <ProductLicense>();
             this.PaymentProperties = this.CreateDictionary((from t in list
                                                             where t.Contains("=")
                                                             select t).ToList <string>());
             int num        = this.GetNum("num_cart_items");
             int num2       = 0;
             int cartLinkID = -1;
             int num4       = -1;
             this.transactionXID = this.GetString("txn_id");
             for (int i = 1; i <= num; i++)
             {
                 num2       = this.GetNum("quantity".AddItemNum(i));
                 cartLinkID = this.GetNum("item_number".AddItemNum(i));
                 CartLink cartLink = CommerceCommon.GetCartLink(cartLinkID);
                 for (int j = 0; j < num2; j++)
                 {
                     base.CurrentSueetieProduct = Products.GetSueetieProduct(cartLink.ProductID);
                     ProductPurchase item = new ProductPurchase {
                         TransactionXID = this.transactionXID,
                         UserID         = base.CurrentSueetieUserID,
                         CartLinkID     = cartLinkID,
                         ProductID      = cartLink.ProductID,
                         PurchaseKey    = CommerceCommon.GeneratePurchaseKey(),
                         ActionID       = base.CurrentSueetieProduct.ActionType()
                     };
                     list2.Add(item);
                     num4 = Purchases.RecordPurchase(item);
                     if (base.CurrentSueetieProduct.ProductTypeID == 5)
                     {
                         ProductPackage     productPackage = CommerceCommon.GetProductPackage(cartLink.ProductID);
                         SueetiePackageType spt            = (SueetiePackageType)System.Enum.ToObject(typeof(SueetiePackageType), productPackage.PackageTypeID);
                         ProductLicense     license        = new ProductLicense {
                             PackageTypeID = productPackage.PackageTypeID,
                             LicenseTypeID = cartLink.LicenseTypeID,
                             Version       = productPackage.Version,
                             UserID        = base.CurrentSueetieUserID,
                             CartLinkID    = cartLinkID,
                             PurchaseID    = num4,
                             License       = Guid.NewGuid().ToString().ToUpper()
                         };
                         SueetieLicenseType type2 = (SueetieLicenseType)System.Enum.ToObject(typeof(SueetieLicenseType), cartLink.LicenseTypeID);
                         license.License = LicensingCommon.CreateLicenseKey(type2, spt);
                         list3.Add(license);
                         Licenses.CreateProductLicense(license);
                     }
                 }
             }
             this.rptPurchases.DataSource = Purchases.GetPurchasesByTransaction(this.transactionXID);
             this.rptPurchases.DataBind();
             if (list3.Count > 0)
             {
                 this.rptLicenses.DataSource = Licenses.GetLicensesByTransaction(this.transactionXID);
                 this.rptLicenses.DataBind();
                 this.pnlLicenses.Visible = true;
             }
         }
         else
         {
             this.lblPurchaseTitle.Text      = SueetieLocalizer.GetMarketplaceString("productpurchase_title_failure");
             this.pnlLicenses.Visible        = false;
             this.pnlPurchases.Visible       = false;
             this.pnlTransactionCode.Visible = false;
             this.pnlSuccess.Visible         = false;
             this.pnlFailure.Visible         = true;
             MailMessage message = new MailMessage {
                 From = new MailAddress(SiteSettings.Instance.FromEmail, SiteSettings.Instance.FromName)
             };
             MailAddress address = new MailAddress(SiteSettings.Instance.ContactEmail, SiteSettings.Instance.SiteName + SueetieLocalizer.GetMarketplaceString("purchase_failure_email_admin"));
             message.To.Add(address);
             message.Subject = SueetieLocalizer.GetMarketplaceString("purchase_failure_email_subject");
             string str4 = SueetieLocalizer.GetMarketplaceString("purchase_failure_email_firstline") + Environment.NewLine + Environment.NewLine;
             object obj2 = str4 + base.CurrentSueetieUser.UserName.ToString() + " (" + base.CurrentSueetieUser.DisplayName + ")";
             string str3 = string.Concat(new object[] { obj2, Environment.NewLine, DateTime.Now.ToLongDateString(), ' ', DateTime.Now.ToLongTimeString() }) + Environment.NewLine + Environment.NewLine;
             message.Body = str3;
             if (SueetieConfiguration.Get().Core.SendEmails)
             {
                 EmailHelper.AsyncSendEmail(message);
             }
         }
     }
 }