チャットボットやWebで利用するLINE Pay決済関連APIを作成してみた

109件のシェア(ちょっぴり話題の記事)

はじめに

こんにちは、中村です。LINE Pay用のAPIをAPI GatewayとLambdaで作成してみました。
店舗でQRを読み込んで決済を行うために利用します。(今回紹介するのは、裏側で利用するAPIです)

作成してみた

ソースコード及びCloudformationテンプレートは、githubにおいてあります。
cm-nakamura-yuki/sample-linepay-checkout

Lambdaについては、デプロイにApexを利用しています。またソースコードはTypescriptを利用していますのでどちらも設定しておきましょう。

またLambdaでは環境変数を多用しています。エンドポイントの変更やコードに直接記載したくないCredentialなどを別にしておくためです。

作成するAPIは、下記の4つです。

パス メソッド 説明
/checkout POST 決済用URL発行
/item GET 商品情報取得
/item POST 商品情報登録
/list GET 商品一覧取得

checkout

LINE Payで決済を行うためのURLを発行します。

  • productNameをキーに商品情報を取得
  • 商品情報をもとにLINE Payへリクエスト
  • 決済情報をDynamoDBへ格納

レスポンスで、LINE Payから取得したデータを返します。ConfirmUrlは、ユーザーがLINE Payで決済承認後に遷移するURLです。最終的な決済処理を行います。

item - GET

商品の詳細を表示する時に利用します。

パラメータ 説明
productName DynamoDB検索用の商品名

レスポンスは、パラメータがない場合は400、パラメータが正常の場合はDynamoDBからGetしたデータを返します。

item - POST

管理者アプリ等で商品登録に利用します。

ボディ 説明
productName 商品名
price 金額
purchaseType onetime,subscription(一般決済か継続決済)
image 画像ファイル名

DynamoDBへは、productNameをHASHキーにしAttributes内に他のデータを格納します。

list

DynamoDBに登録されているデータをScanし、データを返します。チャットボットなどのクライアント側で商品一覧を表示するのに利用します。

まとめ

Cloudformation利用してAPI Gateway + LambdaのAPIが出来上がりました。
どこかのタイミングで次はAPIを利用したWeb/チャットボットを作成しようと思います。

チャットボット開発は弊社にご相談ください。