本システムを「ネットショップ管理」プラグインと連係させるためには、そのためのプログラムが必要になります。ここでは、そのプログラムの使い方、及び決済に関する本システムの「各種設定」項目を説明します。
連係プログラム
連係プログラムの主な仕事は、宿泊予約システムに「連係」機能を利用するように知らせる事と、「ネットショップ管理」プラグインとのデータの受け渡しをする事、です。
連係プログラムのファイル名は「functions.php」としてご提供しますが、このプログラムを使う場合は、テーマディレクトリにあるfunctions.phpファイルに追加してご利用下さい。
実際に利用する場合は、環境に合わせてプログラムの2カ所変更する必要が生じます。
class MTSBookingFunctions { const PAYMENT_ENTRY = 'mts_net_shop'; const CREDIT = 2; const PAID = 3; const PRODUCT_ID = 2; public function __construct() { // 決済処理エントリー登録 add_filter('mts_pay_entry_point', function($entries) { return $entries + array(self::PAYMENT_ENTRY => 'ネットショップ PAY.JP'); }, 10, 1); add_action(self::PAYMENT_ENTRY, array($this, 'paymentEntry'), '', 10, 2); // 決済処理終了 add_action('nsa_thank_you', array($this, 'result')); } public function paymentEntry($payment, $applicationId='') { global $net_shop_admin; if (empty($net_shop_admin)) { return 'NOT_FOUND_NET_SHOP'; } $_REQUEST['action'] = 'cart'; $_POST['action'] = 'cart'; $_POST['product_id'] = empty($payment['product_id']) ? self::PRODUCT_ID : $payment['product_id']; $_POST['product_price'] = $payment['total_charge']; $_SESSION['net-shop-admin']['billing_information']['last_name'] = $payment['customer']['sei']; $_SESSION['net-shop-admin']['billing_information']['first_name'] = $payment['customer']['mei']; $_SESSION['net-shop-admin']['billing_information']['last_name_furigana'] = $payment['customer']['sei_kana']; $_SESSION['net-shop-admin']['billing_information']['first_name_furigana'] = $payment['customer']['mei_kana']; $_SESSION['net-shop-admin']['billing_information']['zipcode'] = $payment['customer']['postcode']; $_SESSION['net-shop-admin']['billing_information']['pref'] = $payment['customer']['pref']; $_SESSION['net-shop-admin']['billing_information']['address1'] = sprintf('%s%s', $payment['customer']['city'], $payment['customer']['town']); $_SESSION['net-shop-admin']['billing_information']['address2'] = $payment['customer']['building']; $_SESSION['net-shop-admin']['billing_information']['company'] = $payment['customer']['company']; $_SESSION['net-shop-admin']['billing_information']['tel'] = $payment['customer']['tel']; $_SESSION['net-shop-admin']['billing_information']['email'] = $payment['customer']['email']; // 予約IDを一時保管する $_SESSION[self::PAYMENT_ENTRY]['applicant_id'] = $payment['applicant_id']; $_SESSION[self::PAYMENT_ENTRY]['product_id'] = $payment['product_id']; $net_shop_admin->net_shop_admin_shopping_cart_action(); return 'FAILED_CALL_NET_SHOP'; } public function result($order_result) { global $mts_acb_booking; // 決済処理の結果 $result['applicant_id'] = (int) $_SESSION[self::PAYMENT_ENTRY]['applicant_id']; $result['order_id'] = (int) $order_result[0]['order_id']; $result['result'] = self::CREDIT; return $mts_acb_booking->paymentResult($result); } } session_start(); $mtsFunction = new MTSBookingFunctions;
変更の必要な箇所
- 7行目PRODUCT_IDの値
「ネットショップ管理」で登録した商品データのID。「連携の準備ーネットショップ管理」で説明します。 - 61行目resultの結果の値
支払処理が「確定」の場合は「self::CREDIT」を「self::PAID」に書き換えて下さい。「与信枠」の確保の場合は「self::CREDIT」をそのまま利用します。
宿泊予約システムの各種設定
本システムの「各種設定」の中で必要な設定は「決済」と、支払実行後にメールを送信する場合は「テンプレート」で支払実行のメールのテンプレートを用意し、「E-Mail」でそのテンプレートを用意して下さい。
以下「決済」の設定画面と説明になります。
- 決済機能
前述の連係プログラムが正常に組み込まれると、ここで選択・設定できるようになります。 - 支払ボタンの表示
予約後、管理者が内容を確認する事なく支払処理を可能とする場合、「保留しない」を選択します。「保留する」を設定すると、予約データの「商品ID」にデータが登録されるまで「支払ボタン」は表示されません。 - 支払期限の設定、期限の日数
支払ボタンの表示期間を設定します。表示は実行した「予約日」から「期限の日数」まで、または、「宿泊日」前日から「期限の日数」前まで、です。 - 決済実行の通知
決済が実行されると連係プログラムにより予約データの清算状態が変更されます。その後、通知が「送信する」に設定されている場合は「E-Mail」で設定された「テンプレート」を利用してメールを送信します。