def deleteuserpayment(request): if request.is_ajax(): if request.method == 'POST': txtmessage = '' try: json_data = json.loads(request.body) if json_data['txtmessage']: txtmessage = json_data['txtmessage'] userpayment_id = json_data['userpayment_id'] registro = UserPayment.objects.get( user_payment_id=userpayment_id) registro.message = txtmessage registro.enabled = False registro.status = 'CA' registro.channel = 'X' registro.save() # Envio envento a intercom ep = Setting.get_var('intercom_endpoint') token = Setting.get_var('intercom_token') try: intercom = Intercom(ep, token) reply = intercom.submitEvent( registro.user.user_id, registro.user.email, "cancelled-sub", { "event_description": "recurrencia cancelada por el administrador" }) if not reply: registro.message = "Intercom error: cannot post the event" registro.save() except Exception as e: registro.message = "Intercom error: %s" % str(e) registro.save() return JsonResponse({'message': 'activado correctamente'}, status=200) except Exception as e: return JsonResponse( { 'message': 'Hubo un error', 'data': e.message }, status=500) return JsonResponse({ 'message': 'Metodo no permitido', 'data': '' }, status=500)
def expireuser(request): if request.is_ajax(): if request.method == 'GET': fecha = datetime.today() if request.method == 'POST': try: json_data = json.loads(request.body) user_id = json_data['user_id'] user = User.objects.get(user_id=user_id) fecha = datetime.today() d = timedelta(days=1) fecha -= d user.expiration = fecha user.save() # Envio envento a intercom ep = Setting.get_var('intercom_endpoint') token = Setting.get_var('intercom_token') try: intercom = Intercom(ep, token) metadata = { "event_description": "usuario expirado por el administrador", "expire_at": str(int(mktime(user.expiration.timetuple()))) } reply = intercom.submitEvent(user.user_id, user.email, "user_expired", metadata) except Exception as e: pass return JsonResponse( { 'message': 'Guardado correctamente', 'data': fecha }, status=200) except Exception as e: return JsonResponse( { 'message': 'Hubo un error', 'data': e.message }, status=500) return JsonResponse({ 'message': 'Metodo no permitido', 'data': '' }, status=500)
def activateuser(request): if request.is_ajax(): if request.method == 'POST': try: json_data = json.loads(request.body) user_id = json_data['user_id'] days = json_data['days'] user = User.objects.get(user_id=user_id) # Sumar la cantidad de dias a hoy date = user.enable_for(days) # Envio evento a intercom ep = Setting.get_var('intercom_endpoint') token = Setting.get_var('intercom_token') try: intercom = Intercom(ep, token) metadata = { 'event_description': 'usuario activado por el administrador', 'expire_at': str(int(mktime(date.timetuple()))) } reply = intercom.submitEvent(user.user_id, user.email, 'user_activated', metadata) except Exception as e: pass return JsonResponse({'message': 'activado correctamente'}, status=200) except Exception as e: return JsonResponse( { 'message': 'Hubo un error', 'data': e.message }, status=500) return JsonResponse({ 'message': 'Metodo no permitido', 'data': '' }, status=500)
def __callback_paymentez_proc(data, country): # Verifico el stoken if not __validate_stoken(data, country): body = {"status": "error", "message": "not authorized"} return HttpResponse(json.dumps(body), content_type="application/json", status=200) # Obtengo los valores segun la respuesta de Paymentez pr = paymentez_translator(data) # Obtengo el PaymentHistory con el dev_reference informado try: ph = PaymentHistory.objects.get( payment_id=data["transaction"]["dev_reference"]) except ObjectDoesNotExist: body = {"status": "error", "message": "invalid dev_refence"} return HttpResponse(json.dumps(body), content_type="application/json", status=200) # Verifico que este en Waiting Callback if ph.status == 'W' or (ph.status == 'A' and pr["ph_status"] == 'C'): # Seteo los valores de la UserPayment ph.user_payment.status = pr["up_status"] ph.user_payment.message = pr["up_message"] ph.user_payment.enabled = pr["up_recurrence"] if ph.user_payment.status == 'AC': # calcular next_payment_day ph.user_payment.payment_date = ph.user_payment.calc_payment_date() # Fija la fecha de expiration del usuario ph.user_payment.user.set_expiration(ph.user_payment.payment_date) if ph.user_payment.disc_counter > 0: ph.user_payment.disc_counter = ph.user_payment.disc_counter - 1 else: ph.user_payment.channel = 'C' ph.user_payment.save() # Seteo los valores del PaymentHistory ph.status = pr["ph_status"] ph.gateway_id = pr["ph_gatewayid"] ph.message = pr["ph_message"] ph.save() if pr["user_expire"]: ph.user_payment.user.expire() if pr["intercom"]["action"]: ep = Setting.get_var('intercom_endpoint') token = Setting.get_var('intercom_token') try: intercom = Intercom(ep, token) reply = intercom.submitEvent( ph.user_payment.user.user_id, ph.user_payment.user.email, pr["intercom"]["event"], paymentez_intercom_metadata(data['transaction'])) if not reply: ph.message = "%s - Intercom error: cannot post the event" % ( ph.message) ph.save() except Exception as e: ph.message = "%s - Intercom error: %s" % (ph.message, str(e)) ph.save() else: body = { "status": "error", "message": "ignoring callback: PH status %s" % ph.status } return HttpResponse(json.dumps(body), content_type="application/json", status=200) body = {'status': 'success', 'message': ''} return HttpResponse(json.dumps(body), content_type="application/json", status=200)