示例#1
0
def pay_for_reservation(event_id, reservation_token) -> Response:
    payment_token = request.json['payment_token']
    ticket = db.session.query(Ticket).filter_by(
        token=reservation_token).first()
    reservation = ticket.reservations[0]
    payment = Payment(reservation=reservation)

    try:
        payment_result = PaymentGateway().charge(100, payment_token)
        payment.completed = True
    except (CardError, PaymentError, CurrencyError):
        pass
    db.session.add(payment)
    db.session.commit()
    return jsonify({
        "paid": payment.completed,
        "event": ticket.event.to_dict(),
        "ticket_type": ticket.ticket_type.name
    })