Ejemplo n.º 1
0
        /// <summary>
        /// 解析以下格式的字符串: ICBC_DEBIT
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public static BankCard Parse(string code)
        {
            if (code == null)
            {
                return(null);
            }

            var index = code.IndexOf('_');

            if (index < 0)
            {
                return(new BankCard(Bank.Find(code), BankCardType.Other));
            }

            var bankId = code.Substring(0, index);
            var type   = (BankCardType)Enum.Parse(typeof(BankCardType), code.Substring(index + 1));

            return(new BankCard(Bank.Find(bankId), type));
        }
Ejemplo n.º 2
0
            protected override void DeserializeSuccessFields(List <KeyValuePair <string, string> > values, IJsonParser jsonParser, XElement xml)
            {
                device_info          = GetValue(values, "device_info");
                openid               = GetValue(values, "openid");
                is_subscribe         = GetValue(values, "is_subscribe") == "Y";
                trade_type           = (TradeType)Enum.Parse(typeof(TradeType), GetValue(values, "trade_type"));
                trade_state          = (TradeState)Enum.Parse(typeof(TradeState), GetValue(values, "trade_state"));
                bank_type            = Bank.Find(GetValue(values, "bank_type"));
                total_fee            = GetIntValue(values, "total_fee") ?? 0;
                settlement_total_fee = GetIntValue(values, "settlement_total_fee");
                fee_type             = Currency.Find(GetValue(values, "fee_type"));
                cash_fee             = GetIntValue(values, "cash_fee") ?? 0;
                cash_fee_type        = Currency.Find(GetValue(values, "cash_fee_type"));
                coupon_fee           = GetIntValue(values, "coupon_fee");
                coupon_count         = GetIntValue(values, "coupon_count");
                transaction_id       = GetValue(values, "transaction_id");
                out_trade_no         = GetValue(values, "out_trade_no");
                attach               = GetValue(values, "attach");
                time_end             = DateTime.ParseExact(GetValue(values, "time_end"), "yyyMMddHHmmss", null);
                trade_state_desc     = GetValue(values, "trade_state_desc");

                if (coupon_count > 0)
                {
                    // ReSharper disable once PossibleInvalidOperationException
                    coupons = new CouponPayment[coupon_count.Value];

                    for (var n = 0; n < coupon_count.Value; n++)
                    {
                        var sn = "_$" + n.ToString("D");
                        coupons[n] = new CouponPayment
                        {
                            coupon_type = (CouponType)Enum.Parse(typeof(CouponType), GetValue(values, "coupon_type" + sn)),
                            coupon_id   = GetValue(values, "coupon_id" + sn),
                            coupon_fee  = GetIntValue(values, "coupon_fee" + sn) ?? 0,
                        };
                    }
                }
            }
Ejemplo n.º 3
0
            protected override void DeserializeSuccessFields(List <KeyValuePair <string, string> > values, IJsonParser jsonParser, XElement xml)
            {
                device_info          = GetValue(values, "device_info");
                openid               = GetValue(values, "openid");
                is_subscribe         = GetValue(values, "is_subscribe") == "Y";
                trade_type           = (TradeType)Enum.Parse(typeof(TradeType), GetValue(values, "trade_type"));
                bank_type            = Bank.Find(GetValue(values, "bank_type"));
                fee_type             = Currency.Find(GetValue(values, "fee_type"));
                total_fee            = GetIntValue(values, "total_fee") ?? 0;
                settlement_total_fee = GetIntValue(values, "settlement_total_fee");
                coupon_fee           = GetIntValue(values, "coupon_fee");
                cash_fee             = GetIntValue(values, "cash_fee") ?? 0;
                cash_fee_type        = Currency.Find(GetValue(values, "cash_fee_type"));
                transaction_id       = GetValue(values, "transaction_id");
                out_trade_no         = GetValue(values, "out_trade_no");
                attach               = GetValue(values, "attach");
                time_end             = DateTime.ParseExact(GetValue(values, "time_end"), "yyyMMddHHmmss", null);
                var d = GetValue(values, "detail");

                if (d != null)
                {
                    detail = jsonParser.Build <GoodDetails>(jsonParser.Parse(d));
                }
            }