編集部イチオシ

オレオレPay(ポイントカードに限る)を考える

やあ (´・ω・`) ようこそ、セルフまとめへ。 このテキーラはサービスだから、まず飲んで落ち着いて欲しい。 うん、「また」なんだ。済まない。 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 でも、このまとめタイトルを見たとき、君は、きっと言葉では言い表せない 「ときめき」みたいなものを感じてくれたと思う。 殺伐とした世の中で、そういう気持ちを忘れないで欲しい 続きを読む
9
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

コーナンペイ・・・ちょっとCSSとかjsサワれる人間が作ったフィッシングHTMLで簡単偽装できるが大丈夫なのか?HTMLファイルでだぞ?

2019-07-06 22:10:56
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

実装の手間を考えても、スマホのカメラとかでQRコードでセッションIDのチェックぐらいしようよ! こう、自分で作ろうXpayとか考えればコーナンペイより強固にするのは簡単やろ・・・・

2019-07-06 22:28:27
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

まず、前提条件を整理すると ・クライアントは偽装されるので信用できない。 ・店舗側で支払いが正確に出来たことをその場で確認できる必要が有る。 ・残高管理が必要 ・通信経路は端末間暗号化が必須 ・本人確認が必要(本人≒端末を持つ人) ・端末移動はLINE形式を踏襲する ・Webで作るとする

2019-07-06 22:38:34
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

じゃあ設計してみよう ・アプリはHTMLのjsでSPAで鯖にユーザー情報を持つ。 ・ユーザー登録時にSMS認証し、お店でチャージ ・端末側にユーザID、端末IDを持ち、鯖に申告 ・ログイン中はセッションIDを鯖が配布 ・アプリは定期取得 ・お店はお店アカウントでスマホで客Web画面のQRコードを見て客を識別

2019-07-06 22:47:45
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

・QRコードには、ユーザID、端末ID、セッションID、現在時刻を格納 ・QRコードは鯖の公開鍵を使って暗号化した情報を表示 ・店はQRコードを店舗側アカウントで読み取り、鯖に店舗コードと同時に送付 ・鯖、ユーザー情報を秘密鍵で解凍しセッションID、時間を確認、ユーザIDと端末IDが登録済みか確認

2019-07-06 22:52:49
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

・上記確認がOKであった場合、チャージ額の使用を許可 ・ユーザーローカルストレージには(UA※バージョンは除く、登録日、登録に使ったSMS番号、登録時のUUID)のJSONのハッシュとPINコードが保存 ・鯖には(UA※バージョンは除く、登録日、登録に使ったSMS番号、登録時のUUID、PINコード)が保存

2019-07-06 22:58:12
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

目標である要件を満たすには ・見知らぬ端末で使われたくない→端末固有番号を発番する ・別の端末にコピペして使われたくない→UAで識別 ・同じ機種で同時多発的に使われたくない→時間で近接時間排除 ・認証を他人に奪われない→後勝ち一人ログイン強制 になるのかな?

2019-07-06 23:12:06
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

これで客と店のオペレーションは ・店、店舗アカウントでログインした読み取りページを表示したスマホ用意 ・客、自スマホにて事前にログインIDとパスワードで仮登録、SMS経由のURLで本登録 ・客来店 ・店、客にQRコード提示要求 ・客、店にQRコード提示 ・店、客のQRコードを店スマホで読み取り

2019-07-06 23:15:50
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

・店スマホ、鯖にQRコードの内容送信 ・鯖、送信内容から客の正真性を確認 ・OKであれば客アカウントに所定の操作(ポイントチャージ)実施 ・客スマホ、アプリにプッシュ通知でアカウント情報の変更を通知 ・客、ポイントチャージを確認 かね?これは家電屋のポイント決済の場合と同じやね。

2019-07-06 23:20:31
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

ポイントは ・機材としてのスマホが激安であること。→中古で2千円からで用意できる。 ・全てWebページで提供されるため規定のブラウザでOK→互換性問題が少ないよ! ただし、FirefoxとChromeとSafariしかサポートできない。 Firefox動かないアンドロイド、Safari古いのは相当厳しい。

2019-07-06 23:25:03
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

要は、紙のポイントカードがスマホで代用と言うだけなのだが、まあもう少し通知が使える、アプリ上に広告が打てる、残高が分かるだけマシとも言える。 チャージ残高は有効期限6ヶ月で合計一千万以下はフリーダムなようなので、鯖側でそのへんは機能は簡単に提供できると思われる 問題は無い訳ではない

2019-07-07 00:05:57
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

AppStoreとかGooglePlayに並べないとリーチできない層が居る。実店舗での利用だけを考えれば、ログインURLのQRコードを張ったチラシなりポスターなりを用意しておけばいい。が、全部オンラインで完結しようとなるとWebなにそれ美味しいの?な人間にはリーチが出来ない気配がしている。

2019-07-07 00:08:32
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

もう一つ考えてみよう。 店に固定のQRコードが張ってあって、其れを客がアプリで撮影するパターン ・店にカメラ端末はない ・店員はPC等でアプリを開いて残高の確認は出来る ・客はアプリでQRコードを読込 ・支払いをすると店員はPC等で結果を確認する まあこんなところか。

2019-07-07 00:22:21
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

内部設計は ・アプリで客はユーザ登録をする ・店も当然アカウントを開設する ・客、事前に金額をチャージ ・客、アプリにて店のQRコードを読込 ・アプリ、QRコード※店舗IDを鯖に問い合わせ ・鯖、店舗IDが有効なものか確認 ・OKであればセッションIDを発行、アプリに返信 ・アプリ、金額入力を打診

2019-07-07 00:26:12
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

・アプリ、当然鯖に対して認証情報(端末ID、ユーザーID、アクセストークン、リフレッシュトークン等保持)を送っている ・客、アプリに金額を入力 ・店、客のアプリ画面で金額を確認 ・客、支払い ・店、支払いを確認 となる。うん、難しくないね。

2019-07-07 00:28:46
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

何がヤバイかと言うと ・他人に成りすまされて、チャージ分が無くなること ・チャージ分を胴元が潰れて返金不能になること(予め一定金額で頭打ちには出来る) うーん。当たり前すぎてアレだ。 次に問題は、情報がスマホに局在化しているので、スマホが盗難、故障で失われた場合の復帰方法なんだよね。

2019-07-07 00:33:39
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

このときの復帰方法は ・事前にメールアドレスかSMSが使える電話番号を登録しておき、そこにアカウント復活用のアドレスを送り復活させる 個人情報を持たない設計ではこれ以上の方法は有るだろうか? ちなみにコールセンターなどという物は使わないものとする。

2019-07-07 00:36:24
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

さて、次の考察としてはこれまでの何とかペイを実装するにあたり、他社のインフラにタダ乗りすればいいんじゃね?疑惑が有る。 ・情報が第三者にもれなければ良い ・クライアントは信用できないが、鯖に該当するマシンは信用してもいいだろう ・SMSのお金だけは自分で払おう(ここは課金が確立してる)

2019-07-07 00:40:04
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

ただ、仮に第三者インフラにタダ乗り出来ても問題として自店舗のポイントカード以上の使いみちは無いですよ?と言う点 もちろん広域インフラに乗るのであればまどろっこしい事考えずに仮想通貨にしてしまいなよ!になると思う。この場合は他社インフラにタダ乗りなどというセコい話ではなくなるが

2019-07-07 00:42:58
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

大体、1000万の有効期限6ヶ月って、毎月166万、25営業日で一日6万7千円弱のチャージしか受け付けられない。店員3人で年収300万だと、人件費1800万で2倍の売上が必要だとすると3600万の年商で、一日12万以上の売上は欲しい。 客単価1000円だと、120人の来店が必要なので、しょぼ電子決済は無理

2019-07-07 00:56:27
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

全く無理ではないけれど、お得意様限定でまあなんとか、皆使い始めたら破綻する的な。まあポイント程度なら10店舗ぐらいまではいけるような気はするけれど。 旨味はあるのかなぁ・・・

2019-07-07 00:58:20
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

電子決済の旨味はユーザが課金を一瞬で行えることなので 全額課金できないのは辛い 店側は広告と来店頻度UPというロックインなのかなぁ(一部にはパーミッション振るアクセスでスパイウェアを埋め込み監視したいというニーズも有るようだが) バーコードが主流なのは既存のPOSと連携が必要だから?

2019-07-07 01:22:29
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

バーコードってJANだと13桁、チェックデジット抜きで12桁だからフルに使っても999,999,999,999って39bitまで入るから、5byte弱・・・先頭2桁をインハウス指定に使うと丁度4Byte、MD5も入らねぇ・・・ナンス値の交換ぐらいか使えないじゃん・・・ピャー

2019-07-07 01:39:48
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

折角、スマホ画面の読み取りなんだから、ペイロード開始と終了を挟んで、頭をインデックスに振ってそのまま3byteを読み取り速度上限ギリギリまで変化させれば!と思うけどPOSレジの仕様に引っ張られて其れは無理になっちゃうんだろうな。スマホが圧倒的に高性能よ。

2019-07-07 01:50:42
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

個人でスマホだけで始められるポイントカードシステムとか作ったら受けるかな? 勿論、インフラ代は回線料とSMS代金除いてタダだ!何故ならWebRTCで実装するからだ!的な奴。事前チャージは流石に難しいのでは?と言うね。

2019-07-07 01:56:03