本システムを「ネットショップ管理」プラグインと連係させるためには、そのためのプログラムが必要になります。ここでは、そのプログラムの使い方、及び決済に関する本システムの「各種設定」項目を説明します。
連係プログラム
連係プログラムの主な仕事は、宿泊予約システムに「連係」機能を利用するように知らせる事と、「ネットショップ管理」プラグインとのデータの受け渡しをする事、です。
連係プログラムのファイル名は「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」で設定された「テンプレート」を利用してメールを送信します。
