def register_paypal_payment(sender, **kwargs): ipn_obj = sender # Because of django-paypal's reliance on settings variables, payments # come through as completed and verified, # but are still flagged with receiver_email as invalid. This signal # handler is thus used for both payment_was_successful and # payment_was_flagged. order = Order.objects.get(id=ipn_obj.invoice) if ipn_obj.payment_status == 'Completed': from tiger.notify.tasks import DeliverOrderTask DeliverOrderTask.delay(order.id, Order.STATUS_PAID) elif ipn_obj.payment_status == 'Refunded': order.status = Order.STATUS_REFUNDED order.save()
order = form.save() except InvalidOperation: form._errors['__all__'] = ErrorList(['Your order is too large. Please contact us for catering options.']) else: if request.cart.has_coupon: coupon = Coupon.objects.get(id=request.cart['coupon']['id']) coupon.log_use(order, request.cart.discount()) if 'pay' in request.POST: request.session['order_id'] = order.id return HttpResponseRedirect( request.site.ordersettings.payment_url( cart_id=request.cart.session.session_key, order_id=order.id ) ) DeliverOrderTask.delay(order.id, Order.STATUS_SENT) return HttpResponseRedirect(reverse('order_success')) else: form = OrderForm(request=request) context = { 'form': form } return render_custom(request, 'core/send_order.html', context) @online_ordering def payment_paypal(request): try: order = Order.objects.get(id=request.session['order_id']) except (Order.DoesNotExist, KeyError): return HttpResponseRedirect(reverse('preview_order')) site = request.site