2016-01-22 4 views
1

редактирования - вопрос ответилДобавление счета в QuickBooks в Интернете с помощью .NET IPP QBOV3 SDK

с использованием .NET IPP QBOV3 SDK

Я работал (изо всех сил) на небольшом интеграционного проекта всю неделю. Целью проекта является возможность интеграции учетных записей между клиентским приложением Windows для настольных компьютеров и оперативной информацией в Интернете.

Я хочу, чтобы иметь возможность -

  1. Создание новых клиентов/поставщиков (может это сделать)
  2. Добавить счета продаж (не могу это сделать)
  3. Возврат кредитных остатков (даже не пробовал еще)

После прочтения нескольких форумов и статей, которые пришли к пониманию, был использован QBOV3 .NET SDK по двум причинам.

  1. Я буду использовать C# .net, как приложение WinForms, чтобы закодировать функциональность мне нужно (это позволяет мне иметь функциональные возможности интегрированы в текущей системы, это также написано в C# .net winforms)

  2. Кажется, intuit говорит, что это путь, так как во всех API-интерфейсах будет амортизироваться.

Итак, моим первым препятствием был OAuth, который в конечном итоге мне удалось выяснить. Теперь я могу авторизовать и подключиться к своей учетной записи Sandbox QBO - отлично!

Я также могу создавать клиентов из приложения winforms, и они появляются в QBO - также отлично!

Следующий шаг, который натолкнул меня на последние 2 или около того, заключается в том, чтобы создать счет-фактуру для клиента - я просто не могу понять, что делать. Я постоянно получаю ошибку «Плохой запрос».

Я нашел рядом без примеров онлайн о том, как это сделать из приложения winforms C#. Это не может быть так тяжело - так что я действительно пинаю себя в данный момент.

Любая помощь или образец, чтобы установить меня в правильном направлении, будут оценены. Я не могу поверить, что в этом нет простых примеров - я думаю, что не многие это делают с помощью приложения winforms на рабочем столе, или я просто смотрю в неправильные места - или пропустил что-то очевидное!

Чтение через документацию API сбивает с толку и на самом деле не предлагает какой-либо пример кода. Я думал, что добавление счета-фактуры на продажу будет довольно большой проблемой для покрытия.

Вот код, который я использую в настоящее время, чтобы получить некоторые простые функции - создание клиента отлично работает (если клиент не существует в qbo - это то, что мне нужно проверить перед добавлением - так что любое управление на этом будет также хорошо)

Вот код, который я вымотал до сих пор ..

private void button2_Click(object sender, EventArgs e) 
    { 
     string consumerKey = "consumerKey"; 
     string consumerSecret = "consumerSecret"; 

     string accessToken = "accessToken"; 
     string accessTokenSecret = "accessTokenSecret"; 

     string appToken = "appToken"; 
     string companyID = "companyID"; //realmID 

     OAuthRequestValidator oauthValidator = new OAuthRequestValidator(accessToken, accessTokenSecret, consumerKey, consumerSecret); 

     ServiceContext context = new ServiceContext(appToken, companyID, IntuitServicesType.QBO, oauthValidator); 
     //uses production as default, which is https://quickbooks.api.intuit.com 
     context.IppConfiguration.BaseUrl.Qbo = "https://sandbox-quickbooks.api.intuit.com/"; 
     //If not set, the default base URL, https://quickbooks.api.intuit.com, is used 



     DataService service = new DataService(context); 

     //add customer 
     Customer customer = new Customer(); 

     customer.CompanyName = "Jims Junk"; 
     customer.GivenName = "Jim"; 
     customer.FamilyName = "Little"; 
     customer.PrimaryEmailAddr = new EmailAddress() { Address = "[email protected]", Default = true }; 
     customer.DisplayName = "Jims Junk Ltd" 

     Customer resultCustomer = service.Add(customer) as Customer; 


     //invoice 

     //-An invoice must have at least one Line that describes an item. 
     //- An invoice must have CustomerRef populated. 
     //- The DocNumber attribute is populated automatically by the data service if not supplied. 
     //- If ShipAddr, BillAddr, or both are not provided, the appropriate customer address from Customer is used to fill those values. 
     //-DocNumber, if supplied, must be unique. 

     Invoice invoice = new Invoice(); 

     invoice.DocNumber = "uniqueNumber"; 
     invoice.TxnDate = DateTime.Today.Date; 
     invoice.TxnDateSpecified = true; 
     invoice.CustomerRef = new ReferenceType() 
     { 
      name = customer.DisplayName, 
      Value = resultCustomer.Id 
     }; 

     Line invLine = new Line(); 

     invLine.Amount = 10000; 
     invLine.DetailType = LineDetailTypeEnum.SalesItemLineDetail; 
     invLine.Description = "Test Product"; 

     invoice.Line = new Line[] { invLine }; 


     Invoice resultInvoice = service.Add(invoice) as Invoice; 


    } 
+0

Можете ли вы сказать мне, какую ценность я должен пройти. строка accessTokenSecret = ""; string appToken = "appToken"; –

ответ

2

Sods Law, после нескольких дней не находя ничего - только сейчас я нахожу образец кода, который помог.

Теперь мне удалось получить счет, отправленный в QBO.

Вот связано, что помогло - http://developer.qbapi.com/Create-Invoice-Error---Bad-Request.aspx

плохо просто оставить его здесь, так что другие могут принести пользу, если изо всех сил.

Спасибо за чтение.

+0

Чтобы создать счет-фактуру, я использовал выше код. Но я получил ошибку. «Исключение типа« Intuit.Ipp.Exception.IdsException »произошло в Intuit.Ipp.DataService.dll« Можете ли вы сказать мне, что я получаю эту ошибку. –

 Смежные вопросы

  • Нет связанных вопросов^_^