public void SaveMarketplaceEbay()
        {
            int customerId = 1;

            var tokens = new[]
            {
                "AgAAAA**AQAAAA**aAAAAA**/zT8Tw**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wJkYGoD5KHogmdj6x9nY+seQ**kXgBAA**AAMAAA**ZtzWCT7y/CDuAWGaA082vd91NFpT+178ZI43eyd/xsxP+ugZ3XbSslbtCT01q7rzfueXYDYfh7+X09O4lt1DRFvLNmfZjTwsy2U13rLLJLAQoREyEOWerVyZUiBemb0YhSJItaV9NlioKMk4x7wXEnjVThOxfTHSW3KkKQYdwf2itfUM8FGRHrQGpLr+9MVaHAvHk7j6Ns1LV+/S75ylttXIk7m/e8E4qpFlMUqLdgl3xB0pIOc9mnNsQYhHBlNkYzzbi9/44SovH/e730UJGaNI3YiU7xVn6OeedFyUEiOx4cY/eN8Z7lN47ofNyY8j7aUEfvr364pGdVzgqUsBiTzTg8DwrsMcEwaK89eIdiHaaybaKX0W7HM6TwXO/iNgNzR9/RPhpk4qSDuJI2pqJdC+bJ3pL986o52puLcXAAo4X2QyxK/xM3MR79K0XFPgbQ5PlQld8J50VrnIhX62Jur3Ig/LDwga1pTaxYVEZC506nP9lMx0XG8QzfzS6BP5lfPpFXV+7GhlQ7LnQxQDiocaMEOqg9svYFXG4s47Y875Bg4b7kFXGVIQ3TKhOblDJE1ADyb0aZ9GoyUbabYdt3Q8rMi1X+44r9FGGR5UHNopUMM2zOgsVFFgRnkVnJDu/mKUXyZEbKiek8BeDHkv1El/2vOXhI5Ncf1/CMmHleCPAH5Sdo/Q7843WUM+MUd804PHu5bzZI4/pYgelS4AgXhW4wTgoZwGF6WUB7g8GDcQESAIBmRh1vLKPu25gWCN",
                "AgAAAA**AQAAAA**aAAAAA**CzQDUA**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFkIqnCJOFpQydj6x9nY+seQ**kXgBAA**AAMAAA**ahr1JPnT4xKHh6+OIWluq09/FMw3xh7idxmn23CRX1tOkG4F4aJVA1w1Pg0gSupMbufldol55jMP3JyCzKEY233PqLHg0DWQFAf2dZYqw0vK8u5izDCSXANUM66ceANzfO9Zft+ntKFG183jb7vM3l+r1vF1yO37YcD7zPTKppBH59Uq7QFz5VbvvpfwoPJVxrLYg5zOMhsLw9hDz3XpZBKrldeOmYTvCFUTqWpiEgaDz45Y2DRP+3PjBXr457lbkXtVSqYo77xOHzz5E1yL5S2lImd3Ryr3Iay3V68UU7n3JCYpXIXKJE4s9aZu5MEvWHanBl613+vxbX/Cwzib1SfWW6fztwmhpti4J/w2Im8QboJOuccpG+jKvKh+3fKNok5kgUm+9bFyaCqVMWrOMRkgeV46yfbof1rlREQiBZAYqnXbgMkWJR1caKARwkxg0M0vPwMv404g6l3DnxiyAsQvkbhM+wJgQxfyKPW5ZDO7qT4jdvfa+qO+4wSJLDu+ljltX7cKO8o9MuyfrsSk04a+EBi/ayw8eSMhioN6eyqMswySGr7ZHWrMiV0oItl1Hje6KB8hboOQ4SG4B5DwgcDL7VONcHewmqTCh5AN8Nv03YZd0wKa2jdjkL2OB6vlN4qjY3z12eZDLXesCSiO43a9aJuAqczYLkMw3O+nw4h9VNPHjcA00IQmR+PaNSuqLgA+I+S4GLb5MFGVU/MvwG3Dse+lvN8TujgWgmtrdrYKftQCZmiULQ0LszP1w60t",
                "AgAAAA**AQAAAA**aAAAAA**s04FUA**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wGkYWlC5KDpwWdj6x9nY+seQ**kXgBAA**AAMAAA**Z5sECiktbsYxtpGHEeMbkuCtbwRnETUFkqKFSuZ9skyVGGuwLCTPdapIBeFhWptgVUqj0rjds2NXZSk5QXBjmWwQe912xM8ypB0uFsBJ3ux5MRct6UmRqOU5SXfo0aCIqfXLgsx1qU7odZ42Bn/+m0c82rqLlLVA1+PrhMEloPelNJI6mqH7cFbKmIJl8QQ58vs/FjVbDoiU3o5rZwAyKKVLm7ZjM4Ry3tPFUN2zoel9ctS5iFjBe5PbPxZbO3oZIhCgyNiFAT8y9qUJ/ee2rYhu2ivVvisCWeo4ks5Q+6Plp3cQx2cmaxNMehSpm1u8VmsrLYGzoYEu5+DHKhd1Xk/r0IG4tdJLpRwCHLmRJ8NcIBj8HAp9LvgUyYgUh1Y+ofQtbrwxIl6v007Ng0K0Kcj0c4GY2EkdwtKoQUZbGtKxiiYFKabe4ktCrB0V8/s2zNqyhLL2gLmR9unmyeRwyxTKKz8Z2o8/7FKOGHhb7MDN+ATaQhy9MlP4c4TWQcZVQUm62bTRuFt0GUk1mja9nGwi5nGmTnzinGvaE4fFL1wxnBFCbleN8K6U0aUbNqlHiegImAFZu3VetQ7zhtcc52p1in5Q83kAXy25d0YXj2v16fcxdhIXYqf6hxD75bg5cTWrYefaM75tFK9RG+aJEwLRev5AzeCYn/ZWbS6Wq7/LMI90IF1U4Yd/Z4IQmMS/NkZJ4GCMfTHGekbWF7ZZXRPjvqXCsyGbETgANVJq2ozXYby2EcN4KmVslHVDMTin",
                "AgAAAA**AQAAAA**aAAAAA**Q1IuUA**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wJkYSiD5GCoAidj6x9nY+seQ**kXgBAA**AAMAAA**kPXyR8U7iT2Ljf4RgCjM06+VmvifC2biBQRfiAc8AQo5gcBK9wxW1h1J1YiYvaVpiNUnco+pfrBnhli33tyvsN+2u+fslclDnraqKMuf1WmRBoUvBrTDT1wfBEGdLy+U+3BW73imKeJ5PPP4dSrgjYO4xVuFIpY2xos8/MAx7q8YlS3sEgCGrxCCmEjIDGWh3TK5VAyZcFvC22frmTUwerFyAE9DwiTZPGrB0oTIJjwVIERxvRg6yNpks2qh7ne0b7iMYvZjDui/nCZR2+pEd1VTm8hMbyF8RTSqvRT74KQIyepP5VltwZXk5mumyQFv3aCWuFo2aYzJ3Sc7AB5tKigDMqOOEX9i08E7/J1pQ+WFwJpKNwIz4cx4lEyHq6uf5rcuNmBTkyIgiPZqZImv2EwfFSpXbTUAQx1t8gXHVRfzLwl7UdLuN1i6OYtB9ooQOzS10dF/C+ZPDHXf9e2nEpeUNLWeNTgcoRcv/MQgyA7LHzwSvMN8syK0t1Ns0iMpGtZA7xM3T63LZAwb5fYoh2F+HjiB6RIt1IrhSw9mW84NZdM4U6UPT3N4QuCzS9HQ+FkuTuMsh3HilxQkKzs6UOOXJVyGOBrVWo1rYLKkkmwDV9nfS894gWnLgTtWrn+gkkuxmGHMT35UnPhz0D18q8FvrZY5hm0WrGdWfxvYQbRNsgxujkSKJSWDfAJspr6M7GB4Y3Nhdbpx7Gm1fAH8w2Z4Slm494D96DWnu8tjJgbMAyo2XEeDCtkVEATyxCp1",
            };
            //string token = @"AgAAAA**AQAAAA**aAAAAA**O3k6Tw**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wHkYKiDJOLqQmdj6x9nY+seQ**qWEBAA**AAMAAA**nRW2tLgiukfpQJQ6eiLxXbzXO0C7UHhoQMFnXihl+AWomDL6Tw+5IZ/7FZ/EWSjap1znb/GbXnNQxRXJOrmlcBNgdf0FKxvfBjJFq4XSr6X6tjdmIbZLKoX89VrwmRd7Gcf7PuvxQBM0Jncr5LTQ+/ycA2dHcWQ5VFSujWYfn0E6ixMeDtRdUTGhXzng5OOrgTQfZztde6erYLeO5YnaWzSVypoui5tVOBP5EYTHQxzQPOZ1GV0/w7ww5ar3aLnZ56UMfungRscgz5lN+kTo4/lgbgDsv/GUBvUUjb0ZsYEGGJWHUGFK8X7AN40KtcQW9q+TGcgz5QU1G70IGDy+etg3xa9pPmhRA6+ZGbp+cKw8wzZLja/iMz5jEfLlCngBytHSTy4/KRdyLraWpR2ZDNoc0HKjnlew6mDmsGejV6J1EPm/r22vIOzpiPJa4Ndu5kDRISv9FHuUt3fgNANbu0j6abMIAhhb6VS6pby0m5NOxx7SDilEf8iFIMgBJ5U5DV9mXvjmzFNLf+GD6okyJ8uH5MvxRLRBD/PW/ybN5MMRWqF1ZA2NkNCUPKciUNxtIkTrDPc7Nr4nksEoZh+cEPcL9lFVBU8emMjhwF7HIioJMiC7KsOeJ3uCISYZpRwFEPIYzC5Qm3JiuD71T1PBCTKzVfhfcx4XfQyb7HZuhPU6qwkqm1sjoId9mJBGP1+QS85fo9wE8sCeBfZOrfHw89nX2G7chz4/zI5pbomXUAn0Wuqb4wtvQ+fNMWM7ssIp";

            var customer = GetCustomerInfo(customerId);

            Assert.NotNull(customer);

            foreach (var token in tokens)
            {
                var data = new eBaySecurityInfo
                {
                    Token = token
                };

                var info            = EBayRetriveDataHelper.GetCustomerUserInfo(data);
                var marketplaceName = info.UserID;

                EBayRetriveDataHelper.StoreOrUpdateCustomerSecurityInfo(customer, data, marketplaceName);
            }
        }
        }         // CheckTokenStatus

        private DataProviderCreationInfo CreateProviderCreationInfo(eBaySecurityInfo securityInfo)
        {
            var serviceConnectionInfo = this.connectionInfo;
            IServiceTokenProvider serviceTokenProvider = new ServiceTokenProviderCustom(securityInfo.Token);
            IEbayServiceProvider  serviceProvider      = new EbayTradingServiceProvider(serviceConnectionInfo);

            return(new DataProviderCreationInfo(serviceProvider)
            {
                ServiceTokenProvider = serviceTokenProvider,
                Settings = this.settings
            });
        }         // CreateProviderCreationInfo
        private DataProviderCreationInfo CreateProviderCreationInfo(eBaySecurityInfo securityInfo)
        {
            var ebayConnectionInfo = ObjectFactory.GetInstance <IEbayMarketplaceTypeConnection>();
            var connectionInfo     = eBayServiceHelper.CreateConnection(ebayConnectionInfo);;

            IServiceTokenProvider serviceTokenProvider = new ServiceTokenProviderCustom(securityInfo.Token);
            IEbayServiceProvider  serviceProvider      = new EbayTradingServiceProvider(connectionInfo);

            return(new DataProviderCreationInfo(serviceProvider)
            {
                ServiceTokenProvider = serviceTokenProvider,
                Settings = ObjectFactory.GetInstance <IEbayMarketplaceSettings>()
            });
        }
Example #4
0
        public static void TestStoreCustomerSecurityData(int customerId, string token, string marketplaceName = null)
        {
            var databaseCustomer = GetCustomerInfo(customerId);

            var data = new eBaySecurityInfo
            {
                Token = token
            };

            if (string.IsNullOrEmpty(marketplaceName))
            {
                var info = EBayRetriveDataHelper.GetCustomerUserInfo(data);
                marketplaceName = info.UserID;
            }
            EBayRetriveDataHelper.StoreOrUpdateCustomerSecurityInfo(databaseCustomer, data, marketplaceName);
        }
        /// <summary>
        /// Checking if during account info retrieve there is an exception with following data:
        /// ErrorCode: "332"
        /// LongMessage: "Your account has not been activated yet. Accounts are not accessible until an actual debit or credit has first been posted to the account, even though you may have already filled out our account creation form."
        /// SeverityCode: Error
        /// ShortMessage: "Your account has not been created."
        /// If it is returns false else true
        /// </summary>
        /// <param name="eBaySecurityInfo"></param>
        /// <returns>false if account is not activated</returns>
        public bool ValidateAccount(eBaySecurityInfo eBaySecurityInfo)
        {
            var creationInfo = CreateProviderCreationInfo(eBaySecurityInfo);
            var getAccount   = new DataProviderGetAccount(creationInfo);

            try
            {
                getAccount.GetAccount();
            }
            catch (Exception ex)
            {
                var inner = ex.InnerException;
                if (inner != null && typeof(FailServiceRequestException) == inner.GetType())
                {
                    var errorCodes = ((FailServiceRequestException)inner).ResultInfoError.Errors.Select(x => new{ x.ErrorCode, x.LongMessage });
                    if (errorCodes.Any(x => x.ErrorCode == "332"))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
        }         // GetTopSealedProductItems

        public ResultInfoEbayUser GetCustomerUserInfo(eBaySecurityInfo data)
        {
            DataProviderCreationInfo info = CreateProviderCreationInfo(data);

            return(GetCustomerUserInfo(info));
        }         // GetCustomerUserInfo
Example #7
0
        public JsonResult FetchToken(string username)
        {
            try {
                var customer = this.context.Customer;
                if (customer == null)
                {
                    Log.Warn("Customer is not authorized in system");
                    return(Json(new { error = "Customer is not authorized in system" }, JsonRequestBehavior.AllowGet));
                }

                var ebay = new eBayDatabaseMarketPlace();

                var sid      = TempData["SID"] as string;
                var isUpdate = TempData["isUpdate"] is bool && (bool)TempData["isUpdate"];

                if (string.IsNullOrEmpty(sid))
                {
                    Log.Warn("Sid is empty");
                    return(Json(new { error = "Username is empty" }, JsonRequestBehavior.AllowGet));
                }
                if (string.IsNullOrEmpty(username))
                {
                    Log.Warn("Username is empty");
                    return(Json(new { error = "Username is empty" }, JsonRequestBehavior.AllowGet));
                }
                bool             isValid          = false;
                eBaySecurityInfo eBaySecurityInfo = null;
                try {
                    Log.InfoFormat("Saving sid {0} for username {1}", sid, username);
                    var token = this.eBayServiceHelper.FetchToken(sid);
                    Log.InfoFormat("Token {0} was generated.", token);

                    eBaySecurityInfo = new eBaySecurityInfo {
                        Token = token
                    };

                    isValid = this.eBayServiceHelper.ValidateAccount(eBaySecurityInfo);
                } catch (Exception ex) {
                    Log.Warn("Failed fetching token", ex);
                }

                if (!isValid)
                {
                    Log.WarnFormat("eBay account has not been activated yet");
                    return(Json(new { error = "Your account has not been activated yet. Accounts are not accessible until an actual debit or credit has first been posted to the account, even though you may have already filled out our account creation form." }, JsonRequestBehavior.AllowGet));
                }

                this.mpChecker.Check(ebay.InternalId, customer, username);

                var mp = this.helper.SaveOrUpdateCustomerMarketplace(username, ebay, eBaySecurityInfo, customer);

                this.session.Flush();

                if (!isUpdate)
                {
                    this.serviceClient.Instance.UpdateMarketplace(this.context.Customer.Id, mp.Id, true, this.context.UserId);
                }

                this.customers.SaveOrUpdate(customer);

                return(Json(new { msg = string.Format("Congratulations. Your shop was {0} successfully.", isUpdate ? "updated" : "added") }, JsonRequestBehavior.AllowGet));
            } catch (MarketPlaceAddedByThisCustomerException) {
                return(Json(new { error = DbStrings.StoreAddedByYou }, JsonRequestBehavior.AllowGet));
            } catch (MarketPlaceIsAlreadyAddedException) {
                return(Json(new { error = DbStrings.StoreAlreadyExistsInDb }, JsonRequestBehavior.AllowGet));
            } catch (Exception e) {
                Log.Error(e);
                return(Json(new { error = e.Message }, JsonRequestBehavior.AllowGet));
            }
        }