def post(self): form = CreateTokenForm() form.package.choices = build_packages_list() tokens = Token.query.order_by(Token.id.desc()).all() if form.validate_on_submit(): try: # Generate UUID gen_uuid = str(uuid.uuid4()) # Create database entry t = Token() t.uuid = gen_uuid t.email = form.email.data or None t.active = True t.package = form.package.data t.package_id = form.package.data db.session.add(t) db.session.commit() return redirect('/admin/tokens/') except: import traceback db.session.rollback() traceback.print_exc() return redirect('/admin/tokens/') return render_template('admin/tokens.html', form=form, tokens=tokens) return render_template('admin/tokens.html', form=form, tokens=tokens)
def paypal_gateway(self): """ Paypal callback receiver. Generates token and sends the code via email to user. @return: """ print(request.form) # Gather information from callback response first_name = request.form.get("first_name", None) last_name = request.form.get("last_name", None) payer_id = request.form.get("payer_id", None) payer_email = request.form.get("payer_email", None) item_name = request.form.get("item_name", None) item_number = request.form.get("item_number", None) custom = request.form.get("custom", None) payment_gross = request.form.get("payment_gross", None) ## Generate Token and store in database gen_uuid = str(uuid.uuid4()) try: t = Token() t.uuid = gen_uuid t.email = payer_email t.active = True t.package = item_name t.package_id = item_number db.session.add(t) db.session.commit() except: import traceback db.session.rollback() traceback.print_exc() ## Send email to user with unique link try: msg = Message( "Guildbit - Order Confirmation", sender=settings.DEFAULT_MAIL_SENDER, recipients=[payer_email]) msg.html = render_template("emails/payment_thankyou.html", package=item_name, uuid=gen_uuid) mail.send(msg) except: import traceback traceback.print_exc() return jsonify({ "status": "received" })