def existing_subscription(subscr_id, paying_id, custom): if subscr_id is None: return None account_id = accountid_from_paypalsubscription(subscr_id) if not account_id and has_blob(custom): # New subscription contains the user info in hardcache return None should_set_subscriber = False if account_id is None: # Payment from legacy subscription (subscr_id not set), fall back # to guessing the user from the paying_id account_id = account_by_payingid(paying_id) should_set_subscriber = True if account_id is None: return None try: account = Account._byID(account_id, data=True) if account._deleted: g.log.info("Just got IPN renewal for deleted account #%d" % account_id) return "deleted account" if should_set_subscriber: if hasattr(account, "gold_subscr_id") and account.gold_subscr_id: g.log.warning( "Attempted to set subscr_id (%s) for account (%d) " "that already has one." % (subscr_id, account_id)) return None account.gold_subscr_id = subscr_id account._commit() except NotFound: g.log.info("Just got IPN renewal for non-existent account #%d" % account_id) return account
def existing_subscription(subscr_id, paying_id, custom): if subscr_id is None: return None account_id = accountid_from_paypalsubscription(subscr_id) if not account_id and has_blob(custom): # New subscription contains the user info in hardcache return None should_set_subscriber = False if account_id is None: # Payment from legacy subscription (subscr_id not set), fall back # to guessing the user from the paying_id account_id = account_by_payingid(paying_id) should_set_subscriber = True if account_id is None: return None try: account = Account._byID(account_id, data=True) if account._deleted: g.log.info("IPN renewal for deleted account %d (%s)", account_id, subscr_id) return "deleted account" if should_set_subscriber: if hasattr(account, "gold_subscr_id") and account.gold_subscr_id: g.log.warning( "Attempted to set subscr_id (%s) for account (%d) " "that already has one." % (subscr_id, account_id)) return None account.gold_subscr_id = subscr_id account._commit() except NotFound: g.log.info( "Just got IPN renewal for non-existent account #%d" % account_id) return account