Exemplo n.º 1
0
def checkout_items(request):
    user = request.user
    total_cost = 0

    for item_order in request.POST.getlist('order'):
        item = CourseEnrollment.objects.get(pk=item_order)
        total_cost = total_cost + item.course.course_fees

    if total_cost > 0:
        api_key = settings.API_KEY
        auth_token = settings.AUTH_TOKEN

        api = Instamojo(api_key=api_key,auth_token=auth_token)
        api_request = api.payment_request_create(
            purpose="ThinkFOSS transaction",
            send_email=True,
            email=user.email,
            amount=total_cost,
            redirect_url="http://www.thinkfoss.com/register/user/portal/student/instamojoresponse/"
        )

        order_id = api_request['payment_request']['id']
        current_order = Order.objects.start_checkout(order_id, total_cost, user)
        for item_order in request.POST.getlist('order'):
            item = CourseEnrollment.objects.get(pk=item_order)
            item.order = current_order
            item.save()

        return redirect(api_request['payment_request']['longurl'])
    else:
        # Free course
        for item_order in request.POST.getlist('order'):
            item = CourseEnrollment.objects.get(pk=item_order)
            setattr(item,'course_enrolled',True)
            item.save()
            send_mail('emails/checkout_success.html', {'user': request.user, 'item': item.course.course_name },
                      '*****@*****.**', [user.email])
            send_mail('emails/notify_mentor.html',
                      {'user': request.user, 'mentor':item.course.course_user.user_first_name , 'item': item.course.course_name },
                      '*****@*****.**', [item.course.course_user.email, '*****@*****.**'])

            return render_to_response('portal/cart/checkout_result.html', {'success': 'success'})