/// <summary> /// 根据支付接口的安装ID获得支付插件 /// </summary> /// <param name="paymentInfoId"></param> /// <returns></returns> public IPayment GetPayment(int paymentInfoId) { var paymentInfo = DbProvider.GetByID<PaymentInfo>(paymentInfoId); if (paymentInfo == null) return null; var paymentManager = new PaymentManager(); IPayment payment = paymentManager.GetPlugins(paymentInfo.ClassName); if (payment == null) return null; //InfoToPayment(paymentInfo, payment); return payment; }
/// <summary> /// 取得所有有效的支付方式 /// </summary> /// <returns></returns> public ICollection<IPayment> GetEffectPayments() { IQueryable<PaymentInfo> paymentInfos = DbProvider.D<PaymentInfo>().Where(x => x.IsEffect).OrderByDescending(x=>x.Sort); var paymentManager = new PaymentManager(); var result = new List<IPayment>(); foreach (PaymentInfo paymentInfo in paymentInfos) { IPayment payment = paymentManager.GetPlugins(paymentInfo.ClassName); if (payment == null) continue; payment.Logo = paymentInfo.Logo; payment.Sort = paymentInfo.Sort; payment.FeeType = paymentInfo.FeeType; payment.FeeAmount = paymentInfo.FeeAmount; payment.Config = paymentInfo.Config; result.Add(payment); } return result; }
/// <summary> /// 根据支付接口的Key,获得支付接口 /// </summary> /// <param name="key"></param> /// <returns></returns> public IPayment GetPayment(string key) { lock (_asnyLock) { var paymentInfo = DbProvider.D<PaymentInfo>().FirstOrDefault(x => x.ClassName == key); if (paymentInfo == null) return null; var paymentManager = new PaymentManager(); IPayment payment = paymentManager.GetPlugins(paymentInfo.ClassName); if (payment == null) return null; //InfoToPayment(paymentInfo, payment); return payment; } }