Example #1
0
    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
Example #2
0
    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
Example #3
0
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
Example #4
0
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