public string BankBind(int cid = 0, int UserId = 0, string mobile = "", string bankcard = "", string bankcode = "", int typeid = 0, string cvn2 = "", string expiresYear = "", string expiresMouth = "", string OpeningBank = "", string OpeningSerialBank = "", int BankID = 0) { Logs.WriteLog($"Action:User,Cmd:BankBind,UserId:{UserId},mobile:{mobile},bankcard:{bankcard},bankcode:{bankcode},typeid:{typeid},cvn2:{cvn2},expiresYear:{expiresYear},expiresMouth:{expiresMouth},OpeningBank:{OpeningBank},OpeningSerialBank:{OpeningSerialBank}", "d:\\Log\\ITOrm", "BankBind"); userEventDao.UserBankBind(cid, UserId, Ip.GetClientIp(), mobile, bankcard, bankcode, typeid, cvn2, expiresYear, expiresMouth, OpeningBank, OpeningSerialBank, BankID); var version = TQuery.GetString("version"); if (cid == 3 && version == "1.0.0") { string temp = expiresYear; expiresYear = expiresMouth; expiresMouth = temp; } #region 验证 if (!TypeParse.IsMobile(mobile)) { return(ApiReturnStr.getError(-100, "预留手机号格式验证失败")); } if (!(bankcard.Length > 13 && bankcard.Length < 21)) { return(ApiReturnStr.getError(-100, "银行卡参数错误")); } if (string.IsNullOrEmpty(bankcode)) { return(ApiReturnStr.getError(-100, "银行编号不能为空")); } Users user = userDao.Single(UserId); if (user == null || user.UserId <= 0) { return(ApiReturnStr.getError(-100, "用户不存在")); } if (user.IsRealState != 1) { return(ApiReturnStr.getError(-100, "用户未实名认证,无法绑卡")); } if (typeid == 1)//如果是结算卡 { if (string.IsNullOrEmpty(cvn2) || string.IsNullOrEmpty(expiresYear) || string.IsNullOrEmpty(expiresMouth)) { return(ApiReturnStr.getError(-100, "支付卡参数有误")); } if (BankID == 0) { UserBankCard ubc = userBankCardDao.Single(" UserId=@UserId and BankCard=@bankcard and TypeId=1 ", new { UserId, bankcard }); if (ubc != null && ubc.ID > 0) { return(ApiReturnStr.getError(-100, "该支付卡已经绑定过,不能重复绑定")); } } } else { UserBankCard ubc = userBankCardDao.Single(" UserId=@UserId and TypeId=0 and State=1 ", new { UserId }); if (ubc != null && ubc.ID > 0) { return(ApiReturnStr.getApiData(-100, "结算卡只能绑定一张")); } } UserBankCard model = null; if (BankID > 0) { model = userBankCardDao.Single(BankID); if (model == null) { return(ApiReturnStr.getApiData(-100, "BankID记录不存在")); } if (model.State == 1) { return(ApiReturnStr.getApiData(-100, "该银行卡已通过验证,不可修改信息")); } } else { model = new UserBankCard(); } #endregion #region 绑卡 var result = BankCardBindHelper.Bind(typeid, user.RealName, user.IdCard, bankcard, mobile, cvn2, expiresYear, expiresMouth); model.BankCard = result.bankCard; model.BankCode = bankcode; model.BankName = bankDao.QueryBankName(bankcode); model.CVN2 = cvn2; model.ExpiresYear = expiresYear; model.ExpiresMouth = expiresMouth; model.UTime = DateTime.Now; model.Mobile = mobile; model.TypeId = typeid; model.OpeningBank = OpeningBank; model.OpeningSerialBank = OpeningSerialBank; model.State = 0;// result.backState ? 1 : 0;//默认为0 model.RelationId = ",0,"; bool flag = false; if (BankID == 0) { model.UserId = UserId; model.IP = Ip.GetClientIp(); model.CTime = DateTime.Now; model.Platform = cid; int num = userBankCardDao.Insert(model); flag = num > 0; return(ApiReturnStr.getError(flag ? 0 : -100, flag ? "绑定成功" : "绑定失败")); } else { var list = bankTreatyApplyDao.GetQuery(" State=2 And UbkID=@BankID", new { BankID }); if (list != null && list.Count > 0) { foreach (var item in list) { MasgetDepository.TreatyModify(BankID, cvn2, expiresYear, expiresMouth, cid, (Logic.ChannelType)item.ChannelType); } } flag = userBankCardDao.Update(model); return(ApiReturnStr.getError(flag ? 0 : -100, flag ? "修改成功" : "修改失败")); } #endregion }
/// <summary> /// 子商户注册 /// </summary> /// <param name="cid"></param> /// <param name="UserId"></param> /// <param name="IdCard">身份证号码</param> /// <param name="RealName">真实姓名</param> /// <param name="BankName">银行名称</param> /// <param name="BankAccountNumber">银行卡号码</param> /// <param name="AreaCode">地区编码</param> /// <param name="BankCardPhoto">银行卡照片</param> /// <param name="IdCardPhoto">身份证照片</param> /// <param name="IdCardBackPhoto">身份证背面照片</param> /// <param name="PersonPhoto">三合一照片</param> /// <returns></returns> public string Register(int cid = 0, int UserId = 0, string IdCard = "", string RealName = "", string BankName = "", string BankAccountNumber = "", string AreaCode = "", int BankCardPhoto = 0, int IdCardPhoto = 0, int IdCardBackPhoto = 0, int PersonPhoto = 0) { //Thread.Sleep(3000); //return ApiReturnStr.getError(-100, "注册失败,测试终点"); Logs.WriteLog($"Register,cid:{cid},UserId:{UserId},IdCard:{IdCard},RealName:{RealName},BankName:{BankName},BankAccountNumber:{BankAccountNumber},AreaCode:{AreaCode},BankCardPhoto:{BankCardPhoto},IdCardPhoto:{IdCardPhoto},IdCardBackPhoto:{IdCardBackPhoto},PersonPhoto:{PersonPhoto}", "d:\\Log\\Yeepay", "Register"); if (UserId == 100103) { Thread.Sleep(3000); Users m = userDao.Single(UserId); m.IsRealState = 1; m.RealName = "啊啊啊"; userDao.Update(m); return(ApiReturnStr.getError(0, "开户成功")); } #region 参数验证 if (UserId <= 0) { return(ApiReturnStr.getError(-100, "UserId参数错误")); } if (!RegexHelper.IsMatch(RealName, @"^\s*[\u4e00-\u9fa5]{1,}[\u4e00-\u9fa5.·]{0,15}[\u4e00-\u9fa5]{1,}\s*$")) { return(ApiReturnStr.getError(-100, "请输入真实的姓名!")); } if (!TypeParse.IsIdentity(IdCard)) { return(ApiReturnStr.getError(-100, "身份证号格式错误!")); } if (!TypeParse.IsChinese(BankName)) { return(ApiReturnStr.getError(-100, "银行卡开户行有误")); } if (string.IsNullOrEmpty(BankAccountNumber) || !(BankAccountNumber.Length > 13 && BankAccountNumber.Length < 21)) { return(ApiReturnStr.getError(-100, "银行卡卡号有误")); } if (!BankCardBindHelper.ValidateBank(BankName, BankAccountNumber)) { return(ApiReturnStr.getError(-100, "银行卡卡bin识别失败")); } if (string.IsNullOrEmpty(AreaCode) || AreaCode.Length != 4) { return(ApiReturnStr.getError(-100, "请选择地区码")); } if (BankCardPhoto == 0) { return(ApiReturnStr.getError(-100, "银行卡正面照未上传")); } if (IdCardPhoto == 0) { return(ApiReturnStr.getError(-100, "身份证正面照未上传")); } if (IdCardBackPhoto == 0) { return(ApiReturnStr.getError(-100, "身份证背面照未上传")); } if (PersonPhoto == 0) { PersonPhoto = IdCardPhoto; //取消手持三合一 } var user = userDao.Single(" IdCard=@IdCard and IsRealState=1", new { IdCard }); if (user != null && user.UserId > 0) { return(ApiReturnStr.getError(-100, "该身份证号码已认证")); } var model = userDao.Single(UserId); if (model == null || model.UserId <= 0) { return(ApiReturnStr.getError(-100, "用户不存在")); } var cnt = yeepayLogDao.Count(string.Format("typeId={0} and UserId={1} and DateDiff(dd,CTime,getdate())=0 ", (int)YeepayType.子商户注册, UserId)); if (cnt > 4) { return(ApiReturnStr.getError(-100, "当日开户次数超过5次,请次日再操作!")); } #endregion #region 组装子商户报文实体 reqRegisterModel yeepayRegModel = new reqRegisterModel(); yeepayRegModel.signedName = RealName; yeepayRegModel.idCard = IdCard; yeepayRegModel.bankAccountNumber = BankAccountNumber; yeepayRegModel.bankName = BankName.ConvertBank();//转换易宝可识别的银行 yeepayRegModel.areaCode = AreaCode; #endregion //易宝子商户注册 var result = YeepayDepository.Register(yeepayRegModel, UserId, cid, BankCardPhoto, IdCardPhoto, IdCardBackPhoto, PersonPhoto); //事件日志 userEventDao.RealNameAuthentication(cid, UserId, Ip.GetClientIp(), IdCard, RealName, result.backState == 0 ? 1 : 0, TQuery.GetString("version")); return(ApiReturnStr.getError(result.backState, result.backState == 0 ? "开户成功" : result.message)); }
public string ValidateBank() { var s = BankCardBindHelper.ValidateBank("招商银行1", "370286001882411"); return(s.ToString()); }