[docs]@blueprint.route("call",methods=["POST"])@csrf_protect.exemptdefcall()->Response:"""Book a call. :return: Response object. """session=stripe.checkout.Sessionprice_data=session.CreateParamsLineItemPriceData(# type: ignoreproduct_data={"name":"Book a call"},unit_amount=int(current_app.config["PAYMENT_OPTIONS"]["price"]),currency="usd",)checkout_session=stripe.checkout.Session.create(api_key=current_app.config["STRIPE_SECRET_KEY"],line_items=[{"price_data":price_data,"quantity":1}],# type: ignorepayment_method_types=["card"],mode="payment",success_url=f"{request.host_url}order/success",cancel_url=f"{request.host_url}order/cancel",)returnredirect(checkout_session.url)# type: ignore
[docs]@blueprint.route("success")@csrf_protect.exemptdefsuccess()->Response:"""Render template on success. :return: Success template. """flash("Thank you, your order has been placed.")returnredirect(url_for("index"))
[docs]@blueprint.route("cancel")@csrf_protect.exemptdefcancel()->Response:"""Render template on cancellation. :return: Response object redirecting user to index. """flash("Your order was canceled.")returnredirect(url_for("index"))