def create(cls, v1, v2, v3, xsolla_id, payment_sum, test, date, request_url): user_email = v1 results = [] account_id = bank_logic.get_account_id(email=user_email) if account_id is None: account_id = -1 results.append(PAY_RESULT.USER_NOT_EXISTS) try: real_sum = Decimal(payment_sum) except: real_sum = Decimal('0') results.append(PAY_RESULT.WRONG_SUM_FORMAT) if real_sum % 1 != 0: real_sum //= 1 results.append(PAY_RESULT.FRACTION_IN_SUM) if real_sum <= 0: results.append(PAY_RESULT.NOT_POSITIVE_SUM) if date is not None: try: date = datetime.datetime.fromtimestamp( time.mktime(time.strptime(date, '%Y-%m-%d %H:%M:%S'))) except ValueError: date = None results.append(PAY_RESULT.WRONG_DATE_FORMAT) results.append( PAY_RESULT.SUCCESS ) #success result MUST be appended at the end of every checking pay_result = results[0] # get first result model = cls._model_class.objects.create( state=pay_result.invoice_state, bank_id=account_id, bank_amount=real_sum, bank_invoice=None, xsolla_id=xsolla_id, xsolla_v1=v1, xsolla_v2=v2, xsolla_v3=v3, pay_result=pay_result, test=cls.parse_test(test), date=date, request_url=request_url[:cls._model_class.REQUEST_URL_LENGTH]) prototype = cls(model=model) if prototype.state.is_CREATED: environment.workers.xsolla_banker.cmd_handle_invoices() return prototype
def create(cls, v1, v2, v3, xsolla_id, payment_sum, test, date, request_url): user_email = v1 results = [] account_id = bank_logic.get_account_id(email=user_email) if account_id is None: account_id = -1 results.append(PAY_RESULT.USER_NOT_EXISTS) try: real_sum = Decimal(payment_sum) except: real_sum = Decimal('0') results.append(PAY_RESULT.WRONG_SUM_FORMAT) if real_sum % 1 != 0: real_sum //= 1 results.append(PAY_RESULT.FRACTION_IN_SUM) if real_sum <= 0: results.append(PAY_RESULT.NOT_POSITIVE_SUM) if date is not None: try: date = datetime.datetime.fromtimestamp(time.mktime(time.strptime(date, '%Y-%m-%d %H:%M:%S'))) except ValueError: date = None results.append(PAY_RESULT.WRONG_DATE_FORMAT) results.append(PAY_RESULT.SUCCESS) #success result MUST be appended at the end of every checking pay_result = results[0] # get first result model = cls._model_class.objects.create(state=pay_result.invoice_state, bank_id=account_id, bank_amount=real_sum, bank_invoice=None, xsolla_id=xsolla_id, xsolla_v1=v1, xsolla_v2=v2, xsolla_v3=v3, pay_result=pay_result, test=cls.parse_test(test), date=date, request_url=request_url[:cls._model_class.REQUEST_URL_LENGTH]) prototype = cls(model=model) if prototype.state.is_CREATED: environment.workers.xsolla_banker.cmd_handle_invoices() return prototype
def check_user(command, external_md5, v1, v2, v3): if v1 is None: return CHECK_USER_RESULT.NOT_SPECIFIED_V1 if not external_md5 or check_user_md5(command, v1).lower() != external_md5.lower(): return CHECK_USER_RESULT.WRONG_MD5 if bank_logic.get_account_id(email=v1) is None: return CHECK_USER_RESULT.USER_NOT_EXISTS return CHECK_USER_RESULT.USER_EXISTS