定期決済プロセス,Stripe決済 20211120
サブスクリプション申込をオンラインで受け付けるワークフローです。 顧客は、試用版IDをキーにオンラインで仮申込します。仮申込後、顧客は、クレジットカード情報を入力し、本申込します。 課金は Stripe で定期的に決済されます。
作業担当者 (スイムレーンの数:3)
  • 受付窓口
    • 購入手続きの受付担当者
  • ライセンス更新担当
    • 製品ライセンスを更新する担当者
  • 営業担当
    • 購入者の担当営業
仕事の流れ (ワークフロー図の複雑度:44)
  • 45 1.ライセンス更新
    • ライセンス更新担当が、受注内容を元にライセンスを更新します。
  • 43 2.Charge 中止判断
    • 営業担当者が、Charge 中止を判断します。(3時間判断なしなら Charge 自動実行)
  • 61 Charge 実行
    • ワークフロー基盤が、Charge 実行フローを実行します。
  • 55 Charging Stop
    • ワークフロー基盤が、解約プロセス/契約変更プロセスからの通知を待ち受けます。
  • 41 Stripe Customer ID 生成
    • ワークフロー基盤が、Stripe サービスから Customer ID を取得します。
  • 42 Stripe Charge
    • ワークフロー基盤が、Stripe サービスを使用し、課金を実行します。
  • 40 お手続き詳細内容セット
    • ワークフロー基盤が、本申し込み画面に表示される、手続き詳細内容をセットします。
  • 23 件名セット
    • ワークフロー基盤が、件名をセットします。
  • 25 件名セット
    • ワークフロー基盤が、件名をセットします。
  • 28 件名セット
    • ワークフロー基盤が、件名をセットします。
  • 50 件名セット
    • ワークフロー基盤が、件名をセットします。
  • 58 件名セット
    • ワークフロー基盤が、件名をセットします。
  • 60 件名セット
    • ワークフロー基盤が、件名をセットします。
  • 70 件名セット
    • ワークフロー基盤が、件名をセットします。
  • 65 年払い:課金期間
    • ワークフロー基盤が、(年払い用)次回課金期間をセットします。
  • 52 料金計算
    • ワークフロー基盤が、料金を計算します。
  • 63 月払い:課金期間
    • ワークフロー基盤が、(月払い用)次回課金期間をセットします。
  • 62 次回 Charge 実行
    • ワークフロー基盤が、次回分の Charge 実行フローを実行します。
  • 6 試用版情報/課金期間セット
    • ワークフロー基盤が、試用版情報を解析し、データ項目へ格納します。
  • 1 試用版情報取得
    • ワークフロー基盤が、試用版登録DB(Google シート)から顧客情報を取得します。
  • 26 購入手続き 本申し込み
    • ワークフロー基盤が、本申し込みフォームを生成します。
受け渡しされるビジネスプロセス変数 (データ項目の数:32)
  • ◆仮申込ガイダンス 25
  • ◆本申込ガイダンス 29
  • お申し込み日 q_registration_date 12
    • お申し込み日が格納されます。
    • processInstanceStartDatetime
  • 試用版ID q_contract_number 0
    • 顧客入力の試用版IDが格納されます。
  • ご契約メールアドレス q_contracted_email 8
    • 顧客入力のメールアドレスが格納されます。
  • お支払い方法 q_payment_method 27 *
    • 顧客選択のお支払い方法(月払い/年払い)が格納されます。
  • ご希望のプラン q_plan 26 *
    • 顧客選択のサービスプランが格納されます。
  • お手続き詳細内容 q_guidance_Massage 33
    • 本申し込み確認に必要な情報が格納されます。
  • 料金テーブル q_price_table 38
    • 選択された支払い方法・プランの料金が格納されます。
  • 小計 q_subtotal_amount 39
    • 料金の税抜価格が格納されます。
  • 消費税 q_tax 40
    • 料金の消費税が格納されます。
  • 合計 q_total_amount 41
    • 料金の税込価格が格納されます。
  • ◆お支払い情報の入力 I/F(Stripe トークンの作成) 30
    • クレジットカード情報登録 I/F が格納されています。(”pk_test_*****”文字列は Stripe サービス設定から取得・反映してください)
  • Stripe Token q_stripeToken 31 *
    • Stripe 決済に必要な token が格納されます。
  • last4 q_last4 32 *
    • クレジットカードの一部(番号の最後の4桁)が格納されます。
  • 特記事項 q_message 11
    • 顧客入力の特記事項が格納されます。
  • ◆試用版利用情報 9
  • 企業名 q_corprate_name 2
    • 企業名(契約情報DB Google シート)が格納されます。
  • 担当者名 q_customer_name 3
    • 担当者名(契約情報DB Google シート)が格納されます。
  • 担当者メールアドレス q_customer_email 4
    • 担当者メールアドレス(契約情報DB Google シート)が格納されます。
  • ◆Charge 情報 10
  • 課金開始日 q_payment_start_date 6
    • 課金開始日(申込日の翌日)が格納されます。
    • processInstanceStartDatetime.addDays(1)
  • 課金終了日 q_payment_end_date 5
    • 課金終了日が格納されます。
  • STRIPE CUSTOMER ID q_STRIPE_CUSTOMER_ID 34
    • Stripe サービスからの通知(Customer ID)を格納します。
  • STRIPE CHARGE ID q_STRIPE_CHARGE_ID 7
    • Stripe サービスからの通知(Charge ID)を格納します。
  • STRIPE CARD BRAND q_STRIPE_CARD_BRAND 35
    • Stripe サービスからの通知(クレジットカードブランド名)を格納します。
  • STRIPE LAST4 q_STRIPE_LAST4 36
    • Stripe サービスからの通知(クレジットカード番号の一部、下4桁)を格納します。
  • STRIPE EXP q_STRIPE_EXP 37
    • Stripe サービスからの通知(クレジットカードの有効期限)を格納します。
  • ◆システム情報 13
  • 試用登録情報 q_contract_information 1
    • 試用IDに紐づく登録情報レコードが格納されます。
  • APIキー(本申し込み用) q_api_key 28
    • 本申込みフォームへのアクセスに必要な API キーが格納されます。
    • #{#randomString(16)}
  • APIキー(Charge Stop 用) q_api_key_for_charge_stop 42
    • Charge Stop Web hook に必要な API キーが格納されます。
    • #{#randomString(16)}

フィールド名, Num, 初期値

Download

This archive contains the BPMN icon, which is only available in the Professional edition.

Notes

  • インポート時に組織構造に合わせて、処理担当者設定の関連付けを行います
  • 「試用版情報取得」工程 「File-ID」 は Google シートの URL 等を参照します。
    • docs.google.com/spreadsheets/d/{File-ID}/edit#gid=0
    • 試用版登録DB の作成例:https://docs.google.com/spreadsheets/d/1rMjhaQ-u2_o4cNWvfjUCDgAkPbE7pPW2znr-LwxLMs8/edit#gid=0
  • 「Stripe Customer ID 生成」「Stripe Charge」工程の”HTTP認証設定”
    • Stripe サービス内容から情報を取得し、設定してください。
    • トークン例: sk_live_***

Arrangement Tips

「試用版情報/課金期間セット」自動工程 スクリプト (click to open)
// q_contract_information データフォーマット
// フォーマット例:	企業名	担当者名	担当者名メールアドレス	作業担当組織
// 記載例    :株式会社増上寺 佐藤 二朗 sato@sample2.com CS部,運用部
const info = engine.findDataByVarName("q_contract_information");

const plan = engine.findDataByVarName("q_plan").get(0).getValue();
const method = engine.findDataByVarName("q_payment_method").get(0).getValue();
const startDate = engine.findDataByVarName("q_payment_start_date");
let endDate;
engine.log("q_plan: " + plan);
engine.log("q_payment_method: " + method);

main();

function main(){
	if (info !== null){
		const cols = info.split(" ");
		engine.setDataByVarName("q_corprate_name",cols[0]);
		engine.setDataByVarName("q_customer_name",cols[1]);
		engine.setDataByVarName("q_customer_email",cols[2]);
		engine.setDataByVarName("q_price_table",[plan]);
		if (method === "Monthly"){
		   endDate = startDate.addMonths(1).addDays(-1);
		}else{
		   endDate = startDate.addMonths(12).addDays(-1);
		}
		engine.setDataByVarName("q_payment_end_date",endDate);
	}
}
「料金計算」自動工程 スクリプト (click to open)
const taxRate = 0.1; // 消費税 10%
const subtotal = Number(engine.findDataByVarName("q_price_table").get(0).getDisplay());
const tax = subtotal * taxRate;
const total = subtotal + tax;

engine.setDataByVarName("q_subtotal_amount",new java.math.BigDecimal(subtotal));
engine.setDataByVarName("q_tax",new java.math.BigDecimal(tax));
engine.setDataByVarName("q_total_amount",new java.math.BigDecimal(total));

Capture

試用版登録DB 例

See also

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。