Exemplo n.º 1
0
def ProcessPayment():
    attempts = 1
    form = PaymentForm()
    if form.validate_on_submit():

        if form.amount.data <= 20:
            res = cheap_payment.payment_process()
            return render_template('200.html', res=res[1])

        elif form.amount.data >= 21 and form.amount.data <= 500:
            if not expensive_payment.server_failed:
                res = expensive_payment.payment_process()
                return render_template('200.html', res=res[1])
            else:
                res = cheap_payment.payment_process()
                return render_template('200.html', res=res[1])
            return render_template('errors/500.html')

        else:
            while attempts < 4:
                res = premium_payment.payment_process()
                if res[0] == 200:
                    return render_template('200.html', res=res[1])
                attempts += 1
            return render_template('errors/500.html')

    return render_template('index.html', form=form)
def buy_event_tickets(request, event_date_id):

    event_date = get_object_or_404(EventDates, id=event_date_id)
    event = get_object_or_404(Events, id=event_date.event.id)

    if request.method == 'POST':
        payment_form = PaymentForm(request.POST)
        ticket_form = TicketPaymentForm(request.POST)
        if payment_form.is_valid() and ticket_form.is_valid():
            payment_bag = request.session.get('payment_bag', {})
            payment_bag['full_name'] = request.POST.get('full_name')
            payment_bag['email'] = request.POST.get('email')
            payment_bag['phone_number'] = request.POST.get('phone_number')
            payment_bag['donation_payment_amount'] = request.POST.get(
                'donation_payment_amount')
            payment_bag['event_date_id'] = request.POST.get('event_date_id')
            payment_bag['event_date'] = request.POST.get('event_date')
            payment_bag['ticket_qty'] = request.POST.get(
                'event_ticket_qty')
            payment_bag['donation_page'] = False
            ticket_qty = int(request.POST.get('event_ticket_qty'))
            event_price = event.event_price

            # Setting total amount in session variable
            donation_amount = request.POST.get('donation_payment_amount')
            event_total = ticket_qty * event_price
            total_amount = int(donation_amount) + event_total
            payment_bag['total_amount'] = round(float(total_amount), 2)
            print(payment_bag['total_amount'])
            payment_bag['event_id'] = event.id
            request.session['payment_bag'] = payment_bag

            return redirect(reverse('ticket_payment', args=[event.id]))
        # Else block is prinitng form error its for testing code needs updating
        else:
            ash = payment_form.errors
            bsh = ticket_form.errors
            print(bsh, ash)
            return HttpResponse(bsh)

    payment_form = PaymentForm()
    ticket_payment_form = TicketPaymentForm
    template = 'events/event_payment_page.html'
    context = {
        'event_date': event_date,
        'event': event,
        'payment_form': payment_form,
        'ticket_payment_form': ticket_payment_form,
    }

    return render(request, template, context)
Exemplo n.º 3
0
def index():
    form = PaymentForm(request.form, meta={'csrf_context': session})
    if request.method == 'POST' and form.validate():
        amount = form.amount.data
        currency = form.currency.data
        description = form.description.data
        id = str(uuid.uuid1())
        app.logger.info(
            f'The order form requested with data: id:{id} amount:{amount} currency:{currency} description:{description}'
        )
        piastrix = get_piastrix_service(amount, currency, description, id)
        try:
            return get_piastrix_action(piastrix, currency)
        except (Exception) as e:
            app.logger.error('Error during piastrix action - {}'.format(e))
    return render_template('main.html', form=form)
Exemplo n.º 4
0
 def post(self, request, *args, **kwargs):
     '''
     '''
     form=PaymentForm(request.POST)
     if form.is_valid():
         key1=form.cleaned_data['']
         key2=float(form.cleaned_data[''])
         key3=form.cleaned_data['']
         order_info=RechargeRequest.order_request(key1,key2,key3)
         result=self.handle(order_info)
         if isinstance(result,HttpResponseRedirect) :#如果返回的是重定向
             return result
         elif isinstance(result,HttpResponse):#
             return result
         else:#字符串形式的
             return HttpResponse(result)
     else:
         return HttpResponse("输入数值有错")
Exemplo n.º 5
0
 def post(self, request, *args, **kwargs):
     '''
     '''
     form = PaymentForm(request.POST)
     if form.is_valid():
         key1 = form.cleaned_data['']
         key2 = float(form.cleaned_data[''])
         key3 = form.cleaned_data['']
         order_info = RechargeRequest.order_request(key1, key2, key3)
         result = self.handle(order_info)
         if isinstance(result, HttpResponseRedirect):  #如果返回的是重定向
             return result
         elif isinstance(result, HttpResponse):  #
             return result
         else:  #字符串形式的
             return HttpResponse(result)
     else:
         return HttpResponse("输入数值有错")
Exemplo n.º 6
0
def PaymentDetails(request, code, username):
    if request.method == 'POST':
        form = PaymentForm(request.POST)
        if form.is_valid():
            us = PaymentModel()
            us.username = username
            us.amount = form.cleaned_data['amount']
            us.message = form.cleaned_data['message']
            us.category = form.cleaned_data['cat']
            today = date.today()
            us.date = today.strftime("%d/%m/%Y")
            now = datetime.now()
            us.date = today.strftime("%d/%m/%Y")
            now = datetime.now()
            us.time = now.strftime("%H:%M:%S")
            format = "%H:%M:%S"
            now_utc = datetime.now(timezone('UTC'))
            print(now_utc.strftime(format))
            # Convert to local time zone
            now_local = now_utc.astimezone(get_localzone())
            print(now_local.strftime(format))

            us.save()

            return HttpResponseRedirect(reverse('success'))

        else:
            pass

    else:
        form = PaymentForm()

        context = {
            'form': form,
        }
        return render(request, 'payment_detail.html', context)
def charge():
    form = PaymentForm()
    try:
        customer = stripe.Customer.create(
            email=form.email.data,
            source=request.json['token']
        )
        stripe.Charge.create(
            customer=customer.id,
            amount=form.amounttopay.data,
            currency='ghs',
            description=request.json['description']
        )
        return jsonify({'status': 'success!'})
    except stripe.error.StripeError:
        return jsonify({'status': 'error'}), 500
Exemplo n.º 8
0
def payment(request,id):
    if request.method == "POST":
        payment_form = PaymentForm(request.POST)
        if payment_form.is_valid():
            payment_amount = int(payment_form.cleaned_data['payment_amount'])
            funds = AppUser.objects.get(user=request.user).funds or 0
            other_funds = AppUser.objects.get(user_id=id).funds or 0
            if funds <  payment_amount:
                messages.success(request,f'Please add funds')
                return redirect('user:add_funds')
            else:
                pay = payment_form.save(commit=False)
                pay.payment_status = True
                pay.user_id = request.user.id
                pay.pay_to_id = id
                pay.save()
                funds = funds - payment_amount
                other_funds = other_funds + payment_amount
                AppUser.objects.filter(user_id=id).update(funds=other_funds)
                AppUser.objects.filter(user=request.user).update(funds=funds)
                return redirect('payment:view_payments')
    payment_form = PaymentForm()
    return render(request,"payment/payment.html", {'payment_form':payment_form})
Exemplo n.º 9
0
 def get_context_data(self, **kwargs):
     context = super(PaymentMethodView, self).get_context_data(**kwargs)
     form = PaymentForm()
     pass
     context['netbank'] = PayMethod.get_netbank_context()
     return context
def index():
    form = PaymentForm()
    if form.validate_on_submit():
        pass
    return render_template('index.html', key=stripe_keys['publishable_key'], form=form)
Exemplo n.º 11
0
 def test_pay(self):
     with app.app_context():
         form = PaymentForm()
         form.amount.data = 50
         res = self.app.get('/pay')
         self.assertEqual(res.status_code, status.HTTP_200_OK)