예제 #1
0
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)
예제 #2
0
파일: app.py 프로젝트: HRaison/205project
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)
예제 #3
0
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])
예제 #4
0
파일: app.py 프로젝트: Twishar/Flask
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)
예제 #5
0
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))
예제 #6
0
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)