gusuku Customineを使って、ノーコードでStripe Payment Linksの注文情報をkintoneに送信する

この記事は「[Customine Advent Calendar 2023](https://qiita.com/advent-calendar/2023/customine)」11日目の記事です。

オンライン決済処理を行う上で、欠かすことができない実装が「バックオフィス業務との連携」です。ECサイトでは商品の発送や在庫システムとの連携、Webサービスではアカウントへのアクセス権の設定、そして受託業務などの請求書処理では支払いが完了したことを社内に通知する仕組みが必要です。

kintoneでバックオフィスの業務システムを構築している場合、Customineを利用してStripeの決済情報をkintoneに連携させることができます。

## 事前準備: 連携させたいkintoneアプリのAPIトークンを生成する

Customineでkintoneアプリを操作する場合、特にジョブランナーを利用するには、APIトークンが必要です。連携させたいアプリの[設定]からAPIトークンを発行しましょう。

![スクリーンショット 2023-12-11 14.57.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/6435e837-2bff-df1d-7286-7effd173ce1b.png)

この際、APIトークンを発行した後に[アプリを更新]ボタンを押すことを忘れないようにしましょう。更新するまでAPIトークンを利用することはできません。

![スクリーンショット 2023-12-11 14.58.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/8f3959b3-79ec-77c7-18a2-0be4de3b47be.png)

## Stripeの決済処理をkintoneに送信する

CustomineでStripeとkintoneを連携するには、[kintoneアプリのWebhook]を利用します。

![スクリーンショット 2023-12-11 14.59.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/fad137dc-330e-56e7-7d95-d6aedb70b9ba.png)

StripeのWebhookをCustomineのジョブランナーで処理するには、[Webhookを開始したとき]アクションの条件を[Webhookの発生がStripeのチェックアウトセッション完了によるならば]に設定します。これでStripe CheckoutまたはPayment Linksを利用した決済が完了した場合に、Customineのジョブランナーを実行できます。

![スクリーンショット 2023-12-11 15.01.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/743d8a56-2e9c-f211-b014-3db4d39302af.png)

### 注文した顧客の情報を取得する

注文した顧客の情報は、[Stripe の Webhookから渡された顧客情報を取得する]アクションで取得できます。

![スクリーンショット 2023-12-11 15.03.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/02bd4e4a-e03f-ec8d-90c4-4ae45eb2600d.png)

取得した顧客情報は、[StripeのCheckout Sessionオブジェクト内にある`customer_details`オブジェクト](https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-customer_details)が利用できます。
![スクリーンショット 2023-12-11 15.05.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/ca08cef3-a4fe-daf0-75b0-83d784c8389b.png)
https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-customer_details

例えば顧客の名前は`= $11.name`、住所は`= $11.address.line1`や`= $11.address.postal_code`などで取得できます。

### 注文と決済の内容を見るためのリンクを取得する

注文内容の詳細や決済に関する各種情報は、Stripeダッシュボードから見ることができます。これらの内容を見るためのページにアクセスするためのリンクURLを、Customineで取得しましょう。

まず支払いのIDを取得するアクションを追加します。[Stripe　の　Webhook から渡された支払い手続きIDを取得する]アクションを選びましょう。

![スクリーンショット 2023-12-11 15.09.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/e68b6972-09b5-6f0e-cc46-c62915ea1493.png)

その後、[Stripeの支払い詳細画面のURLを作成する]アクションを追加します。[支払いID]を設定する必要がありますので、[Stripe　の　Webhook から渡された支払い手続きIDを取得する]の結果を渡すように設定しましょう。

![スクリーンショット 2023-12-11 15.10.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/dcdbb97e-3893-16fb-c316-c066a6a70639.png)

### kintoneアプリのレコードに追加する

取得したデータを利用して、[レコードを追加する]アクションを最後に実行しましょう。

![スクリーンショット 2023-12-11 15.11.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/ec15dba9-26bb-bc7a-b9ae-96eb07308804.png)

### ジョブランナーのURLをStripeに設定する

[ジョブ生成・設定]をクリックすると、StripeからCustomineのジョブランナーを実行するためのURLが生成されます。

![スクリーンショット 2023-12-11 15.12.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/fd6564b6-935b-9ac4-b276-3d11eb083f9a.png)

生成に成功すると、モーダルでURLが表示されますので、[URLをコピー]をクリックしましょう。

![スクリーンショット 2023-12-11 15.13.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/f647d5f8-2d3b-bdf7-5ed9-30e6900a2a4c.png)

取得したURLをStripeのWebhook設定画面で追加します。イベントを指定する必要がありますので、`checkout.session.completed`と`checkout.session.async_payment_succeeded`を選びましょう。

![スクリーンショット 2023-12-11 15.14.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/2c495ced-9aa9-3729-df22-8fb5d8246fdf.png)


## テスト注文を行う

Stripe CheckoutまたはPayment Linksでテスト注文を行うことで、動作確認ができます。

![スクリーンショット 2023-12-11 15.15.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/5c1a6c29-9a29-4e9f-d00b-77d093fa2343.png)

kintoneアプリのレコードが追加されていれば、連携成功です。

![スクリーンショット 2023-12-11 15.16.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/151abc0c-4320-7c2d-4cc3-fe44210957e1.png)

もしうまくいかなかった場合は、Customieの[ジョブ生成・設定]ボタンをクリックしてモーダルを開きます。[実行履歴]タブを選択すると、ジョブランナーの実行履歴とエラーメッセージが確認できます。

![スクリーンショット 2023-12-11 15.17.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/3087a03f-918b-bf62-6adc-6b6181397b72.png)

実行ログの詳細も確認できますので、デバッグにお使いください。

![スクリーンショット 2023-12-11 15.18.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/d9760de6-fbba-99b5-b588-77a92ebe0dab.png)


## Stripeで、決済や請求・サブスクリプションの「バックオフィス業務」も効率化・自動化しよう

このようにStripeでは、決済やサブスクリプションの組み込みだけでなく、バックオフィス業務の効率化やカスタマイズも可能です。

また、レポーティングや分析・データウェアハウスまたは外部システムへの連携などもシームレスに行えるため、「決済・注文・サブスクリプション申し込みの受け付けを**終えた後**」についても効率化や改善・自動化できます。

![スクリーンショット 2023-08-22 13.51.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/859fcf9f-fd2e-d2bc-bcb7-f86a30042686.png)
https://stripe.com/jp/use-cases/finance-automation

「バックオフィス業務の自動化・効率化」に興味がある方は、以下のドキュメントから詳細を確認してみましょう。

https://stripe.com/jp/use-cases/finance-automation

https://stripe.com/docs/finance-automation

https://marketplace.stripe.com/