開発情報・ナレッジ

セミナー申込サイトに決済代行サービス「e-SCOTT」と連携したオンラインID決済サービス機能を追加する方法

ここでは、 セミナー受付管理でご案内しているセミナー申込サイトを例に、 ソニーペイメントサービス株式会社が提供する決済代行サービスの「e-SCOTT」を利用して、都度および継続課金に対応したオンラインID決済サービス機能を追加する方法をご紹介します。
※「e-SCOTT」の特徴
クレジットカード決済やコンビニ決済などの幅広い決済手段から、事業者様のニーズに合わせた最適な決済方法を一括導入、一元管理が可能であり、グローバルなセキュリティ基準に準拠し、20年以上の実績と信頼のソニーペイメントサービス株式会社のマルチペイメントサービスです。

デモを確認

前提条件

セミナー受付管理が作成されていることが必要です。
決済機能のご利用にはソニーペイメントサービス株式会社との利用契約が必要となります。
ご契約からご利用開始まで、通常1.5カ月程度にてご案内いたしております。
サービス内容やお申し込みになる決済手段の審査状況によって、ご利用開始まで期間
は異なる場合がございます。 お問い合わせ及びお申し込みは下記アドレスにお問い合わせください。
メールアドレス:takahiro.nakamura@sonypayment.co.jp
担当:中村

概要図

各処理から書き込みを行うログDBおよび各処理から読み込みを行う環境変数DBへの矢印は、概要図からは割愛しております。 歯車マークは、セミナー申込者には見えないページを示します。

構成要素

変更する構成要素
DB
オンラインID決済サービスに関連する情報を既存DBに追加します。
・セミナーマスターDB
・セミナー申込DB
サイト
オンライン ID 決済サービスに関連する情報を表示するように処理を追加します。
・セミナー一覧ページ
・セミナー詳細ページ
・セミナー申込ページ
追加する構成要素
DB
オンラインID決済サービスの履歴管理をするDBを作成します。
・ログDB
本処理で必要な変数を登録しておくDBを作成します。
・環境変数DB
サイト
オンラインID決済サービスの決済手段を選択するページを新規作成します。
・決済手段選択ページ
オンラインID決済サービスへリダイレクトするページを新規作成します。
・決済処理ページ
オンラインID決済サービスのお支払い情報を取得するページを新規作成します。
このページはe-SCOTTシステムからアクセスがあるのみで、セミナー申込者から見えないページです。
・結果通知取得ページ
オンラインID決済サービスの都度課金の決済完了と継続課金の契約完了時に表示するページを新規作成します。
・決済完了ページ
スケジュールトリガ
毎月課金を行う継続課金用プログラムを作成します。
・継続課金バッチ

手順

1.ソースコードダウンロード
必要なファイルを下記のリンクからダウンロードします。
2.DB変更と作成
2-1.セミナーマスターDB
以下のフィールドを追加します。
フィールドタイプ 表示名 備考
数値 料金
テキスト セミナーID
セレクト 都度課金/継続課金フラグ 1︓都度課金
2︓継続課金
追加する「セミナーID」はDBトリガのレコードアクションを設定します。
DBトリガのレコードアクションの説明は以下のコンテンツをご確認ください。
DBトリガのレコードアクション

セミナーマスターDBへDBトリガのレコードアクションを作成し、アクション処理を設定します。
レコードアクションの登録トリガにて、システムで採番されるIDを「セミナーID」の格納値として設定します。
設定内容は画像を参照してください。
こちらも画像を参照し、設定してください。
2-2.セミナー申込DB
以下のフィールドを追加します。
フィールドタイプ 表示名 備考
テキスト 郵便番号
テキスト セミナーID
セレクト 決済ステータス [都度課金]
1:未決済(デフォルト)
2:決済
3:多重決済
[継続課金]
1:未契約(デフォルト)
2:契約
3:多重契約
数値 支払金額
セレクト 都度課金/継続課金フラグ 1:都度課金
2:継続課金
日時 申込年月日
日時 決済開始日
日時 継続課金契約日
日時 決済完了日
日時 決済予定日
数値 支払回数
数値 未払回数
テキスト セッションID
セレクト 決済手段(注1)
テキスト プロセスID
テキスト プロセスパスワード
テキスト 店舗契約番号
テキストエリア 備考
(注1)決済手段については、ソニーペイメントサービス株式会社の「e-SCOTT Smart 接続仕様書(ID決済サービス編)」のマニュアルの"5.4.1. オンライン取引コード定義の表 5-5 決済手段"の中から、ご利用する決済手段のIDをセレクトフィールドの選択肢として設定します。
追加する「レコードID」「申込年月日」「セッションID」はDBトリガのレコードアクションを設定します。
DBトリガのレコードアクションの説明は以下のコンテンツをご確認ください。
DBトリガのレコードアクション

セミナー申込DBへDBトリガの登録トリガのレコードアクションを作成し、アクション処理を設定します。
レコードアクションの登録トリガにて、システムで採番されるIDを「レコードID」の格納値として設定します。
またDB格納時の日時を「申込年月日」の格納値として設定します。
そしてランダム文字列を「セッションID」の格納値として設定します。
設定内容は画像を参照してください。
セミナー申込者宛てに、都度課金のお支払い完了時と継続課金のご契約完了時にメール送信する設定をします。
DBトリガのメールアクションの説明は以下のコンテンツをご確認ください。
DBトリガのメールアクション

都度課金の決済完了後にメール送信するDBトリガのメールアクションを設定します。
セミナー申込DBへ更新トリガにて、「決済ステータス」へ更新時にメール送信する設定をします。
設定内容は画像を参照してください。
次に継続課金の契約完了後にメール送信するDBトリガのメールアクションを設定します。
セミナー申込DBへ更新トリガにて、「決済ステータス」へ更新時にメール送信する設定をします。
設定内容は画像を参照してください。
2-3.ログDB
e-SCOTT システムとの送受信ログやセミナー申込 DB の更新履歴を登録する DB になります。
以下のフィールドを作成します。
フィールドタイプ 表示名 備考
テキスト インデックス
テキストエリア ログデータ Jsonデータが登録されます
テキストエリア 備考
2-4.環境変数DB
本処理で必要な変数を登録しておくDBです。
以下のフィールドを作成します。
フィールドタイプ 表示名 備考
テキスト 環境変数名
テキストエリア 環境変数値
テキストエリア 説明
環境変数DBに以下のレコードを登録します。
環境変数名 環境変数値 説明
TransactionURL ソニーペイメントサービス株式会社と契約すると、パラメータと値が払い出されます。
その値を設定します。
オンラインID決済サービス電文
MerchantID マーチャントID
MerchantPass マーチャントパスワード
Passphrase 暗号化キー(電文用)
InitVector 初期化ベクトル(電文用)
SemiMstURL https://api.spiral-platform.com/v1/apps/[アプリID]/dbs/[セミナーマスターDBのDBID]/records (注1) セミナーマスターDBのURL
SemiRegistURL https://api.spiral-platform.com/v1/apps/[アプリID]/dbs/[セミナー申込DBのDBID]/records (注1) セミナー申込DBのURL
LogDataURL https://api.spiral-platform.com/v1/apps/[アプリID]/dbs/[ログDBのDBID]/records (注1) ログDBのURL
ItemCategory 1714 商品カテゴリ(その他:その他)
ContactName ソニーペイメントサービス株式会社と契約すると、パラメータと値が払い出されます。
その値を設定します。
契約名(電文用)
ContactDetails 契約内容(電文用)
TenantId_Once 都度課金用店舗コード(電文用)
TenantId_Monthly 継続課金用店舗コード(電文用)
(注1)DBへアクセスするためのURLです。確認方法は以下のページを参照してください。
APIによるDB作成/レコード操作

アプリIDはアプリ作成時に発行されます。基本設定から参照できます。
またDBIDはDB作成時に発行されます。基本設定から参照できます。
3.DBアプリロール設定
既存のアプリロールにログDBに関する権限を追加します。
権限調整の詳細は、「アプリロール」をご確認ください。
制限内容は以下の通りです。
アプリロール 許可/制限したい内容
管理者 全操作可能
セミナー事務局
営業/サポート担当
販促
ログDBに関する操作はすべてNG
4.PHP環境変数
共通設定内のPHP環境変数にて、PHPで使用する環境変数を設定します。
設定内容は以下の通りです。
変数名 共通/個別 説明
APIKey 共通 APIキー(注1)
OidPaymentEnvDbUrl 共通 環境変数DBのURL(注2)
BaseURL 共通 作成したサイトURL
(注1)APIキーの発行方法は以下のそれぞれの詳細ページを参照してください。
APIエージェントでのAPIキーの発行
ユーザに紐づくAPIキーの発行
(注2)環境変数DBへアクセスする為のURLです。このURLの調査方法は以下のページを参照してください。
APIによるDB作成/レコード操作
5.ページ変更と作成
5-1.セミナー一覧ページ(任意)
セミナー一覧ページに料金フィールドを表示させます。
ご自身で料金表示の対応をする場合はスキップして頂いて構いません。
作成済みのレコードリストブロックを編集してフィールドを追加します。
詳しくは、レコードリストブロックのビジュアル設定をご確認ください。

追加項目
フィールドタイプ 表示名
数値 料金

追加すると以下のようになります。
5-2.セミナー詳細ページ(任意)
セミナー詳細ページに料金フィールドを表示させます。
ご自身で料金表示の対応をする場合はスキップして頂いて構いません。
作成済みのレコードアイテムブロックを編集してフィールドを追加します。
詳しくは、レコードアイテムブロックのビジュアル設定を参照してください。

追加項目
フィールドタイプ 表示名
数値 料金

プレビューは以下のようになります。
5-3.セミナー申込ページ
セミナー申込ページに郵便番号と支払金額を表示させます。
作成済みの登録フォームブロックを編集してフィールドを追加します。
追加方法については以下のコンテンツの「フィールドパーツ追加」をご確認ください。
登録フォームブロックのソース設定

追加項目
フィールドタイプ 表示名 備考
テキスト 郵便番号
数値 支払金額

プレビューは以下のようになります。
5-3-1.「PHP」タブの設定
「PHP」タブを選択し、以下のファイルの中身に全て置き換えます。
【seminar_application.txt】
このコードはセミナーIDをキーにセミナー情報を取得しパラメータとして引き渡す処理です。
5-4.申込完了メール
申込完了メールに決済手段選択ページへ遷移用URLを追加します。
登録フォームブロックの完了メールを編集して本文に遷移用URLを追加します。
申込完了メールの本文などを変更したい場合は、「フォームのメールアクション」をご確認ください。

遷移用URLは決済手段選択ページのURLに、リクエストパラメータとして
?record={{セミナー申込DBのセッションID}}
を付与します。
これはセッションIDをキーとして、決済手段選択ページにアクセスするためです。
5-5.決済手段選択ページ
オンラインID決済サービスの決済手段を選択するページを作成します。
5-5-1.ページ作成
「フリーコンテンツ」ブロックを使用して、下図のように決済手段選択ページを作成します。
 識別名:selectmethod
 表示名:オンラインID決済_決済手段選択
5-5-2.「フリーコンテンツ」ブロックの作成
オンラインID決済サービスの決済手段を表示するフリーコンテンツブロック(ソース設定)を作成します。
作成の詳細については、「フリーコンテンツブロック」をご確認ください。
以下のファイルの中身に全て置き換えます。
【selectmethod_block.txt】
5-5-3.「PHP」タブの作成
「PHP」タブを選択し、以下のファイルの中身に全て置き換えます。
【selectmethod_php.txt】
※ページ設定で指定したPHPは当該ページのみに適用されます。
5-6.決済処理ページ
e-SCOTTシステムへ電文送信と、オンラインID決済サービスへ遷移するページを作成します。
5-6-1.ページ作成
「フリーコンテンツ」ブロックを使用して、下図のように決済処理ページを作成します。
 識別名:pay
 表示名:オンラインID決済_決済処理
5-6-2.「フリーコンテンツ」ブロックの作成
決済の情報を表示するフリーコンテンツブロック(ソース設定)を作成します。
作成の詳細については、「フリーコンテンツブロック」をご確認ください。
以下のファイルの中身に全て置き換えます。
【payment_block.txt】
次に「フリーコンテンツ」ブロックの「js」タブを以下のファイルの中身に置き換えます。
【payment_block_js.txt】
5-6-3.「PHP」タブの作成
「PHP」タブを選択し、以下のファイルの中身に全て置き換えます。
【payment_php.txt】
※ページ設定で指定したPHPは当該ページのみに適用されます。
5-7.結果通知取得ページ
オンラインID決済サービスの結果通知の情報を受け取るためのページを作成します。
5-7-1.ページ作成
下図のように結果通知取得ページを作成します。
 識別名:updateresult
 表示名:オンラインID決済_結果通知取得
5-7-2.「body」タブの作成
ブロック機能は使わず、作成したページの「body」タブを選択してください。
以下のファイルの中身に全て置き換えます。
【payment_notice_body.txt】
5-7-3.「PHP」タブの作成
「PHP」タブを選択し、以下のファイルの中身に全て置き換えます。
【payment_notice_php.txt】
※ページ設定で指定したPHPは当該ページのみに適用されます。
5-8.決済完了ページ
決済・契約完了を表示するページを作成します。
5-8-1.ページ作成
「フリーコンテンツ」ブロックを使用して、下図のように決済完了ページを作成します。
 識別名:finish
 表示名:オンラインID決済_決済完了
5-8-2.「フリーコンテンツ」ブロックの作成
決済完了を表示するフリーコンテンツブロック(ソース設定)を作成します。
作成の詳細については、「フリーコンテンツブロック」をご確認ください。
以下のファイルの中身に全て置き換えます。
【payment_finish.txt】
5-8-3.「PHP」タブの作成
「PHP」タブを選択し、以下のファイルの中身に全て置き換えます。
【payment_finish_php.txt】
※ページ設定で指定したPHPは当該ページのみに適用されます。
6.スケジュールトリガの作成
アプリ設定のスケジュールトリガを利用してバッチ処理を作成します。
6-1.スケジュールトリガの設定
アプリ設定のスケジュールトリガを開き、左上の+ボタンを押してトリガを作成します。作成方法の詳細はこちらをご確認ください。
下図の例では、最も実行回数が多くなるよう1時間に4回としています。
6-2.カスタムプログラム作成
作成したスケジュールトリガを開き、「アクション」タブを選択します。左上の+ボタンを押してアクションを作成します。カスタムプログラムアクションについての詳細はこちらをご確認ください。
以下のファイルの中身をカスタムプログラムアクションのPHP欄に記載します。
【custom_program.txt】

※カスタムプログラムからはPHP環境変数が利用できないため、下記変数に7-4 PHP環境変数で説明している、環境変数DBのURLとAPIキーを設定してください。
// 環境変数DB
$env_var_url = $baseurl."<アプリID>/dbs/<DB ID>/records";
// APIキー
$apikey = "<APIキー>";
※排他制御を実装していませんので、複数のスケジュールトリガを設定しないでください。
7.動作確認
7-1.サイト・アプリの動作確認
セミナー受付管理ページ4-15-16-1 を参照しながら各ページの動作確認を行います。
7-2.決済処理の動作確認
テスト環境のセミナー一覧ページから順次アクセスし、セミナー申込を完了させます。
送信された申込完了メールに記載されているURLをクリックし、決済手段選択ページへ遷移します。
未決済または未契約の場合は、決済手段選択ページが表示されます。
既に都度課金の決済が完了している場合は、ページ上に「お申し込み頂いたセミナーのお支払い処理は既に完了しています。」の文言が表示されます。
既に継続課金の契約が完了している場合は、「お申し込み頂いたセミナーの継続課金のご契約は既に完了しています。」の文言が表示されます。

セミナー申込DBの決済ステータスが1(未決済)の状態の時、結果通知取得にて都度課金の決済完了を受け取った場合、以下のようにセミナー申込DBの項目が更新されます。
表示名
決済ステータス 2
決済完了日 ProcessEndDate(注1)
(注1)e-SCOTTシステムからの応答電文のパラメータの値をセットします。

セミナー申込DBの決済ステータスが2(決済)もしくは3(多重決済)の状態の時、結果通知取得にて都度課金の決済完了を受け取った場合、以下のようにセミナー申込DBの項目が更新されます。
表示名
決済ステータス 3
決済完了日 ProcessEndDate(注1)
(注1)e-SCOTTシステムからの応答電文のパラメータの値をセットします。

セミナー申込DBの決済ステータスが1(未契約)の状態の時、結果通知取得にて継続課金の契約完了を受け取った場合、以下のようにセミナー申込DBの項目が更新されます。
表示名
決済ステータス 2
継続課金契約日 ProcessEndDate(注1)
決済予定日 現在時刻
決済手段 MerchantFree1(注1)
プロセスID ProcessId(注1)
プロセスパスワード ProcessPass(注1)
店舗契約番号 MchContractId(注1)
(注1)e-SCOTTシステムからの応答電文のパラメータの値をセットします。

セミナー申込DBの決済ステータスが2(契約)もしくは3(多重契約)の状態の時、結果通知取得にて継続課金の契約完了を受け取った場合、以下のようにセミナー申込DBの項目が更新されます。
表示名
決済ステータス 3
継続課金契約日 ProcessEndDate(注1)
決済予定日 現在時刻
決済手段 MerchantFree1(注1)
プロセスID ProcessId(注1)
プロセスパスワード ProcessPass(注1)
店舗契約番号 MchContractId(注1)
(注1)e-SCOTTシステムからの応答電文のパラメータの値をセットします。
8.本番反映
テスト環境での確認が完了したら、セミナー受付管理ページ5-25-3 を参照しながら本番環境に反映します。
申込完了メールの本文に設定した決済手段選択ページURLも本番環境のURLへ変更をしてください。

ご利用について

ソニーペイメントサービス株式会社とのご契約について
初期費用、月額固定費、トランザクション処理料、手数料等は、商材によって異なることがありますので、ソニーペイメントサービス株式会社にお問い合わせください。
お問い合わせ及びお申し込みは下記アドレスにお問い合わせください。
メールアドレス:takahiro.nakamura@sonypayment.co.jp
担当:中村

よくある質問と回答を以下のページに記載しております。
https://faq.sonypaymentservices.jp/category/show/67?site_domain=default
ご契約致しますと、e-SCOTTシステムのマニュアルが提供されます。
弊社での動作確認について
本ナレッジ記事掲載にあたり、動作確認に利用したe-SCOTTシステムはオンラインID決済サービスとの通信は行わない試験用のシステムです。
実運用でご利用になる際は、e-SCOTTの本番用システムにて動作確認を実施してください。

ご利用ガイド

ソニーペイメントサービス株式会社の加盟店管理画面の操作方法について
操作方法についてはこちらのアドレスにアクセスしてください。
https://faq.sonypaymentservices.jp/category/show/67?site_domain=default
決済状況の確認方法について
ソニーペイメントサービス株式会社の加盟店管理画面からご確認頂けます。
SPIRAL管理画面のセミナー申込DBから該当するセミナー申込者の「申込年月日」「セッションID」をご確認してください。
加盟店管理画面から上記の項目を使用して検索を行います。
決済処理が出来なかった場合、ステータスは「NG」となっております。
処理結果コードから取引のエラー原因が判断できます。
加盟店管理画面の詳しい操作方法は、「e-SCOTT Smart 加盟店管理画面 操作マニュアル」を参照してください。

処理結果コードの詳細はこちらのアドレスからエラーコード表をダウンロードして、ご確認ください。
https://faq.sonypaymentservices.jp/faq/show/671?category_id=13&site_domain=default
都度課金の多重決済について
SPIRAL管理画面のセミナー申込DBから「都度課金/継続課金フラグ」が1(都度課金)かつ「決済ステータス」が3(多重決済)のレコードを検索してください。
このステータスは、セミナー申込者が1つのセミナーに対して複数のお支払いをしている状態です。
該当のセミナー申込者に連絡し、不要なお支払い金額を返金する必要があります。
返金対応はソニーペイメントサービス株式会社の加盟店管理画面から返金処理をお願いします。
継続課金の多重契約について
SPIRAL管理画面のセミナー申込DBから「都度課金/継続課金フラグ」が2(継続課金)かつ「決済ステータス」が3(多重契約)のレコードを検索してください。
このステータスは、1つのセミナー申込に対してセミナー申込者が複数の継続課金の契約をしている状態で、継続課金(毎月の料金引き落とし)が停止しています。
該当申込みのセミナー申込者へ連絡し、継続課金に利用する決済手段を1つに決めて頂き、セミナー申込DBの「決済手段」を書き換え、「決済ステータス」を1に変更してください。
この対応を行うと、継続課金が開始されます。
利用しない契約については、セミナー申込者自身でオンラインID決済サービスとの継続課金契約の解除をしていただく必要があります。
商品の料金について
各オンラインID決済サービス事業者で取り扱う金額に上限設定が設けられています。
またセミナー申込者がお支払い上限設定を設けているケースがあります。
金額上限に関しては、各オンラインID決済サービス事業者にご確認ください。
継続課金の料金未納確認について
SPIRAL管理画面のセミナー申込DBから「都度課金/継続課金フラグ」が2(継続課金)かつ「未払回数」が0以外のレコードを検索してください。
該当するレコードは、オンラインID決済サービスでの引き落としができない状態です。
このレコードのセミナー申込者へ連絡し、料金請求の対応を行ってください。
解決しない場合はこちら コンテンツに関しての
要望はこちら