public async void createInvoice() { //1.New Invoice Preparation //1.インボイス オブジェクトに必要項目をセットする string curr = cmbCurrency.options[cmbCurrency.value].text; Invoice invoice = new Invoice(double.Parse(amount.text), curr);//金額と通貨 invoice.BuyerEmail = email; invoice.FullNotifications = true; invoice.NotificationEmail = email; invoice.PosData = "TEST POS DATA"; invoice.ItemDesc = product.text;//購入アイテムの名称 //2.Create Invoice with initial data and get the full invoice //2.BTCPayServerにインボイスデータをサブミットして、インボイスの詳細データを取得する。 invoice = btcPayClient.createInvoice(invoice); Debug.Log("Invoice Created:" + invoice.Id); Debug.Log("Invoice Url:" + invoice.Url); //3.Lightning BOLT invoice string //3.Lightning BOLT invoice データは以下のプロパティから取得する。 List <InvoiceCryptoInfo> cryptoInfoList = invoice.CryptoInfo; Texture2D texs = btcPayClient.generateQR(cryptoInfoList[0].paymentUrls.BOLT11);//Generate QR code image //4.Set the QR code iamge to image Gameobject //4.取得したBOLTからQRコードを作成し、ウオレットでスキャンするために表示する。 QRcode.GetComponent <Image>().sprite = Sprite.Create(texs, new Rect(0.0f, 0.0f, texs.width, texs.height), new Vector2(0.5f, 0.5f), 100.0f); //5.Subscribe the an callback method with invoice ID to be monitored //5.支払がされたら実行されるasync コールバックを引き渡して、await で実行する await btcPayClient.subscribeInvoiceAsync(invoice.Id, printInvoice); }
private void handleInvoice(Invoice invoice) { //3.Lightning BOLT invoice string //3.Lightning BOLT invoice データは以下のプロパティから取得する。 List <InvoiceCryptoInfo> cryptoInfoList = invoice.CryptoInfo; string boltInvoice = null; foreach (InvoiceCryptoInfo info in cryptoInfoList) { if (info.paymentType == "LightningLike") { Debug.Log("bolt :" + info.paymentUrls.BOLT11); boltInvoice = info.paymentUrls.BOLT11; } } if (string.IsNullOrEmpty(boltInvoice)) { Debug.Log("bolt Invoice is not set in Invoice in reponse.Check the BTCpay server's lightning setup"); return; } Texture2D texs = btcPayClient.generateQR(boltInvoice);//Generate QR code image //4.Set the QR code iamge to image Gameobject //4.取得したBOLTからQRコードを作成し、ウオレットでスキャンするために表示する。 QRcode.GetComponent <Image>().sprite = Sprite.Create(texs, new Rect(0.0f, 0.0f, texs.width, texs.height), new Vector2(0.5f, 0.5f), 100.0f); //5.Subscribe the an callback method with invoice ID to be monitored //5.支払がされたら実行されるコールバックを引き渡して、コールーチンで実行する StartCoroutine(btcPayClient.SubscribeInvoiceCoroutine(invoice.Id, printInvoice)); //StartCoroutine(btcPayClient.listenInvoice(invoice.Id, printInvoice)); }