Exemplo n.º 1
0
    def post(self):
	resp = {}
	try:
	    id = self.get_argument('id', None)
	    if not id:
		resp['error'] = ERROR_MISSING_PARAMS
	    else:
		kwargs = {
			'set__cost' : float('%0.2f' %(float(self.get_argument('cost', 0)))),
			'set__seller_name' : self.get_argument('seller_name', None),
			'set__seller_email' : self.get_argument('seller_email', None),
			'set__description' : self.get_argument('description', None),
			'set__billing_address_required' : True if self.get_argument('billing_address_required', None) \
				else False,
			'set__send_payment_receipts' : True if self.get_argument('send_payment_receipts', None) \
				else False,
			'set__bcc_email' : True if self.get_argument('bcc_email', None) else False,
			'set__livemode' : True if self.get_argument('livemode', None) else  False
			 }
		# allow livemode to be made false only if test_access_token is present
		u = user_service.get_user(id = self.current_user).to_dict()
		if not u.get('test_access_token'):
		    kwargs['set__livemode'] = True
		form_service.update_form(id, **kwargs)
		resp['success'] = True
	except Exception as e:
	    resp['error'] = '%s' %(e)
	self.set_body(resp)
	return self.render()
Exemplo n.º 2
0
    def get(self):
	try:
	    if not self.get_argument('id', None):
		self.status_code = 404
		return self.render_template('404.html')
	    f = form_service.get_form(id = self.get_argument('id')).to_dict()
	    u = user_service.get_user(id = f.get('user_id', None)).to_dict()
	    months = [
		    {'value' : '', 'month' : ''},
		    {'value' : '01', 'month' : 'Jan'},
		    {'value' : '02', 'month' : 'Feb'},
		    {'value' : '03', 'month' : 'Mar'},
		    {'value' : '04', 'month' : 'Apr'},
		    {'value' : '05', 'month' : 'May'},
		    {'value' : '06', 'month' : 'Jun'},
		    {'value' : '07', 'month' : 'Jul'},
		    {'value' : '08', 'month' : 'Aug'},
		    {'value' : '09', 'month' : 'Sep'},
		    {'value' : '10', 'month' : 'Oct'},
		    {'value' : '11', 'month' : 'Nov'},
		    {'value' : '12', 'month' : 'Dec'}
		     ]
	    years = ['']
	    for i in range(0, 20):
		years.append(int(datetime.utcnow().strftime('%Y')) + i)
	    context = {
		    'f' : f,
		    'u' : u,
		    'months' : months,
		    'years' : years
		      }
	    return self.render_template('payment_form.html', **context)
	except Exception as e:
	    log.exception('exception: %s' %(e))
	    return self.render_template('404.html')
Exemplo n.º 3
0
    def get(self):
	form_id = self.get_argument('id')
	u = user_service.get_user(id = self.current_user).to_dict()
	f = form_service.get_form(id = form_id).to_dict()
	if u and f:
	    context = {
		    'f' : f,
		    'name' : u.get('name', None) if u.get('name', None) else '',
		    'username' : self.username,
		      }
	    return self.render_template('form_conf.html', **context)
Exemplo n.º 4
0
    def post(self):
	resp = {}
	try:
	    u = user_service.get_user(id = self.current_user).to_dict()
	    if not u.get('test_access_token'):
		resp['not_allowed'] = True
		resp['test_stripe_connect_url'] = stripe_service.get_test_connect_url(form_id = \
			self.get_argument('form_id'))
	    resp['success'] = True
	except Exception as e:
	    log.exception('exception while checking test mode. e: %s' %(e))
	    resp['error'] = '%s' %(e)
	self.set_body(resp)
	return self.render()
Exemplo n.º 5
0
    def post(self):
	resp = {}
	try:
	    if not self.get_argument('token', None) \
		    or not self.get_argument('form_id', None) \
		    or not self.get_argument('name_on_card', None) \
		    or not self.get_argument('email', None) \
		    or not self.get_argument('billing_address', None) \
		    or not self.get_argument('city', None) \
		    or not self.get_argument('state', None) \
		    or not self.get_argument('postal_code', None) \
		    or not self.get_argument('country', None):
			resp['error'] = ERROR_MISSING_PARAMS
	    else:
		f = form_service.get_form(id = self.get_argument('form_id')).to_dict()
		u = user_service.get_user(id = f.get('user_id')).to_dict()
		kwargs = {
			'name_on_card' : self.get_argument('name_on_card', None),
			'email' : self.get_argument('email', None),
			'billing_address' : self.get_argument('billing_address', None),
			'city' : self.get_argument('city', None),
			'state' : self.get_argument('state', None),
			'postal_code' : self.get_argument('postal_code', None),
			'country' : self.get_argument('country', None),
			'form_name' : f.get('name', None)
			 }
		access_token = u.get('live_access_token') if f.get('livemode') else u.get('test_access_token')
		tid = stripe_service.make_payment(cost = float(f.get('cost')), form_id = f.get('id'),
			token = self.get_argument('token', None),
			access_token = access_token, livemode = f.get('livemode', True),
			**kwargs)
		if tid:
		    resp = {
			    'success' : True,
			    'name_on_card' : kwargs.get('name_on_card', None),
			    'email' : kwargs.get('email', None),
			    'cost' : f.get('cost'),
			    'transaction_id' : tid
			   }
		    if f.get('send_invoice_email'):
			TransactionSuccessfulEmailTask.delay(tid = tid)
		else:
		    resp['error'] = 'Could not charge card'
	except Exception as e:
	    log.exception('exception: %s' %(e))
	    resp['error'] = '%s' %(e)
	self.set_body(resp)
	return self.render()
Exemplo n.º 6
0
    def get(self):
	log.info('user_id: %s, username: %s' %(self.current_user, self.username))
	u = user_service.get_user(id = self.current_user).to_dict()
	context = {
		'name' : u.get('name', None) if u.get('name', None) else '',
		'business_name' : u.get('business_name', None) if u.get('business_name', None) else '',
		'terms_url' : u.get('terms_url', None) if u.get('terms_url', None) else '',
		'username' : self.username,
		'show_user_details' : False,
		'forms_present' : form_service.form_present(user_id = self.current_user)
		  }
	if not u.get('name', None) or not u.get('business_name', None):
	    context['show_user_details'] = True
	else:
	    context['forms'] = form_service.get_forms(user_id = self.current_user)
	return self.render_template('dashboard.html', **context)
Exemplo n.º 7
0
    def post(self):
	resp = {}
	try:
	    name = self.get_argument('name').strip() if self.get_argument('name', None) \
		    else None
	    user = user_service.get_user(id = self.current_user)
	    if not name or not user:
		resp['error'] = ERROR_MISSING_PARAMS
	    else:
		kwargs = {
			'name' : name,
			'user_id' : self.current_user,
			'seller_name' : user_service.get_user_nav_name(id = self.current_user),
			'seller_email' : user.to_dict().get('email', None),
			'livemode' : True
			 }
		resp['id'] = form_service.save_new_form(**kwargs)
		resp['success'] = True
	except Exception as e:
	    resp['error'] = '%s' %(e)
	self.set_body(resp)
	return self.render()
Exemplo n.º 8
0
    def run(self, tid):
	try:
	    make_connection.configure() # Making the DB connection
	    from potter.services import stripe_service as stripe_service
	    from potter.services import form as form_service
	    from potter.services import user as user_service
	    t = stripe_service.get_transaction(id = tid).to_dict()
	    f = form_service.get_form(id = t.get('form_id')).to_dict()
	    u = user_service.get_user(id = f.get('user_id')).to_dict()
	    sender_name = u.get('business_name') if u.get('business_name') else \
		    (u.get('name') if u.get('name') else u.get('email'))
	    data = {
		    't' : t,
		    'f' : f,
		    'u' : u,
		    'sender_name' : sender_name
		    }
	    sender_name = u.get('business_name') if u.get('business_name') else \
		    (u.get('name') if u.get('name') else u.get('email'))
	    bcc = u.get('email') if f.get('bcc_email') else None
	    notification_service.notify(type = 'on_payment_successful', to = t.get('email'), sender_name = sender_name,
		    data = data, cc = None, bcc = bcc)
	except Exception as e:
	    log.exception('exception while sending email. e: %s' %(e))