редактирования - вопрос ответилДобавление счета в QuickBooks в Интернете с помощью .NET IPP QBOV3 SDK
с использованием .NET IPP QBOV3 SDK
Я работал (изо всех сил) на небольшом интеграционного проекта всю неделю. Целью проекта является возможность интеграции учетных записей между клиентским приложением Windows для настольных компьютеров и оперативной информацией в Интернете.
Я хочу, чтобы иметь возможность -
- Создание новых клиентов/поставщиков (может это сделать)
- Добавить счета продаж (не могу это сделать)
- Возврат кредитных остатков (даже не пробовал еще)
После прочтения нескольких форумов и статей, которые пришли к пониманию, был использован QBOV3 .NET SDK по двум причинам.
Я буду использовать C# .net, как приложение WinForms, чтобы закодировать функциональность мне нужно (это позволяет мне иметь функциональные возможности интегрированы в текущей системы, это также написано в C# .net winforms)
Кажется, 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;
}
Можете ли вы сказать мне, какую ценность я должен пройти. строка accessTokenSecret = ""; string appToken = "appToken"; –