先日、初コミケ参戦に向けてキャッシュレス決済システムを作ったとご報告しましたが。
初コミケに向けて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日経って「使っているアプリは?」という質問があった後応答がなくなりました……。もうお盆休み入っただろうしこれは詰んだかな……。
ご不便をお掛けし誠に申し訳ございません。
お客様がご利用のPayPayサービスは、どちらになりますでしょうか?
?一般のご利用者様向けのPayPayアプリ
?一般のご利用者様向けのYahoo! JAPANアプリ
?加盟店様向けのPayPay for business(WEB版)
?加盟店様向けのPayPay for businessアプリ— PayPay公式サポート (@PayPaysupport) August 9, 2019
ただ、手持ちの動作テストでは24時間はコード持ちそうなので、当日の朝コードを出力して入れ込むという力業でなんとか対応しようと思っております。
これちゃんとシステムにするときはAPIとか勉強せねばだな……。
それはさておき、いよいよ明日に迫った初コミケ、3日目を予定している人は余裕ありましたらブースまで遊びに来てください。
8/11日曜 西お-39a【鳴海製作所】
新刊「技術系女子の日常16」
いつも通り400円です!今回売り子がおっさんばかりですがひるまず遊びに来てください!!!(同僚と夫) pic.twitter.com/XNt7j4RmBo— なるみCYO? (@queenmk) July 31, 2019
私が書いた本の概要はこちら。
【コミケ出展情報】
8/11日曜 西お-39a【鳴海製作所内】
タイトル「ゲーム脳で楽しむプログラミング?初心者が捧ぐ超初心者向けのJavaScript入門書?」
初心者が初心者の目線で初心者のために書いてみました。自分もまだまだ未熟ですが、プログラミングの世界に旅立つ最低限の準備はできるはず!? pic.twitter.com/rXdNu5vgS1— カイ (@kai4den) July 31, 2019
いないと思うけどこのためだけにコミケ初参戦しようと思っている人は「想像以上の暑さなのでやめておいたほうがいい」とコメントしておきます。