/// <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)); }
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, }; } } }
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)); } }