public IEnumerator CreateInvoice(InvoiceBtcpay invoice, Action <InvoiceBtcpay> invoiceAction) { invoice.Token = this.GetAccessToken(FACADE_MERCHANT);//get token by facade type invoice.Guid = Guid.NewGuid().ToString(); String json = JsonConvert.SerializeObject(invoice); Debug.Log("createInvoice(): About to post an initial Invoice " + json); CoroutineWithData cd = new CoroutineWithData(owner, Post("invoices", json, true)); yield return(cd.Coroutine); string responseStr = (string)cd.Result; Debug.Log("createInvoice(): response:" + responseStr); JsonConvert.PopulateObject(this.ResponseToJsonString(responseStr), invoice); Debug.Log("createInvoice(): responsejson to Invoice Object done token1:id=" + invoice.Id + " token=" + invoice.Token + " json=" + JsonConvert.SerializeObject(invoice) + " toString:" + invoice.ToString()); invoice = JsonConvert.DeserializeObject <InvoiceBtcpay>(this.ResponseToJsonString(responseStr)); Debug.Log("createInvoice(): responsejson to Invoice Object done token2:id=" + invoice.Id + " token=" + invoice.Token + " json=" + JsonConvert.SerializeObject(invoice) + " toString:" + invoice.ToString()); // Track the token for this invoice this.CacheToken(invoice.Id, invoice.Token); Debug.Log("createInvoice(): Taking InvoiceAction callback BEFORE"); invoiceAction(invoice); Debug.Log("createInvoice(): Taking InvoiceAction callback AFTER"); }
/// <summary> /// Create an invoice using the specified facade. /// </summary> /// <param name="invoice">An invoice request object.</param> /// <returns>A new invoice object returned from the server.</returns> public IEnumerator CreateInvoice(InvoiceBtcpay invoice, Action <InvoiceBtcpay> invoiceAction) { if (!this.isInitialized) { throw new BitPayException("Client is not initialized"); } if (invoiceAction is null) { throw new ArgumentNullException(nameof(invoiceAction)); } Debug.Log("createInvoice(): Curr" + invoice.Currency + " Price:" + invoice.Price + " " + invoice.BuyerEmail + " " + invoice.ItemDesc); return(btcPayLnService.CreateInvoice(invoice, invoiceAction)); }