Пример #1
0
def get_billing_info_update_form(user, account, target_element='#recurly-container', protected_params={}, unprotected_params={}):
    from django_recurly.utils import dict_merge

    # Protected params
    protected_data = {
        'account_code': account.account_code,
        'account': {
            'account_code': account.account_code,
            'username': account.username,
        },
        'addressRequirement': 'none',
    }
    dict_merge(protected_data, protected_params)

    # Unprotected params
    unprotected_data = {
        'target': target_element,
        'distinguish_contact_from_billing_info': False,
        'account': account.to_dict(js=True),
        'billing_info': account.billing_info.to_dict(js=True)
    }
    dict_merge(unprotected_data, unprotected_params)

    data = get_signed_form_options(protected_data, unprotected_data)

    return render_to_string("django_recurly/build_billing_info_update_form.js", data)
Пример #2
0
def get_signed_form_options(protected_params={}, unprotected_params={}):
    from django_recurly.utils import dict_merge

    # Protected params
    data = dict_merge({}, protected_params)
    data['signature'] = get_signature(data)

    # Unprotected params (overridden by existing protected params)
    data = dict_merge({}, unprotected_params, data)

    data['json'] = dump(data, js=True)

    return data
Пример #3
0
def get_subscription_form(plan_code, user, target_element='#recurly-container', protected_params={}, unprotected_params={}):
    from django_recurly.utils import dict_merge

    # Protected params
    protected_data = {
        'plan_code': plan_code,
        'subscription': {
            'plan_code': plan_code,
        },
        'account': {
            'username': user.username,
        },
    }
    dict_merge(protected_data, protected_params)

    # Unprotected params
    unprotected_data = {
        'target': target_element
    }
    dict_merge(unprotected_data, unprotected_params)

    data = get_signed_form_options(protected_data, unprotected_data)

    return render_to_string("django_recurly/build_subscription_form.js", data)
Пример #4
0
def billing_info_update_form(context, target_element="#recurly-container", protected_params={}, unprotected_params={}):
    from django_recurly.utils import dict_merge

    user = context['user']
    account = None

    if user.is_authenticated():
        try:
            # Grab the recurly account details (could be different from app user details)
            account = user.recurly_account.get().get_account()
        except Account.DoesNotExist:
            # Pre-populate the form fields with user data
            account = recurly.Account(**user._wrapped.__dict__)

        #TODO: (IW) Simplify
        if 'account' in unprotected_params:
            unprotected_params["account"] = dict_merge(account.to_dict(js=True), unprotected_params["account"])
        else:
            unprotected_params["account"] = account.to_dict(js=True)

    return get_billing_info_update_form(user=user, account=account)