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."
                });
            }
        }