画面にパーツを貼り付けて、参照したいデータを関数で指定していくだけ。コードなしでビジネスアプリを構築できる「Microsoft PowerApps」を使って、某回転寿司チェーン店のセルフオーダー端末を再現してみた。「素人建築」ならではの危うさはご容赦願いたいが、使い始めて2週間ほどで、ここまでできることに感心した。

Microsoft Flowを介するLINE Payでの決済機能も 続いて、決済機能を導入してみることにした。 できれば、コンビニでの決済のように、スマホのアプリからバーコードを読み取って決済するというものにしたかったのだが、結局、実現方法がよく分からなかった。 調べてみると、LINE PayのAPIを使った決済なら、PowerAppsからも簡単に実装できそうだったので、こちらを使ってみることにした。 詳細は、LINEが公開している開発者向けのウェブページを参照してほしいが、テスト用のサンドボックスも用意されている上、1世代前のAPI（v2）ならリクエストも単純（v3ではnonceを使った署名が必要なのでノンコードでは困難）なので、実装はさほど難しくない。 LINE Payの決済は、次のような流れで実施される。 アプリから商品名、金額、通貨、オーダーID、承認用アドレスをLINE Payのサーバーにリクエスト LINE Payサーバーが、支払い用URL（ウェブとアプリの2種類）とトランザクションID、アクセストークンを送信 支払い用URLからLINE Payのサーバー上の決済ページにアクセスし（アプリの場合はアプリで実施）、LINE IDでログインして決済を実行 LINE Payサーバーが、1で指定した承認用アドレスで指定したサーバーに決済完了を知らせるトランザクションIDを送信 要するに、アプリ、LINE Payサーバー、承認サーバーの3者で情報をやり取りすることで決済が実行されることになる。 問題は、承認サーバーをどうするかだ。もちろん、サーバーを立ててもかまわないが、今回はこれをMicrosoft Flowで受けることにした。 Microsoft Flowには、コネクターとして「HTTP要求の受信時」が用意されている。これをフローを実行するときのトリガーとして使えば、LINE Payサーバーからの返答を受けることができるわけだ。以下のウェブサイトの情報を参考にさせていただき、無事に実装できた。

Power BIからHTTPリクエストをリンクで送ってFlowで受け取る方法 最終的には、Common Data Service（データベース）を経由して、セルフオーダーアプリとFlowの間でデータをやり取りし、アプリから決済情報が新しいレコードとして登録されたら、リクエスト用のフローを起動し決済用のURLを取得。決済用URLから顧客が決済を実行後、LINE Payから送られたトランザクションIDを承認用のフローで受け取り、決済が完了のフラグをデータベースに書き込むという処理にした。 リクエストとデータベースの処理で時間がかかる点に改良の余地がありそうだが、Microsoft Flowを使うことで、こちらもコードを記述することなく処理を実装できた。