Advertisement
neonua666

views.py

May 8th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.51 KB | None | 0 0
  1. class PayPalSuccessView(JSONResponseMixin, OwnerAccessMixin, DetailView):
  2.     template_name = 'payment_success.html'
  3.     context_object_name = 'order'
  4.     pk_url_kwarg = 'order_id'
  5.     model = Order
  6.  
  7.     def get_context_data(self, **kwargs):
  8.  
  9.         context = super(PayPalSuccessView, self).get_context_data(**kwargs)
  10.         context.update({"paypal_data": self.get_object().paypalextrapayment_set.last()})
  11.         return context
  12.  
  13.     def get(self, request, *args, **kwargs):
  14.         return super(PayPalSuccessView, self).get(request, *args, **kwargs)
  15.  
  16.     def post(self, request, *args, **kwargs):
  17.         order = self.get_object()
  18.         paypal_extra_payment, err = process_express(request, order)
  19.         if err:
  20.             return self.render_json_response(err)
  21.  
  22.         is_paid = payment_action(
  23.             order_id=paypal_extra_payment.invoice_number,
  24.             amount=paypal_extra_payment.price_total,
  25.             payment_method=PAYPAL,
  26.             response=paypal_extra_payment,
  27.             is_paid=(not err)
  28.         )
  29.  
  30.         if is_paid:
  31.             for package in order.package_set.all():
  32.                 UserActivity.objects.create(
  33.                     package=package,
  34.                     number=package.get_identifier(),
  35.                     message_code=SAVE_LABEL,
  36.                     user=request.user
  37.                 )
  38.         data = {'url': reverse('paypal_payment_success', kwargs={'order_id': paypal_extra_payment.invoice_number})}
  39.  
  40.         return self.render_json_response(data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement