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)
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)
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("输入数值有错")
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("输入数值有错")
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
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})
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)
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)