### Configuration File Example Source: https://github.com/zuoxiange/nuonuosdk/blob/main/README.md Example JSON structure for appsettings.json to configure NuoNuoSdk. ```json { "NuoNuo": { "AppKey": "your_app_key", "AppSecret": "your_app_secret", "UserTax": "your_user_tax", "AccessToken": "your_access_token", "Timeout": 30 } } ``` -------------------------------- ### Usage Example - InvoiceController Source: https://github.com/zuoxiange/nuonuosdk/blob/main/README.md Example of using INuoNuoSdk within an ASP.NET Core controller to perform operations like getting merchant token, querying invoice stock, and requesting billing. ```csharp public class InvoiceController : ControllerBase { private readonly INuoNuoSdk _nuoNuoSdk; public InvoiceController(INuoNuoSdk nuoNuoSdk) { _nuoNuoSdk = nuoNuoSdk; } [HttpGet("token")] public async Task GetToken() { // 获取访问令牌 var token = await _nuoNuoSdk.GetMerchantTokenAsync(); return Ok(token); } [HttpGet("stock")] public async Task GetInvoiceStock() { // 查询发票余量 var stockRes = await _nuoNuoSdk.GetInvoiceStockAsync(new GetInvoiceStockRequest { // AccessToken 会自动从配置中获取,也可以手动指定 }); return Ok(stockRes); } [HttpPost("billing")] public async Task RequestBilling([FromBody] RequestBillingRequest request) { // 请求开具发票 var result = await _nuoNuoSdk.RequestBillingRequest(request); return Ok(result); } } ``` -------------------------------- ### Install NuoNuoSdk Source: https://github.com/zuoxiange/nuonuosdk/blob/main/README.md Command to install the NuoNuoSdk package using the .NET CLI. ```bash dotnet add package NuoNuoOpenSdk ``` -------------------------------- ### Configure Services - From Configuration File Source: https://github.com/zuoxiange/nuonuosdk/blob/main/README.md Example of configuring NuoNuoSdk services by reading settings from a configuration file. ```csharp // 方式一:从配置文件读取 builder.Services.AddNuoNuoSdk(builder.Configuration, "NuoNuo"); ``` -------------------------------- ### Configure Services - Direct Configuration Source: https://github.com/zuoxiange/nuonuosdk/blob/main/README.md Example of configuring NuoNuoSdk services by directly providing options. ```csharp // 方式二:直接配置 builder.Services.AddNuoNuoSdk(options => { options.AppKey = "your_app_key"; options.AppSecret = "your_app_secret"; options.UserTax = "your_user_tax"; options.AccessToken = "your_access_token"; // 可选 options.Timeout = 30; // 超时时间(秒) }); ``` -------------------------------- ### Advanced Usage - Error Handling Source: https://github.com/zuoxiange/nuonuosdk/blob/main/README.md Example demonstrating how to handle both business logic errors and network errors when using NuoNuoSdk. ```csharp try { var result = await _nuoNuoSdk.GetInvoiceStockAsync(request); if (result.Success) { // 处理成功结果 Console.WriteLine($"库存查询成功: {result.Result}"); } else { // 处理业务错误 Console.WriteLine($"业务错误: {result.Code} - {result.Describe}"); } } catch (HttpRequestException ex) { // 处理网络错误 Console.WriteLine($"网络错误: {ex.Message}"); } ``` -------------------------------- ### Advanced Usage - Custom HTTP Client Configuration Source: https://github.com/zuoxiange/nuonuosdk/blob/main/README.md Example of customizing the HttpClient used by NuoNuoSdk, such as setting a custom timeout. ```csharp builder.Services.AddNuoNuoSdk(builder.Configuration) .ConfigureHttpClient(client => { client.Timeout = TimeSpan.FromSeconds(60); // 其他自定义配置 }); ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.