コード例 #1
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #2
0
        public string ssssdfasdf()
        {
            Logic.ChannelType chanel = Logic.ChannelType.荣邦科技积分;
            int a = (int)chanel;

            return(a.ToString());
        }
コード例 #3
0
ファイル: TimedTaskController.cs プロジェクト: chenmsg/sujin
        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/"));
        }
コード例 #4
0
ファイル: MiShuaDepository.cs プロジェクト: chenmsg/sujin
        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));
        }
コード例 #5
0
ファイル: MiShuaDepository.cs プロジェクト: chenmsg/sujin
        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));
        }
コード例 #6
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #7
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #8
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #9
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #10
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #11
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #12
0
        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, "参数错误"));
        }
コード例 #13
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #14
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #15
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #16
0
        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);
        }
コード例 #17
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        /// <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}\"  }}"));
            }
        }
コード例 #18
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #19
0
ファイル: MasgetDepository.cs プロジェクト: chenmsg/sujin
        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);
        }
コード例 #20
0
ファイル: YeepayController.cs プロジェクト: chenmsg/sujin
        //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));
        }