static string[] feecode3 = new string[] { "408536", "408536", "408536", "408536", "408536" };//荣邦3 //static string[] feecode3 = new string[] { "406591", "502114", "521467", "556151", "704252" };//荣邦3 public static OptionFee SelectOptionFee(Logic.ChannelType chanel, Logic.VipType vip) { OptionFee model = new OptionFee(); decimal[] r = Constant.GetRate(chanel == Logic.ChannelType.荣邦科技无积分 ? 1 : 0, vip); decimal Rate1 = r[0]; decimal Rate3 = r[1]; switch (chanel) { case Logic.ChannelType.荣邦科技积分: model.ratecode = feecode1[(int)vip]; break; case Logic.ChannelType.荣邦科技无积分: model.ratecode = feecode2[(int)vip]; break; case Logic.ChannelType.荣邦3: model.ratecode = feecode3[(int)vip]; break; default: break; } model.Rate1 = Rate1; model.Rate3 = Rate3; return(model); }
public string ssssdfasdf() { Logic.ChannelType chanel = Logic.ChannelType.荣邦科技积分; int a = (int)chanel; return(a.ToString()); }
public ActionResult openChannel(int chan) { var result = new ResultModel(); result.backState = -100; result.message = "未知错误"; int resultId = 0; int TypeId = (int)Logic.KeyValueType.支付通道管理; Logic.ChannelType ct = (Logic.ChannelType)chan; var kv = keyValueDao.Single(" TypeId=@TypeId and keyId=@chan ", new { TypeId, chan }); if (kv != null && kv.ID > 0) { //添加定时任务记录 var stime = JObject.Parse(kv.Value)["StartTime"]; DateTime execTime = Convert.ToDateTime(DateTime.Now.ToString($"yyyy-MM-dd {stime}")).AddDays(1); JObject value = new JObject(); value["keyId"] = kv.ID; value["remark"] = $"{ct}通道定时开启"; //不能五分钟内连续创建任务 if (timedTaskDao.Count(" DATEDIFF(MINUTE,CTime,GETDATE())<5 ") > 0) { return(new RedirectResult($"/Prompt?state=-100&msg=不能五分钟内连续创建任务&url=/TimedTask/")); } resultId = timedTaskDao.Init(Logic.TimedTaskType.通道开启, execTime, value.ToString()); result.backState = resultId > 0 ? 0 : -100; result.message = resultId > 0 ? "任务创建成功" : "任务创建失败"; } return(new RedirectResult($"/Prompt?state={result.backState}&msg={result.message}&url=/TimedTask/")); }
public static respModel <respCheckDzeroModel> CheckDzero(int orderno, Logic.Platform Platform) { string LogDic = "无卡查询接口"; Logic.ChannelType channel = Logic.ChannelType.米刷; var yeelog = yeepayLogDao.Single(orderno); if (yeelog == null) { return(new respModel <respCheckDzeroModel>() { backState = -100, message = "请求流水号不存在" }); } int requestId = yeepayLogDao.Init((int)MiShua.Enums.MiShuaType.无卡查询接口, yeelog.UserId, (int)Platform, orderno, (int)channel); Logs.WriteLog($"获取请求流水号:orderno:{orderno},Platform:{Platform},requestId:{requestId}", MiShuaLogDic, LogDic); //reqModel model = new reqModel(); //model.mchNo = mchNo; //model. reqCheckDzeroModel model = new reqCheckDzeroModel(); model.versionNo = "1"; model.mchNo = mchNo; model.tradeNo = orderno.ToString(); model.transNo = ""; return(Post <respCheckDzeroModel>(requestId, "checkDzero", JObject.FromObject(model), LogDic)); }
public static respModel <respPayDzeroModel> PayDzero(int UbkId, int Platform, decimal Amount) { string LogDic = "无卡支付接口"; Logic.ChannelType channel = Logic.ChannelType.米刷; var ubk = userBankCardDao.Single(UbkId); var withBank = userBankCardDao.Single(" TypeId=0 and UserId=@UserId ", new { ubk.UserId }); var user = usersDao.Single(ubk.UserId); //获取请求流水号 int keyId = payRecordDao.Init(UbkId, Amount, Platform, Ip.GetClientIp(), (int)channel); //int keyId = payRecordDao.Init(bta.UserId, Amount, Platform, Ip.GetClientIp(), bta.BankCard); Logs.WriteLog($"创建支付记录:UserId:{ubk.UserId},Platform:{Platform},keyId:{keyId},Amount={Amount}", MiShuaLogDic, LogDic); int requestId = yeepayLogDao.Init((int)MiShua.Enums.MiShuaType.无卡支付接口, ubk.UserId, Platform, keyId, (int)channel); Logs.WriteLog($"获取请求流水号:UserId:{ubk.UserId},Platform:{Platform},requestId:{requestId},keyId:{keyId}", MiShuaLogDic, LogDic); //reqModel model = new reqModel(); //model.mchNo = mchNo; //model. reqPayDzeroModel model = new reqPayDzeroModel(); model.versionNo = "1"; model.mchNo = mchNo; model.price = Amount.ToString("F2"); model.description = "SJ商品"; model.orderDate = DateTime.Now.ToString("yyyyMMddHHmmss"); model.tradeNo = requestId.ToString(); model.notifyUrl = noticeUrl + "MiShuaNotice"; model.callbackUrl = ITOrm.Utility.Const.Constant.CurrentApiHost + "itapi/pay/success?backState=0&message=支付成功";; model.payCardNo = ubk.BankCard; model.userToken = ubk.Mobile; model.accTel = withBank.Mobile; model.accName = user.RealName; model.accIdCard = user.IdCard; model.bankName = withBank.BankName; var bank = bankDao.Single("BankName=@BankName", new { withBank.BankName }); model.bankCode = bank.UnionCode; model.cardNo = withBank.BankCard; decimal[] r = Constant.GetRate(0, (Logic.VipType)user.VipType); model.downPayFee = (r[0] * 1000M).ToString("F1"); model.downDrawFee = r[1].ToString("F2"); return(Post <respPayDzeroModel>(requestId, "payDzero", JObject.FromObject(model), LogDic)); }
public static respMasgetModel <object> SamenameUpdate(int UserId, int Platform, Logic.ChannelType chanel, Logic.VipType vip) { string LogDic = "修改同名进出商户费率"; int TypeId = (int)chanel; MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId and TypeId=@TypeId", new { UserId, TypeId }); if (mUser == null) { return(new respMasgetModel <object>() { ret = -100, message = "用户不存在" }); } bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.修改同名进出商户费率, UserId, Platform, 0, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{UserId},Platform:{Platform},requestId:{requestId}", MasgetLogDic, LogDic); var optionFee = SelectOptionFee(chanel, vip); reqSamenameUpdateModel model = new reqSamenameUpdateModel(); model.companyid = mUser.CompanyId; model.ratecode = optionFee.ratecode; model.paymenttypeid = "25"; model.subpaymenttypeid = "25"; //model.accountrule = "1"; string json = Order <reqSamenameUpdateModel>(model); var resp = PostUrl <object>(requestId, "masget.pay.compay.router.samename.update", json, LogDic, chanel); if (resp.backState == 0) { //更新用户 mUser.Rate1 = optionFee.Rate1; mUser.Rate3 = optionFee.Rate3; mUser.UTime = DateTime.Now; flag = masgetUserDao.Update(mUser); Logs.WriteLog($"修改费率:UserId:{UserId},Platform:{Platform},requestId:{requestId},flag:{flag},Rate1{ optionFee.Rate1}, Rate3:{ optionFee.Rate1}", MasgetLogDic, LogDic); } return(resp); }
public static respMasgetModel <respPaymentjournalGetModel> PaymentjournalGet(int rid, int Platform, Logic.ChannelType chanel) { string LogDic = "查询交易订单"; var yeepaylog = yeepayLogDao.Single(rid); int TypeId = (int)chanel; MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId and typeId=@TypeId", new { yeepaylog.UserId, TypeId }); bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.查询交易订单, yeepaylog.UserId, Platform, 0, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{yeepaylog.UserId},Platform:{Platform},requestId:{requestId}", MasgetLogDic, LogDic); reqPaymentjournalGetModel model = new reqPaymentjournalGetModel(); model.companyid = mUser.CompanyId; model.ordernumber = rid.ToString(); //model.accountrule = "1"; string json = Order <reqPaymentjournalGetModel>(model); var resp = PostUrl <respPaymentjournalGetModel>(requestId, "masget.pay.compay.router.paymentjournal.get", json, LogDic, chanel); if (resp.backState == 0) { } return(resp); }
public static respMasgetModel <respPayConfirmpayModel> PayConfirmpay(int PayId, string code, int Platform, Logic.ChannelType chanel) { string LogDic = "确认支付"; int TypeId = (int)chanel; PayCashier pay = payCashierDao.Single(PayId); respBackPayModel respBP = JsonConvert.DeserializeObject <respBackPayModel>(pay.Value); MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId and TypeId=@TypeId", new { pay.UserId, TypeId }); if (mUser == null) { Logs.WriteLog($"未查到用户:UserId:{pay.UserId},Platform:{Platform},PayId:{pay.ID}", MasgetLogDic, LogDic); return(new respMasgetModel <respPayConfirmpayModel>() { ret = -9999, message = "用户未进件" }); } Users user = usersDao.Single(pay.UserId); bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.确认支付, pay.UserId, Platform, pay.PayRecordId, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{pay.UserId},Platform:{Platform},requestId:{requestId},keyId:{pay.PayRecordId}", MasgetLogDic, LogDic); reqPayConfirmpayModel model = new reqPayConfirmpayModel(); model.authcode = code; model.ordercode = respBP.ordercode; //model.accountrule = "1"; string json = Order <reqPayConfirmpayModel>(model); var resp = PostUrl <respPayConfirmpayModel>(requestId, "masget.pay.compay.router.confirmpay", json, LogDic, chanel, mUser.ID); if (resp.backState == 0) { //成功修改支付表状态 pay.State = 1; pay.UTime = DateTime.Now; flag = payCashierDao.Update(pay); Logs.WriteLog($"收银表状态修改:UserId:{pay.UserId},Platform:{Platform},requestId:{requestId},PayCashierId:{PayId},flag={flag}", MasgetLogDic, LogDic); var payRecord = payRecordDao.Single(pay.PayRecordId); payRecord.State = 5;//等待回调 payRecord.UTime = DateTime.Now; flag = payRecordDao.Update(payRecord); Logs.WriteLog($"收款记录修改:UserId:{pay.UserId},Platform:{Platform},requestId:{requestId},PayRecordId:{pay.PayRecordId},flag={flag}", MasgetLogDic, LogDic); } return(resp); }
public static respMasgetModel <respBackPayModel> BackPay(int UbkId, decimal Amount, int Platform, Logic.ChannelType chanel) { string LogDic = "订单支付"; int TypeId = (int)chanel; BankTreatyApply bta = bankTreatyApplyDao.Single(" UbkId=@UbkId and ChannelType=@TypeId", new { UbkId, TypeId }); MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId and TypeId=@TypeId", new { bta.UserId, TypeId }); if (mUser == null) { Logs.WriteLog($"未查到用户:UserId:{bta.UserId},Platform:{Platform},BtaId:{bta.ID}", MasgetLogDic, LogDic); return(new respMasgetModel <respBackPayModel>() { ret = -9999, message = "用户未进件" }); } Users user = usersDao.Single(bta.UserId); bool flag = false; //获取请求流水号 int keyId = payRecordDao.Init(UbkId, Amount, Platform, Ip.GetClientIp(), (int)chanel); //int keyId = payRecordDao.Init(bta.UserId, Amount, Platform, Ip.GetClientIp(), bta.BankCard); Logs.WriteLog($"创建支付记录:UserId:{bta.UserId},Platform:{Platform},keyId:{keyId},Amount={Amount}", MasgetLogDic, LogDic); int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.订单支付, bta.UserId, Platform, keyId, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{bta.UserId},Platform:{Platform},requestId:{requestId},keyId:{keyId}", MasgetLogDic, LogDic); reqBackPayModel model = new reqBackPayModel(); model.ordernumber = requestId.ToString(); model.body = "SJ商品购买"; model.amount = (Amount * 100).ToString("F0"); model.businesstype = "1001"; model.paymenttypeid = "25"; model.backurl = MasgetNoticeUrl + "backpayNotice"; var ext = new PayExtraParamsModel(); ext.password = ""; ext.authcode = ""; ext.treatycode = bta.Treatycode; model.payextraparams = Order <PayExtraParamsModel>(ext); //model.accountrule = "1"; string json = Order <reqBackPayModel>(model); var resp = PostUrl <respBackPayModel>(requestId, "masget.pay.compay.router.back.pay", json, LogDic, chanel, mUser.ID); if (resp.backState == 0) { //添加收银记录表 PayCashier payCash = new PayCashier(); payCash.ChannelType = (int)chanel; payCash.Value = JsonConvert.SerializeObject(resp.data); payCash.LogId = requestId; payCash.State = 0; payCash.UserId = bta.UserId; payCash.PayRecordId = keyId; payCash.UbkId = UbkId; int payCId = payCashierDao.Insert(payCash); Logs.WriteLog($"添加收银记录表:UserId:{bta.UserId},Platform:{Platform},requestId:{requestId},payCId:{payCId}", MasgetLogDic, LogDic); resp.url = $"{Constant.CurrentApiHost}itapi/pay/cashier?payid={payCId}"; } return(resp); }
public static respMasgetModel <respSubcompanyAddModel> SubcompanyAdd(int UserId, int Platform, Logic.ChannelType chanel) { string LogDic = "快速进件"; UserBankCard ubk = userBankCardDao.Single("UserId=@UserId and State=1 and TypeId=0 ", new { UserId }); Users user = usersDao.Single(UserId); bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.快速进件, UserId, Platform, 0, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{UserId},Platform:{Platform},requestId:{requestId},chanel:{chanel}", MasgetLogDic, LogDic); string wu = ""; switch (chanel) { case Logic.ChannelType.荣邦科技积分: break; case Logic.ChannelType.荣邦科技无积分: wu = "(无积分)"; break; case Logic.ChannelType.荣邦3: wu = "(积分3)"; break; default: break; } reqSubcompanyAddModel model = new reqSubcompanyAddModel(); model.companyname = $"{user.RealName}({user.UserId}){wu}"; model.companycode = user.UserId.ToString(); model.accountname = user.RealName; model.bankaccount = ubk.BankCard; //model.accounttype = "1"; //model.bankcardtype = "1"; model.mobilephone = ubk.Mobile; model.idcardno = user.IdCard; model.address = "无"; model.loginname = ubk.Mobile; Logic.VipType vip = (Logic.VipType)user.VipType; var optionFee = SelectOptionFee(chanel, vip); model.ratecode = optionFee.ratecode; model.bank = ""; model.bankcode = ""; //model.accountrule = "1"; string json = Order <reqSubcompanyAddModel>(model); var resp = PostUrl <respSubcompanyAddModel>(requestId, "masget.webapi.com.subcompany.add", json, LogDic, chanel); if (resp.backState == 0) { //创建用户 var mid = masgetUserDao.Init(UserId, resp.data.appid, resp.data.session, resp.data.secretkey, resp.data.companyid, Platform, (int)chanel, optionFee.Rate1, optionFee.Rate3); Logs.WriteLog($"创建荣邦渠道用户:UserId:{UserId},Platform:{Platform},requestId:{requestId},MasgetUserId:{mid},Rate1{optionFee.Rate1},Rate3:{optionFee.Rate3}", MasgetLogDic, LogDic); if (chanel == Logic.ChannelType.荣邦3) { masgetUserDao.UpdateState(UserId, (int)chanel, 1); Logs.WriteLog($"默认设置已入驻:UserId:{UserId},chanel:{Platform},MasgetUserId:{mid}", MasgetLogDic, LogDic); } } return(resp); }
public static respMasgetModel <respTreatyQueryModel> TreatyQuery(int Platform, Logic.ChannelType chanel, string bankaccount) { respMasgetModel <respTreatyQueryModel> tip = new respMasgetModel <respTreatyQueryModel>(); string LogDic = "查询快捷协议"; UserBankCard ubk = userBankCardDao.Single("BankCard=@bankaccount", new { bankaccount }); if (ubk == null) { tip.ret = -100; tip.message = "未查到卡记录"; return(tip); } MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId", new { ubk.UserId }); if (mUser == null) { tip.ret = -100; tip.message = "用户未开户"; return(tip); } bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.查询快捷协议, ubk.UserId, Platform, 0, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{ ubk.UserId},Platform:{Platform},requestId:{requestId}", MasgetLogDic, LogDic); reqMasgetModel req = new reqMasgetModel(); req.chanel = chanel; reqTreatyQueryModel model = new reqTreatyQueryModel(); model.pcompanyid = req.appid; model.companyid = mUser.CompanyId; model.bankaccount = bankaccount; model.treatycode = ""; //model.accountrule = "1"; string json = Order <reqTreatyQueryModel>(model); var resp = PostUrl <respTreatyQueryModel>(requestId, "masget.pay.compay.router.samename.update", json, LogDic, chanel); if (resp.backState == 0) { } return(resp); }
public string BankCardActivate(int cid = 0, int UserId = 0, int BankID = 0, int ChannelType = 0) { userEventDao.BankCardActivate(cid, UserId, Ip.GetClientIp(), 0, TQuery.GetString("version"), BankID, ChannelType); Logic.ChannelType ct = (Logic.ChannelType)ChannelType; var ubk = userBankCardDao.Single(BankID); //Thread.Sleep(3000); //return ApiReturnStr.getError(0, "验证码发送成功"); if (ubk == null) { return(ApiReturnStr.getError(-100, "银行卡不存在")); } if (ubk.UserId != UserId) { return(ApiReturnStr.getError(-100, "此卡不属于该用户")); } switch (ct) { case Logic.ChannelType.易宝: return(ApiReturnStr.getError(-100, "易宝通道无需激活")); case Logic.ChannelType.荣邦科技积分: case Logic.ChannelType.荣邦科技无积分: case Logic.ChannelType.荣邦3: //进件 if (!masgetUserDao.QueryIsExist(UserId, ChannelType)) { var resultSubcompany = MasgetDepository.SubcompanyAdd(UserId, cid, ct); if (resultSubcompany.backState != 0) { return(ApiReturnStr.getError(-100, $"开户失败({resultSubcompany.message},ct={ChannelType})")); } } //入驻 if (!masgetUserDao.QueryIsOpen(UserId, ChannelType)) { var resultSamenameOpen = MasgetDepository.SamenameOpen(UserId, cid, ct); if (resultSamenameOpen.backState != 0) { return(ApiReturnStr.getError(-100, $"入驻失败({resultSamenameOpen.message},ct={ChannelType})")); } } if (bankTreatyApplyDao.QueryTreatycodeIsOpen(BankID, ChannelType)) { return(ApiReturnStr.getError(-100, "此通道已开通快捷协议")); } //发送验证码 var resultTreatyApply = MasgetDepository.TreatyApply(BankID, cid, ct); if (resultTreatyApply.backState != 0) { return(ApiReturnStr.getError(-100, $"申请开通快捷协议失败({resultTreatyApply.message})")); } else { return(ApiReturnStr.getError(0, "验证码发送成功")); } default: break; } return(ApiReturnStr.getError(-100, "参数错误")); }
public static respMasgetModel <respTreatyApplyModel> TreatyApply(int UbkId, int Platform, Logic.ChannelType chanel) { string LogDic = "申请开通快捷协议"; UserBankCard ubk = userBankCardDao.Single(UbkId); int TypeId = (int)chanel; MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId and TypeId=@TypeId", new { ubk.UserId, TypeId }); if (mUser == null) { Logs.WriteLog($"未查到用户:UserId:{ubk.UserId},Platform:{Platform},ubkId:{UbkId}", MasgetLogDic, LogDic); return(new respMasgetModel <respTreatyApplyModel>() { ret = -9999, message = "用户未进件" }); } Users user = usersDao.Single(ubk.UserId); bool flag = false; //创建快捷协议记录 var btaId = bankTreatyApplyDao.Init(ubk.UserId, UbkId, ubk.BankCard, ubk.Mobile, Platform, (int)chanel); //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.申请开通快捷协议, ubk.UserId, Platform, btaId, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{ubk.UserId},Platform:{Platform},requestId:{requestId},ubkId:{UbkId},btaId:{btaId}", MasgetLogDic, LogDic); reqTreatyApplyModel model = new reqTreatyApplyModel(); model.accountname = user.RealName; model.accounttype = "1"; model.bankaccount = ubk.BankCard; model.certificatetype = "1"; model.certificateno = user.IdCard; model.mobilephone = ubk.Mobile; model.collecttype = "1"; model.startdate = ""; model.enddate = ""; model.bankcode = ""; model.bank = ""; model.cvv2 = ubk.CVN2.ToString(); model.expirationdate = $"{ubk.ExpiresMouth}{ubk.ExpiresYear}"; model.fronturl = ""; model.backurl = ""; //model.accountrule = "1"; string json = Order <reqTreatyApplyModel>(model); var resp = PostUrl <respTreatyApplyModel>(requestId, "masget.pay.collect.router.treaty.apply", json, LogDic, chanel, mUser.ID); if (resp.backState == 0) { //更新快捷协议 flag = bankTreatyApplyDao.UpdateTreatycode(btaId, resp.data.treatycode, resp.data.smsseq, 1);// 1等待确认 Logs.WriteLog($"申请开通快捷协议:UserId:{ubk.UserId},Platform:{Platform},requestId:{requestId},flag:{flag}", MasgetLogDic, LogDic); } return(resp); }
public static respMasgetModel <object> SamenameOpen(int UserId, int Platform, Logic.ChannelType chanel) { string LogDic = "商户通道入驻"; int TypeId = (int)chanel; MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId and TypeId=@TypeId", new { UserId, TypeId }); bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.商户通道入驻接口, UserId, Platform, 0, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{UserId},Platform:{Platform},requestId:{requestId}", MasgetLogDic, LogDic); reqSamenameOpenModel model = new reqSamenameOpenModel(); model.companyid = mUser.CompanyId; //model.accountrule = "1"; string json = Order <reqSamenameOpenModel>(model); var resp = PostUrl <object>(requestId, "masget.pay.compay.router.samename.open", json, LogDic, chanel); if (resp.backState == 0) { //更新用户 flag = masgetUserDao.UpdateState(UserId, TypeId, 1); Logs.WriteLog($"入驻状态更新:UserId:{UserId},Platform:{Platform},requestId:{requestId},flag:{flag}", MasgetLogDic, LogDic); } return(resp); }
public static respMasgetModel <respSubcompanyGetModel> SubcompanyGet(int UserId, int Platform, Logic.ChannelType chanel) { string LogDic = "子商户秘钥下载"; //MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId", new { UserId }); bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.子商户秘钥下载, UserId, Platform, 0, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{UserId},Platform:{Platform},requestId:{requestId}", MasgetLogDic, LogDic); reqSubcompanyGetModel model = new reqSubcompanyGetModel(); model.companycode = UserId.ToString(); model.mobilephone = ""; //model.accountrule = "1"; string json = Order <reqSubcompanyGetModel>(model); var resp = PostUrl <respSubcompanyGetModel>(requestId, "masget.webapi.com.subcompany.get", json, LogDic, chanel); if (resp.backState == 0) { //更新用户 //flag = masgetUserDao.UpdateState(UserId, 1); Logs.WriteLog($"子商户秘钥下载:UserId:{UserId},Platform:{Platform},requestId:{requestId},flag:{flag}", MasgetLogDic, LogDic); } return(resp); }
private bool WithDrawHandle() { bool flag = false; if (listViewPayRecord != null && listViewPayRecord.Count > 0) { while (listViewPayRecord.Count > 0) { var item = listViewPayRecord[0]; Logic.ChannelType Channel = (Logic.ChannelType)item.ChannelType; ResultModel result = new ResultModel(); result.backState = -100; string msg = ""; switch (Channel) { case Logic.ChannelType.易宝: msg = "支付失败"; var yeepayResult = YeepayDepository.TradeReviceQuery(item.RequestId.ToString(), (int)Logic.Platform.系统); if (yeepayResult.backState == 0 && yeepayResult.tradeReceives.Count > 0 && yeepayResult.tradeReceives[0].status == "SUCCESS") { result.backState = 0; msg = "支付成功"; } break; case Logic.ChannelType.荣邦科技积分: case Logic.ChannelType.荣邦3: msg = "支付失败"; var masgettResult = MasgetDepository.PaymentjournalGet(item.RequestId, (int)Logic.Platform.系统, Channel); if (masgettResult.backState == 0 && masgettResult.data.respcode == 2) { result.backState = 0; msg = "支付成功"; } break; case Logic.ChannelType.荣邦科技无积分: break; case Logic.ChannelType.腾付通: var TengResult = TengDepository.PayDebitQuery(item.RequestId, (int)Logic.Platform.系统); if (TengResult.backState == 0 && TengResult.status == "3") { result.backState = 0; msg = "支付成功"; } else { msg = TengResult.respMsg; } break; case Logic.ChannelType.米刷: var mishuaResult = MiShuaDepository.CheckDzero(item.RequestId, Logic.Platform.系统); if (mishuaResult.backState == 0 && mishuaResult.Data.status == "00" && mishuaResult.Data.qfStatus == "SUCCESS") { result.backState = 0; msg = "支付成功"; } break; default: break; } bool f = false; //Logs.WriteLog($"处理数据:{JsonConvert.SerializeObject(result)}", "d:\\Log\\自动处理", "资金队列"); //处理数据 f = payRecordDao.UpdateState(item.ID, result.backState == 0 ? 10 : -1, msg); if (f) { //交易成功回调 UsersDepository.NoticeSuccess(item.ID, item.UserId); int num = Convert.ToInt32(_tbxWithDrawSuccess.Text); num++; _tbxWithDrawSuccess.Text = num.ToString(); } else { int num = Convert.ToInt32(_tbxWithDrawFail.Text); num++; _tbxWithDrawFail.Text = num.ToString(); } listViewPayRecord.Remove(item); Thread.Sleep(ConfigInfo.theadTime); } } else { //两小时前的数据被处理 listViewPayRecord = viewPayRecordDao.GetQuery(10, " State not in(10,-1) and DATEDIFF(HOUR,CTime,GETDATE())>2 ", null, "order by id asc"); if (listViewPayRecord != null && listViewPayRecord.Count > 0) { return(WithDrawHandle()); } } return(flag); }
/// <summary> /// 公共方法 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="requestId"></param> /// <param name="action"></param> /// <param name="json"></param> /// <param name="logPath"></param> /// <returns></returns> public static respMasgetModel <T> PostUrl <T>(int requestId, string action, string json, string logPath, Logic.ChannelType chanel, int MasgetId = 0) { try { bool flag = false; string result = string.Empty; reqMasgetModel req = new reqMasgetModel(); req.chanel = chanel; req.method = action; req.target_appid = ""; req.dataExpress = json; req.MasgetID = MasgetId; req.data = AES.Encrypt(json, req.secretkey, req.secretkey); //请求前日志记录 Logs.WriteLog("提交参数:" + JsonConvert.SerializeObject(req), MasgetLogDic, logPath); yeepayLogParasDao.Init(requestId, JsonConvert.SerializeObject(req), 0); //拼接所有传递参数 //公共字段 StringBuilder strPostPara = new StringBuilder(); PropertyInfo[] pis = typeof(reqMasgetModel).GetProperties(); foreach (PropertyInfo pi in pis) { object keyName = pi.GetValue(req, null); if (keyName != null && !string.IsNullOrEmpty(keyName.ToString()) && keyName.ToString() != "dataExpress" && keyName.ToString() != "MasgetID" && keyName.ToString() != "mUser") { strPostPara.Append("&").Append(pi.Name).Append("=").Append(pi.GetValue(req, null)); } } //执行请求 int responseState = ITOrm.Utility.Client.HttpHelper.HttpPost(MasgetDomain, strPostPara.ToString(), Encoding.UTF8, out result); if (responseState != 200) { result = $"{{ \"ret\":\"{responseState}\", \"message\":\"{result}\",\"data\":null }}"; } //返回后日志记录 Logs.WriteLog("返回参数:" + result, MasgetLogDic, logPath); yeepayLogParasDao.Init(requestId, result, 1); ////易宝日志状态更新 respMasgetModel <T> resp = JsonConvert.DeserializeObject <respMasgetModel <T> >(result); flag = yeepayLogDao.UpdateState(requestId, resp.backState.ToString(), resp.message, resp.backState == 0 ? 1 : resp.backState); Logs.WriteLog($"易宝日志状态更新:requestId:{requestId},ret:{resp.ret},message:{ resp.message},State:{flag}", MasgetLogDic, logPath); return(JsonConvert.DeserializeObject <respMasgetModel <T> >(result)); } catch (Exception e) { return(JsonConvert.DeserializeObject <respMasgetModel <T> >($"{{ \"ret\":\"-1000\", \"message\":\"{e.Message}\" }}")); } }
public static respMasgetModel <respTreatyModifyModel> TreatyModify(int UbkId, string cvv2, string expirationYear, string expirationMonuth, int Platform, Logic.ChannelType chanel) { string LogDic = "修改协议信息"; int TypeId = (int)chanel; BankTreatyApply bta = bankTreatyApplyDao.Single(" UbkId=@UbkId and ChannelType=@TypeId", new { UbkId, TypeId }); if (bta == null) { Logs.WriteLog($"未查到协议记录:UserId:{bta.UserId},Platform:{Platform},BtaId:{bta.ID}", MasgetLogDic, LogDic); return(new respMasgetModel <respTreatyModifyModel>() { ret = -9999, message = "未查到协议记录" }); } if (bta.State != 2) { Logs.WriteLog($"快捷协议未开通:UserId:{bta.UserId},Platform:{Platform},BtaId:{bta.ID}", MasgetLogDic, LogDic); return(new respMasgetModel <respTreatyModifyModel>() { ret = -9999, message = "快捷协议未开通" }); } MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId and TypeId=@TypeId", new { bta.UserId, TypeId }); if (mUser == null) { Logs.WriteLog($"未查到用户:UserId:{bta.UserId},Platform:{Platform},BtaId:{bta.ID}", MasgetLogDic, LogDic); return(new respMasgetModel <respTreatyModifyModel>() { ret = -9999, message = "用户未进件" }); } Users user = usersDao.Single(bta.UserId); bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.修改协议信息, bta.UserId, Platform, bta.ID, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{bta.UserId},Platform:{Platform},requestId:{requestId},BtaId:{bta.ID}", MasgetLogDic, LogDic); reqTreatyModifyModel model = new reqTreatyModifyModel(); model.cvv2 = cvv2; model.expirationdate = expirationMonuth + expirationYear; model.treatycode = bta.Treatycode; //model.accountrule = "1"; string json = Order <reqTreatyModifyModel>(model); var resp = PostUrl <respTreatyModifyModel>(requestId, "masget.pay.collect.router.treaty.modify", json, LogDic, chanel, mUser.ID); if (resp.backState == 0) { //更新银行卡对应通道可用 //UserBankCard ubk = userBankCardDao.Single(UbkId); //ubk.UTime = DateTime.Now; //ubk.CVN2 = cvv2; //ubk.ExpiresYear = expirationYear; //ubk.ExpiresMouth = expirationMonuth; //flag = userBankCardDao.Update(ubk); //Logs.WriteLog($"更新银行卡信息:UserId:{bta.UserId},Platform:{Platform},requestId:{requestId},UbkId:{UbkId},flag:{flag}", MasgetLogDic, LogDic); } return(resp); }
public static respMasgetModel <respTreatyConfirmModel> TreatyConfirm(int UbkId, string Authcode, int Platform, Logic.ChannelType chanel) { string LogDic = "确认开通快捷协议"; int TypeId = (int)chanel; BankTreatyApply bta = bankTreatyApplyDao.Single(" UbkId=@UbkId and ChannelType=@TypeId", new { UbkId, TypeId }); if (bta == null) { Logs.WriteLog($"未查到协议记录:UserId:{bta.UserId},Platform:{Platform},BtaId:{bta.ID}", MasgetLogDic, LogDic); return(new respMasgetModel <respTreatyConfirmModel>() { ret = -9999, message = "未查到协议记录" }); } if (bta.State == 2) { Logs.WriteLog($"快捷协议已开通:UserId:{bta.UserId},Platform:{Platform},BtaId:{bta.ID}", MasgetLogDic, LogDic); return(new respMasgetModel <respTreatyConfirmModel>() { ret = -9999, message = "快捷协议已开通" }); } MasgetUser mUser = masgetUserDao.Single(" UserId=@UserId and TypeId=@TypeId", new { bta.UserId, TypeId }); if (mUser == null) { Logs.WriteLog($"未查到用户:UserId:{bta.UserId},Platform:{Platform},BtaId:{bta.ID}", MasgetLogDic, LogDic); return(new respMasgetModel <respTreatyConfirmModel>() { ret = -9999, message = "用户未进件" }); } Users user = usersDao.Single(bta.UserId); bool flag = false; //获取请求流水号 int requestId = yeepayLogDao.Init((int)Masget.Enums.MasgetType.确认开通快捷协议, bta.UserId, Platform, bta.ID, (int)chanel); Logs.WriteLog($"获取请求流水号:UserId:{bta.UserId},Platform:{Platform},requestId:{requestId},BtaId:{bta.ID}", MasgetLogDic, LogDic); reqTreatyConfirmModel model = new reqTreatyConfirmModel(); model.authcode = Authcode; model.smsseq = bta.Smsseq; model.treatycode = bta.Treatycode; //model.accountrule = "1"; string json = Order <reqTreatyConfirmModel>(model); var resp = PostUrl <respTreatyConfirmModel>(requestId, "masget.pay.collect.router.treaty.confirm", json, LogDic, chanel, mUser.ID); if (resp.backState == 0) { //更新快捷协议 flag = bankTreatyApplyDao.UpdateTreatycode(bta.ID, resp.data.treatycode, bta.Smsseq, 2);// 1开通成功 Logs.WriteLog($"确认开通快捷协议:UserId:{bta.UserId},Platform:{Platform},requestId:{requestId},btaId:{bta.ID},flag:{flag}", MasgetLogDic, LogDic); //更新银行卡对应通道可用 UserBankCard ubk = userBankCardDao.Single(UbkId); ubk.State = 1; ubk.UTime = DateTime.Now; ubk.RelationId += TypeId + ","; flag = userBankCardDao.Update(ubk); Logs.WriteLog($"更新银行卡对应通道可用:UserId:{bta.UserId},Platform:{Platform},requestId:{requestId},UbkId:{UbkId},flag:{flag}", MasgetLogDic, LogDic); } return(resp); }
//1.0.0 public string ReceiveApi2(int cid = 0, int UserId = 0, decimal Amount = 0m, int BankID = 0, int PayType = 0) { Logs.WriteLog($"ReceiveApi2,cid:{cid},UserId:{UserId},Amount:{Amount},BankID:{BankID},PayType:{PayType}", "d:\\Log\\Yeepay", "ReceiveApi2"); userEventDao.UserReceiveApi2(cid, UserId, Ip.GetClientIp(), 0, TQuery.GetString("version"), Amount, BankID, PayType); #region 参数验证 if (UserId <= 0) { return(ApiReturnStr.getError(-100, "UserId参数错误")); } if (Amount < 500) { return(ApiReturnStr.getError(-100, "收款金额不能小于500元")); } var ubk = userBankCardDao.Single(BankID); if (ubk == null) { return(ApiReturnStr.getError(-100, "卡记录不存在")); } //卡数据验证 var validateBankResult = userBankCardDao.ValidateBank(ubk); if (validateBankResult.backState != 0) { return(ApiReturnStr.getError(-100, validateBankResult.message)); } var model = userDao.Single(UserId); if (model == null || model.UserId <= 0) { return(ApiReturnStr.getError(-100, "用户不存在")); } JObject data = new JObject(); data["PayUrl"] = ""; string msg = ""; #region 测试通道 //Thread.Sleep(3000); //int ChannelType = 4; //data["ChannelType"] = ChannelType; //data["BankID"] = BankID; //return ApiReturnStr.getApiData(-200, $"快捷协议未开通(03-{ChannelType})", data); #endregion #region 择通道 int ChannelType = 0; //data["ChannelType"] = ChannelType; data["BankID"] = BankID; var option = SelectOptionChannel.Optimal(Amount, BankID, PayType); if (option.backState == 0) { ChannelType = option.Data; data["ChannelType"] = ChannelType; } else { if (option.Data == 2) { return(ApiReturnStr.getError(-100, "通道升级中,敬请期待")); } return(ApiReturnStr.getError(-100, option.message)); } data["ChannelType"] = option.Data; #endregion if (Amount > 20000) { return(ApiReturnStr.getError(-100, "收款金额不能超过20000元")); } Logic.ChannelType ct = (Logic.ChannelType)ChannelType; switch (ct) { case Logic.ChannelType.易宝: #region 易宝逻辑 var yeepayUser = yeepayUserDao.Single(" UserId=@UserId ", new { UserId }); if (yeepayUser == null || model.UserId <= 0) { return(ApiReturnStr.getError(-100, "未开通子商户功能")); } if (yeepayUser.RateState1 == 0 || yeepayUser.RateState3 == 0 || yeepayUser.RateState4 == 0 || yeepayUser.RateState5 == 0) { return(ApiReturnStr.getError(-100, "费率未设置")); } if (yeepayUser.IsAudit == 0) { return(ApiReturnStr.getError(-100, "子商户未审核通过")); } var result = YeepayDepository.ReceiveApi(UserId, Amount, cid, BankID); if (result.backState == 0) { data["PayUrl"] = result.urlAES; return(ApiReturnStr.getApiData(data)); } msg = result.message; #endregion break; case Logic.ChannelType.荣邦科技积分: case Logic.ChannelType.荣邦科技无积分: case Logic.ChannelType.荣邦3: if (ChannelType == 2) { return(ApiReturnStr.getError(-100, "通道升级中,敬请期待")); } #region 荣邦逻辑 #region 验证 if (Amount < 500) { return(ApiReturnStr.getError(-100, "此通道要求支付金额不得小于500元!")); } //验证是否开户 if (!masgetUserDao.QueryIsExist(UserId, ChannelType)) { return(ApiReturnStr.getApiData(-200, $"快捷协议未开通(01-{ChannelType})", data)); //通道未开户 } if (!masgetUserDao.QueryIsOpen(UserId, ChannelType)) { return(ApiReturnStr.getApiData(-200, $"快捷协议未开通(02-{ChannelType})", data)); //通道未入驻 } //验证快捷协议是否开通 if (!bankTreatyApplyDao.QueryTreatycodeIsOpen(BankID, ChannelType)) { return(ApiReturnStr.getApiData(-200, $"快捷协议未开通(03-{ChannelType})", data)); } #endregion //执行请求 var resultBackPay = MasgetDepository.BackPay(BankID, Amount, cid, ct); if (resultBackPay.backState == 0) { data["PayUrl"] = resultBackPay.url; return(ApiReturnStr.getApiData(0, "请求成功,待确认支付", data)); } else if (resultBackPay.backState == 8401) { return(ApiReturnStr.getError(-8401, "通道暂无额度")); } else { return(ApiReturnStr.getError(-100, resultBackPay.message)); } #endregion case Logic.ChannelType.腾付通: var resultTeng = TengDepository.CreatePayCashier(UserId, cid, Amount, BankID); msg = resultTeng.message; if (resultTeng.backState == 0) { data["PayUrl"] = resultTeng.Data["url"]; return(ApiReturnStr.getApiData(data)); } break; case Logic.ChannelType.米刷: var resultMi = MiShuaDepository.PayDzero(BankID, cid, Amount); msg = resultMi.message; if (resultMi.backState == 0 && resultMi.Data.status == "00") { data["PayUrl"] = resultMi.Data.tranStr; return(ApiReturnStr.getApiData(data)); } break; default: break; } #endregion return(ApiReturnStr.getError(-100, msg)); }