private void ExPayInfo(SetPayInfoArgsModel args, ShopPayInfo model) { if (model == null) { ShopPayInfo shopPayInfo = new ShopPayInfo() { ShopId = args.shopid.Value, MchId = args.mchid, SecretKey = args.secretkey, PayWay = args.payway, IsEnable = args.isenable }; string shopFlag = db.Query <Shop>() .Where(m => !m.IsDel) .Where(m => m.Id == args.shopid.Value) .Select(m => m.Flag) .FirstOrDefault(); string appid = db.Query <ShopWechatOpenAuthorizer>() .Where(m => !m.IsDel) .Where(m => m.ShopId == args.shopid.Value) .Select(m => m.WechatOpenAuthorizer) .Select(m => m.AuthorizerAppId) .FirstOrDefault(); if (string.IsNullOrEmpty(appid)) { throw new Exception("请先在商户后台进行授权"); } shopPayInfo.ShopFlag = shopFlag; shopPayInfo.AppId = appid; shopPayInfo.AddTime = DateTime.Now; db.AddTo <ShopPayInfo>(shopPayInfo); db.SaveChanges(); } else { model.PayWay = args.payway; model.MchId = args.mchid; model.IsEnable = args.isenable; //args.isenable; string appid = db.Query <ShopWechatOpenAuthorizer>() .Where(m => !m.IsDel) .Where(m => m.ShopId == args.shopid.Value) .Select(m => m.WechatOpenAuthorizer) .Select(m => m.AuthorizerAppId) .FirstOrDefault(); model.AppId = appid; Regex regex = new Regex(@"^\*+$"); if (!regex.IsMatch(args.secretkey)) { model.SecretKey = args.secretkey; } } }
public APIResult SetPayInfo([FromBody] SetPayInfoArgsModel args) { if (!args.shopid.HasValue) { throw new ArgumentNullException("shopid"); } var model = db.Query <ShopPayInfo>() .Where(m => !m.IsDel) .Where(m => m.ShopId == args.shopid.Value && m.PayWay == args.payway) .FirstOrDefault(); var isenablecount = db.Query <ShopPayInfo>() .Where(m => !m.IsDel) .Where(m => m.ShopId == args.shopid.Value && m.IsEnable == true).FirstOrDefault(); //PayWay payWay = Enum.Parse<PayWay>(args.payway.ToString()); if (isenablecount != null) { if (isenablecount.PayWay != args.payway && args.isenable) { throw new Exception("一个商户同时只能开启一个支付通道!"); } } //微信支付 if (args.payway == PayWay.Wechat) { if (string.IsNullOrEmpty(args.mchid)) { throw new ArgumentNullException("商户号"); } if (string.IsNullOrEmpty(args.secretkey)) { throw new ArgumentNullException("密钥"); } ExPayInfo(args, model); } else if (args.payway == PayWay.Swiftpass) { ExPayInfo(args, model); model = db.Query <ShopPayInfo>() .Where(m => !m.IsDel) .Where(m => m.ShopId == args.shopid.Value && m.PayWay == args.payway) .FirstOrDefault(); //中信支付 var swifpasskey = db.SwiftpassKey.FirstOrDefault(r => r.ShopFlag == model.ShopFlag); if (swifpasskey == null) { SwiftpassKey key = new SwiftpassKey() { ShopFlag = model.ShopFlag, ReqUrl = args.reqUrl, PublicKey = args.publicKey, PrviateKey = args.prviateKey, Notify = args.notify, IsEnable = args.isenable }; db.Add(key); db.SaveChanges(); } else { if (string.IsNullOrEmpty(args.reqUrl) || string.IsNullOrEmpty(args.publicKey) || string.IsNullOrEmpty(args.prviateKey) || string.IsNullOrEmpty(args.notify) ) { throw new Exception("配置信息必须全部配置"); } swifpasskey.ShopFlag = model.ShopFlag; swifpasskey.ReqUrl = args.reqUrl; swifpasskey.PublicKey = args.publicKey; swifpasskey.PrviateKey = args.prviateKey; swifpasskey.Notify = args.notify; swifpasskey.IsEnable = args.isenable; model.IsEnable = args.isenable; db.Update(swifpasskey); } } db.SaveChanges(); return(Success()); }