从QuickBooks Online获取付款方式名称

时间:2016-12-15 13:40:51

标签: c# quickbooks quickbooks-online

来自QuickBooks在线的付款信息仅返回带有ID的 PaymentMethodRef 引用属性。

在从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 个答案:

答案 0 :(得分: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"
}