def charge_stripe_order_payment(order, token_id): order.stripe_token = token_id save_to_db(order) charge = StripePaymentsManager.capture_payment(order) if charge: order.paid_via = 'stripe' order.payment_mode = charge.source.object order.brand = charge.source.brand order.exp_month = charge.source.exp_month order.exp_year = charge.source.exp_year order.last4 = charge.source.last4 order.transaction_id = charge.id order.status = 'completed' order.completed_at = datetime.utcnow() save_to_db(order) invoice_id = order.get_invoice_number() order_url = make_frontend_url(path="/{identifier}/view/".format(identifier=order.identifier)) # send_email_for_after_purchase(order.user.email, invoice_id, order_url, order.event.name, # order.event.organizer_name) # send_notif_for_after_purchase(order.user, invoice_id, order_url) return True, order else: return False, 'Error'
def charge_stripe_order_payment(order, token_id): order.stripe_token = token_id save_to_db(order) charge = StripePaymentsManager.capture_payment(order) if charge: order.paid_via = 'stripe' order.payment_mode = charge.source.object order.brand = charge.source.brand order.exp_month = charge.source.exp_month order.exp_year = charge.source.exp_year order.last4 = charge.source.last4 order.transaction_id = charge.id order.status = 'completed' order.completed_at = datetime.utcnow() save_to_db(order) invoice_id = order.get_invoice_number() order_url = make_frontend_url(path="/{identifier}/view/".format( identifier=order.identifier)) # send_email_for_after_purchase(order.user.email, invoice_id, order_url, order.event.name, # order.event.organizer_name) # send_notif_for_after_purchase(order.user, invoice_id, order_url) return True, order else: return False, 'Error'
def charge_stripe_order_payment(order, token_id): """ Charge the user through Stripe :param order: Order for which to charge for :param token_id: Stripe token :return: """ # save the stripe token with the order order.stripe_token = token_id save_to_db(order) # charge the user try: charge = StripePaymentsManager.capture_payment(order) except ConflictError as e: # payment failed hence expire the order order.status = 'expired' save_to_db(order) # delete related attendees to unlock the tickets delete_related_attendees_for_order(order) raise e # charge.paid is true if the charge succeeded, or was successfully authorized for later capture. if charge.paid: # update the order in the db. order.paid_via = charge.source.object order.brand = charge.source.brand order.exp_month = charge.source.exp_month order.exp_year = charge.source.exp_year order.last4 = charge.source.last4 order.transaction_id = charge.id order.status = 'completed' order.completed_at = datetime.utcnow() save_to_db(order) on_order_completed(order) return True, 'Charge successful' # payment failed hence expire the order order.status = 'expired' save_to_db(order) # delete related attendees to unlock the tickets delete_related_attendees_for_order(order) # return the failure message from stripe. return False, charge.failure_message
def charge_stripe_order_payment(order): """ Create session for order :param order: Order for which to charge for :return: """ # create session for the user try: session = StripePaymentsManager.capture_payment(order) order.stripe_session_id = session['id'] db.session.commit() return True, session except ConflictError as e: # session creation failed hence expire the order order.status = 'expired' save_to_db(order) # delete related attendees to unlock the tickets delete_related_attendees_for_order(order) # return the failure message from stripe. return False, e
def charge_stripe_order_payment(order, token_id): """ Charge the user through Stripe :param order: Order for which to charge for :param token_id: Stripe token :return: """ # save the stripe token with the order order.stripe_token = token_id save_to_db(order) # charge the user try: charge = StripePaymentsManager.capture_payment(order) except ConflictError as e: # payment failed hence expire the order order.status = 'expired' save_to_db(order) # delete related attendees to unlock the tickets delete_related_attendees_for_order(order) raise e # charge.paid is true if the charge succeeded, or was successfully authorized for later capture. if charge.paid: # update the order in the db. order.paid_via = charge.source.object order.brand = charge.source.brand order.exp_month = charge.source.exp_month order.exp_year = charge.source.exp_year order.last4 = charge.source.last4 order.transaction_id = charge.id order.status = 'completed' order.completed_at = datetime.utcnow() save_to_db(order) # create tickets. create_pdf_tickets_for_holder(order) # send email and notifications. send_email_to_attendees(order, current_user.id) send_notif_to_attendees(order, current_user.id) order_url = make_frontend_url(path=f'/orders/{order.identifier}') for organizer in order.event.organizers: send_notif_ticket_purchase_organizer(organizer, order.invoice_number, order_url, order.event.name, order.id) if order.event.owner: send_notif_ticket_purchase_organizer( order.event.owner, order.invoice_number, order_url, order.event.name, order.id, ) return True, 'Charge successful' # payment failed hence expire the order order.status = 'expired' save_to_db(order) # delete related attendees to unlock the tickets delete_related_attendees_for_order(order) # return the failure message from stripe. return False, charge.failure_message