Example #1
0
        /// <summary>
        /// 通过网关类型,交易类型获取网关
        /// </summary>
        /// <param name="gatewayType">网关类型</param>
        /// <param name="gatewayTradeType">网关交易类型</param>
        /// <returns></returns>
        public GatewayBase Get(GatewayType gatewayType, GatewayTradeType gatewayTradeType)
        {
            var gatewayBase = list.FirstOrDefault(a => a.GatewayType == gatewayType);

            gatewayBase.GatewayTradeType = gatewayTradeType;

            return(gatewayBase);
        }
Example #2
0
        /// <summary>
        /// 通过交易类型获取网关
        /// </summary>
        /// <typeparam name="T">网关类型</typeparam>
        /// <param name="gatewayTradeType">网关交易类型</param>
        /// <returns></returns>
        public GatewayBase Get <T>(GatewayTradeType gatewayTradeType)
        {
            var gatewayList = _list
                              .Where(a => a is T && a.GatewayTradeType == gatewayTradeType)
                              .ToList();

            var gateway = gatewayList.Count > 0 ? gatewayList[0] : Get <T>();

            gateway.GatewayTradeType = gatewayTradeType;

            return(gateway);
        }
Example #3
0
 public virtual string CreateOrder(IOrder order, GatewayTradeType tradeType, Action <object, PaymentSucceedEventArgs> succeed = null, Action <object, PaymentFailedEventArgs> failed = null)
 {
     if (tradeType == GatewayTradeType.Barcode)
     {
         if (succeed == null)
         {
             throw new ArgumentNullException(nameof(succeed));
         }
         if (failed == null)
         {
             throw new ArgumentNullException(nameof(failed));
         }
         Gateway.PaymentSucceed += succeed;
         Gateway.PaymentFailed  += failed;
     }
     return(Gateway.Payment(order));
 }
 public Dictionary <string, string> Payment(GatewayTradeType gatewayTradeType, Dictionary <string, string> map = null)
 {
     gateway.GatewayTradeType = gatewayTradeType;
     return(Payment(gatewayTradeType));
 }
Example #5
0
 /// <summary>
 /// 下单
 /// </summary>
 /// <param name="order"></param>
 /// <param name="tradeType"></param>
 /// <param name="succeed"></param>
 /// <param name="failed"></param>
 /// <returns></returns>
 public string CreateOrder(Order order, GatewayTradeType tradeType,
                           Action <object, PaymentSucceedEventArgs> succeed = null,
                           Action <object, PaymentFailedEventArgs> failed   = null)
 {
     return(base.CreateOrder(order, tradeType, succeed, failed));
 }
Example #6
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="gatewayTradeType">网关交易类型</param>
 public NecessaryAttribute(GatewayTradeType gatewayTradeType)
 {
     this.gatewayTradeType = new GatewayTradeType[] { gatewayTradeType };
 }