public async Task <IActionResult> Status(WooCommerceInvoiceModel model) { if (!ModelState.IsValid) { return(BadRequest(new ErrorResponse().AddErrors(ModelState))); } if (!string.IsNullOrWhiteSpace(model.InvoiceId)) { return(BadRequest(ErrorResponse.Create($"{nameof(model.InvoiceId)} has invalid value"))); } var response = new WooCommerceResponse(); try { var invoice = await _invoicesServiceClient.GetInvoiceAsync(model.InvoiceId); response.Status = invoice.Status.ToString(); response.ErrorCode = "0"; } catch (Exception e) { response.ErrorCode = "1"; response.Message = e.Message; } return(new JsonResult(response)); }
public async Task <IActionResult> Create(WooCommerceInvoiceModel model) { if (!ModelState.IsValid) { return(BadRequest(new ErrorResponse().AddErrors(ModelState))); } if (!model.IsValid()) { return(BadRequest(ErrorResponse.Create($"{nameof(model)} has invalid value"))); } var response = new WooCommerceResponse(); try { var invoice = await _invoicesServiceClient.CreateInvoiceAsync(new PayInvoice.Client.Models.Invoice.CreateInvoiceModel { MerchantId = model.MerchantId, Number = model.InvoiceNumber, ClientName = model.ClientName, ClientEmail = model.ClientEmail, Amount = model.Amount, DueDate = DateTime.Now.AddDays(1), PaymentAssetId = "BTC", SettlementAssetId = model.Currency }); response.InvoiceURL = $"{_settings.CurrentValue.PayAPI.PayInvoicePortalUrl.TrimEnd('/')}/invoice/{invoice.Id}?callback={WebUtility.UrlEncode(model.CallbackUrl)}"; response.InvoiceId = invoice.Id; response.ErrorCode = "0"; } catch (Exception e) { response.ErrorCode = "1"; response.Message = e.Message; } return(new JsonResult(response)); }