示例#1
0
文件: utils.py 项目: wilsonc86/ledger
def checkout(request, application, lines=[], invoice_text=None, vouchers=[], internal=False):
    basket_params = {
        'products': lines,
        'vouchers': vouchers,
        'system': settings.WC_PAYMENT_SYSTEM_ID,
        'custom_basket': True,
    }
    basket, basket_hash = create_basket_session(request, basket_params)

    checkout_params = {
        'system': settings.WC_PAYMENT_SYSTEM_ID,
        'fallback_url': request.build_absolute_uri('/'),
        'return_url': request.build_absolute_uri(reverse('external-application-success-invoice')),
        'return_preload_url': request.build_absolute_uri('/'),
        'force_redirect': True,
        'proxy': True if internal else False,
        'invoice_text': invoice_text
    }
    print(' -------- main utils > checkout > checkout_params ---------- ')
    print(checkout_params)
    create_checkout_session(request, checkout_params)

    if internal:
        response = place_order_submission(request)
    else:
        response = HttpResponseRedirect(reverse('checkout:index'))
        # inject the current basket into the redirect response cookies
        # or else, anonymous users will be directionless
        response.set_cookie(
            settings.OSCAR_BASKET_COOKIE_OPEN, basket_hash,
            max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
            secure=settings.OSCAR_BASKET_COOKIE_SECURE, httponly=True
        )

    return response
示例#2
0
def checkout(request,
             proposal,
             lines,
             return_url_ns='public_booking_success',
             return_preload_url_ns='public_booking_success',
             invoice_text=None,
             vouchers=[],
             internal=False):
    #import ipdb; ipdb.set_trace()
    basket_params = {
        'products': lines,
        'vouchers': vouchers,
        'system': settings.WC_PAYMENT_SYSTEM_ID,
        'custom_basket': True,
    }

    basket, basket_hash = create_basket_session(request, basket_params)
    #fallback_url = request.build_absolute_uri('/')
    checkout_params = {
        'system': settings.WC_PAYMENT_SYSTEM_ID,
        'fallback_url': request.build_absolute_uri(
            '/'),  # 'http://mooring-ria-jm.dbca.wa.gov.au/'
        'return_url': request.build_absolute_uri(reverse(
            return_url_ns)),  # 'http://mooring-ria-jm.dbca.wa.gov.au/success/'
        'return_preload_url': request.build_absolute_uri(reverse(
            return_url_ns)),  # 'http://mooring-ria-jm.dbca.wa.gov.au/success/'
        'force_redirect': True,
        'proxy': True if internal else False,
        'invoice_text':
        invoice_text,  # 'Reservation for Jawaid Mushtaq from 2019-05-17 to 2019-05-19 at RIA 005'
    }
    #    if not internal:
    #        checkout_params['check_url'] = request.build_absolute_uri('/api/booking/{}/booking_checkout_status.json'.format(booking.id))
    if internal or request.user.is_anonymous():
        #checkout_params['basket_owner'] = booking.customer.id
        checkout_params['basket_owner'] = proposal.submitter_id

    create_checkout_session(request, checkout_params)

    #    if internal:
    #        response = place_order_submission(request)
    #    else:
    response = HttpResponseRedirect(reverse('checkout:index'))
    # inject the current basket into the redirect response cookies
    # or else, anonymous users will be directionless
    response.set_cookie(settings.OSCAR_BASKET_COOKIE_OPEN,
                        basket_hash,
                        max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
                        secure=settings.OSCAR_BASKET_COOKIE_SECURE,
                        httponly=True)

    return response
示例#3
0
def checkout(request,
             application,
             lines=[],
             invoice_text=None,
             vouchers=[],
             internal=False,
             add_checkout_params={}):
    basket_params = {
        'products': lines,
        'vouchers': vouchers,
        'system': settings.WC_PAYMENT_SYSTEM_ID,
        'custom_basket': True,
    }
    basket, basket_hash = create_basket_session(request, basket_params)
    request.basket = basket

    checkout_params = {
        'system':
        settings.WC_PAYMENT_SYSTEM_ID,
        'fallback_url':
        request.build_absolute_uri('/'),
        'return_url':
        request.build_absolute_uri(
            reverse('external-application-success-invoice')),
        'return_preload_url':
        request.build_absolute_uri('/'),
        'force_redirect':
        True,
        'proxy':
        True if internal else False,
        'invoice_text':
        invoice_text
    }
    checkout_params.update(add_checkout_params)
    print(' -------- main utils > checkout > checkout_params ---------- ')
    print(checkout_params)
    create_checkout_session(request, checkout_params)

    if internal:
        response = place_order_submission(request)
    else:
        response = HttpResponseRedirect(reverse('checkout:index'))
        # inject the current basket into the redirect response cookies
        # or else, anonymous users will be directionless
        response.set_cookie(settings.OSCAR_BASKET_COOKIE_OPEN,
                            basket_hash,
                            max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
                            secure=settings.OSCAR_BASKET_COOKIE_SECURE,
                            httponly=True)

    return response
示例#4
0
def checkout(request,
             booking,
             lines,
             invoice_text=None,
             vouchers=[],
             internal=False):
    basket_params = {
        'products': lines,
        'vouchers': vouchers,
        'system': settings.PS_PAYMENT_SYSTEM_ID,
        'custom_basket': True,
    }
    basket, basket_hash = create_basket_session(request, basket_params)

    checkout_params = {
        'system':
        settings.PS_PAYMENT_SYSTEM_ID,
        'fallback_url':
        request.build_absolute_uri('/'),
        'return_url':
        request.build_absolute_uri(reverse('public_booking_success')),
        'return_preload_url':
        request.build_absolute_uri(reverse('public_booking_success')),
        'force_redirect':
        True,
        'proxy':
        True if internal else False,
        'invoice_text':
        invoice_text,
    }
    if not internal:
        checkout_params['check_url'] = request.build_absolute_uri(
            '/api/booking/{}/booking_checkout_status.json'.format(booking.id))
    if internal or request.user.is_anonymous():
        checkout_params['basket_owner'] = booking.customer.id
    create_checkout_session(request, checkout_params)

    if internal:
        response = place_order_submission(request)
    else:
        response = HttpResponseRedirect(reverse('checkout:index'))
        # inject the current basket into the redirect response cookies
        # or else, anonymous users will be directionless
        response.set_cookie(settings.OSCAR_BASKET_COOKIE_OPEN,
                            basket_hash,
                            max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
                            secure=settings.OSCAR_BASKET_COOKIE_SECURE,
                            httponly=True)

    return response
示例#5
0
def checkout(request,
             email_user,
             lines,
             return_url_ns='public_payment_success',
             return_preload_url_ns='public_payment_success',
             invoice_text=None,
             vouchers=[],
             proxy=False):
    basket_params = {
        'products': lines,
        'vouchers': vouchers,
        'system': settings.PAYMENT_SYSTEM_ID,
        'custom_basket': True,
    }

    basket, basket_hash = create_basket_session(request, basket_params)
    checkout_params = {
        'system': settings.PAYMENT_SYSTEM_ID,
        'fallback_url': request.build_absolute_uri(
            '/'),  # 'http://mooring-ria-jm.dbca.wa.gov.au/'
        'return_url': request.build_absolute_uri(reverse(
            return_url_ns)),  # 'http://mooring-ria-jm.dbca.wa.gov.au/success/'
        'return_preload_url': request.build_absolute_uri(reverse(
            return_url_ns)),  # 'http://mooring-ria-jm.dbca.wa.gov.au/success/'
        'force_redirect': True,
        'invoice_text':
        invoice_text,  # 'Reservation for Jawaid Mushtaq from 2019-05-17 to 2019-05-19 at RIA 005'
    }
    if proxy or request.user.is_anonymous():
        checkout_params['basket_owner'] = email_user.id

    create_checkout_session(request, checkout_params)

    response = HttpResponseRedirect(reverse('checkout:index'))
    # inject the current basket into the redirect response cookies
    # or else, anonymous users will be directionless
    response.set_cookie(settings.OSCAR_BASKET_COOKIE_OPEN,
                        basket_hash,
                        max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
                        secure=settings.OSCAR_BASKET_COOKIE_SECURE,
                        httponly=True)

    return response
示例#6
0
    def get(self, request, *args, **kwargs):
        application = get_object_or_404(Application, pk=args[0])
        product = get_product(generate_product_title(application))
        user = application.applicant.id

        error_url = request.build_absolute_uri(
            reverse('wl_applications:preview'))
        success_url = request.build_absolute_uri(
            reverse('wl_applications:complete'))

        basket_params = {
            'products': [{
                'id': product.id if product is not None else None
            }],
            'vouchers': [],
            'system': PAYMENT_SYSTEM_ID
        }
        # senior discount
        if application.is_senior_offer_applicable:
            basket_params['vouchers'].append({'code': SENIOR_VOUCHER_CODE})
        basket, basket_hash = create_basket_session(request, basket_params)

        checkout_params = {
            'system': PAYMENT_SYSTEM_ID,
            'basket_owner': user,
            'associate_invoice_with_token': True,
            'fallback_url': error_url,
            'return_url': success_url,
            'force_redirect': True,
            'template': 'wl/payment_information.html',
            'proxy': is_officer(request.user),
        }
        create_checkout_session(request, checkout_params)

        if checkout_params['proxy']:
            response = place_order_submission(request)
        else:
            response = HttpResponseRedirect(reverse('checkout:index'))
        return response
示例#7
0
文件: views.py 项目: wilsonc86/ledger
    def get(self, request, *args, **kwargs):
        application = get_object_or_404(Application, pk=args[0])
        product = get_product(generate_product_title(application))
        user = application.applicant.id

        error_url = request.build_absolute_uri(reverse('wl_applications:preview'))
        success_url = request.build_absolute_uri(reverse('wl_applications:complete'))

        basket_params = {
            'products': [
                {'id': product.id if product is not None else None}
            ],
            'vouchers': [],
            'system': PAYMENT_SYSTEM_ID
        }
        # senior discount
        if application.is_senior_offer_applicable:
            basket_params['vouchers'].append({'code': SENIOR_VOUCHER_CODE})
        basket, basket_hash = create_basket_session(request, basket_params)

        checkout_params = {
            'system': PAYMENT_SYSTEM_ID,
            'basket_owner': user,
            'associate_invoice_with_token': True,
            'fallback_url': error_url,
            'return_url': success_url,
            'force_redirect': True,
            'template': 'wl/payment_information.html',
            'proxy': is_officer(request.user),
        }
        create_checkout_session(request, checkout_params)

        if checkout_params['proxy']:
            response = place_order_submission(request)
        else:
            response = HttpResponseRedirect(reverse('checkout:index'))
        return response
示例#8
0
def checkout(request,
             email_user,
             lines,
             return_url_ns='public_payment_success',
             return_preload_url_ns='public_payment_success',
             invoice_text=None,
             vouchers=[],
             proxy=False):
    basket_params = {
        'products': lines,
        'vouchers': vouchers,
        'system': settings.PAYMENT_SYSTEM_ID,
        'custom_basket': True,
    }

    basket, basket_hash = create_basket_session(request, basket_params)
    #fallback_url = request.build_absolute_uri('/')
    checkout_params = {
        'system': settings.PAYMENT_SYSTEM_ID,
        'fallback_url': request.build_absolute_uri(
            '/'),  # 'http://mooring-ria-jm.dbca.wa.gov.au/'
        'return_url': request.build_absolute_uri(reverse(
            return_url_ns)),  # 'http://mooring-ria-jm.dbca.wa.gov.au/success/'
        'return_preload_url': request.build_absolute_uri(reverse(
            return_url_ns)),  # 'http://mooring-ria-jm.dbca.wa.gov.au/success/'
        #'fallback_url': fallback_url,
        #'return_url': fallback_url,
        #'return_preload_url': fallback_url,
        'force_redirect': True,
        #'proxy': proxy,
        'invoice_text':
        invoice_text,  # 'Reservation for Jawaid Mushtaq from 2019-05-17 to 2019-05-19 at RIA 005'
    }
    #    if not internal:
    #        checkout_params['check_url'] = request.build_absolute_uri('/api/booking/{}/booking_checkout_status.json'.format(booking.id))
    #if internal or request.user.is_anonymous():
    if proxy or request.user.is_anonymous():
        #checkout_params['basket_owner'] = booking.customer.id
        # checkout_params['basket_owner'] = proposal.submitter_id  # There isn't a submitter_id field... supposed to be submitter.id...?
        # anonymous_user = EmailUser.objects.get_or_create(email='*****@*****.**')
        checkout_params['basket_owner'] = email_user.id

    create_checkout_session(request, checkout_params)

    #    if internal:
    #        response = place_order_submission(request)
    #    else:
    response = HttpResponseRedirect(reverse('checkout:index'))
    # inject the current basket into the redirect response cookies
    # or else, anonymous users will be directionless
    response.set_cookie(settings.OSCAR_BASKET_COOKIE_OPEN,
                        basket_hash,
                        max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
                        secure=settings.OSCAR_BASKET_COOKIE_SECURE,
                        httponly=True)

    #    if booking.cost_total < 0:
    #        response = HttpResponseRedirect('/refund-payment')
    #        response.set_cookie(
    #            settings.OSCAR_BASKET_COOKIE_OPEN, basket_hash,
    #            max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
    #            secure=settings.OSCAR_BASKET_COOKIE_SECURE, httponly=True
    #        )
    #
    #    # Zero booking costs
    #    if booking.cost_total < 1 and booking.cost_total > -1:
    #        response = HttpResponseRedirect('/no-payment')
    #        response.set_cookie(
    #            settings.OSCAR_BASKET_COOKIE_OPEN, basket_hash,
    #            max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
    #            secure=settings.OSCAR_BASKET_COOKIE_SECURE, httponly=True
    #        )

    return response
示例#9
0
def checkout(request,
             proposal,
             lines,
             return_url_ns='public_booking_success',
             return_preload_url_ns='public_booking_success',
             invoice_text=None,
             vouchers=[],
             proxy=False):
    basket_params = {
        'products': lines,
        'vouchers': vouchers,
        'system': settings.PAYMENT_SYSTEM_ID,
        'custom_basket': True,
    }

    basket, basket_hash = create_basket_session(request, basket_params)
    #fallback_url = request.build_absolute_uri('/')
    checkout_params = {
        'system': settings.PAYMENT_SYSTEM_ID,
        'fallback_url': request.build_absolute_uri(
            '/'),  # 'http://mooring-ria-jm.dbca.wa.gov.au/'
        'return_url': request.build_absolute_uri(reverse(
            return_url_ns)),  # 'http://mooring-ria-jm.dbca.wa.gov.au/success/'
        'return_preload_url': request.build_absolute_uri(reverse(
            return_url_ns)),  # 'http://mooring-ria-jm.dbca.wa.gov.au/success/'
        #'fallback_url': fallback_url,
        #'return_url': fallback_url,
        #'return_preload_url': fallback_url,
        'force_redirect': True,
        #'proxy': proxy,
        'invoice_text':
        invoice_text,  # 'Reservation for Jawaid Mushtaq from 2019-05-17 to 2019-05-19 at RIA 005'
        #'invoice_reference': '05572565342',
    }
    #    if not internal:
    #        checkout_params['check_url'] = request.build_absolute_uri('/api/booking/{}/booking_checkout_status.json'.format(booking.id))
    #if internal or request.user.is_anonymous():
    if proxy or request.user.is_anonymous():
        #checkout_params['basket_owner'] = booking.customer.id
        checkout_params['basket_owner'] = proposal.submitter_id

    create_checkout_session(request, checkout_params)

    #    if internal:
    #        response = place_order_submission(request)
    #    else:
    response = HttpResponseRedirect(reverse('checkout:index'))
    # inject the current basket into the redirect response cookies
    # or else, anonymous users will be directionless
    response.set_cookie(settings.OSCAR_BASKET_COOKIE_OPEN,
                        basket_hash,
                        max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
                        secure=settings.OSCAR_BASKET_COOKIE_SECURE,
                        httponly=True)

    #    if booking.cost_total < 0:
    #        response = HttpResponseRedirect('/refund-payment')
    #        response.set_cookie(
    #            settings.OSCAR_BASKET_COOKIE_OPEN, basket_hash,
    #            max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
    #            secure=settings.OSCAR_BASKET_COOKIE_SECURE, httponly=True
    #        )
    #
    # Zero booking costs
    #if booking.cost_total < 1 and booking.cost_total > -1:
    #if invoice_text == 'Application Fee' and proposal.application_type.name=='T Class' and proposal.org_applicant and proposal.allow_full_discount:
    if invoice_text == 'Application Fee' and proposal.allow_full_discount:
        response = HttpResponseRedirect(reverse('zero_fee_success'))
        response.set_cookie(settings.OSCAR_BASKET_COOKIE_OPEN,
                            basket_hash,
                            max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
                            secure=settings.OSCAR_BASKET_COOKIE_SECURE,
                            httponly=True)

    return response
示例#10
0
def checkout(request,
             booking,
             lines,
             invoice_text=None,
             vouchers=[],
             internal=False):
    basket_params = {
        'products': lines,
        'vouchers': vouchers,
        'system': settings.PS_PAYMENT_SYSTEM_ID,
        'custom_basket': True,
    }
    set_session_booking(request.session, 'test', 'JASON TEST')

    basket, basket_hash = create_basket_session(request, basket_params)
    checkout_params = {
        'system':
        settings.PS_PAYMENT_SYSTEM_ID,
        'fallback_url':
        request.build_absolute_uri('/'),
        'return_url':
        request.build_absolute_uri(
            reverse('payment_success')
        ),  #request.build_absolute_uri(reverse('public_booking_success')),
        'return_preload_url':
        request.build_absolute_uri(
            reverse('payment_success')
        ),  #request.build_absolute_uri(reverse('public_booking_success')),
        'force_redirect':
        True,
        'proxy':
        True if internal else False,
        'invoice_text':
        invoice_text,
    }
    #    if not internal:
    #        checkout_params['check_url'] = request.build_absolute_uri('/api/booking/{}/booking_checkout_status.json'.format(booking.id))
    if internal or request.user.is_anonymous():
        checkout_params['basket_owner'] = booking.customer.id

    create_checkout_session(request, checkout_params)
    set_session_booking(request.session, 'basket_id', basket.id)
    set_session_booking(request.session, 'application_id', booking['app'].id)
    set_session_booking(request.session, 'booking_id', booking['booking'].id)
    set_session_booking(request.session, 'routeid', booking['app'].routeid)

    #    if internal:
    #        response = place_order_submission(request)
    #    else:
    response = HttpResponseRedirect(reverse('checkout:index'))
    # inject the current basket into the redirect response cookies
    # or else, anonymous users will be directionless
    response.set_cookie(settings.OSCAR_BASKET_COOKIE_OPEN,
                        basket_hash,
                        max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
                        secure=settings.OSCAR_BASKET_COOKIE_SECURE,
                        httponly=True)

    #if booking.cost_total < 0:
    #    response = HttpResponseRedirect('/refund-payment')
    #    response.set_cookie(
    #        settings.OSCAR_BASKET_COOKIE_OPEN, basket_hash,
    #        max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
    #        secure=settings.OSCAR_BASKET_COOKIE_SECURE, httponly=True
    #    )

    ## Zero booking costs
    #if booking.cost_total < 1 and booking.cost_total > -1:
    #    response = HttpResponseRedirect('/no-payment')
    #    response.set_cookie(
    #        settings.OSCAR_BASKET_COOKIE_OPEN, basket_hash,
    #        max_age=settings.OSCAR_BASKET_COOKIE_LIFETIME,
    #        secure=settings.OSCAR_BASKET_COOKIE_SECURE, httponly=True
    #    )

    return response