BETA

Webサイトの決済に、Amazon Paymentsを実装した。そうRuby On Railsで。

投稿日:2020-09-15
最終更新:2020-09-15

注意
本記事は、2016年のブログ投稿をQrunchに再投稿したもので、情報は当時のものです。


仕事でAmazon Paymentsを使って決済機能を開発したので、そのまとめ。
https://payments.amazon.co.jp/customer

まとめ

報告書は最初に結論が大事。ということで、早速まとめ。

  • Amazonが提供しているDocumentやサンプルが豊富でとても助かった。
  • サーバーサイドとフロントエンド(JavaScript)の両方で実装する必要があったので、他の決済と比べると理解に時間がかかった。
  • 仕様はオープンだが、ネットでの実装事例はなくて、完成イメージを持てずに苦労することもあった。
    →この記事がその助けになったら嬉しい。
  • サイトのUXはすごく向上したと思う。個人的にAmazonをよく使っていることもあり、Amazonログイン→支払いはとにかく簡単。
  • Amazon Paymentsのアカウント開設前に、すぐに使えるテスト環境はないため、事前の技術検証がほぼできなかった。Ruby SDKをAPI通信をスタブして、コードはかろうじて動かせた。これが改善されたら、もっと導入するところが増えると思う。他の決済サービスは準備されていることが多いらしい。
    (もちろん、サンドボックス環境はある)
  • 決済サービスってどれを選べばいいの?って決めるまでは全然決められなかった。考えれば考える程、どれでも同じなような。でもとにかくAmazonログインのUXを優先して決めてよかったと思う。Paypal, WebPayとかは導入はいいと思う(事例やドキュメントが多い)けど、UXの向上は見込みないので。

決済機能とは?

有名なのはPaypal、その他にも最近はいろいろあって、結構群雄割拠。
参考:
http://keiei.freee.co.jp/2015/06/01/paypal-spike-stripe-webpay-yahoowalletfastpay/
http://eco-notes.com/?p=512

去年くらいまではPaypalっぽい専門の決済サービスが多かったようだが、大手ECサイト(Amazon / 楽天 / Line ?)が参画して、今後はこっちに流れていくような気がする。

理由は、既にアカウント持っている人が多ければ、その人はすぐに支払いができるから。
ユーザーには、決済のUIはあんまり重要じゃないと思う。
また、使っているサービスで支払いできた方が安心感もある。Amazonはそれを謳ってもいる。

Amazon Paymentsって?

https://payments.amazon.co.jp/merchant
って動画を見ても、あんまり理解できないと思う。
要は、Amazonでログインボタン、Amazonでお支払いボタンを自サイトに埋め込んで、Amazonアカウントで支払いができるということ。

決めた理由:

  • UXの向上
    →Amazonでログインは効果があるはず
  • 支払い手数料
    →競合と比較して大体同じ
  • 運営者の使い勝手
    →Amazon Seller Centralという、Amazonマーケットプレイスと同じプラットフォームで、安定
  • 定期支払い
    →会員年会費の支払いに使いたかったので、必須

サービス名がところどころ、Amazon ログイン&ペイメント とかってなっていてよくわからなくなるけど、多分世界的に共通な名称がAmazon Paymentsで、日本のサービス名がAmazon ログイン&ペイメントってことのよう。

大差ないが、APIはログインとペイメントで分かれているので、一応気にしておく必要はある。Ruby SDKは同じような名前のメソッドだけど。

Documentが豊富

amazon.co.jpでは問い合わせしないとDocumentがもらえない(なのでここで公開することは適切でないと思う)
しかし、amazon.comでは普通に公開されているので、こちらを参照するといい。
https://payments.amazon.com/documentation
Forumもあって、質問すれば、1日くらいで回答きた。

実装

動線がすごくわかりにくいけど、こんな素晴らしいモックが用意されていて、これにかなりお世話になった。
https://amzn.github.io/login-and-pay-with-amazon-sdk-samples/
使ったRuby SDK(gem)はこちら。
https://github.com/amzn/login-and-pay-with-amazon-sdk-ruby

詳細はインテグレーションガイドを参照してもらうとして、概要はこんな感じ。
JS(JavaScript)でログインボタンと支払いボタンを実装。
ボタンを押すと、AmazonのJSがアカウントを認証し、指定したコールバックURLにリダイレクト、クエリパラメータでアクセストークンがついてくる。
アクセストークンを使って、ユーザー情報を取得したり、支払い処理を実行する。
今回は、調べながらで2週間くらいで基本的な実装はできた。
Ruby SDKを使ったモックを自分でも作ったので、参考にしてもらえるとうれしい。
https://github.com/Samemura/TryAmazonPayments
HerokuでPreviewも提供していて(Readme参照)、実際にはログインできないが、Amazonのログインウィンドウが出てくるところまでは見ることができる。

おまけ

Ruby SDKを使わせてもらったけど、日本のサンドボックス環境のEnd pointが間違っていたので、Forkして修正した。よかったら、こちらをどうぞ。
https://github.com/Samemura/login-and-pay-with-amazon-sdk-ruby

あと、細かいハマりポイントなども、質問されればなるべく回答しますので、お気軽にコメントどうぞ〜

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@samemuraの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう