def create_payment(): form = PaymentForm() if form.validate_on_submit(): payment = request.get_json() if not is_exists_invoices(invoice_list=[ payment['number_invoice_provider'], payment['number_invoice_reciever'] ]): return send_response( content={'message': 'Invoices does not exists'}, status_code=404) key = get_payment_key() code_confirm = randint(100, 1000) db.session.add( Payment(key=key, amount_money=payment['amount_money'], number_invoice_provider=payment['number_invoice_provider'], number_invoice_reciever=payment['number_invoice_reciever'], code_confirm=code_confirm, status_id=1)) db.session.commit() send_code_confirm_payment_to_client(code=code_confirm) return send_response(content={'message': 'ok'}, status_code=200) return send_response(content=form.errors, status_code=400)
def paymenttest(): form = PaymentForm() if request.method == 'POST' and form.validate_on_submit(): name = request.form['name'] credit_type = request.form['credit_type'] credit_no = request.form['credit_no'] expir_month = request.form['expir_month'] expir_year = request.form['expir_year'] cvv = request.form['cvv'] money = request.form['money'] animal_name = request.form['animal_name'] cursor = db.cursor() try: #insert the payment data to the database cursor.execute( "INSERT INTO payment (name,username,credit_type,credit_no,expir_month,expir_year,cvv,money,animal_name) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)", (name, session["username"], credit_type, credit_no, expir_month, expir_year, cvv, money, animal_name)) db.commit() cursor.close() flash(f'Payment succeed!', 'success') except: flash(f'Payment failed. Please try again.', 'danger') return redirect(url_for('paymenttest')) return render_template('paymenttest.html', form=form)
def paymenttable(id, s_id): pays = Pays.query.filter(and_(Pays.tenantID==id, Pays.stallID==s_id)).all() someNum = Stalls.query.filter_by(stallID=s_id).first() tenant_1 = Tenants.query.filter(and_(Tenants.tenantID==id, Tenants.stallID==someNum.stallID)).first() typee = Types.query.filter_by(typeID=someNum.typeID).first() form= PaymentForm() rate_='0' if str(datetime.datetime.now())[8]+str(datetime.datetime.now())[9]>='21': rate_= (float(someNum.stall_rate)*0.25) curr_user = current_user.last_name+', '+current_user.first_name+' '+current_user.mid_name print rate_ remark_re="" if form.remark.data=='1': remark_re = 'Advance' elif form.remark.data=='2': remark_re = 'Full' elif form.remark.data=='3': remark_re = 'Partial' if request.method=='POST' and form.validate_on_submit(): tenant_1.balance=0.0 if int(form.amount.data)<int(form.total.data): tenant_1.balance = float(form.total.data)-float(form.amount.data) dbase.session.add(tenant_1) dbase.session.commit() uForms = Pays(month=form.month.data, amount=form.amount.data, sCharge=form.sCharge.data, total=form.total.data , or_no=form.or_no.data, date_issued=now, issued_by=form.issued_by.data, tenantID = tenant_1.tenantID, stallID = someNum.stallID, remark = remark_re ) dbase.session.add(uForms) dbase.session.commit() return redirect(url_for("paymenttable", id=id, s_id=s_id)) if current_user.roleID == 1: return render_template('paymenttable_admin.html', page_title='Payment Table', rate_2=someNum.stall_rate+int(rate_)+tenant_1.balance, curr_user=curr_user, rate_=rate_, form=form, pays=pays, id=id, s_id=s_id, stall=someNum, typee=typee, tenant=tenant_1, result=search_panel(0)[0], x=search_panel(0)[1], result2=search_panel(1)[0], y=search_panel(1)[1]) return render_template('paymenttable.html', page_title='Payment Table', rate_2=someNum.stall_rate+int(rate_)+tenant_1.balance, curr_user=curr_user, rate_=rate_, form =form, pays=pays, id=id, s_id=s_id, stall=someNum, typee=typee, tenant=tenant_1, result=search_panel(0)[0], x=search_panel(0)[1], result2=search_panel(1)[0], y=search_panel(1)[1])
def payments(): form = PaymentForm() if form.validate_on_submit(): currency = form.payment_currency.data currencies = {'USD': 'usd_api', 'EUR': 'eur_api', 'RUB': 'rub_api'} values = [ request.form['payment_amount'], currency_code[request.form['payment_currency']], request.form['description'] ] session['values'] = values return redirect(url_for('{}'.format(currencies[currency]))) return render_template('payments.html', form=form)
def make_payment(event_id): '''Make a payment on the given event''' event = Event.query.filter(Event.id == event_id).first() form = PaymentForm(request.form) #users can only view payments for events they created if event.creator != g.user.id: return redirect(url_for('events')) elif not form.validate_on_submit(): return render_template('payments.html', event=event, message='Please enter payer and amount', form=form) else: db_utilities.create_payment(payer=form.payer.data, amount=form.amount.data, event_id=event_id) return redirect(url_for('payments',event_id = event_id))
def main_form(): form = PaymentForm() if form.validate_on_submit(): currency = BASE_CURRENCIES.get(form.currency.data) # eur/PAY if currency == 978: # create sign string data = { 'amount': form.amount.data, 'currency': currency, 'shop_id': 5, 'shop_order_id': 4126 } sign = make_sign_string(data) data['description'] = form.description.data data['sign'] = sign session['data'] = data app.logger.info( CREATE_PAYMENT_LOG_MESSAGE.format('PAY', data['amount'], data['currency'], data['shop_order_id'], datetime.now(), data['description'])) return redirect(url_for('accept_usd')) # usd/BILL elif currency == 840: # create sign string data = { 'shop_amount': str(form.amount.data), 'shop_currency': 840, 'shop_id': '5', 'shop_order_id': '123456', 'payer_currency': currency, } sign = make_sign_string(data) # maybe i should create function for creating request. But I thought it was redundant data['description'] = form.description.data data['sign'] = sign app.logger.info( CREATE_PAYMENT_LOG_MESSAGE.format('BILL', data['shop_amount'], data['payer_currency'], data['shop_order_id'], datetime.now(), data['description'])) data = json.dumps(data) headers = {'Content-type': 'application/json'} response = requests.post(CREATE_BILL_URL, data=data, headers=headers) response_data = json.loads(response.content.decode('utf-8')) if response_data['result']: url = response_data['data']['url'] return redirect(url) # rub/INVOICE elif currency == 643: # create sign string data = { "amount": str(form.amount.data), "payway": PAYWAY_RUB, 'shop_id': 5, 'shop_order_id': 123456, "currency": str(currency) } sign = make_sign_string(data) data['description'] = form.description.data data['sign'] = sign app.logger.info( CREATE_PAYMENT_LOG_MESSAGE.format('BILL', data['amount'], data['currency'], data['shop_order_id'], datetime.now(), data['description'])) data = json.dumps(data) headers = {'Content-type': 'application/json'} response = requests.post(CREATE_INVOICE_URL, data=data, headers=headers) response_data = json.loads(response.content.decode('utf-8')) if response_data['result']: session['data'] = response_data return redirect(url_for('accept_rub')) return render_template('base_form.html', form=form)