Exemple #1
0
        /// <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;
        }
Exemple #2
0
        /// <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;
        }
Exemple #3
0
        /// <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;
            }
        }