見出し画像

【ヒトサラ:アプリ予約特典】「+2倍」キャンペーンのウラガワ(エンジニア編)

こんにちわ。
本件担当エンジニアの國武です。

今回の主な対応としては下記の2つ。

①予約フォームをアプリ予約用に最適化
②アプリ予約特典ポイント付与の為の処理

非常にざっくりとしていますが、だいたいこんな感じ。


ヒトサラのポイント絡みの対応は今回が初めてだったので壮大なものをイメージしていましたが、ヒトサラには既存で数種類のポイントがございます。その辺を参考にすれば、まあなんとかなるかなと半ば手探り状態で実装を進めました。

今回はエンジニア目線で対応した際のお話ができればと思います。

①予約フォームをアプリ予約用に最適化

こちらは主にフロントサイドの内容。

ヒトサラのアプリ予約で用いられている予約フォームは、既存ヒトサラのSP用WebViewがそのまま利用されております。

そこでアプリ予約特典ポイント付与にあたって、既存仕様の中で不要な部分(一部のリンクやヘッダーなど)を非表示にするというものです。

よってもちろん予想はしておりましたが、画面上で「この予約がアプリ予約か否か」を判別する必要がございました。

アプリ予約か否か。。。つまりユーザーデバイスを特定する必要がある。

色々と調べた挙句、ヒトサラではphpのユーザーエージェントを利用すれば難なく判別できそう。

サンプル
echo $_SERVER['HTTP_USER_AGENT']; 


実行結果例
Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1

というわけで早速その判別メソッドの実装に入ろうとしましたが
なんと最近似たような判別メソッドを、別案件で同僚が作成済みだったことが判明wwww

ありがたくそのメソッドを利用させていただくことにして、デバイス判定はクリア。あとはフロントファイル各所に表示条件などを設定すればOK。

少々苦労した点として、ヒトサラでは予約の際に人数やコースなどを選択するとどれぐらいポイントが貰えるか分かる仕様になっております↓

画像1

こちらのフロント処理にphpとjavascriptを組み合わせたようなものがあり、理解するのに時間を要しました。既存仕様を参考にできたのでまだ良かったです。。。

②アプリ予約特典ポイント付与の為の処理

こちらはアプリ予約特典ポイント用の新規メソッドを構築などといったものではありません。

ヒトサラには「ポイントAPI」なるものが存在します。
予約情報(時間帯や人数など)を投げると、その際取得できる適切なポイント値を返してくれたり実際のポイント付与まで行ってくれるというもの。

そのAPIの実装は別で担当者がいるのですが、今回僕はそのAPIに
「この予約はアプリ予約かどうか」の判別フラグを渡すというもの。

よってこちらも、①で利用した判別メソッドを利用すれば万事OK。

そこで実際にポイントAPIを呼び出している各種メソッドにアプリ予約判別フラグを渡してあげる処理をじゃんじゃん追加。

ここで注意したのは、「既存に影響が出ないか」ということ。

超絶当たり前のことですが、既存仕様で利用されているメソッドに手を加えるということは、「今できてることができなくなったらアウト」なわけで。

新卒の頃これで散々苦労したので、それが今では生きております。

まとめ

かなりざっくりとした内容でしたが、今回は既存仕様を参考にすればだいぶラクになる部分が多かったです。

新規メソッド構築などもなかったので、phpの謎エラーなどでつまずいてしまうようなこともありませんでした。

逆に今後そのような機会があれば、またここに書きたいなと思います。


画像2


この記事が参加している募集

オープン社内報

この記事が気に入ったらサポートをしてみませんか?