コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }