決済について」カテゴリーアーカイブ

決済ページの準備

予約確認画面で「支払い」ボタンを押すと「決済」ページへ移動します。この決済ページは、スラッグ名に「mtspayjp-payment」と名付けた固定ページを利用します。

決済ページの機能は、支払金額の明示とトークンを取得するための表示処理の機能を受け持ちます。また決済の終了メッセージの表示もこのページ上で表示します。

下の図は「支払い」ボタンが表示された予約確認画面です。

「お支払い」ボタンを押すと、下の図の決済ページへ移動します。

ここで「お支払い」ボタンを押すとチェックアウト機能が実行され、カード情報を入力して、トークン取得が実行され、決済が実行されます。

チェックアウトのダイアログが動作しない場合

カード情報入力は「チェックアウト」機能を利用してダイアログを表示しますが、ダイアログが正常に表示処理できない場合、決済プラグインの設定画面(下図参照)でカード入力フォームを「ページ」に設定してください。

カード情報の入力フォームが、下の図のように決済ページに表示され、トークンの取得と決済の処理がじっこうされるようになります。

お支払いの「内容」の項目名について

決済ページの支払内容の項目名は、「レンタカー予約 xxxxxxxxxx 料金」と表示されています。「xxxxxxxxxx」には予約IDが挿入されます。

この表示内容は、レンタカー予約システムのメッセージファイル「lang/Translation.php」のデータを書き換えることで、変更することができます。

当該ファイルの下部に「決済のレンタル料金品名」とコメントされた、「$payChargeArticle」という配列変数が定義されています。この設定を変更することで出力内容が変更されます。

また定義する文字列中に予約IDを含める場合、「%RESERVE_ID%」というリプレースメントを利用することで、その箇所に予約データの情報が埋め込まれます。

利用可能なリプレースメントは、スタートガイドの導入編「2.予約メールの設定」ページに一覧が掲載されています。

決済プラグインの設定

ここでは弊社のPAYJP用決済プラグイン「MTS Pay Payjp」について説明します。

機能の概要

決済プラグインの動作は「決済の仕組みとセキュリティ」で説明したように、トークンを利用して決済代行会社のサーバーに決済を依頼します。

トークンの取得と決済は、どちらも決済代行会社が提供する機能をプラグインに取り込んで利用しています。

ですので不具合が発生するかどうか、決済の専門会社の機能を利用するため安心感がありますが、発生した場合はプラグイン側か決済代行会社側か機能を切り分けて確認することになります。

決済プラグインの設定項目

次の図は弊社のPAYJP用決済プラグインの設定画面です。

(2019-12-18 Ver.1.1 差し替え)

設定項目は多くありません。決済代行会社から提供されたキーと、テスト運用か本番か、決済処理は与信か確定か、の3つです。

追補 Ver.1.1 与信認証期間

設定項目「決済処理」が「与信」の場合、「与信認証期間」で設定した期間(日数)を指定できるように追加しました。Pay.JPの場合、最大60日まで設定可能です。

与信で決済された売上データは、Pay.JPの管理画面で支払い情報が「認証済み」と表示されます。

この売上は、支払い日時から与信認証期間の日数以内に売上を「確定」しないと、カードから引き落としされず、入金もされなくなります。

チェックアウトを利用した支払いの実行テスト

ここではトークンを取得する「チェックアウト」機能を利用し、支払金額を入力して決済を実行する、テスト操作ができます。

「チェックアウト」は、JavaScriptによるカード情報の入力ダイアログ表示、トークンを取得する機能で、PAYJPから提供される機能全般を指します。

トークンを「取得する」ボタンをクリックすると、次のカード情報入力ダイアログが表示されます。

ここで入力されたデータが実際の支払に利用されることはありません。

カード情報を入力後トークンを取得すると、次のように表示されます。ここで金額を入力して、決済をテスト実行します。

決済を実行すると、プラグイン側の「決済リスト」にその結果が登録されます。

決済処理リストは、決済が実行された予約データのID(=請求ID)と、決済代行会社で処理されたデータのID(=決済ID)の関係を、一覧表示して確認するためのデータになります。

実行された決済の詳細は、決済代行会社が提供する管理画面で確認、キャンセルなどの操作をすることになります。

追補 Ver.1.1 タイトルの変更と決済データの「状態」について

予約システムから支払い処理へ遷移すると、決済データが新しく登録されます。この決済データがどの予約データのものかのリンク先が「予約ID」で示されます。

このタイトル項目名は、以前の「請求ID」から「予約ID」に名称が変更されました。

次に決済データの「状態」についてですが、以下の3つの状態があります。

  • 確定
    決済が確定で実行された場合
  • 与信
    決済が与信で実行された場合
  • 開始
    利用者が決済処理で支払いを実行せず処理を中断した場合

状態が「開始」のとき、決済を実行していないためPay.JPの売上データは登録されず、当該データの「課金ID」は「0」の状態となります。

決済ページの準備

決済ページの組込ついて、動作の設定も含め次のページで詳細を説明します。

» 決済ページの準備

設定と予備知識

カード決済された売上の入金やお客様への返金など、どのような機能があるかは決済代行会社により異なります。管理画面で操作可能な機能や詳細は、サービス提供先の決済代行会社に確認をお願いします。

ここではPAYJP社用の弊社プラグインを導入する場合、実行可能な機能について運用面からの設定や用語の説明をします。

キャンセルと返金

弊社の決済プラグインは、決済が実行された予約に対して返金したり、追加決済をする機能は現在ありません。

ですので予約がキャンセルされた場合の返金や、キャンセル料の徴収を本システムで実行することはできません。

それぞれの対応について、与信と確定のどちらで決済を実行するか、で変わります。以下に与信と確定の説明をします。実情に合った運用を検討してください。

与信と確定

売上の入金は、「確定」で実行された決済が対象となります。「与信」で実行された決済は、確定されないと一定期間(PAYJPでは最大60日)が過ぎたところで解放されます。

「与信」で実行する決済は、与信枠の上限まで登録することができ、確定する際、減額して確定したり、あるいはそのままであれば支払いは実行されません。

ですので「確定」で決済された場合は、予約のキャンセルにより返金処理が発生する可能性があります。この場合「与信」で決済を実行し、レンタル日に「確定」処理をするようにすれば、返金処理が必要なくなります。

どちらの方法で運用するか、実情に合わせて決めてください。

予約システムの設定について

次の図は、レンタカー予約システムの各種設定「料金決済」画面です。

入力項目について説明します。

「通貨」は、「円」がデフォルトでそれ以外の通貨は現在利用できません。

「消費税」の税率は変更することができます。この値は料金計算するときプログラムが参照します。税率変更による切り替わり期日の設定などはありません。

消費税の「計算方法」は、外税・内税・なしの3種類です。

「決済機能を利用」する場合、どの決済代行会社対応のプラグインを利用するか、ここで選択します。現在提供の決済プラグインは、PAYJPのみとなります。

決済を受け付ける期間について

決済を実行するための「支払いボタン」は、「予約の確認」画面上に表示されますが、表示期間は決済を受け付ける期間と同じで、期間外は表示されません。

決済を受け付ける期間は、予約日から貸渡日の間、「決済受付開始」、「決済受付期間」、「決済受付期限」の3つの設定で決まります。

「決済受付開始」は0とそれ以外の日数で、受付開始日を指定します。「0」の場合は予約実行直後から、0以外の日数は貸渡日の設定日数前から、の受け付けとなります。

「決済受付期間」は、決済を受付開始してからの支払いボタンが表示される日数となります。

「決済受付期限」の日数は、貸渡日の設定日数前まで、支払いボタンが表示されます。

例えばレンタル受付を60日前からとした場合で、決済を予約受付直後から貸渡日前日まで受け付けるときは次のように設定します。

予約受付開始:0、予約受付期間:60、予約受付期限:1

なお予約確認画面に表示する「支払い」ボタンは、与信・確定にかかわらず決済が実行されると表示されなくなります。

決済受付メール

決済が正常に完了すると、予約システムで管理する予約データの決済項目が更新されます。そして「決済受付メール」にメールテンプレートが設定されている場合、そのメールテンプレートを予約者のメールアドレスに送信します。

メールテンプレートの設定は、スタートガイドの導入編にある「2.予約メールの設定」にありますので、そちらを参照ください。

決済の仕組みとセキュリティ

料金の支払いを前もって受けたい場合、クレジットカードの利用がお客様と店舗の両者に便利な決済方法となります。

スマフォを利用したQRコード決済は、店頭での利用が一般的で決済額も少額です。Webサイトでの利用は、現状広まっておりません。

クレジットカードの決済は、お客様がカード情報をフォーム画面に入力しボタンを押すだけで支払いが終了する、簡単な操作になります。

以下本ページの説明は、決済代行会社であるPAYJP社と契約してクレジットカード決済する場合に利用する、弊社制作のプラグイン導入について関連する内容となります。

決済代行会社と契約

Webサイトでクレジットカード決済を利用する場合、店舗はクレジットカード会社と契約せず、決済代行会社と契約することになります。

決済代行会社では、インターネットを利用したWeb決済機能の提供からはじまって、クレジットカード会社からの代金の回収、店舗への入金、利用者への返金など、手数料は発生しますがそれらの業務を請け負ってくれます。

なお決済代行会社と取引する場合、信用調査が事前にありますのでご留意ください。

Webサイト上での利用の仕組み

お客様がクレジットカードを利用する場合、一番注意する事は、お客様のクレジットカード番号が漏洩する心配がないかどうかです。

弊社が提供する決済機能は、クレジットカードの情報を予約システムに一切取り込みません。ですので予約システムからカード情報が漏洩することはありません。

その仕組みを簡単に説明します。下の図をご覧ください。

図は決済に関係する情報の流れを表しています。

Web上で決済する操作は

  • 支払い画面でクレジットカード情報を入力して決済代行会社から「トークン」を取得します
  • そのトークンを予約システムに送信します
  • 予約システムは決済代行会社にトークンと支払いデータを送信して処理を完了します

という流れになります。

セキュリティ

情報漏洩の危険性は、管理者に悪意が無ければ主に「通信」と「サーバーアクセス」に注意を払うことになります。

決済代行会社からのトークン取得の通信は暗号化されていますが、支払い画面の表示は、通常予約システムを利用するサーバーの設定に依存します。

ですので予約システムを利用する場合は通信データを暗号化するため、サイトを必ずSSL通信となるように設定してください。

サーバーアクセスに関して予約システムでは、XSS、CSRF、SQLインジェクションの基本的な攻撃に対応しております。また本システムは個人情報を暗号化してデータベースに保存しております。

EUでは、GDPR(一般データ保護規則)など個人情報保護の規則が大変厳しくなっております。予約サイトを構築する場合、状況を確認して運営されることをお勧めします。

カード決済機能の導入について

クレジットカード決済を利用する場合、決済代行会社との間で交わされる契約書の内容を確認してください。

例えば、他人のクレジットカードで支払いが実行された場合、カード保有者から不正利用の申し立てがあると、店舗側が利用者本人の確認を証明できないときは利用額を負担しなければならない、旨の記載があります。

レンタカーは店頭で車両の受け渡しがありますので、本人確認するなど悪用を想定して事前に対策を立てておくと安心です。