def start_free_trial(plan, user, site=DEFAULT_SITE_ALIAS): site=get_site(site) if check_trial_eligibility(plan, user): client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) client.get_or_create_subscriber(user.id, user.username) client.subscribe(user.id, plan.pk, trial=True) get_subscription(user) return True else: return False
def subscription_url(plan, user, return_url, site=DEFAULT_SITE_ALIAS): site=get_site(site) return 'https://subs.pinpayments.com/%(site_name)s/subscribers/%(user_id)s/subscribe/%(plan_id)s/%(user_username)s?email=%(user_email)s&first_name=%(first_name)s&last_name=%(last_name)s' % { 'site_name': plan.spreedly_site_name, 'plan_id': plan.pk, 'user_id': user.id, 'user_username': user.username, 'user_email': user.email, 'first_name': user.first_name, 'last_name': user.last_name, 'return_url': return_url, }
def get_or_create_subscription(user, site=DEFAULT_SITE_ALIAS): site=get_site(site) client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) data = client.get_or_create_subscriber(user.id, user.username) subscription, created = Subscription.objects.get_or_create( user=user, spreedly_site_name=site['SPREEDLY_SITE_NAME'] ) for k, v in data.items(): if hasattr(subscription, k): setattr(subscription, k, v) subscription.save() return subscription
def get_subscription(user, site=DEFAULT_SITE_ALIAS): site=get_site(site) cache_key = 'spreedly-subscription-%d' % user.id subscription = cache.get(cache_key) if not subscription: client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) data = client.get_info(user.id) subscription, created = Subscription.objects.get_or_create( user=user, spreedly_site_name=site['SPREEDLY_SITE_NAME'] ) for k, v in data.items(): if hasattr(subscription, k): setattr(subscription, k, v) subscription.save() cache.set(cache_key, subscription, 60 * 60) return subscription
def change_subscription(plan, user, site=DEFAULT_SITE_ALIAS): site=get_site(site) client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) client.change_subscription(user.id, plan.pk) return get_subscription(user, site['SPREEDLY_SITE_NAME'])
def create_subscription(user, site=DEFAULT_SITE_ALIAS): site=get_site(site) client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) client.get_or_create_subscriber(user.id, user.username) return get_subscription(user, site['SPREEDLY_SITE_NAME'])
def allow_free_trial(user, site=DEFAULT_SITE_ALIAS): site=get_site(site) client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) client.allow_free_trial(user.id) return get_subscription(user, site['SPREEDLY_SITE_NAME'])
def stop_auto_renew(user, site=DEFAULT_SITE_ALIAS): site=get_site(site) client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) client.stop_auto_renew(user.id) return get_subscription(user, site['SPREEDLY_SITE_NAME'])
def add_store_credit(user, amount, site=DEFAULT_SITE_ALIAS): site=get_site(site) client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) client.add_store_credit(user.id, amount) return get_subscription(user, site['SPREEDLY_SITE_NAME'])
def lifetime_complimentary_subscription(user, feature_level, site=DEFAULT_SITE_ALIAS): site=get_site(site) client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) client.lifetime_complimentary_subscription(user.id, feature_level) return get_subscription(user, site['SPREEDLY_SITE_NAME'])
def complimentary_subscription(user, duration_quantity, duration_units, feature_level, site=DEFAULT_SITE_ALIAS): site=get_site(site) client = Client(site['SPREEDLY_AUTH_TOKEN_SECRET'], site['SPREEDLY_SITE_NAME']) client.complimentary_subscription(user.id, duration_quantity, duration_units, feature_level) return get_subscription(user, site['SPREEDLY_SITE_NAME'])