コミケ向けのキャッシュレス決済システムを大幅バージョンアップ


先日、初コミケ参戦に向けてキャッシュレス決済システムを作ったとご報告しましたが。

初コミケに向けてJavaScriptでキャッシュレス決済システム作った – カイ士伝
https://bloggingfrom.tv/wp/2019/08/01/16211

基本的には「対象は自分の本のみ」「金額は1冊固定」「決済サービスを選ぶだけ」だったため「2冊買いたい人はどうすればいいのか」「同じブースの他の本は買えないのか」と仕様に対するツッコミを受けた結果、直前で大幅リニューアルすることにしました。

動作イメージは下記を見ていただくとして。

新たな仕様は以下の通りです。

  • ブース内すべての本を選べる
  • 複数冊の購入に対応
  • Kyash、PayPayに加えてpixiv Payに対応
  • 購入金額をQRに反映
  • 自分の本を買ってくれた人には1/20の確率で該当金額が1冊分無料になる

なお、この仕組みは「今回書いた本を読めば同じものが作れる」を前提としているので、コードもそれに合わせてとても基本的なものしか使っておらず、その結果JavaScriptは1400行近いという大変なボリュームになっています。もっと効率よく書く方法があるのは自分でも理解していますが、自分で学んだ知識だけでここまでできる、ということが一番大事なので、見てくれや効率よりもわかりやすさを選びました。

QRコードについては本来APIを叩いて該当の金額を取ってくる、みたいなのが美しいのでしょうが、前述の理由によって基本的にシンプルなコードで書くために、「支払いで発生しうるすべてのQRコードを手動で出力して貼り付ける」というジェバンニ並みの力業で乗り切っています。QRコードが2つあるのはそのためで、上の金額コードがエラーしてた場合は、表示されている金額を手動で入力してもらうためにデフォルトのコードを用意しました。

また、QRコードについてはKyashの場合金額ごとのQRコードがないので、発行したURLを手動でQRに変換。pixiv Payはすべて商品として登録しなければいけない仕様なので使いたい数だけアイテムを作成しました。これが地味に面倒だった……。

そして一番の課題がPayPay。PayPayは指定金額を設定したQRコードを生成できるのですが、これどうやら時限設定されているようで、以前に作っておいたQRがあとで読めなくなるという事態が発生……。

PayPayは問い合わせフォームがなくユーザーサポートはすべてTwitterというなかなかの仕様なので、こういう質問オープンにしてもいいのかなと思いつつTwitterで問い合わせたところ、問い合わせから1日経って「使っているアプリは?」という質問があった後応答がなくなりました……。もうお盆休み入っただろうしこれは詰んだかな……。

ただ、手持ちの動作テストでは24時間はコード持ちそうなので、当日の朝コードを出力して入れ込むという力業でなんとか対応しようと思っております。

これちゃんとシステムにするときはAPIとか勉強せねばだな……。

それはさておき、いよいよ明日に迫った初コミケ、3日目を予定している人は余裕ありましたらブースまで遊びに来てください。

私が書いた本の概要はこちら。

いないと思うけどこのためだけにコミケ初参戦しようと思っている人は「想像以上の暑さなのでやめておいたほうがいい」とコメントしておきます。


コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください