質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

4回答

1845閲覧

スマホアプリでQR決済機能を作りたい

sagme

総合スコア10

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

2クリップ

投稿2020/03/06 07:13

編集2020/03/09 06:37

スマホアプリでQR決済の機能を作りたいと考えています。
初歩的な質問なのですが、例えばPayPayなどで
自分のスマホのアプリがQRコードを表示して決済する場合

①自分のスマホのアプリがQRコード(バーコード)を表示する
②お店側がリーダーなどでそれを読み取る
③自分のスマホアプリが「決済完了」の画面を表示する

という流れになっていますが、この②と③の間の処理がイメージつきません。
自分のアプリは、どうやってお店側がQRコードを読み取った事を検知しているのでしょうか?

自分で考えた処理は以下の流れですが、それで合っていますでしょうか?

お店APP側 : QR読み取り → サーバに通知
サーバ側  : お店からのQR使用通知を受信 → ユーザAPPに通知
ユーザAPP側: サーバからのQR使用通知を受け取る → 画面遷移

世の中のQR決済アプリは、こういった通信を一瞬で行って画面遷移をしているのでしょうか?
それとも別の方法をとっているのでしょうか。
大変初歩的な質問ですが、どうぞよろしくお願いいたします。

追記:
今回の質問は、実装前の考察の段階での疑問でしたので
質問内容について、丸投げの質問ではとのご指摘を頂いておりますが
自分で考えた部分については、上記の部分になります(これ以上表現しようがないため)

また、ご回答頂いた方々についてお礼を申し上げます。
どの方からも貴重なご意見を頂けたので
ベストアンサーを選び難かったのですが、とりあえず決めさせていただきます。
またどうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

ほぼ dodox86 さんへのコメントですが、回答として独立させておきますw

電子決済等代行業は金融庁の監督下にあり、以下に法的なものがまとめられています。

電子決済等代行業を営むみなさまへ

平成30年6月1日から、「電子決済等代行業」に関する新しい制度が開始され、国内で電子決済等代行業を営むには、銀行法等に基づく登録が必要となります。

また、構成に関してのガイドラインを作成している団体もあり、

一般社団法人キャッシュレス推進協議会の JPQRについて では
「コード決済に関する統一技術仕様ガイドライン【店舗提示型】MPM(Merchant-Presented Mode)」にある、「第2 部 動的QR コード」で質問の構成に近いものを紹介しています。

ただ、情報としては、非常にうっすいですw

実務ベースのところは、7pay の時に色々解析が行われているので、そちらを漁ると、(真偽も不明ですが)趣のある情報が出てきます。

投稿2020/03/07 00:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/03/07 01:05 編集

te2jiさん、有益な情報への誘導、どうもありがとうございます。JPQRについては恥ずかしながらこれ迄知りませんでした。金融庁の方の情報は法律が主体でパンフレットで制度全体を俯瞰するくらいしか私は理解が及びそうにありませんが、JPQRの方はそれぞれの立場での「技術仕様ガイドライン」があり、インターフェースの方針を理解する上で大変参考になります。
退会済みユーザー

退会済みユーザー

2020/03/07 01:21

紹介はしておいてナンですが、「技術仕様ガイドライン」がどこまで有効なのか、判断できていません。(多分気がつくと思いますが、中身スカスカですw) 実装段階で、ゴロッとひっくり返っていてもおかしくなさそうな記述なので、チラ見するぐらいの感覚で読んでください^^; もし暇で実装の調査まで手を出してみる気なら、 7payの不正利用についてまとめてみた - piyolog https://piyolog.hatenadiary.jp/entry/2019/07/04/065925 を起点にすると、多少は信憑性のある情報を当たれるかも知れません。 個人的には、金融庁のページに 「電子決済等代行業に関する報告書(個人用)」 がある方が気になってますw ハードルめっちゃ高いんですけどねぇ。。。個人で登録できるんだろうか。
dodox86

2020/03/07 01:34

te2jiさん、フォローありがとうございます。 > 「技術仕様ガイドライン」がどこまで有効なのか、判断できていません。(多分気がつくと思いますが、中身スカスカですw QRコードに限らず、バーコードやICタグの運用についてなどでも政府や公的機関が出すガイドライン的文書は存在するので、鵜呑みにしないかぎり有益だと私自身は思います。サービスの提供をする国の法律に沿っていさえすれば運用はできるでしょうから、ご指摘のように現行のシステムがそれを全部、または一部でも踏襲しているとは限りませんが、実務に照らして意外とヒントになったりしますので。
sagme

2020/03/09 06:49 編集

ご回答ありがとうございます。 法律について意識していなかったので、ご指摘頂いてありがたいです。 7payの事件は他人事でなく怖い事だと思うので、きちんと調べます。 有益な情報をありがとうございました。
guest

0

具体的にどのようなシステムを使っているのかはセキュリティにも関係すると思うので知ることはできないと思いますが、概ね

お店APP側 : QR読み取り → サーバに通知
サーバ側  : お店からのQR使用通知を受信 → ユーザAPPに通知
ユーザAPP側: サーバからのQR使用通知を受け取る → 画面遷移

のような処理になっているとは思います。

PayPay であれば、当然審査はありますが割合簡単に加入店登録できます(学園祭のように、学生主体の出店でも使われていますし、私も持ってます)。決済端末は自分のスマホでやりますので、これといって特別な端末や通信手段が必要というわけではありません。

ストア用のアプリも普通に App Store からダウンロードできます。

  • リスト[加盟店向け決済管理ツール「PayPay for Business」のアプリ版をリリース

](https://about.paypay.ne.jp/pr/20190726/01/)

ちなみに、QRコード決済といっても、全てがバーコードリーダとPOSを繋いて決済しているわけではありません。

たとえば PayPay であれば、

  1. ストアスキャン

1.1 POS端末で読み取る
1.2 アプリで読み取る
2. ユーザスキャン

3種類がありますので(大きく分ければ2種類ですが)、興味があれば調べてみると面白いかもしれません。PayPay公式の「キャッシュレス研究所」にも色々と資料がおいてあるようです。

ぱっと検索して出てきたインフラとしては、NTT DATA の CAFIS というシステムがありました。スマホ決済のためのプラットホームも提供しているようです。

ちなみに、QRコード決済の提供方法、および預かり資金の運用方法によっては、資金決済法やその他の関連法律の影響を受けるようなので、これも覚えておいて損はないかもしれません。

投稿2020/03/06 09:48

TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sagme

2020/03/09 05:45

ご回答ありがとうございます。 今回は自分で作る場合はどうするかという事を考えています。 そうすると気をつけないといけない事が沢山あるんですね… お金に関連するサービスは法律も調べておかないといけない事に気づいてませんでした。
TsukubaDepot

2020/03/09 05:51

興味は尽きないと思いますが、ある範囲を超えると法律が関係してくるので大変ですよね。決済システムに限った話ではなく、スクレイピングとか画像・音楽の二次利用とか多くのサービスがそうですし。 でも、私的利用であれば問題ないはずですから、ご自身で作ってみてシステム全体がどのようになっているか理解することは大切だとおもいますし、良いことだと思いますよ。 切り分けが大変ですが、あまりご自身の興味を制限せずにやてみるといいのでは無いでしょうか。
sagme

2020/03/09 06:04

ありがとうございます。頑張ります!
guest

0

興味深いご質問ですね。こう言った課金系のサービスの場合、有事の際の社会的影響度の高さもあり、ものによっては法律で規制される部分もありそうです。(実際に規制があるか、あるとすればどのような部分でどのような規制があるかは分かりません)

こう言ったサービスを実装する業者は、そのサービスを利用するにあたってサービスの提供者と「守秘義務契約」を結ぶことでそのサービスやサービスを利用するためのAPIの提供を受けることがほとんどだと思います。それを考えると実例にもとづいた詳細なインターフェースの情報をオープンな場で得るのは、もしかすると難しいようにも思います。

まぁ、そうだとしても少しくらいそのインターフェースを推測するのは悪いことではないでしょうから、自前でインターフェースを構築するつもりで少し補間してみようと思います。

基本的に、質問者さんがご提示の以下のインターフェースについて私も同意します。

お店APP側 : QR読み取り → サーバに通知
サーバ側  : お店からのQR使用通知を受信 → ユーザAPPに通知
ユーザAPP側: サーバからのQR使用通知を受け取る → 画面遷移

しかしながらセキュリティの観点から、ユーザーのスマホからQRコードを提示する際、ただ提示しているとも思えません。QRコードがいつも同じであれば、そのQRコードを第三者が盗んでしまえば成りすましのチャンスを与えてしまうこともあるでしょうし、悪意ある店舗がそのQRコードを再使用することによって後先考えずに再課金することも考えられるでしょう。そのようなことに備え、店舗でQRコードを示した際になんらかのワンタイムパスワードのようなものを絡め、いわゆる「セッション」のような、その時の売買行為にだけ有効なコンテキストを生成しているだろう、と言うことも充分考えられます。そうでないと途中でユーザー側、店舗側の理由で通信が切断してしまったような場合、どちらかに不利益が生じることも考えられます。その抜け道を知った者が悪用することも考えられるでしょう。要は、今現在世に出ているそれらは、QRコードを店舗側が読み取り、正当なユーザーが正当な行為で購買活動を行った、と言う保証を充分にできるインターフェース仕様が入念に詰められているであろう、と言うことです。

ユーザーの利便性を考え、上記のようなインターフェースの通信は恐らくほぼ一瞬に終わるでしょうが、その中で行われている処理は、お金のやり取りを伴わないインターフェースとは比べ物にならない綿密さで行われているだろう、と言う推測が成り立ちます。

もし私がサービスの実装者であったら、自前で造るにはしっかりとした開発保守体制の用意とそれなりの覚悟が必要になりそうですね。

投稿2020/03/06 13:29

編集2020/03/09 06:10
dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sagme

2020/03/09 06:01

ご回答ありがとうございます。 >実例にもとづいた詳細なインターフェースの情報をオープンな場で得るのは、もしかすると難しいようにも思います。 まさにその通りで、みんなどうやって作ってるのー><といった気持ちで一杯です。 質問した時にうっすら浮かんでいた疑問は お店APP ←→ サーバ ←→ スマホAPP  のそれぞれの通信間でエラーになった時どうするか、 QRコードに使用期限を設けないといけないのではないかという事ですが それ以外にも気にしないといけない事がいっぱいありますね。 言葉で指摘して頂いてはっきり認識できたので大変ありがたいです。
guest

0

お店APP側 : QR読み取り → サーバに通知
サーバ側  : お店からのQR使用通知を受信 → ユーザAPPに通知
ユーザAPP側: サーバからのQR使用通知を受け取る → 画面遷移

基本的にこの流れで合っていると思います。

投稿2020/03/06 08:01

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sagme

2020/03/09 05:40

ご回答ありがとうございます。 そうなんですね、そうすると画面遷移の一瞬までにやらないといけない事が 沢山あってクラクラしてきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問