Example #1
0
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
Example #2
0
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,
    }
Example #3
0
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
Example #4
0
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
Example #5
0
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'])
Example #6
0
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'])
Example #7
0
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'])
Example #8
0
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'])
Example #9
0
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'])
Example #10
0
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'])
Example #11
0
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'])