50. Finalizing order payment
# Create items in the preference. preference = personalized charge for clients
preference_data = {
"items": items,
"auto_return": "all", #? auto-return to site after payment
"back_urls": { #? links that will be loaded in each payment cenario
"success": link,
"failure": link,
"pending": link,
},
}def finalize_payment(request) :
data = request.GET.dict()
status = data.get("status")
payment_id = data.get("preference_id")
if status == "approved" :
payment = Payment.objects.get(payment_id=payment_id) #? getting the already existing payment
payment.aproved = True
order = payment.order
order.finished = True
order.end_date = datetime.now()
order.save()
payment.save()
if request.user.is_authenticated :
return redirect("my_orders") #? show finished orders
else :
return redirect("order_aproved", order.id)
else :
return redirect("checkout")

Last updated