2016-12-15 51 views
0

QuickBooks在线支付信息仅返回带有ID的参考财产PaymentMethodRef从QuickBooks Online获取支付方式名称

当从QBOE请求付款信息时,如何获得付款方式名称?

仅供参考,请在下方添加代码。

这里_paymentList [I] .PaymentMethodRef.name始终是空的,只有它会有_paymentList [I] .PaymentMethodRef.id

ServiceContext serviceContext = getServiceContext(companyID, operatorID); 
      QueryService<Item> itemQueryService = new QueryService<Item>(serviceContext); 
      DataService service = new DataService(serviceContext); 
      Batch batch = service.CreateNewBatch(); 
      ServiceQBOnline_Payment Payment_info; 

     batch.Add("select * from Payment where Id In " + TxnIds + " ORDERBY id startPosition " + BatchStartIdx + " MaxResults 100", "bID1"); 
     batch.Execute(); 


intuitBatchResponse queryCustomerResponse = batch["bID1"]; 

if (queryCustomerResponse.ResponseType == ResponseType.Query) 
    { 

    List<Payment> _paymentList = queryCustomerResponse.Entities.ToList().ConvertAll(item => item as Payment);   
    Response.PaymentExportSuccessList = new List<ServiceQBOnline_Payment>(); 

    for (int i = 0; i < _paymentList.Count; i++) 
    {   
    Payment_info.PaymentMethod = _paymentList[i].PaymentMethodRef == null ? "" : _paymentList[i].PaymentMethodRef.name; 
    Response.PaymentExportSuccessList.Add(Payment_info); 
} 

回答

1

查询的PaymentMethod列表以获得完整的详细信息:

来自实例文档:

SAMPLE QUERY 
select * from PaymentMethod 

你会得到这样的回:

{ 
    "PaymentMethod": { 
    "Name": "Diners Club", 
    "Active": true, 
    "Type": "CREDIT_CARD", 
    "domain": "QBO", 
    "sparse": false, 
    "Id": "7", 
    "SyncToken": "0", 
    "MetaData": { 
     "CreateTime": "2014-09-11T14:42:05-07:00", 
     "LastUpdatedTime": "2014-09-11T14:42:05-07:00" 
    } 
    }, 
    "time": "2015-07-24T15:29:33.401-07:00" 
}