def get(self):
        #logging.debug("===== VIP Upgrade Script Launched =====")

        tVip = VipSubscription()
        tSubscriptionTierGrades = {
            "Tier1": ("Tier0", (0, 30)),
            "Tier2": ("Tier1", (31, 60)),
            "Tier3": ("Tier2", (61, 120)),
            "Tier4": ("Tier3", (121, 5000))
        }

        tSubscriptionTierGrades = TierContainer.GetVipTierInfo()
        tSortedKeys = sorted(tSubscriptionTierGrades.keys())

        #logging.debug("Tiers: " + str(tSortedKeys))

        for tier in tSortedKeys:
            #logging.debug("Tier: " + str(tier))

            tVipSubQuery = VipSubscription.all()
            tVipSubQuery.filter("subscriptionAutoState", tier)
            tVipSubQuery.filter("subscriptionManualState", tier)
            tVipSubQuery.filter("subscriptionNeedsUpgrade", True)

            tVipList = tVipSubQuery.fetch(limit=100)

            #logging.debug("Vip List: " + str(tVipList))

            for tVipSub in tVipList:
                tVipSub.subscriptionNeedsUpgrade = False
                tVipSub.put()
 def GetVips(tier):
     tVip = VipSubscription()
     tVipSubQuery = VipSubscription.all()
     tVipSubQuery.filter("subscriptionNeedsCancel", True)
     tVipSubQuery.filter("subscriptionAutoState", tier)
     tVipSubQuery.order("subscriptionEnd")
     tTierVips = tVipSubQuery.fetch(limit=100)
     tDic = {tier: tTierVips}
     return tDic
    def get(self):
        #logging.debug("===== VIP Upgrade Monitor Launched =====")

        tVip = VipSubscription()
        tSubscriptionTierGrades = {
            "Tier1": ("Tier0", (0, 30)),
            "Tier2": ("Tier1", (31, 60)),
            "Tier3": ("Tier2", (61, 120)),
            "Tier4": ("Tier3", (121, 5000))
        }

        tSubscriptionTierGrades = TierContainer.GetVipTierInfo()
        tSortedKeys = sorted(tSubscriptionTierGrades.keys())

        #logging.debug("Tiers: " + str(tSortedKeys))

        for tier in tSortedKeys:
            #establish parameters for vips that need upgrading
            tMinDays = tSubscriptionTierGrades[tier][1][0]
            tMaxDays = tSubscriptionTierGrades[tier][1][1]
            tOldTier = tSubscriptionTierGrades[tier][0]

            #logging.debug("Old Tier: " + str(tOldTier))
            #logging.debug("Min Days: " + str(tMinDays))
            #logging.debug("New Tier: " + str(tier))
            #logging.debug("Max Days: " + str(tMaxDays))

            tMinDaysAgo = TimeHelperMethods.DaysAgo(tMinDays)
            tMaxDaysAgo = TimeHelperMethods.DaysAgo(tMaxDays)

            #logging.debug("Min Days Ago: " + str(tMinDaysAgo))
            #logging.debug("Max Days Ago: " + str(tMaxDaysAgo))

            tVipSubQuery = VipSubscription.all()
            tVipSubQuery.filter("subscriptionStart <=", tMinDaysAgo)
            tVipSubQuery.filter("subscriptionStart >=", tMaxDaysAgo)
            tVipSubQuery.filter("subscriptionIsActive", True)
            tVipSubQuery.filter("subscriptionAutoState", tOldTier)

            tVipList = tVipSubQuery.fetch(limit=100)

            #logging.debug("Vip List: " + str(tVipList))

            #these are vips that need to be auto-updated
            if (tVipList != None and len(tVipList) > 0):
                for tVip in tVipList:
                    if (tVip.subscriptionAutoState
                            == tVip.subscriptionManualState
                            and tVip.subscriptionManualState != 'Tier0'):
                        if (tVip.subscriptionNeedsUpgrade != False):
                            tVip.subscriptionNeedsUpgrade = False
                            tVip.put()
                    else:
                        tVip.subscriptionAutoState = tier
                        tVip.subscriptionNeedsUpgrade = True
                        tVip.put()
 def GetVips(tier):
     tVip = VipSubscription()
     tVipSubQuery = VipSubscription.all()
     tVipSubQuery.filter("subscriptionIsActive", True)
     tVipSubQuery.filter("subscriptionAutoState", tier)
     tVipSubQuery.filter("subscriptionNeedsUpgrade", True)
     tVipSubQuery.order("subscriptionStart")
     tTierVips = tVipSubQuery.fetch(limit=100)
     tDic = {tier: tTierVips}
     return tDic
Example #5
0
 def GetVips(tier):
     tVip = VipSubscription()
     tVipSubQuery = VipSubscription.all()
     tVipSubQuery.filter("subscriptionIsActive", True)
     tVipSubQuery.filter("subscriptionManualState", tier)
     tVipSubQuery.order("subscriptionStart")
     tTierVips = tVipSubQuery.fetch(limit=500)
     #logging.debug("Tier " + tier + " vips")
     #logging.debug(str(tTierVips))
     tDic = {tier: tTierVips}
     return tDic
 def GetContext(self):
     tVip = VipSubscription()
     
     tVipQuery = VipSubscription.all()
     tVipQuery.filter("subscriptionAutoState", "Tier0")
     
     tVips = tVipQuery.fetch(limit = 300)
     
     for tVip in tVips:
         tVip.subscriptionAutoState = "Tier0"
         tVip.put()
     
     return {}
    def get(self):
        #logging.debug("===== VIP Upgrade Monitor Launched =====")
        
        tVip = VipSubscription()
        tSubscriptionTierGrades = {
                                "Tier1": ("Tier0", (0, 30)),
                                "Tier2": ("Tier1", (31, 60)),
                                "Tier3": ("Tier2", (61, 120)),
                                "Tier4": ("Tier3", (121, 5000))
                                }
        
        tSubscriptionTierGrades = TierContainer.GetVipTierInfo()
        tSortedKeys = sorted(tSubscriptionTierGrades.keys())
        
        #logging.debug("Tiers: " + str(tSortedKeys))
        
        for tier in tSortedKeys:
            #establish parameters for vips that need upgrading
            tMinDays = tSubscriptionTierGrades[tier][1][0]
            tMaxDays = tSubscriptionTierGrades[tier][1][1]
            tOldTier = tSubscriptionTierGrades[tier][0]

            #logging.debug("Old Tier: " + str(tOldTier))   
            #logging.debug("Min Days: " + str(tMinDays))
            #logging.debug("New Tier: " + str(tier))         
            #logging.debug("Max Days: " + str(tMaxDays))
            
            tMinDaysAgo = TimeHelperMethods.DaysAgo(tMinDays)
            tMaxDaysAgo = TimeHelperMethods.DaysAgo(tMaxDays)
            
            #logging.debug("Min Days Ago: " + str(tMinDaysAgo))
            #logging.debug("Max Days Ago: " + str(tMaxDaysAgo))
            
            tVipSubQuery = VipSubscription.all()
            tVipSubQuery.filter("subscriptionStart <=", tMinDaysAgo)
            tVipSubQuery.filter("subscriptionStart >=", tMaxDaysAgo)
            tVipSubQuery.filter("subscriptionIsActive", True)
            tVipSubQuery.filter("subscriptionAutoState", tOldTier)
            
            tVipList = tVipSubQuery.fetch(limit=100)
            
            #logging.debug("Vip List: " + str(tVipList))
            
            #these are vips that need to be auto-updated
            if(tVipList != None and len(tVipList) > 0):
                for tVip in tVipList:
                    if (tVip.subscriptionAutoState == tVip.subscriptionManualState and tVip.subscriptionManualState != 'Tier0'):
                        if (tVip.subscriptionNeedsUpgrade != False):
                            tVip.subscriptionNeedsUpgrade = False
                            tVip.put()
                    else:
                        tVip.subscriptionAutoState = tier
                        tVip.subscriptionNeedsUpgrade = True
                        tVip.put()
 def PostContext(self):
     tResponse = {}
     tResponse['tResponseText'] = ""
     tPaypal = VipCancelPaypalAjax()
     tResultDictionary = {}
     tPaypalPayload = {}        
     tPayload = {}
     
     pSubscriptionKey = str(self.request.get('key'))
     tSubscription = VipSubscription()
     try:
         tSubscription = VipSubscription.get(pSubscriptionKey)
     except:
         tResponse['tResponseText'] = "Not Found"
         return tResponse
 def PostContext(self):
     tResponse = {}
     tResponse['tResponseText'] = ""
     tPaypal = VipCancelPaypalAjax()
     tResultDictionary = {}
     tPaypalPayload = {}        
     tPayload = {}
     
     pSubscriptionKey = str(self.request.get('key'))
     tSubscription = VipSubscription()
     try:
         tSubscription = VipSubscription.get(pSubscriptionKey)
     except:
         tResponse['tResponseText'] = "Not Found"
         return tResponse
     #logging.debug("Subscription found with owner: " + tSubscription.subscriptionOwner)
     
     if (tSubscription):            
                 
         tPaypalPayload['METHOD'] = "ManageRecurringPaymentsProfileStatus"
         tPaypalPayload['PROFILEID'] = str(tSubscription.subscriptionId) 
         tPaypalPayload['ACTION'] = 'Cancel'
         
         tPayloadEncoded = tPaypal.GeneratePayload(tPaypalPayload)                
         
         request_cookies = mechanize.CookieJar()
         request_opener = mechanize.build_opener(mechanize.HTTPCookieProcessor(request_cookies))
         request_opener.addheaders = [('Content-Type', 'application/x-www-form-urlencoded')]
         mechanize.install_opener(request_opener)
             
         tResponse = mechanize.urlopen(url = tUrl, timeout = 25.0, data = tPayloadEncoded)
         tResult = str(urllib.unquote(tResponse.read()))
         
         #logging.debug("Mechanize Package")
         #logging.debug("Url: " + tUrl)
         #logging.debug("Data: " + str(tPaypalPayload))
         #logging.debug("Response: " + tResult)
         
         tResultSplit = tResult.split('&')
         
         for tPair in tResultSplit:
             tSplitPair = tPair.split("=")
             tResultDictionary[tSplitPair[0]] = tSplitPair[1]
         
         tResponse['tResponseText'] = "Cancelled"
         
         tSubscription.subscriptionIsActive = False
         tSubscription.subscriptionEnd = datetime.datetime.now()        
         tSubscription.subscriptionNeedsUpgrade = False
         tSubscription.subscriptionNeedsCancel = False
         tSubscription.put()    
         
         tSubscriber = VipSubscriber()
         tSubscriber.subscriberActiveSubscription = ""
         tSubscriber.subscriberHasActiveSubscription = False
         tSubscriber.put()
         
     return tResponse
Example #10
0
    def GetContext(self):
        tContext = {}

        tDic = VipList.GetVips("Tier1")
        tSubList = []
        tSubscription = VipSubscription()
        tSubscriber = VipSubscriber()

        for tSubscription in tDic["Tier1"]:
            tSubscriber = VipSubscriber.GetSubscriberById(
                tSubscription.subscriptionOwner)
            tTuple = (tSubscriber, tSubscription)
            #logging.debug("Subscription: " + tSubscription.subscriptionOwner)
            #logging.debug("Subscriber: " + tSubscriber.subscriberEmail)
            tSubList.append(tTuple)

        tDic["Tier1"] = tSubList
        tContext.update(tDic)

        tDic = VipList.GetVips("Tier2")
        tSubList = []
        for tSubscription in tDic["Tier2"]:
            tSubscriber = VipSubscriber.GetSubscriberById(
                tSubscription.subscriptionOwner)
            tTuple = (tSubscriber, tSubscription)
            #logging.debug("Subscription: " + tSubscription.subscriptionOwner)
            #logging.debug("Subscriber: " + tSubscriber.subscriberEmail)
            tSubList.append(tTuple)

        tDic["Tier2"] = tSubList
        tContext.update(tDic)

        tDic = VipList.GetVips("Tier3")
        tSubList = []
        for tSubscription in tDic["Tier3"]:
            tSubscriber = VipSubscriber.GetSubscriberById(
                tSubscription.subscriptionOwner)
            tTuple = (tSubscriber, tSubscription)
            #logging.debug("Subscription: " + tSubscription.subscriptionOwner)
            #logging.debug("Subscriber: " + tSubscriber.subscriberEmail)
            tSubList.append(tTuple)

        tDic["Tier3"] = tSubList
        tContext.update(tDic)

        tDic = VipList.GetVips("Tier4")
        tSubList = []
        for tSubscription in tDic["Tier4"]:
            tSubscriber = VipSubscriber.GetSubscriberById(
                tSubscription.subscriptionOwner)
            tTuple = (tSubscriber, tSubscription)
            #logging.debug("Subscription: " + tSubscription.subscriptionOwner)
            #logging.debug("Subscriber: " + tSubscriber.subscriberEmail)
            tSubList.append(tTuple)

        tDic["Tier4"] = tSubList
        tContext.update(tDic)
        #logging.debug(str(tContext))

        return tContext
 def get(self):
     #logging.debug("===== VIP Upgrade Script Launched =====")
     
     tVip = VipSubscription()
     tSubscriptionTierGrades = {
                             "Tier1": ("Tier0", (0, 30)),
                             "Tier2": ("Tier1", (31, 60)),
                             "Tier3": ("Tier2", (61, 120)),
                             "Tier4": ("Tier3", (121, 5000))
                             }
     
     tSubscriptionTierGrades = TierContainer.GetVipTierInfo()
     tSortedKeys = sorted(tSubscriptionTierGrades.keys())
     
     #logging.debug("Tiers: " + str(tSortedKeys))
     
     for tier in tSortedKeys:
         #logging.debug("Tier: " + str(tier))
         
         tVipSubQuery = VipSubscription.all()
         tVipSubQuery.filter("subscriptionAutoState", tier)
         tVipSubQuery.filter("subscriptionManualState", tier)
         tVipSubQuery.filter("subscriptionNeedsUpgrade", True)
         
         tVipList = tVipSubQuery.fetch(limit=100)
         
         #logging.debug("Vip List: " + str(tVipList))
         
         for tVipSub in tVipList:
             tVipSub.subscriptionNeedsUpgrade = False
             tVipSub.put()
Example #12
0
    def GetContext(self):
        tContext = {}
        tVipList = []

        tVipKey = urllib.unquote(self.request.get('key'))
        if (tVipKey != None and len(tVipKey) > 0):
            tVip = VipSub.get(tVipKey)
            tContext['tSub'] = tVip
        return tContext
 def GetVips(tier):
     tVip = VipSubscription()
     tVipSubQuery = VipSubscription.all()
     tVipSubQuery.filter("subscriptionNeedsCancel", True)
     tVipSubQuery.filter("subscriptionAutoState", tier)
     tVipSubQuery.order("subscriptionEnd")
     tTierVips = tVipSubQuery.fetch(limit=100)
     tDic = { tier : tTierVips }
     return tDic
 def GetContext(self):
     tContext = {}
     tVipList = []
     
     tVipKey = urllib.unquote(self.request.get('key'))
     if(tVipKey != None and len(tVipKey) > 0):
         tVip = VipSub.get(tVipKey)
         tContext['tSub'] = tVip
     return tContext
Example #15
0
    def ProcessSubscription(self, pArgumentDic):
        tVipSubscriber = VipSubscriber()
        tVipSub = VipSubscription()
        tVipPayment = VipPayment()
        tLogList = []

        tOwnerEmail = pArgumentDic["payer_email"]
        tOwnerId = pArgumentDic["payer_id"]
        tVipSubscriber = VipSubscriber.GetSubscriberByIdAndEmail(tOwnerId, tOwnerEmail)
        tVipSubs = VipSubscription.GetActiveSubscriptionsByOwner(tOwnerId)

        if tVipSubs != None and len(tVipSubs) > 0:
            tVipSub = tVipSubs[0]
            tVipSub.subscriptionIsActive = True
            tLogList = tVipSub.subscriptionLog
            tLogList.append("Paid: " + str(datetime.datetime.now()) + " with transaction id " + pArgumentDic["txn_id"])
            tVipSub.subscriptionLog = tLogList
        else:
            tVipSub.subscriptionAutoState = "Tier0"
            tVipSub.subscriptionId = pArgumentDic["subscr_id"]
            tLogList = tVipSub.subscriptionLog
            tLogList.append(
                "Started: " + str(datetime.datetime.now()) + " with transaction id " + pArgumentDic["txn_id"]
            )
            tVipSub.subscriptionLog = tLogList
            tVipSub.subscriptionNeedsUpgrade = True
            tVipSub.subscriptionOwner = tOwnerId

        tVipSub.subscriptionIsActive = True
        tSubKey = str(tVipSub.put())

        tVipSubscriber.subscriberHasActiveSubscription = True
        tVipSubscriber.subscriberActiveSubscription = tSubKey
        tSubList = []
        tSubList = tVipSubscriber.subscriberSubscriptions
        tSubList.append(tSubKey)
        tVipSubscriber.put()

        if "payment_gross" in pArgumentDic.keys():
            tVipPayment.paymentAmount = pArgumentDic["payment_gross"]

        tVipPayment.paymentEmail = tOwnerEmail
        tVipPayment.paymentPaypalId = tOwnerId
        tVipPayment.put()
 def GetVips(tier):
     tVip = VipSubscription()
     tVipSubQuery = VipSubscription.all()
     tVipSubQuery.filter("subscriptionIsActive", True)
     tVipSubQuery.filter("subscriptionAutoState", tier)
     tVipSubQuery.filter("subscriptionNeedsUpgrade", True)
     tVipSubQuery.order("subscriptionStart")
     tTierVips = tVipSubQuery.fetch(limit=100)
     tDic = {tier: tTierVips}
     return tDic
 def GetVips(tier):
     tVip = VipSubscription()
     tVipSubQuery = VipSubscription.all()
     tVipSubQuery.filter("subscriptionIsActive", True)
     tVipSubQuery.filter("subscriptionManualState", tier)
     tVipSubQuery.order("subscriptionStart")
     tTierVips = tVipSubQuery.fetch(limit=500)
     #logging.debug("Tier " + tier + " vips")
     #logging.debug(str(tTierVips))
     tDic = { tier : tTierVips }
     return tDic
    def PostContext(self):
        tResponse = {}
        tResponse["tResponseText"] = ""
        tPaypal = VipCancelPaypalAjax()
        tResultDictionary = {}
        tPaypalPayload = {}
        tPayload = {}

        pSubscriptionKey = str(self.request.get("key"))
        tSubscription = VipSubscription()
        try:
            tSubscription = VipSubscription.get(pSubscriptionKey)
        except:
            tResponse["tResponseText"] = "Not Found"
            return tResponse
    def GetContext(self):
        tVip = VipSubscription()

        tVipQuery = VipSubscription.all()
        tVipQuery.filter("subscriptionAutoState", "Tier0")

        tVips = tVipQuery.fetch(limit=300)

        for tVip in tVips:
            tVip.subscriptionAutoState = "Tier0"
            tVip.put()

        return {}
Example #20
0
    def ProcessSubscriptionCancellation(self, pArgumentDic):
        tVipSubscriber = VipSubscriber()
        tVipSub = VipSubscription()
        tVipPayment = VipPayment()
        tLogList = []

        tOwnerEmail = pArgumentDic['payer_email']
        tOwnerId = pArgumentDic['payer_id']

        tVipSubList = VipSubscription.GetActiveSubscriptionsByOwner(tOwnerId)

        if (tVipSubList != None):
            if (len(tVipSubList) > 0):
                tVipSub = tVipSubList[0]
                tVipSub.subscriptionIsActive = False
                tVipSub.subscriptionEnd = datetime.datetime.now()
                tVipSub.subscriptionNeedsCancel = True
                tVipSub.put()

        tVipSubscriber.subscriberHasActiveSubscription = False
        tVipSubscriber.subscriberActiveSubscription = ""
        tVipSubscriber.put()
Example #21
0
 def post(self):
     tResponse = {}
     tResponse['tResponseText'] = ""
     
     pSubscriptionKey = str(self.request.get('key'))
     tSubscription = VipSubscription()
     try:
         tSubscription = VipSubscription.get(pSubscriptionKey)
     except:
         tResponse['tResponseText'] = "Not Found"
         return tResponse
     #logging.debug("Subscription found with owner: " + tSubscription.subscriptionOwner)
     tier = ""
     if (tSubscription):
         tSubscription.subscriptionNeedsUpgrade = False
         tSubscription.subscriptionNeedsCancel = False
         tSubscription.put()
     #logging.debug("Subscription Cancelled")
     
     tResponse['tResponseText'] = "Cancelled"
     
     return tResponse        
Example #22
0
    def ProcessSubscriptionCancellation(self, pArgumentDic):
        tVipSubscriber = VipSubscriber()
        tVipSub = VipSubscription()
        tVipPayment = VipPayment()
        tLogList = []

        tOwnerEmail = pArgumentDic["payer_email"]
        tOwnerId = pArgumentDic["payer_id"]

        tVipSubList = VipSubscription.GetActiveSubscriptionsByOwner(tOwnerId)

        if tVipSubList != None:
            if len(tVipSubList) > 0:
                tVipSub = tVipSubList[0]
                tVipSub.subscriptionIsActive = False
                tVipSub.subscriptionEnd = datetime.datetime.now()
                tVipSub.subscriptionNeedsCancel = True
                tVipSub.put()

        tVipSubscriber.subscriberHasActiveSubscription = False
        tVipSubscriber.subscriberActiveSubscription = ""
        tVipSubscriber.put()
Example #23
0
    def ProcessSubscription(self, pArgumentDic):
        tVipSubscriber = VipSubscriber()
        tVipSub = VipSubscription()
        tVipPayment = VipPayment()
        tLogList = []

        tOwnerEmail = pArgumentDic['payer_email']
        tOwnerId = pArgumentDic['payer_id']
        tVipSubscriber = VipSubscriber.GetSubscriberByIdAndEmail(
            tOwnerId, tOwnerEmail)
        tVipSubs = VipSubscription.GetActiveSubscriptionsByOwner(tOwnerId)

        if (tVipSubs != None and len(tVipSubs) > 0):
            tVipSub = tVipSubs[0]
            tVipSub.subscriptionIsActive = True
            tLogList = tVipSub.subscriptionLog
            tLogList.append("Paid: " + str(datetime.datetime.now()) +
                            " with transaction id " + pArgumentDic['txn_id'])
            tVipSub.subscriptionLog = tLogList
        else:
            tVipSub.subscriptionAutoState = "Tier0"
            tVipSub.subscriptionId = pArgumentDic['subscr_id']
            tLogList = tVipSub.subscriptionLog
            tLogList.append("Started: " + str(datetime.datetime.now()) +
                            " with transaction id " + pArgumentDic['txn_id'])
            tVipSub.subscriptionLog = tLogList
            tVipSub.subscriptionNeedsUpgrade = True
            tVipSub.subscriptionOwner = tOwnerId

        tVipSub.subscriptionIsActive = True
        tSubKey = str(tVipSub.put())

        tVipSubscriber.subscriberHasActiveSubscription = True
        tVipSubscriber.subscriberActiveSubscription = tSubKey
        tSubList = []
        tSubList = tVipSubscriber.subscriberSubscriptions
        tSubList.append(tSubKey)
        tVipSubscriber.put()

        if ('payment_gross' in pArgumentDic.keys()):
            tVipPayment.paymentAmount = pArgumentDic['payment_gross']

        tVipPayment.paymentEmail = tOwnerEmail
        tVipPayment.paymentPaypalId = tOwnerId
        tVipPayment.put()
    def PostContext(self):
        tResponse = {}
        tResponse['tResponseText'] = ""
        tPaypal = VipCancelPaypalAjax()
        tResultDictionary = {}
        tPaypalPayload = {}
        tPayload = {}

        pSubscriptionKey = str(self.request.get('key'))
        tSubscription = VipSubscription()
        try:
            tSubscription = VipSubscription.get(pSubscriptionKey)
        except:
            tResponse['tResponseText'] = "Not Found"
            return tResponse
        #logging.debug("Subscription found with owner: " + tSubscription.subscriptionOwner)

        if (tSubscription):

            tPaypalPayload['METHOD'] = "ManageRecurringPaymentsProfileStatus"
            tPaypalPayload['PROFILEID'] = str(tSubscription.subscriptionId)
            tPaypalPayload['ACTION'] = 'Cancel'

            tPayloadEncoded = tPaypal.GeneratePayload(tPaypalPayload)

            request_cookies = mechanize.CookieJar()
            request_opener = mechanize.build_opener(
                mechanize.HTTPCookieProcessor(request_cookies))
            request_opener.addheaders = [('Content-Type',
                                          'application/x-www-form-urlencoded')]
            mechanize.install_opener(request_opener)

            tResponse = mechanize.urlopen(url=tUrl,
                                          timeout=25.0,
                                          data=tPayloadEncoded)
            tResult = str(urllib.unquote(tResponse.read()))

            #logging.debug("Mechanize Package")
            #logging.debug("Url: " + tUrl)
            #logging.debug("Data: " + str(tPaypalPayload))
            #logging.debug("Response: " + tResult)

            tResultSplit = tResult.split('&')

            for tPair in tResultSplit:
                tSplitPair = tPair.split("=")
                tResultDictionary[tSplitPair[0]] = tSplitPair[1]

            tResponse['tResponseText'] = "Cancelled"

            tSubscription.subscriptionIsActive = False
            tSubscription.subscriptionEnd = datetime.datetime.now()
            tSubscription.subscriptionNeedsUpgrade = False
            tSubscription.subscriptionNeedsCancel = False
            tSubscription.put()

            tSubscriber = VipSubscriber()
            tSubscriber.subscriberActiveSubscription = ""
            tSubscriber.subscriberHasActiveSubscription = False
            tSubscriber.put()

        return tResponse
    def PostContext(self):
        tResponse = {}
        tResponse['tResponseText'] = ""

        pSubscriptionKey = str(self.request.get('key'))
        tSubscription = VipSubscription()
        try:
            tSubscription = VipSubscription.get(pSubscriptionKey)
        except:
            tResponse['tResponseText'] = "Not Found"
            return tResponse
        #logging.debug("Subscription found with owner: " + tSubscription.subscriptionOwner)
        tier = ""
        if (tSubscription):
            #logging.debug("Manual State: " + tSubscription.subscriptionManualState)
            #logging.debug("Needs Upgrade: " + str(tSubscription.subscriptionNeedsUpgrade))
            if (tSubscription.subscriptionManualState == "Tier0"):
                tSubscription.subscriptionManualState = "Tier1"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 1"
                tSubscription.put()
            elif (tSubscription.subscriptionManualState == "Tier1"):
                tSubscription.subscriptionManualState = "Tier2"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 2"
                tSubscription.put()
            elif (tSubscription.subscriptionManualState == "Tier2"):
                tSubscription.subscriptionManualState = "Tier3"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 3"
                tSubscription.put()
            elif (tSubscription.subscriptionManualState == "Tier3"):
                tSubscription.subscriptionManualState = "Tier4"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 4"
                tSubscription.put()
            elif (tSubscription.subscriptionManualState == "Tier4"):
                tSubscription.subscriptionManualState = "Tier4"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 4"
                tSubscription.put()
            elif (tSubscription.subscriptionManualState ==
                  tSubscription.subscriptionAutoState):
                if (tSubscription.subscriptionNeedsUpgrade == True):
                    tSubscription.subscriptionNeedsUpgrade = False
                    tSubscription.put()
            #logging.debug("Manual State: " + tSubscription.subscriptionManualState)
            #logging.debug("Needs Upgrade: " + str(tSubscription.subscriptionNeedsUpgrade))
        #logging.debug("Subscription Saved at Tier " + tier)

        tResponse['tResponseText'] = "=> " + tier

        return tResponse
    def PostContext(self):
        tResponse = {}
        tResponse["tResponseText"] = ""

        pSubscriptionKey = str(self.request.get("key"))
        tSubscription = VipSubscription()
        try:
            tSubscription = VipSubscription.get(pSubscriptionKey)
        except:
            tResponse["tResponseText"] = "Not Found"
            return tResponse
        # logging.debug("Subscription found with owner: " + tSubscription.subscriptionOwner)
        tier = ""
        if tSubscription:
            # logging.debug("Manual State: " + tSubscription.subscriptionManualState)
            # logging.debug("Needs Upgrade: " + str(tSubscription.subscriptionNeedsUpgrade))
            if tSubscription.subscriptionManualState == "Tier0":
                tSubscription.subscriptionManualState = "Tier1"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 1"
                tSubscription.put()
            elif tSubscription.subscriptionManualState == "Tier1":
                tSubscription.subscriptionManualState = "Tier2"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 2"
                tSubscription.put()
            elif tSubscription.subscriptionManualState == "Tier2":
                tSubscription.subscriptionManualState = "Tier3"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 3"
                tSubscription.put()
            elif tSubscription.subscriptionManualState == "Tier3":
                tSubscription.subscriptionManualState = "Tier4"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 4"
                tSubscription.put()
            elif tSubscription.subscriptionManualState == "Tier4":
                tSubscription.subscriptionManualState = "Tier4"
                tSubscription.subscriptionNeedsUpgrade = False
                tier = "Tier 4"
                tSubscription.put()
            elif tSubscription.subscriptionManualState == tSubscription.subscriptionAutoState:
                if tSubscription.subscriptionNeedsUpgrade == True:
                    tSubscription.subscriptionNeedsUpgrade = False
                    tSubscription.put()
            # logging.debug("Manual State: " + tSubscription.subscriptionManualState)
            # logging.debug("Needs Upgrade: " + str(tSubscription.subscriptionNeedsUpgrade))
        # logging.debug("Subscription Saved at Tier " + tier)

        tResponse["tResponseText"] = "=> " + tier

        return tResponse