使用 .NET IPP QBOV3 SDK 在线将发票添加到 quickbooks
Adding invoice to quickbooks online using .NET IPP QBOV3 SDK
使用 .NET IPP QBOV3 SDK
我整个星期都在为一个小型集成项目工作(挣扎)。
该项目的目的是能够在 windows 桌面客户端应用程序与在线 quickbooks 之间进行一些帐户集成。
我希望能够 -
- 新建customers/suppliers(可以做到)
- 添加销售发票(不能这样做)
- Return 信用余额(甚至还没有尝试过)
阅读了一些论坛和文章后,我了解到 QBOV3 .NET SDK 是可以使用的,原因有二。
我将使用 C# .net 作为 winforms 应用程序来编写
我需要的功能(这允许我将功能集成到
目前的系统,这个也是用c#写的 .net winforms)
似乎凭直觉说这是要走的路,因为整个 API 都是
将要贬值。
所以,我的第一个障碍是 OAuth - 最终我设法解决了。我现在可以授权并连接到我的 QBO 沙盒帐户 - 太棒了!
我也可以从 winforms 应用程序创建客户,他们出现在 QBO - 也很棒!
在过去 2 分钟左右的时间里,让我感到困惑的下一步是能够为客户创建发票 - 我似乎不知道该怎么做。我经常收到 'Bad request' 错误。
我在网上几乎找不到关于如何从 c# winforms 应用程序执行此操作的示例。不可能那么难 - 所以我现在真的很自责。
任何帮助或样本让我朝着正确的方向前进,我们将不胜感激。
我不敢相信已经不存在这方面的简单示例 - 我猜没有多少人通过桌面 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 = "test@test.com", 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;
}
Sods Law,经过几天没有找到任何东西 - 现在我找到了一个有用的代码示例。
我现在已经设法将发票邮寄到 QBO。
这是有用的链接 - http://developer.qbapi.com/Create-Invoice-Error---Bad-Request.aspx
我先放在这里,让其他人在苦苦挣扎的时候受益。
感谢阅读。
使用 .NET IPP QBOV3 SDK
我整个星期都在为一个小型集成项目工作(挣扎)。 该项目的目的是能够在 windows 桌面客户端应用程序与在线 quickbooks 之间进行一些帐户集成。
我希望能够 -
- 新建customers/suppliers(可以做到)
- 添加销售发票(不能这样做)
- Return 信用余额(甚至还没有尝试过)
阅读了一些论坛和文章后,我了解到 QBOV3 .NET SDK 是可以使用的,原因有二。
我将使用 C# .net 作为 winforms 应用程序来编写 我需要的功能(这允许我将功能集成到 目前的系统,这个也是用c#写的 .net winforms)
似乎凭直觉说这是要走的路,因为整个 API 都是 将要贬值。
所以,我的第一个障碍是 OAuth - 最终我设法解决了。我现在可以授权并连接到我的 QBO 沙盒帐户 - 太棒了!
我也可以从 winforms 应用程序创建客户,他们出现在 QBO - 也很棒!
在过去 2 分钟左右的时间里,让我感到困惑的下一步是能够为客户创建发票 - 我似乎不知道该怎么做。我经常收到 'Bad request' 错误。
我在网上几乎找不到关于如何从 c# winforms 应用程序执行此操作的示例。不可能那么难 - 所以我现在真的很自责。
任何帮助或样本让我朝着正确的方向前进,我们将不胜感激。 我不敢相信已经不存在这方面的简单示例 - 我猜没有多少人通过桌面 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 = "test@test.com", 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;
}
Sods Law,经过几天没有找到任何东西 - 现在我找到了一个有用的代码示例。
我现在已经设法将发票邮寄到 QBO。
这是有用的链接 - http://developer.qbapi.com/Create-Invoice-Error---Bad-Request.aspx
我先放在这里,让其他人在苦苦挣扎的时候受益。
感谢阅读。