Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

タクシーアプリ『GO』でのApple Pay導入

タクシーアプリ『GO』でのApple Pay導入

GO TechTalk #28 iOSの潜在能力を引き出せ!リッチプッシュとApple Payの実践活用術 で発表した資料です。

■ YouTube
https://www.youtube.com/live/_DvNB-ZlFTA?si=u3sCfOLm_Z-YKAJX&t=346

■ connpass
https://jtx.connpass.com/event/321462/

GO Inc. dev

July 23, 2024
Tweet

More Decks by GO Inc. dev

Other Decks in Programming

Transcript

  1. © GO Inc. 2 自己紹介 プロフィール写真 GO株式会社 開発本部 ソフトウェア開発統括部 ユーザーシステム開発部

    / 黒田修平 2022年7月入社 タクシーアプリ『GO』のiOSアプリ開発を担当 最近カメラにハマっています @shkrd_
  2. Index © GO Inc. 3 1. タクシーアプリ『GO』における決済について 2. Apple Payを『GO』アプリに導入

    3. Apple Payを導入した結果 4. 開発中に直面した課題・知見 5. まとめ
  3. © GO Inc. 『GO』アプリでは様々な支払い方法で決済ができる • 車内決済 • カード払い    (クレジット/デビット/プリペイド) •

    d払い • PayPay • GOチケット • クーポン • 請求書払い(法人契約のみ) タクシーアプリ『GO』における決済について 5
  4. © GO Inc. 『GO』アプリでは様々な支払い方法で決済ができる • 車内決済 • カード払い    (クレジット/デビット/プリペイド) •

    d払い • PayPay • GOチケット • クーポン • 請求書払い(法人契約のみ) タクシーアプリ『GO』における決済について 6 GO Pay • 降車時の支払いが不要になりスムーズに降車できる • 領収書を降車後にアプリから一括で発行可能
  5. © GO Inc. GO Payの利用率がなかなか上がらない 7 • タクシー車内で決済をしている人が一定数いる • クレジットカードを持っていてもGO

    Pay登録していない人がいる • クレジットカードの登録が面倒 ◦ クレジットカード情報を手入力するのは手間 ◦ カメラでスキャンする機能もあるが、やはり面倒に感じるユーザーが多い(利用者も少ない) • タクシーをすぐに呼びたいユーザーにとって、クレジットカード登録は優先度が低い ◦ 特に新規ユーザーはアプリインストール後、すぐにタクシーに乗りたい場合が多い
  6. © GO Inc. Apple Payとは • Appleが提供するモバイル決済サービス • 主な機能 ◦

    Face ID, Touch ID, パスコードを使って簡単に支払いができる • 利用方法 ◦ ウォレットアプリにクレジットカードやデビットカードを登録しておく ◦ 支払い方法にApple Payを選択し、認証するだけで支払いが完了する • メリット ◦ すでにウォレットアプリに登録されているカードを使える ▪ 『GO』アプリ内でクレジットカードを登録する手間が省ける 9
  7. © GO Inc. 『GO』アプリにおけるApple Payを使用した決済フロー(配車依頼時) 配車依頼時 GOのサーバー ペイメントサービス プロバイダ ①

    支払い方法にApple Payを選択 ② Payment Sheetを表示して、認証を行う  ・Apple PayのPaymentSheetを表示して、ユーザーに支払いの確認を求める  ・ユーザーがFace ID、Touch ID、またはパスコードを使って認証し、支払いを承認する 決済基盤 『GO』アプリ APIサーバー ③ ユーザーが支払いを承認すると、Apple Payは支払い情報を暗号化してトークンを生成する  ・このトークンは、支払いの詳細情報を含んでおり、一時的なもので特定の支払いにのみ有効 12
  8. © GO Inc. 13 • Apple Payを利用できるかどうかを確認するには、 PKPaymentAuthorizationControllerのcanMakePayments(usingNetworks:)メソッ ドを使用する ◦

    usingNetworksには、VisaやMasterCardなどのカードブランドの配列を指定する。 • 指定したカードブランドのいずれかがウォレットアプリに登録されている場合、このメ ソッドはtrueを返す。 ◦ trueであれば、支払い方法にApple Payを表示する ①支払い方法にApple Payを選択できるようにする
  9. © GO Inc. PaymentRequestの生成 • PKPaymentRequestオブジェクトを生成 • 支払いの詳細やサポートするネットワーク(カードブランド)を設定 ② Payment

    Sheetを表示して、認証を行う 15 配車依頼時点では乗車料金が確定していないので決済は行わない。 PKPaymentSummaryItemTypeを.pendingにする。
  10. © GO Inc. 『GO』アプリにおけるApple Payを使用した決済フロー(配車依頼時) 配車依頼時 ペイメントサービス プロバイダ ⑤ APIサーバーはアプリから送信されたトークンを決済基盤に送信する

    トークン ④ アプリは生成したトークンをAPI経由でサーバーサイドに送信する 決済基盤 APIサーバー GOのサーバー 17 『GO』アプリ
  11. © GO Inc. 『GO』アプリにおけるApple Payを使用した決済フロー(降車時) 降車時 乗務員端末 ② 決済基盤は、保持しているオーソリ情報と乗車料金(確定した金額)を使って、決済をリクエストする ペイメントサービス

    プロバイダ 決済リクエスト ok ok ok 決済基盤 APIサーバー ③ 決済処理が成功し、乗車完了となる GOのサーバー オーソリ 情報 乗車料金 20 『GO』アプリ
  12. © GO Inc. GO Payの利用率がなかなか上がらない Apple Payを導入した結果 Apple Payをリリースして1ヶ月… 22

    • iOSユーザーのGO Pay登録率が2%上昇した ◦ 約30000人のユーザーがApple Payに連携 ▪ そのうち3割程度がApple Payで決済 少しずつではあるが、GO Payの利用率アップに効果があった
  13. © GO Inc. Appleが用意したSandbox用のカードが登録できないことがよくあり、テストスケジュールに影 響が出た • 『GO』アプリでApple Payが使えるかを、Sandbox用のカードをウォレットアプリに登録 して確認したかった •

    今回の開発では、1週間登録できない→1週間登録できる→2ヶ月程登録できない、という 状況だった Appleに問い合わせた回答:「世界中の人が使っているので登録できないことがある」 ⇒ タイミングによって登録できたりできなかったり… Sandbox用カードは日々登録できるか確認すべき (対応策) Sandbox用のカードが登録できるかどうか日々確認する Sandbox用のカードが登録できない場合は実際のクレジットカードを代用するしか ない 24
  14. © GO Inc. • Sandbox用カードで生成したトークンでは決済ができない • 開発環境ではペイメントサービスプロバイダが提供するダミートークンでしかオーソリ取 得や決済が成功しないため、配車依頼時にサーバーサイドにダミートークンを送る必要が ある Sandbox用カードで生成したトークンでは決済できないので注意

    (対応策) • ダミートークンをサーバーサイドに送るためのデバッグ機能を用意した ◦ デバッグ機能でダミートークンを選択できるようにし、サーバーサイドにダミートー クンを送ってオーソリ取得・決済成功時の動作確認を行った 25
  15. © GO Inc. • 本番動作確認として、実物のカードを利用してオーソリがとれるか確認をした ◦ 実物のカードでApple PayのPayment Sheetでトークンを生成 ◦

    そのトークンを決済基盤の担当者に譲渡し、動作確認を依頼 ▪ オーソリ確認時にエラーが発生 • トークン取得からオーソリ確認まで時間がかかりすぎてトークンの有効 期限がきれていた(3時間経っていた) Apple Pay の Payment Sheet のトークンの有効期限切れに注意 26 (対応策) トークンの有効期限を考慮して動作確認をすること
  16. © GO Inc. • タクシーアプリ『GO』における決済について ◦ 『GO』アプリでは様々な支払い方法で決済ができる ◦ 課題: GO

    Payの利用率が上がらない ▪ クレジットカードの登録が面倒 ▪ タクシー車内で決済をしている人が一定数いる • Apple Pay を 『GO』アプリに導入 ◦ 『GO』アプリにおけるApple Payを使用した決済フローの紹介 • Apple Pay を導入した結果 ◦ GO Pay利用率の上昇に効果あり • 開発中に直面した課題・知見 ◦ Sandbox用カードは日々登録できるか確認すべき ◦ Sandbox用カードで生成したトークンでは決済できないので注意 ◦ Apple Pay の Payment Sheet のトークンの有効期限切れに注意 まとめ 28