class SquareReturnView(OrderPlacementMixin, RedirectView):
template_name =
"mysquare/square_return.html"
def get_redirect_url(
self, **kwargs):
basket = Basket.objects.get(
pk=
self.checkout_session.get_submitted_basket_id())
basket_id =
self.checkout_session.get_submitted_basket_id()
order_number =
self.checkout_session.get_order_number()
user =
self.request.user
shipping_address =
self.get_shipping_address(basket)
shipping_method =
self.get_shipping_method(basket, shipping_address)
billing_address =
self.get_billing_address(shipping_address)
print(
f"DEBUG: request: {self.request
}")
submission = {
"user":
self.request.user,
"basket": basket,
"shipping_address": shipping_address,
"shipping_method": shipping_method,
"billing_address": billing_address,
"order_kwargs": {},
"payment_kwargs": {},
}
if not shipping_method:
order_total = shipping_charge = surcharges =
None
else:
shipping_charge = shipping_method.calculate(basket)
surcharges = SurchargeApplicator(
self.request, submission
).get_applicable_surcharges(basket,
shipping_charge=shipping_charge)
order_total =
self.get_order_totals(
basket,
shipping_charge=shipping_charge,
surcharges=surcharges, **kwargs
)
payment_kwargs = {}
order_kwargs = {}
signals.post_payment.send_robust(
sender=
self,
view=
self)
logger.info(
"Order #%s: payment successful, placing order", order_number)
try:
return self.handle_order_placement(
order_number,
user,
basket,
shipping_address,
shipping_method,
shipping_charge,
billing_address,
order_total,
surcharges=surcharges,
**order_kwargs,
)
except UnableToPlaceOrder
as e:
msg =
str(e)
logger.error(
"Order #%s: unable to place order - %s",
order_number,
msg,
exc_info=
True,
)
self.restore_frozen_basket()
return self.render_preview(
self.request,
error=msg, **payment_kwargs)
except Exception as e:
logger.exception(
"Order #%s: unhandled exception while placing order (%s)",
order_number,
e,
)
error_msg =
"A problem occurred while placing this order. Please contact customer services."
self.restore_frozen_basket()
return self.render_preview(
self.request,
error=error_msg, **payment_kwargs)