def process_view(self, request, view_func, view_args, view_kwargs): current_url = resolve(request.path_info) url_name = current_url.url_name if url_name == 'payment_sucesss': payer_id = request.GET.get('PayerID',None) payment_id = request.GET.get('paymentId',None) if payer_id is not None and payment_id is not None: paypalrestsdk.configure({ "mode": settings.PAYPAL_MODE, "client_id": settings.PAYPAL_CLIENT_ID, "client_secret": settings.PAYPAL_CLIENT_SECRET }) payment = paypalrestsdk.Payment.find( payment_id ) if payment.execute({"payer_id": payer_id}): print("Payment execute successfully") if len(payment.transactions) > 0: params = parse_qs(payment.transactions[0].custom) D = PaymentMethod() D.payment_method = "paypal" D.status = "Aprobbed" D.amount = payment.transactions[0].amount.total D.currency = payment.transactions[0].amount.currency D.save() pf = PaymentMethodFields() pf.payment = D pf.key = "first_name" pf.value = payment.payer.payer_info.first_name pf.save() pf = PaymentMethodFields() pf.payment = D pf.key = "last_name" pf.value = payment.payer.payer_info.last_name pf.save() pf = PaymentMethodFields() pf.payment = D pf.key = "email" pf.value = payment.payer.payer_info.email pf.save() o = Orders() o.status = "pending" o.payment_method = pf try: o.shipping_addresss = Addresess.objects.get(id=int(params['shipping_addresss_id'])) except Addresess.DoesNotExist: pass try: o.billing_addresss = Addresess.objects.get(id=int(params['billing_addresss_id'])) except Addresess.DoesNotExist: pass try: o.autor = User.objects.get(id=int(params['user_id'])) except User.DoesNotExist: pass o.save() cart = Cart(params['cart_id']) for c in cart.items(): os = OrderShippingItem() os.order = o os.product = c.product os.variant_id = c.variant_id os.price = c.unit_price os.qty = c.quantity os.save()
def handle(self, *args, **options): s = Addresess() s.autor = User.objects.get(id=1) s.city = "Montreal" s.country = "CA" s.zip_code = "2003" s.first_name = "mike" s.last_name = "thonson" s.address_line_1 = "montreal canada" s.address_line_2 = "Canada" s.address_type = "shipping" s.save() b = Addresess() b.autor = User.objects.get(id=1) b.city = "Montreal" b.country = "CA" b.zip_code = "2003" b.first_name = "mike" b.last_name = "thonson" b.address_line_1 = "montreal canada" b.address_line_2 = "Canada" b.address_type = "billing" b.save() p = PaymentMethod() p.amount = 100.00 p.currency = "USD" p.payment_method = "paypal" p.save() pf = PaymentMethodFields() pf.key = "first_name" pf.value = "mike" pf.payment = p pf.save() pf = PaymentMethodFields() pf.key = "last_name" pf.value = "thonson" pf.payment = p pf.save() pf = PaymentMethodFields() pf.key = "city" pf.value = "FL" pf.payment = p pf.save() pf = PaymentMethodFields() pf.key = "country" pf.value = "US" pf.payment = p pf.save() pf = PaymentMethodFields() pf.key = "email" pf.value = "*****@*****.**" pf.payment = p pf.save() for o in range(1, 100): orders = Orders() orders.status = "approved" orders.autor = User.objects.get(id=1) orders.billing_addresss = b orders.shipping_addresss = b orders.payment_method = p orders.save() item = OrderShippingItem() item.order = orders item.product = PostItem.objects.get(id=1) item.price = 1.00 item.qty = 15 item.save() pass
def process_mercadopago(request): if request.method == 'POST': pk = request.query_params.get("id") mp = mercadopago.MP( settings.MERCADOPAGO_CLIENT_ID, settings.MERCADOPAGO_CLIENT_SECRET ) paymentInfo = mp.get_payment (pk) if paymentInfo["status"] == 200: data = json.dumps(paymentInfo, indent=4) D.payment_method = "mercadopago" D.status = "Aprobbed" D.amount = 0.00 D.currency = "VEF" for d in data['response']['items']: D.amount += d.unit_price D.save() pf = PaymentMethodFields() pf.payment = D pf.key = "first_name" pf.value = data['response']['payer']['first_name'] pf.save() pf = PaymentMethodFields() pf.payment = D pf.key = "last_name" pf.value = data['response']['payer']['last_name'] pf.save() pf = PaymentMethodFields() pf.payment = D pf.key = "email" pf.value = data['response']['payer']['email'] pf.save() o = Orders() o.status = "pending" o.payment_method = pf try: o.shipping_addresss = Addresess.objects.get(id=int(paymentInfo['response']['external_reference']['shipping_addresss_id'])) except Addresess.DoesNotExist: pass try: o.billing_addresss = Addresess.objects.get(id=int(paymentInfo['response']['external_reference']['billing_addresss_id'])) except Addresess.DoesNotExist: pass try: o.autor = User.objects.get(id=int(paymentInfo['response']['external_reference']['user_id'])) except User.DoesNotExist: pass o.save() cart = Cart(paymentInfo['response']['external_reference']['cart_id']) for c in cart.items(): os = OrderShippingItem() os.order =o os.product = c.product os.variant_id = c.variant_id os.price = c.unit_price os.qty = c.quantity os.save() # payment_new.send( # sender=D.__class__, # payment_method="MercadoPago", # cart_id=paymentInfo['response']['external_reference']['cart_id'], # user_id=paymentInfo['response']['external_reference']['user_id'] # ) return Response(status=status.HTTP_201_CREATED)