예제 #1
0
def create_from_ipn(sender, **kwargs):
	from hicap.membership.models import Maker
	ipn_obj = sender
	try:
		m = Maker.objects.get(email=getattr(ipn_obj, 'payer_email', None))
	except Maker.DoesNotExist:
		email = getattr(ipn_obj, 'payer_email', None)
		username = email
		m = Maker(
			username = email,
			email = email,
			first_name = getattr(ipn_obj, 'first_name', 'First Name'),
			last_name = getattr(ipn_obj, 'last_name', 'Last Name')
		)
		m.save()
	amount = decimal.Decimal(getattr(ipn_obj, 'payment_amount', '0.00'))
	txn_id = getattr(ipn_obj, 'txn_id', None)
	tier = TIER_ELITE if (amount >= 50) else TIER_STANDARD
	p = MembershipPayment(
		maker = m,
		payment_method = PAYPAL,
		payment_created = datetime.now(),
		payment_amount = amount,
		payment_note = "Imported from paypal ipn",
		payment_identifier = txn_id,
		tier = tier,
		cycle_start = datetime.now(),
		num_cycle = 1,
	)
	p.save()
	print p
def make_payment(obj):
	txn_id = obj.get('TRANSACTIONID')
	email = obj.get('EMAIL')
	amount = decimal.Decimal(obj.get('AMT', '0.00'))
	if amount <= 0:
		return
	if obj.get('STATUS') != 'Completed':
		return
	if email is None:
		print "NO EMAIL"
		print obj
		return
	try:
		p = MembershipPayment.objects.get(payment_identifier=txn_id)
		print "skipping"
		return
	except MembershipPayment.DoesNotExist:
		pass	
	try:
		m = Maker.objects.get(email=email)
	except Maker.DoesNotExist:
		m = Maker(
			username = email,
			email = email,
			first_name = obj.get('NAME'),
		)
		m.save()
	tier = TIER_ELITE if (amount >= 50) else TIER_STANDARD
	p = MembershipPayment(
		maker = m,
		payment_method = PAYPAL,
		payment_created = datetime.utcnow(),
		payment_amount = amount,
		payment_note = "Imported from paypal CLI",
		payment_identifier = txn_id,
		tier = tier,
		cycle_start = from_paypal_timestamp(obj.get('TIMESTAMP')),
		num_cycle = 1,
	)
	p.save()
	print p