開発情報・ナレッジ

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

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

デモを確認

関連記事はこちら

前提条件

ソニーペイメントサービス株式会社との加盟店契約が済んでいること。
 ※ご契約に際しクレジットカード料率の条件交渉が入る場合はお時間がかかる場合がございます。
セミナー受付管理を作成されていること。

全体図

構成要素

変更する構成要素
DB
決済関連のフィールドを既存DBに追加します。
 ・セミナーマスターDB
 ・セミナー申込DB
サイト
決済関連の情報を表示するように処理を追加します。
 ・セミナー一覧ページ
 ・セミナー詳細ページ
 ・セミナー申込ページ
追加する構成要素
DB
決済の履歴管理をするDBを作成します。
 ・ログDB

PHPモジュールの設定値を管理するDBを作成します。
 ・環境変数DB
サイト
クレジットカード情報を入力いただくページを作成します。
 ・決済処理ページ

決済結果を表示するためのページを作成します。
 ・決済完了ページ
スケジュールトリガ
毎月課金を行う継続課金用プログラムを作成します。
 ・カスタムプログラム

手順

1. ソースコードダウンロード
必要なファイルを下記のリンクからダウンロードします。

2. DB作成・変更
2-1.セミナーマスターDB
以下のフィールドを追加します。
フィールドタイプ 表示名 備考
数値 料金
テキスト セミナーID
セレクト 都度課金/継続課金フラグ(注1) 1:都度課金
2:継続課金
注1: 都度課金と継続課金の共通実装のため、必要となります。

また今回追加した「セミナーID」はレコード登録時にアクションを呼び出すためにDBトリガを設定します。
DBトリガの登録方法については以下のコンテンツをご確認ください。
DBトリガのレコードアクション

セミナーマスターDBへDBトリガのレコードアクションを作成し、アクション処理を作成・設定します。
レコードアクションでは、レコード登録時にシステムで採番されるIDをセミナーIDとして登録するよう設定します。
設定内容は画像を参照して下さい。

2-2.セミナー申込DB
以下のフィールドを追加します。
フィールドタイプ 表示名 備考
テキスト 郵便番号
セレクト 決済ステータス 1:未決済
2:決済
数値 支払金額
日時 申込年月日
テキスト トークン
テキスト マスク済番号
テキスト セッションID
テキスト e-SCOTT会員ID (注2)
テキスト e-SCOTT会員パスワード(注2)
日時 決済完了日
日時 決済予定日
数値 支払回数
数値 未払回数
セレクト 支払処理開始フラグ 1:支払い処理未実行
2:支払い処理中
テキストエリア 備考
注2: 都度課金と継続課金の共通実装のため、必要となります。

また今回追加した「セッションID」「申込年月日」はレコード登録時にアクションを呼び出すためにDBトリガを設定します。
DBトリガの登録方法については以下のコンテンツをご確認ください。
DBトリガのレコードアクション

セミナー申込DBへDBトリガのレコードアクションを作成し、アクション処理を作成・設定します。
レコードアクションでは、レコード登録時にランダム文字列をセッションIDに、アクションが実行された日付を申し込み年月日に登録するよう設定します。
設定内容は画像を参照して下さい。

2-3.ログDB
セミナー申込DBと同じフィールドで作成します。
2-4.環境変数DB
以下のフィールドを作成します。
フィールドタイプ 表示名 備考
テキスト 環境変数名
テキストエリア 環境変数値
テキストエリア 説明

環境変数DBに以下のレコードを登録します。
環境変数名 環境変数値 説明
GetTokenCodeURL ソニーペイメントサービス株式会社との契約をすることで、各パラメータが払い出されます。 トークン認証コード取得
AuthURL Master電文
MemberOpeURL 会員情報登録電文
MerchantID マーチャントID
MerchantPass マーチャントパスワード
TokenCode トークン認証コード
SemiMstURL https://api.spiral-platform.com/v1/apps/[アプリID]/dbs/[セミナーマスターDBのDBID]/records (注3) セミナーマスターDBのURL
SemiRegistURL https://api.spiral-platform.com/v1/apps/[アプリID]/dbs/[セミナー申込DBのDBID]/records (注4) セミナー申込DBのURL
注3,注4:DBへアクセスするためのURLです。確認方法は以下のページをご参照ください。
 APIによるDB作成/レコード操作


アプリIDはアプリ作成時に発行されます、基本設定から参照できます。


DBIDはDB作成時に発行されます、基本設定から参照できます。

3.DBトリガ
セミナー申込DBの更新時に、ログDBへ反映するためにDBトリガを設定します。
DBトリガの登録方法については以下のコンテンツをご確認ください。
DBトリガのレコードアクション

セミナー申込DBへDBトリガのレコードアクションを作成し、アクション処理を作成・設定します。
決済情報の更新履歴のみを残すために、発動条件はAPI経由の場合のみとします。
設定内容は画像を参照して下さい。

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

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

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

追加項目
フィールドタイプ 表示名
数値 料金
セレクト 都度課金/継続課金フラグ (注1)
注1: 都度課金と継続課金の共通実装のため、必要となります。

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

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

6-3-1. PHPタブの設定
「php」タブにて、以下のファイルの中身を貼り付けます。
【seminar_application.txt】
このコードはセミナーIDをキーにセミナー情報を取得しパラメータとして引き渡す処理です。

6-3-2. bodyタブの設定
「body」タブにて、以下のファイルの中身を貼り付けます。
【seminar_id_check.txt】
セミナー詳細ページから引き回されたセミナーIDをチェックし、空の場合はエラーを表示します。
6-4. 申込完了メール
申込完了メールに決済処理ページへの遷移用URLを追加します。
登録フォームブロックの完了メールを編集して本文に遷移用URLを追加します。
申込完了メールの本文などを変更したい場合は、「フォームのメールアクション」をご確認ください。

遷移用URLは決済処理ページのURLに、リクエストパラメータとして「?record={{セミナー申込のセッションID}}」を付与します。
これはセッションIDをキーとして、決済処理ページにアクセスするためです。
6-5. 決済処理ページ
申し込んだセミナーの決済情報を登録するためのページを作成します。
6-5-1.ページ作成
「フリーコンテンツ」ブロックを使用して、下図のようにページを作成します。
6-5-2.「フリーコンテンツ」ブロックの作成
決済の情報を表示するフリーコンテンツブロック(ソース設定)を作成します。
作成の詳細については、「フリーコンテンツブロック」をご確認ください。

以下のファイル名の中身に全て置き換えます。
【payment_block.txt】
6-5-3.「head」タブの作成
ページ設定で指定したheadは当該ページのみに適応されます。
「共通ソースのhead」に指定した内容と競合する場合、ページ側が優先されます。
e-SCOTT用API取得コードは、『e-SCOTT+Smart+接続仕様書(クレジットカード決済サービス 別冊:トークン決済サービス編)』の8ページを参照して下さい。
以下のファイル名の中身を「head」タブの1番下に追記します。
【payment_head.txt】
6-5-4.「php」タブの作成
ページ設定で指定したPHPは当該ページのみに適用されます。
以下のファイル名の中身に全て置き換えます。
【payment_php.txt】
6-6.決済完了ページ
入力したクレジットカード番号で決済処理を実施し、決済結果をセミナー申込DBに更新します。
決済完了ページは「フリーコンテンツ」ブロックを使用して作成します。
6-6-1.「フリーコンテンツ」ブロックの作成
決済の情報を表示するフリーコンテンツブロック(ソース設定)を作成します。
作成の詳細については、「フリーコンテンツブロック」をご確認ください。


6-6-2.「php」タブの作成
ページ設定で指定したPHPは当該ページのみに適用されます。
以下のファイル名の中身に全て置き換えます。
【payment_finish_php.txt】
6-7.動作確認
6-7-1.サイト・アプリの動作確認
セミナー受付管理ページ4-15-16-1 を参照しながら各ページの動作確認を行います。

6-7-2.決済処理の動作確認
テスト環境のセミナー一覧ページから順次アクセスし、セミナー申込を完了させます。
申込完了メールが届いたら、完了メールに記載されたURLから決済処理を行います。

「カード情報入力」ボタンを押すと決済用のクレジットカード情報入力用画面が開くので、クレジットカード情報を登録します。
クレジットカード情報を入力し終えたら、「決済」ボタンを押して決済処理を実行します。もしクレジットカードの入力情報に誤りがある場合は、「カード情報クリア」ボタンを押して入力情報をリセットしてください。
以下のページが表示されれば決済完了となります。

決済処理で更新される項目は以下の通りです。
 
表示名
決済ステータス 決済(ID:2)
トークン 自動採番
マスク済番号 入力したカード番号の一部
支払年月日 決済実施日時
決済回数 1

6-8.本番反映
テスト環境での確認が完了したら、 セミナー受付管理ページ5-25-3 を参照しながら本番環境に反映します。

利用について

決済方法について
ソニーペイメントサービス株式会社が提供する決済代行サービスの「e-SCOTT」を利用しています。
決済方法はクレジットカード決済のみとなっております。
クレジットカード決済は、決済時にお客様のクレジットカードの与信枠確保と売上計上を同時に実施する処理としており、支払回数は1回としています。
ソニーペイメントサービス株式会社とのご契約について
初期費用、月額固定費、トランザクション処理料、手数料等は、商材によって異なることがありますので、ソニーペイメントサービス株式会社にお問い合わせ下さい。
お問い合わせ及びお申し込みは下記アドレスにお問い合わせください。
merchant-sales@sonypysv.jp
ご契約致しますと、「e-SCOTT」システムのマニュアルが提供されます。

ご利用ガイド

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

処理結果コードの詳細はこちらのアドレスからエラーコード表をダウンロードして、ご確認下さい。
https://faq.sonypaymentservices.jp/faq/show/671?category_id=13&site_domain=default
都度課金の取消について
SPIRAL管理画面のセミナー申込DBから該当するセミナー申込者の「申込年月日」「トークン」「マスク済番号」を確認します。
ソニーペイメントサービス(株)加盟店管理画面から上記の項目を使用して検索を行います。
合致する該当するセミナー申込者を売上取消します。
ソニーペイメントサービス(株) 加盟店管理画面の詳しい操作方法は、「e-SCOTT+Smart+加盟店管理画面操作マニュアル」の78ページを参照して下さい。
またSPIRAL管理画面のセミナー申込DBから「決済ステータス」を“未決済”に変更、「備考」は“課金取消 yyyy/mm/dd”を記載し、更新をして下さい。

e-SCOTT連携に関する問い合わせはこちら

リンク先の「パートナーへのお問い合わせ」よりお問い合わせください。
解決しない場合はこちら コンテンツに関しての
要望はこちら