예제 #1
0
        /// <summary>
        ///     删除银行卡
        /// </summary>
        /// <param name="view"></param>
        /// <returns></returns>
        public ServiceResult RomoveBankCard(ApiBankCardInput view)
        {
            var model = Resolve <IBankCardService>().GetSingle(u => u.Number == view.BankCardId);

            Delete(model);
            return(ServiceResult.Success);
        }
예제 #2
0
        public ApiResult Delete([FromQuery] ApiBankCardInput parameter)
        {
            if (!this.IsFormValid())
            {
                return(ApiResult.Failure(this.FormInvalidReason(), MessageCodes.ParameterValidationFailure));
            }

            var result = Resolve <IBankCardService>().RomoveBankCard(parameter);

            return(ToResult(result));
        }
예제 #3
0
        /// <summary>
        ///     增加或修改银行卡
        /// </summary>
        /// <param name="view"></param>
        /// <returns></returns>
        public ServiceResult AddOrUpdateBankCard(ApiBankCardInput view)
        {
            //银行卡必须为数字不能以0开头
            var r = new Regex("^([1-9][0-9]*)$");

            if (!r.IsMatch(view.BankCardId))
            {
                return(ServiceResult.FailedWithMessage("请正确输入银行卡号"));
            }

            if (view.BankCardId.Length < 10)
            {
                return(ServiceResult.FailedWithMessage("请正确输入银行卡号"));
            }

            if (view.Type == 0)
            {
                return(ServiceResult.FailedWithMessage("请选择银行类型"));
            }

            #region 使用阿里接口判断银行卡是否正确

            var checkUrl =
                $"https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo={view.BankCardId}&cardBinCheck=true";
            var             httpRequest  = (HttpWebRequest)WebRequest.CreateDefault(new Uri(checkUrl));
            HttpWebResponse httpResponse = null;

            try
            {
                httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            }
            catch (WebException ex)
            {
                httpResponse = (HttpWebResponse)ex.Response;
            }

            var st         = httpResponse.GetResponseStream();
            var reader     = new StreamReader(st, Encoding.GetEncoding("utf-8"));
            var readResult = reader.ReadToEnd();
            try
            {
                var aliResult = readResult.DeserializeJson <AliResult>();
                if (aliResult.Validated != "true")
                {
                    return(ServiceResult.FailedWithMessage("请正确输入银行卡号"));
                }
            }
            catch (Exception e)
            {
                return(ServiceResult.FailedWithMessage("请正确输入银行卡号"));
            }

            #endregion 使用阿里接口判断银行卡是否正确

            var bankCardList = Resolve <IBankCardService>().GetList(u => u.UserId == view.LoginUserId);
            if (bankCardList.Count >= 10)
            {
                return(ServiceResult.FailedWithMessage("银行卡最多只可绑定十张"));
            }

            var model    = Resolve <IBankCardService>().GetSingle(u => u.Number == view.BankCardId);
            var bankCard = new BankCard
            {
                Number  = view.BankCardId,
                Address = view.Address,
                Name    = view.Name,
                Type    = view.Type,
                UserId  = view.LoginUserId,
                Id      = view.Id.ToObjectId()
            };

            if (model == null)
            {
                var result = Add(bankCard);
                if (!result)
                {
                    return(ServiceResult.Failed);
                }

                return(ServiceResult.Success);
            }

            return(ServiceResult.FailedWithMessage("该银行卡已经绑定"));
        }