/// <summary> /// 查询退款信息。 /// </summary> /// <param name="transactionId">微信交易号。</param> /// <returns>返回退款信息。</returns> public virtual async Task <IRefundInfo> GetRefundInfo(ITransactionId transactionId) { if (transactionId == null) { throw new ArgumentNullException("transactionId"); } var payData = new Dictionary <string, string>(); payData.Add("appid", AppId); payData.Add("mch_id", ShopId); payData.Add("nonce_str", Guid.NewGuid().ToString().Replace("-", "")); payData.Add("transactionId", transactionId.TransactionId); payData.Add("sign", GetSignature(payData, ShopKey)); string backData = await HttpHelper.PostHttp(new Uri(QueryPayUrl), Encoding.UTF8.GetBytes(GetXml(payData)), "text/xml", Encoding.UTF8); XElement root = XDocument.Parse(backData).Element("xml"); if (root.Element("return_code").Value == "FAIL") { string errMsg = root.Element("return_msg").Value; throw new WechatException(errMsg); } if (root.Element("result_code").Value == "FAIL") { string errMsg = root.Element("err_code").Value; throw new WechatException(errMsg); } IRefundInfo info = GetRefundInfo(root); return(info); }
public void SetWith(ITransactionId toCopy) { if (toCopy != null) { toCopy.GetBlockId(out string bid); SetWithBlockId(bid); toCopy.GetTransactionId(out string tid); SetWithBlockId(tid); } }
internal static Guid AddTransaction(ISet <ITransaction> items, DateTime dt, Pecuniam amount, IVoca note = null, ITransactionId trace = null) { if (items == null) { throw new ArgumentNullException(nameof(items)); } var t = new Transaction(dt, amount, note) { Trace = trace }; items.Add(t); return(t.UniqueId); }
public void SetFrom(ITransactionId from) { m_from.SetWith(from); }
public void GetTransactions(out ITransactionId from, out ITransactionId to) { to = m_to; from = m_from; }
public void GetTo(out ITransactionId to) { to = m_to; }
/// <summary> /// Applies a purchase transaction to this credit card. /// </summary> /// <returns> /// True when the card is not expired and /// the purchase amount <see cref="amount"/> /// will not cause the total balance to exceed <see cref="Max"/>. /// </returns> public override Guid AddPositiveValue(DateTime dt, Pecuniam amount, IVoca note = null, ITransactionId trace = null) { if (dt > Cc.ExpDate) { return(Guid.Empty); } var cBal = GetValueAt(dt); if (cBal >= Max || cBal + amount >= Max) { return(Guid.Empty); } return(base.AddPositiveValue(dt, amount, note)); }
public virtual IAccount <Identifier> Credit(Pecuniam amt, IVoca note = null, DateTime?atTime = null, ITransactionId trace = null) { var dt = atTime ?? Balance.LastTransaction.AtTime; if (IsOppositeForm) { AddPositiveValue(dt, amt, note, trace); } else { AddNegativeValue(dt, amt, note, trace); } return(this); }
/// <summary> /// Applies a payment to the credit card account /// </summary> /// <returns> /// when <see cref="dt"/> is after the expiration date /// </returns> public override Guid AddNegativeValue(DateTime dt, Pecuniam amount, IVoca note = null, ITransactionId trace = null) { if (dt > Cc.ExpDate) { return(Guid.Empty); } return(base.AddNegativeValue(dt, amount, note, trace)); }
public void SetFrom(ITransactionId from) => m_fromTransaction.SetWith(from);
public void SetTo(ITransactionId to) => m_toTransaction.SetWith(to);
public void GetTransactions(out ITransactionId from, out ITransactionId to) { from = m_fromTransaction; to = m_toTransaction; }
public TransactionsRange(ITransactionId fromTransaction, ITransactionId toTransaction) { SetFrom(fromTransaction); SetTo(toTransaction); }
public void SetWith(ITransactionId toCopy) { m_cursor.SetWith(toCopy); }
public void SetTo(ITransactionId to) { m_to.SetWith(to); }
/// <summary> /// This is the Accounting name for making a purchase (<see cref="MakePurchase"/> /// </summary> public IAccount <Identifier> Credit(Pecuniam amt, IVoca note = null, DateTime?atTime = null, ITransactionId trace = null) { var dt = atTime ?? Balance.LastTransaction.AtTime; AddPositiveValue(dt, amt, note, trace); return(this); }
public void GetFrom(out ITransactionId from) { from = m_from; }
public virtual Guid AddPositiveValue(DateTime dt, Pecuniam amount, IVoca note = null, ITransactionId trace = null) { if (amount == null) { return(Guid.Empty); } if (amount == Pecuniam.Zero) { return(Guid.Empty); } while (DataSet.Any(x => DateTime.Compare(x.AtTime, dt) == 0)) { dt = dt.AddTicks(1L); } return(Transaction.AddTransaction(DataSet, dt, amount.GetAbs(), note, trace)); }