我可以使用Xero-NetStandard的Xero OAuth 2示例查看组织的所有发票清单。我想为特定租户/组织创建新的发票,如何创建发票对象,以及POST方法应该是什么样?下面的代码是我到目前为止所拥有的:
public async Task<string> InvoicesPostAsync()
{
var token = await _tokenStore.GetAccessTokenAsync(User.XeroUserId());
var connections = await _xeroClient.GetConnectionsAsync(token);
List<string> allinvoicenames = new List<string>();
foreach (var connection in connections)
{
var tenantID = connection.TenantId.ToString();
var request = (HttpWebRequest)WebRequest.Create("https://api.xero.com/api.xro/2.0/Invoices");
var postData = "thing1=hello";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.Headers.Add("Authorization" , "Bearer "+ token);
request.Headers.Add("Xero-tenant-id" , tenantID);
request.ContentType = "application/x-www-form-urlencoded";
request.Credentials = CredentialCache.DefaultCredentials;
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
}
答案 0 :(得分:1)
出于好奇,您指的是哪个OAuth2.0示例?
我汇总的此示例应用程序利用了我们新的OAuth2.0 SDK-https://github.com/XeroAPI/xero-netstandard-oauth2-samples/tree/master/XeroOAuth2Sample
相同的SDK可用于创建发票。下面是一些示例代码
var invoice = new Invoice
{
Type = Invoice.TypeEnum.ACCREC,
Contact = new Contact
{
Name = "Some contact name"
},
Date = DateTime.Today,
DueDate = DateTime.Today.AddDays(7),
Status = Invoice.StatusEnum.DRAFT,
LineItems = new List<LineItem>
{
new LineItem
{
Description = "Manchester United Scarf",
Quantity = 1,
UnitAmount = 24.99,
AccountCode = "200"
}
}
};
var createdInvoice = await _accountingApi.CreateInvoiceAsync(accessToken, tenantId, invoice);