Example #1
0
 public SocialChannelExceptionBase(
     string channel,
     ErrorCodeEnum errorCode,
     string errorMessage)
     : base(
         $"SocialLogin channel exception\r\n" +
         $"  Channel = {channel}\r\n" +
         $"  ErrorCode = {errorCode.ToString()}\r\n" +
         $"  ErrorMessage = {errorMessage}")
 {
     this.Channel      = channel;
     this.ErrorCode    = errorCode;
     this.ErrorMessage = errorMessage;
 }
Example #2
0
        /// <summary>
        ///     返回失败结果
        /// </summary>
        /// <param name="errorCode"></param>
        /// <returns></returns>
        protected ResponseModel Fail(ErrorCodeEnum errorCode)
        {
            var errorDescription = "未知错误";
            var memberInfo       = (typeof(ErrorCodeEnum)).GetMember(errorCode.ToString());

            if (memberInfo.Length > 0)
            {
                var attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);

                if (attrs.Length > 0)
                {
                    //返回枚举值得描述信息
                    errorDescription = ((DescriptionAttribute)attrs[0]).Description;
                }
            }

            return(new ResponseModel
            {
                Code = (int)errorCode,
                Message = errorDescription
            });
        }
Example #3
0
 public DefinedException(ErrorCodeEnum error)
 {
     Error = new ErrorModel {
         ErrorCode = (int)error, Message = error.ToString()
     };
 }
Example #4
0
 public DefinedException(ErrorCodeEnum error, dynamic data)
 {
     Error = new ErrorModel {
         ErrorCode = (int)error, Message = error.ToString(), Data = data
     };
 }
 public static string GetMessage(ErrorCodeEnum code) => Resource.ResourceManager.GetString(code.ToString()) ?? code.ToString();
Example #6
0
        public async Task <IActionResult> Callback(string token, string secondTrackCode)
        {
            _webBaseUrl = string.Format("{0}://{1}", Request.Scheme, Request.Host);
            _logger.LogDebug("CallBack");
            _logger.LogDebug("token:" + token);
            _logger.LogDebug("secondTrackCode:" + secondTrackCode);
            Transaction transaction = await _transactionRepository.Get(Guid.Parse(secondTrackCode));

            if (transaction.Status == (byte)TransactionStatusEnum.Success ||
                transaction.Status == (byte)TransactionStatusEnum.Cancel)
            {
                return(BadRequest());
            }

            string longurl    = transaction.CallbackUrl;
            var    uriBuilder = new UriBuilder(longurl);
            var    query      = HttpUtility.ParseQueryString(uriBuilder.Query);
            string message    = "";
            var    refNum     = Request.Form["RefNum"];

            ErrorCodeEnum bankErrorCode = ErrorCodeEnum.UnkownError;

            try
            {
                if (RequestUnpack())
                {
                    if (_transactionState.Equals("OK"))
                    {
                        bankErrorCode             = ErrorCodeEnum.NoError;
                        transaction.BankErrorCode = (byte)bankErrorCode;
                        transaction.Status        = (byte)TransactionStatusEnum.BankOk;
                        transaction.ModifiedOn    = DateTime.Now;
                        transaction.ModifiedBy    = 1;
                        transaction.BankTrackCode = refNum;
                        await _transactionRepository.Update(transaction);

                        query["id"]        = transaction.Id.ToString();
                        query["trackCode"] = transaction.UserTrackCode.ToString();
                        query["status"]    = true.ToString();
                        query["errorCode"] = bankErrorCode.ToString();
                        query["message"]   = message;
                        uriBuilder.Query   = query.ToString();
                        longurl            = uriBuilder.ToString();
                        var url3 = string.Format(longurl);
                        return(Redirect(url3));
                    }
                    else
                    {
                        _isError  = true;
                        _errorMsg = "متاسفانه بانک خريد شما را تاييد نکرده است";
                        if (_transactionState.Equals("CanceledByUser") || _transactionState.Equals(string.Empty))
                        {
                            // Transaction was canceled by user
                            _isError      = true;
                            _errorMsg     = "تراكنش توسط خريدار كنسل شد";
                            bankErrorCode = ErrorCodeEnum.CanceledByUser;
                        }
                        //InvalidParameters
                        else if (_transactionState.Equals("InvalidParameters"))
                        {
                            // Amount of revers teransaction is more than teransaction
                            _errorMsg     = "پارامترهای ارسال شده به بانک اشتباه است";
                            bankErrorCode = ErrorCodeEnum.InvalidParameters;
                        }
                        else if (_transactionState.Equals("InvalidAmount"))
                        {
                            // Amount of revers teransaction is more than teransaction
                            _errorMsg     = "مبلغ تراکنش معکوس بیشتر از مبلغ تراکنش است";
                            bankErrorCode = ErrorCodeEnum.InvalidAmount;
                        }
                        else if (_transactionState.Equals("InvalidTransaction"))
                        {
                            // Can not find teransaction
                            _errorMsg     = "تراکنش معتبر نمی باشد";
                            bankErrorCode = ErrorCodeEnum.InvalidTransaction;
                        }
                        else if (_transactionState.Equals("InvalidCardNumber"))
                        {
                            // Card number is wrong
                            _errorMsg     = "شماره کارت معتبر نمی باشد";
                            bankErrorCode = ErrorCodeEnum.InvalidCardNumber;
                        }
                        else if (_transactionState.Equals("NoSuchIssuer"))
                        {
                            // Issuer can not find
                            _errorMsg     = "صادر کننده پیدا نشد";
                            bankErrorCode = ErrorCodeEnum.NoSuchIssuer;
                        }
                        else if (_transactionState.Equals("ExpiredCardPickUp"))
                        {
                            // The card is expired
                            _errorMsg     = "کارت انتخاب شده منقضی شده است";
                            bankErrorCode = ErrorCodeEnum.ExpiredCardPickUp;
                        }
                        else if (_transactionState.Equals("AllowablePINTriesExceededPickUp"))
                        {
                            // For third time user enter a wrong PIN so card become invalid
                            _errorMsg     = "پین انتخاب شده محدودیت کارت دارد";
                            bankErrorCode = ErrorCodeEnum.AllowablePINTriesExceededPickUp;
                        }
                        else if (_transactionState.Equals("IncorrectPIN"))
                        {
                            // Pin card is wrong
                            _errorMsg     = "پین کد اشتباه است";
                            bankErrorCode = ErrorCodeEnum.IncorrectPIN;
                        }
                        else if (_transactionState.Equals("ExceedsWithdrawalAmountLimit"))
                        {
                            // Exceeds withdrawal from amount limit
                            _errorMsg     = "پرداخت بیشتر از از حد مجاز می باشد";
                            bankErrorCode = ErrorCodeEnum.ExceedsWithdrawalAmountLimit;
                        }
                        else if (_transactionState.Equals("TransactionCannotBeCompleted"))
                        {
                            // PIN and PAD are currect but Transaction Cannot Be Completed
                            _errorMsg     = "تراکنش کامل نشد";
                            bankErrorCode = ErrorCodeEnum.TransactionCannotBeCompleted;
                        }
                        else if (_transactionState.Equals("ResponseReceivedTooLate"))
                        {
                            // Timeout occur
                            _errorMsg     = "جواب کاربر بیشتر از حد مجاز طول کشید";
                            bankErrorCode = ErrorCodeEnum.ResponseReceivedTooLate;
                        }
                        else if (_transactionState.Equals("SuspectedFraudPickUp"))
                        {
                            // User did not insert cvv2 & expiredate or they are wrong.
                            _errorMsg     = "کاربر اطلاعات کارت خود را به درستی وارد نکرده است";
                            bankErrorCode = ErrorCodeEnum.SuspectedFraudPickUp;
                        }
                        else if (_transactionState.Equals("NoSufficientFunds"))
                        {
                            // there are not suficient funds in the account
                            _errorMsg     = "موجودی کافی نمی باشد";
                            bankErrorCode = ErrorCodeEnum.NoSufficientFunds;
                        }
                        else if (_transactionState.Equals("IssuerDownSlm"))
                        {
                            // The bank server is down
                            _errorMsg     = "سرور بانک غیرفعال است";
                            bankErrorCode = ErrorCodeEnum.BankServerIsDown;
                        }
                        else if (_transactionState.Equals("TMEError"))
                        {
                            // unknown error occur
                            _errorMsg     = "خطای ناشناخته";
                            bankErrorCode = ErrorCodeEnum.UnkownError;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _errorMsg = ex.Message;
                _logger.LogError(ex.Message);
            }

            _logger.LogError(_errorMsg);
            var mid1 = Request.Form["MID"];

            transaction.Status           = (byte)TransactionStatusEnum.Failed;
            transaction.BankErrorCode    = (byte)bankErrorCode;
            transaction.BankErrorMessage = _errorMsg;
            transaction.ModifiedOn       = DateTime.Now;
            transaction.ModifiedBy       = 1;
            await _transactionRepository.Update(transaction);

            query["id"]        = transaction.Id.ToString();
            query["trackCode"] = transaction.UserTrackCode.ToString();
            query["status"]    = false.ToString();
            query["errorCode"] = ((byte)bankErrorCode).ToString();
            query["message"]   = _errorMsg;
            uriBuilder.Query   = query.ToString();
            longurl            = uriBuilder.ToString();
            var url = string.Format(longurl);

            return(Redirect(url));
        }