public PaymentResult OfflinePay([FromBody] PaymentResult paymentResult) { paymentResult.AssertNotNull("paymentResult"); if (paymentResult.BuyerId < 0) { throw new ArgumentOutOfRangeException("payment:BuyerId", "Not support BuyerId is 0."); } var paymentEngine = ObjectIOCFactory.GetSingleton <PaymentEngine>(); var tradeJournal = paymentEngine.OfflinePay(paymentResult); if (null != tradeJournal) { return(new PaymentResult() { Success = true, TradeCode = tradeJournal.TradeCode }); } else { return(new PaymentResult() { Success = false, ErrorMessage = "OfflinePay failed." }); } }