google formから google appscriptを利用して、メール送信、stripe送信

記事
IT・テクノロジー
Stripe決済システム 仕様書

1. システム概要

1.1 目的

Google Formsと連携したStripe決済システムで、フォーム送信後に複数の商品に対する決済リンクを自動生成し、メールで送信するシステムです。

1.2 主な機能

フォームデータの取得
Stripe顧客の作成
複数商品の決済セッション生成
決済リンクのメール送信
2. システム構成

2.1 使用技術

Google Apps Script
Stripe API
Google Forms
Gmail
2.2 必要な認証情報

Stripe APIキー(テスト用:sk_test_51NevFh...)
Google Apps Scriptの実行権限
3. 商品情報

3.1 商品一覧

const products = [
    { id: 'price_xxxx1', name: '講演会1(¥17,000/税込)'},
    { id: 'price_xxxx2', name: '講演会2(¥8,800/税込)'},
    { id: 'price_xxxx3', name: 'オンライン生配信・アーカイブ付き(¥4,400/税込)'},
];
3.2 商品設定方法

Stripeダッシュボードで商品を作成
生成されたPrice IDを商品配列に追加
商品名と価格を配列内で設定
4. フォーム連携仕様

4.1 必要なフォーム項目

お名前(必須)
メールアドレス(必須)
4.2 フォームトリガー設定

フォーム送信時にトリガーを実行
onFormSubmit関数が呼び出される
フォームの回答データはe.responseに格納
4.3 データ取得処理

const responses = formResponse.getItemResponses();
const formData = {};
responses.forEach(response => {
    const title = response.getItem().getTitle();
    const value = response.getResponse();
    formData[title] = [value];
});
5. Stripe連携仕様

5.1 顧客作成

エンドポイント: api.stripe.com/v1/customers
メソッド: POST
ヘッダー:
{
  Authorization: 'Bearer ' + STRIPE_SECRET_KEY,
  'Content-Type': 'application/x-www-form-urlencoded'
}
パラメータ:
name: フォームから取得した名前
email: フォームから取得したメールアドレス
metadata: 注文ID等の付加情報
5.2 決済セッション作成

エンドポイント:  api.stripe.com/v1/checkout/sessions
メソッド: POST
設定可能な支払い方法:
クレジットカード
銀行振込(国内銀行振込)
Google Pay
Apple Pay
5.3 銀行振込設定

const paymentMethodOptions = {
    customer_balance: {
        funding_type: 'bank_transfer',
        bank_transfer: {
            type: 'jp_bank_transfer'
        }
    }
};
6. メール送信仕様

6.1 メール内容

件名: "お支払いリンクのご案内"
本文構成:
顧客名と挨拶
商品別の決済リンク
注意事項
6.2 注意事項記載内容

※恐れ入ります。銀行振り替え手数料はお客様負担にてお願いします。
※申し込み名と銀行振り込み名は、同じお名前でお願いします。
・お支払い完了時点で、受付完了となります。
・フォーム申込みから1週間以内に振込または決済が確認できない場合、キャンセルとさせて頂く場合があります。

7. エラーハンドリング

7.1 フォームデータ取得エラー

if (!formResponse) {
    Logger.log("エラー: フォームデータが取得できません");
    return;
}
7.2 Stripe顧客作成エラー

if (responseCode !== 200) {
    Logger.log('Error creating customer: ' + responseText);
    throw new Error('Failed to create Stripe customer: ' + responseText);
}
7.3 セッション作成エラー

各商品ごとに個別にエラーハンドリング
エラーが発生した商品はスキップして処理を継続
8. セキュリティ考慮事項

8.1 API認証

Stripe APIキーは環境変数として管理
テスト環境と本番環境で異なるAPIキーを使用
8.2 データ保護

顧客情報は必要最小限のみ保持
メールアドレスと名前のみStripeに送信
決済情報はStripeのシステムで管理
8.3 エラーログ

システムエラーは全てログに記録
個人情報は最小限のみログに記録
9. 運用保守

9.1 動作確認項目

フォーム送信時のデータ取得
顧客作成の成功
各商品の決済セッション作成
メール送信の成功
9.2 定期メンテナンス項目

Stripe APIキーの有効性確認
商品情報の最新化
エラーログの確認
決済完了率の確認
9.3 トラブルシューティング

フォームデータ未取得
トリガー設定の確認
フォーム項目名の確認
Stripeエラー
APIキーの有効性確認
パラメータの正確性確認
メール未送信
Gmail APIの権限確認
メールアドレスの形式確認
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら