【Node.js + TypeScript】AmazonPayの実装

node.js

Webサービスを作っていてAmazonPayを導入することになり、フロントはReact で FirebaseのCloudFunctions(Node.js)で実装しました。

AmazonPayのSDKはPHPやPythonなどは用意されているのですが、Node.jsだけなかったので自前実装することになりました。Amazonさんの公式ドキュメントを読んだだけではつまづきやすい点が多かったので備忘録として残しておきます。

今回実装したのはワンタイムペイメント(通常購入)のみです。

この記事の目次

事前準備

 

AmazonPayを利用するには公式サイトから利用登録、審査が必要です。とくに審査は厳しくありません。

Amazon Pay Documentation
開発者向け情報 | Amazon Pay

実装

 

登録が完了したら、セルラーセントラルにログインしてSellerID(出品者ID)、アクセスキー、シークレットキー、クライアントIDを取得することができます。

課金テスト用アカウントの作成も忘れずに行ってください。

Welcome to Amazon Seller Central | Japan
Login to your Amazon seller account, or sign up to create a seller account.

 

フロント側(React)

index.htmlのheadにAmazonPayのボタンウィジェトを表示するための以下のコードを追加する。

 

次にAmazonPayのボタンを表示するコンポーネントを作成する。

 

このコンポーネント使えば、AmazonPayボタンが表示される。

 

バックエンド側(CloudFunctions [Node.js + TypeScritpt])

リクエストを送信するクラスを作成する。

AmazonPayにリクエストを送る際には署名が必要になるので、シグネチャーを作成して付与する必要があります。シグネチャーの作成部分は、ドキュメントを見てもかなり分かりにくいので、参考になればと思います。

 

ワンタイムペイメントで必要なAPIのUsecaseを作成する。

 

あとは順番にAPIを叩いていけば、支払いの確定まですることが可能です。

支払い確定(capture)時に失敗をした場合は、オーソリをクローズしてあげてください。

 

本番環境と開発環境でURIやシグネチャー作成時のテキストが違うのでConfigファイルを作って切り替えてあげてください。

 

コメント

タイトルとURLをコピーしました