#!/usr/bin/perl #--NetShopOwner-CGI-version:4.3.5.0-- ;# ;# basket.cgi ;# [PC]カートの中画面 ;# Copyright (c) 2004- Increment P Corp. All rights reserved. ;# ;# 2009/09/30 NSO4対応 ;# last modified 2010/05/11 Y.motai SBPS決済対応 ;# use strict; use uselib; use defnsopath_shop; use NsoVersionPC 1.00; use Design::TemplBasket; use Lib::SiteStatus; use Lib::Basket; use Lib::ExpensesGoods; use Lib::StockUtil; &ReadParse(); my %in = %main::in; my %incfn = %main::incfn; my %inct = %main::inct; # インスタンス定義 my $objConfigSystem = Config::NsoSystem->newShop(); my $objConfigMaster = Config::NsoMaster->new(); my $NsoMisc = NsoMisc->new(); my $ExpensesGoods; # コンフィグレーションのキャッシュ my %ConfigSystem = $objConfigSystem->cache_config(); my %ConfigMaster = $objConfigMaster->cache_config(); my $status_err; FUNC:{ my $func = $in{func} || 'main'; my %function = ( main => \&main, insert => \&insert, update => \&update, delete_one => \&delete_one, delete_all => \&delete_all, logout => \&logout, ); &check_order_finish; &check_closing(); if ($function{$func}){ $function{$func}->(); }else{ &main(); } } exit(); ;# ;# 開店・閉店状態検査 ;# sub check_closing { my $SiteStatus = Lib::SiteStatus->new({ ConfigSystem=>\%ConfigSystem }); $SiteStatus->CheckClosing(); } ;# ;# メイン処理 ;# sub main { # 商品代金・諸経費演算 $ExpensesGoods = Lib::ExpensesGoods->new({ ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster }); my $eg_err = $ExpensesGoods->ParseBasket(); # エラーメッセージを取得 my $status_err_param = $in{ErrorStatus}; $status_err .= &error_message( $status_err_param ) if ( $status_err_param ); if($eg_err ne ""){ $status_err .= $eg_err; } # システムテンプレートクラスインスタンス my $TemplBasket = Design::TemplBasket->new({ ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster, KickBack=>$in{KickBack}, ExpensesGoods=>$ExpensesGoods, status_err=>$status_err, insert=>$in{fc}, GoodsID=>$in{GoodsID} }); # 置換内容 my $contents = $TemplBasket->RelpaceSystemTempl(); # システムテンプレート置換 print $NsoMisc->print_header(); print $contents; exit(); } ;# ;# 商品追加 ;# sub insert { my $Basket = Lib::Basket->new({ ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster }); my %params = ( CategoryID => $in{CategoryID}, GoodsID => $in{GoodsID}, Units => $in{Units}, Variation1 => $in{Variation1}, Variation2 => $in{Variation2}, Variation3 => $in{Variation3}, Variation4 => $in{Variation4}, BackUrl => $in{KickBack}, ); $status_err = $Basket->Insert(\%params); &main(); } ;# ;# 商品更新 ;# sub update { my $Basket = Lib::Basket->new({ ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster }); my %params = ( BasketID => $in{BasketID}, CategoryID => $in{CategoryID}, GoodsID => $in{GoodsID}, Units => $in{Units}, Variation1 => $in{Variation1}, Variation2 => $in{Variation2}, Variation3 => $in{Variation3}, Variation4 => $in{Variation4}, ); $status_err = $Basket->Update(\%params); &main(); } ;# ;# 1商品削除 ;# sub delete_one { my $Basket = Lib::Basket->new({ ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster }); my %params = ( BasketID => $in{BasketID}, ); $Basket->DeleteOne(\%params); } ;# ;# 全商品削除 ;# sub delete_all { my $Basket = Lib::Basket->new({ ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster }); my %params = (); $Basket->DeleteAll(\%params); } ;# ;# iPCOSSチェック処理 ;# sub check_order_finish { # 注文IDクッキー読み取り require DB::NsoOrderIDDB; my $OrderIdDB = NsoOrderIDDB->new(); my $OrderID = $OrderIdDB->Read_OrderID(); # 注文IDクッキーが残っていた場合 if ($OrderID ne ""){ require Lib::IpcossCheck; my $IpcossCheck = Lib::IpcossCheck->new( {ConfigSystem=>\%ConfigSystem, ConfigMaster=>\%ConfigMaster, ExpensesGoods=>$ExpensesGoods} ); # ipcoss Checkを行う。 my $IpcCheckFlag = $IpcossCheck->check_ipcoss(); # okとngの場合の処理 if ($IpcCheckFlag eq 0){ # ngだったときの処理 $IpcossCheck->ipcoss_ng(); } else { # ok だったときの処理 my $contents = $IpcossCheck->RelpaceSystemTempl(); print $NsoMisc->print_header(); print $contents; exit (); } } } ;# ;# ログアウト処理 ;# sub logout { # ログイン情報を削除 require DB::NsoLoginTempDB; my $LoginTempDB = NsoLoginTempDB->new(); $LoginTempDB->delete_no_lock(); # ログイン用Cookieを削除 $LoginTempDB->delete_cookie(); # 注文情報を削除 require DB::NsoOrderTempDB; my $OrderTempDB = NsoOrderTempDB->new(); $OrderTempDB->delete_no_lock(); # 注文情報用Cookieを削除 $OrderTempDB->delete_cookie(); &main(); } ;# ;# エラーメッセージ取得処理 ;# sub error_message { my %ErrorMessageHash = ( login_error => qq(
メールアドレスまたはパスワードに誤りがあります。
よくお確かめの上、もう一度入力してください。
会員情報が見つかりませんでした。
), no_approval_member => qq(まだ、会員登録が承認されていません。承認するまで、今しばらくお待ちください。
), logged_in_no_approval_member => qq(会員登録が承認されていません。
), logged_in => qq(ログインしてからしばらく時間が経ったため、ログインの有効期限が過ぎています。
お手数ですが、もう一度ログインしてください。
現在、会員サービスは使用できません。
), only_member_service => qq(申\し訳ございませんが、ご購入は会員のお客様に限らせていただいております。
), no_orderTemp => qq(しばらく時間が経ったため、有効期限が過ぎています。
お手数ですが、もう一度購入手続きを行ってください。
お手数ですが、もう一度購入手続きを行ってください。
), db_access_error101 => qq(データベース接続中にエラーが発生しました。(エラーコード:101)
お手数ですが、ショップ運営者へお問い合わせください。
データベース接続中にエラーが発生しました。(エラーコード:102)
お手数ですが、ショップ運営者へお問い合わせください。
データベース接続中にエラーが発生しました。(エラーコード:103)
お手数ですが、ショップ運営者へお問い合わせください。
会員情報が見つかりませんでした。(sbps_error)
), sbps_logged_in_no_approval_member => qq(会員登録が承認されていません。(sbps_error)
), sbps_logged_in => qq(ログインしてからしばらく時間が経ったため、ログインの有効期限が過ぎています。
お手数ですが、もう一度ログインしてください。(sbps_error)
現在、会員サービスは使用できません。(sbps_error)
), sbps_only_member_service => qq(申\し訳ございませんが、ご購入は会員のお客様に限らせていただいております。(sbps_error)
), sbps_no_orderTemp => qq(しばらく時間が経ったため、有効期限が過ぎています。
お手数ですが、もう一度購入手続きを行ってください。(sbps_error)
お手数ですが、もう一度購入手続きを行ってください。(sbps_error)
), sbps_db_access_error101 => qq(データベース接続中にエラーが発生しました。(エラーコード:101)
お手数ですが、ショップ運営者へお問い合わせください。(sbps_error)
データベース接続中にエラーが発生しました。(エラーコード:102)
お手数ですが、ショップ運営者へお問い合わせください。(sbps_error)
SBPS決済が正常に完了しませんでした。
メソ\ッドが不正です。(sbps_error)
SBPS決済が正常に完了しませんでした。
), ); my $error_code = shift @_; return ( exists $ErrorMessageHash{$error_code} )? $ErrorMessageHash{$error_code}: qq(); }