source: branches/comu-ver2/html/shopping/card.php @ 17969

Revision 17969, 6.5 KB checked in by Seasoft, 15 years ago (diff)

rv r17968
・影響範囲に不安があるため、一旦差し戻します。

  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-httpd-php; charset=UTF-8
Line 
1<?php
2/*
3 * This file is part of EC-CUBE
4 *
5 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
6 *
7 * http://www.lockon.co.jp/
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22 */
23
24require_once("../require.php");
25
26$arrJPO_INFO['10'] = "一括払い";
27$arrJPO_INFO['21'] = "ボーナス一括払い";
28$arrJPO_INFO['80'] = "リボ払い";
29$arrJPO_INFO['61C02'] = "分割2回払い";
30$arrJPO_INFO['61C03'] = "分割3回払い";
31$arrJPO_INFO['61C05'] = "分割5回払い";
32$arrJPO_INFO['61C06'] = "分割6回払い";
33$arrJPO_INFO['61C10'] = "分割10回払い";
34$arrJPO_INFO['61C12'] = "分割12回払い";
35$arrJPO_INFO['61C15'] = "分割15回払い";
36
37class LC_Page {
38    function LC_Page() {
39        /** 必ず指定する **/
40        $this->tpl_css = URL_DIR.'css/layout/shopping/card.css';    // メインCSSパス
41        /** 必ず指定する **/
42        $this->tpl_mainpage = 'shopping/card.tpl';          // メインテンプレート
43        global $arrJPO_INFO;
44        $this->arrJPO_INFO = $arrJPO_INFO;
45        /*
46         session_start時のno-cacheヘッダーを抑制することで
47         「戻る」ボタン使用時の有効期限切れ表示を抑制する。
48         private-no-expire:クライアントのキャッシュを許可する。
49        */
50        session_cache_limiter('private-no-expire');     
51    }
52}
53
54$objPage = new LC_Page();
55$objView = new SC_SiteView();
56$objSiteSess = new SC_SiteSession();
57$objCartSess = new SC_CartSession();
58$objCampaignSess = new SC_CampaignSession();
59$objSiteInfo = $objView->objSiteInfo;
60$arrInfo = $objSiteInfo->data;
61
62// パラメータ管理クラス
63$objFormParam = new SC_FormParam();
64// パラメータ情報の初期化
65lfInitParam();
66// POST値の取得
67$objFormParam->setParam($_POST);
68
69// アクセスの正当性の判定
70$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
71
72switch($_POST['mode']) {
73// 登録
74case 'regist':
75    // 入力値の変換
76    $objFormParam->convParam();
77    $objPage->arrErr = lfCheckError($arrRet);
78    // 入力エラーなしの場合
79    if(count($objPage->arrErr) == 0) {
80        // カート集計処理
81        $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
82        // 一時受注テーブルの読込
83        $arrData = sfGetOrderTemp($uniqid);
84        // カート集計を元に最終計算
85        $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
86
87        // カードの認証を行う
88        $arrVal = $objFormParam->getHashArray();
89        $card_no = $arrVal['card_no01'].$arrVal['card_no02'].$arrVal['card_no03'].$arrVal['card_no04'];
90        $card_exp = $arrVal['card_month']. "/" . $arrVal['card_year']; // MM/DD
91        $result = sfGetAuthonlyResult(CGI_DIR, CGI_FILE, $arrVal['name01'], $arrVal['name02'], $card_no, $card_exp, $arrData['payment_total'], $uniqid, $arrVal['jpo_info']);
92
93        // 応答内容の記録
94        $sqlval['credit_result'] = $result['action-code'];
95        $sqlval['credit_msg'] = $result['aux-msg'].$result['MErrMsg'];
96        $objQuery = new SC_Query();
97        $objQuery->update("dtb_order_temp", $sqlval, "order_temp_id = ?", array($uniqid));
98               
99        // 与信処理成功の場合
100        if($result['action-code'] == '000') {
101            // 正常に登録されたことを記録しておく
102            $objSiteSess->setRegistFlag();
103            // 処理完了ページへ
104            header("Location: " . URL_SHOP_COMPLETE);
105        } else {
106            switch($result['action-code']) {
107            case '115':
108                $objPage->tpl_error = "※ カードの有効期限が切れています。";
109                break;
110            case '212':
111                $objPage->tpl_error = "※ カード番号に誤りがあります。";
112                break;
113            case '100':
114                $objPage->tpl_error = "※ カード会社でお取引が承認されませんでした。";
115                break;
116            default:
117                $objPage->tpl_error = "※ クレジットカードの照合に失敗しました。";
118                break;
119            }
120        }
121    }
122    break;
123// 前のページに戻る
124case 'return':
125    // 正常に登録されたことを記録しておく
126    $objSiteSess->setRegistFlag();
127    // 確認ページへ移動
128    header("Location: " . URL_SHOP_CONFIRM);
129    exit;
130    break;
131}
132
133$objDate = new SC_Date();
134$objDate->setStartYear(RELEASE_YEAR);
135$objDate->setEndYear(RELEASE_YEAR + CREDIT_ADD_YEAR);
136$objPage->arrYear = $objDate->getZeroYear();
137$objPage->arrMonth = $objDate->getZeroMonth();
138
139$objPage->arrForm = $objFormParam->getFormParamList();
140$objView->assignobj($objPage);
141// フレームを選択(キャンペーンページから遷移なら変更)
142$objCampaignSess->pageView($objView);
143//-----------------------------------------------------------------------------------------------------------------------------------
144/* パラメータ情報の初期化 */
145function lfInitParam() {
146    global $objFormParam;
147    $objFormParam->addParam("カード番号1", "card_no01", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
148    $objFormParam->addParam("カード番号2", "card_no02", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
149    $objFormParam->addParam("カード番号3", "card_no03", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
150    $objFormParam->addParam("カード番号4", "card_no04", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
151    $objFormParam->addParam("カード期限年", "card_year", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
152    $objFormParam->addParam("カード期限月", "card_month", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK"));
153    $objFormParam->addParam("姓", "card_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
154    $objFormParam->addParam("名", "card_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK"));
155    $objFormParam->addParam("お支払い方法", "jpo_info", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALNUM_CHECK"));
156}
157
158/* 入力内容のチェック */
159function lfCheckError() {
160    global $objFormParam;
161    // 入力データを渡す。
162    $arrRet =  $objFormParam->getHashArray();
163    $objErr = new SC_CheckError($arrRet);
164    $objErr->arrErr = $objFormParam->checkError();
165   
166    return $objErr->arrErr;
167}
168
169?>
Note: See TracBrowser for help on using the repository browser.