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