source: branches/feature-module-update/data/downloads/module/mdl_epsilon/convenience.php @ 15532

Revision 15532, 10.7 KB checked in by nanasess, 14 years ago (diff)

svn:mime-type 修正

  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-httpd-php; charset=UTF-8
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8require_once("../require.php");
9require_once(DATA_PATH . "module/Request.php");
10require_once(MODULE_PATH . "mdl_epsilon/mdl_epsilon.inc");
11
12class LC_Page {
13    function LC_Page() {
14        if (is_callable(GC_MobileUserAgent) && GC_MobileUserAgent::isMobile()) {
15            $this->tpl_mainpage = MODULE_PATH . "mdl_epsilon/convenience_mobile.tpl";
16        } else {
17            $this->tpl_mainpage = MODULE_PATH . "mdl_epsilon/convenience.tpl";
18        }
19        $this->tpl_title = "コンビニ決済";
20        /*
21         session_start時のno-cacheヘッダーを抑制することで
22         「戻る」ボタン使用時の有効期限切れ表示を抑制する。
23         private-no-expire:クライアントのキャッシュを許可する。
24        */
25        session_cache_limiter('private-no-expire');     
26    }
27}
28
29global $arrConvenience;
30global $arrConveni_message;
31
32$objPage = new LC_Page();
33$objView = new SC_SiteView();
34$objCampaignSess = new SC_CampaignSession();
35$objSiteInfo = $objView->objSiteInfo;
36$arrInfo = $objSiteInfo->data;
37
38// パラメータ管理クラス
39$objFormParam = new SC_FormParam();
40// パラメータ情報の初期化
41lfInitParam();
42// POST値の取得
43$objFormParam->setParam($_POST);
44
45// ユーザユニークIDの取得と購入状態の正当性をチェック
46$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
47
48// カート集計処理
49$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
50
51// 一時受注テーブルの読込
52$arrData = sfGetOrderTemp($uniqid);
53
54// カート集計を元に最終計算
55$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
56
57// 代表商品情報
58$arrMainProduct = $objPage->arrProductsClass[0];
59
60// 支払い情報を取得
61$arrPayment = $objQuery->getall("SELECT module_id, memo01, memo02, memo03, memo04, memo05, memo06, memo07, memo08, memo09, memo10 FROM dtb_payment WHERE payment_id = ? ", array($arrData["payment_id"]));
62
63// データ送信先CGI
64$order_url = $arrPayment[0]["memo02"];
65
66switch($_POST["mode"]){
67    //戻る
68    case 'return':
69        // 正常に登録されたことを記録しておく
70        $objSiteSess->setRegistFlag();
71        // 確認ページへ移動
72        if (is_callable(GC_MobileUserAgent) && GC_MobileUserAgent::isMobile()) {
73            header("Location: " . gfAddSessionId(URL_SHOP_CONFIRM));
74        } else {
75            header("Location: " . URL_SHOP_CONFIRM);
76        }
77        exit;
78        break;
79
80    case "send":
81        $arrErr = array();
82        $arrErr = $objFormParam->checkError();
83        $objPage->arrErr = $arrErr;
84       
85        // 非会員のときは user_id に not_memberと送る
86        ($arrData["customer_id"] == 0) ? $user_id = "not_member" : $user_id = $arrData["customer_id"];
87       
88        if(count($arrErr) <= 0){
89            // 送信データ生成
90            $item_name = $arrMainProduct["name"] . "×" . $arrMainProduct["quantity"] . "個 (代表)";
91            $arrSendData = array(
92                'contract_code' => $arrPayment[0]["memo01"],                        // 契約コード
93                'user_id' => $user_id ,                                             // ユーザID
94                'user_name' => $arrData["order_name01"].$arrData["order_name02"],   // ユーザ名
95                'user_mail_add' => $arrData["order_email"],                         // メールアドレス
96                'order_number' => $arrData["order_id"],                             // オーダー番号
97                'item_code' => $arrMainProduct["product_code"],                     // 商品コード(代表)
98                'item_name' => $item_name,                                          // 商品名(代表)
99                'item_price' => $arrData["payment_total"],                          // 商品価格(税込み総額)
100                'st_code' => $arrPayment[0]["memo04"],                              // 決済区分
101                'mission_code' => '1',                                              // 課金区分(固定)
102                'process_code' => '1',                                              // 処理区分(固定)
103                'xml' => '1',                                                       // 応答形式(固定)
104                'conveni_code' => $_POST["convenience"],                            // コンビニコード
105                'user_tel' => $_POST["order_tel01"].$_POST["order_tel02"].$_POST["order_tel03"],    // 電話番号
106                'user_name_kana' => $_POST["order_kana01"].$_POST["order_kana02"],                  // 氏名(カナ)
107                'haraikomi_mail' => 0,                                              // 払込メール(送信しない)
108                'memo1' => "",                                                      // 予備01
109                'memo2' => ECCUBE_PAYMENT . "_" . date("YmdHis"),                   // 予備02
110            );
111           
112            // データ送信
113            $arrXML = sfPostPaymentData($order_url, $arrSendData);
114           
115            // エラーがあるかチェックする
116            $err_code = sfGetXMLValue($arrXML,'RESULT','ERR_CODE');
117           
118            if($err_code != "") {
119                $err_detail = sfGetXMLValue($arrXML,'RESULT','ERR_DETAIL');
120                sfDispSiteError(FREE_ERROR_MSG, "", false, "購入処理中に以下のエラーが発生しました。<br /><br /><br />・" . $err_detail);
121            } else {
122                // 正常な推移であることを記録しておく
123                $objSiteSess->setRegistFlag();
124
125                $conveni_code = sfGetXMLValue($arrXML,'RESULT','CONVENI_CODE'); // コンビニコード
126                $conveni_type = lfSetConvMSG("コンビニの種類",$arrConvenience[$conveni_code]); // コンビニの種類
127                $receipt_no   = lfSetConvMSG("払込票番号",sfGetXMLValue($arrXML,'RESULT','RECEIPT_NO')); // 払込票番号
128                $payment_url = lfSetConvMSG("払込票URL",sfGetXMLValue($arrXML,'RESULT','HARAIKOMI_URL'));  // 払込票URL
129                $company_code = lfSetConvMSG("企業コード",sfGetXMLValue($arrXML,'RESULT','KIGYOU_CODE'));    // 企業コード
130                $order_no = lfSetConvMSG("受付番号",sfGetXMLValue($arrXML,'RESULT','ORDER_NUMBER'));        // 受付番号
131                $tel = lfSetConvMSG("電話番号",$_POST["order_tel01"]."-".$_POST["order_tel02"]."-".$_POST["order_tel03"]);  // 電話番号
132                $payment_limit = lfSetConvMSG("支払期日",sfGetXMLValue($arrXML,'RESULT','CONVENI_LIMIT'));  // 支払期日
133                $trans_code =  sfGetXMLValue($arrXML,'RESULT','TRANS_CODE');    // トランザクションコード
134               
135                //コンビニの種類
136                switch($conveni_code) {
137                //セブンイレブン
138                case '11':
139                    $arrRet['cv_type'] = $conveni_type;         //コンビニの種類
140                    $arrRet['cv_payment_url'] = $payment_url;   //払込票URL(PC)
141                    $arrRet['cv_receipt_no'] = $receipt_no;     //払込票番号
142                    $arrRet['br1'] = lfSetConvMSG("","\n\n");
143                    $arrRet['cv_message'] = lfSetConvMSG("",$arrConveni_message[$conveni_code]);
144                    break;
145                //ファミリーマート
146                case '21':
147                    $arrRet['cv_type'] = $conveni_type;         //コンビニの種類
148                    $arrRet['cv_company_code'] = $company_code; //企業コード
149                    $arrRet['cv_order_no'] = $receipt_no;       //受付番号
150                    $arrRet['br1'] = lfSetConvMSG("","\n\n");
151                    $arrRet['cv_message'] = lfSetConvMSG("",$arrConveni_message[$conveni_code]);
152                    break;
153                //ローソン
154                case '31':
155                    $arrRet['cv_type'] = $conveni_type;         //コンビニの種類
156                    $arrRet['cv_receipt_no'] = $receipt_no;     //払込票番号
157                    $arrRet['cv_tel'] = $tel;                   //電話番号
158                    $arrRet['br1'] = lfSetConvMSG("","\n\n");
159                    $arrRet['cv_message'] = lfSetConvMSG("",$arrConveni_message[$conveni_code]);
160                    break;
161                //セイコーマート
162                case '32':
163                    $arrRet['cv_type'] =$conveni_type;          //コンビニの種類
164                    $arrRet['cv_receipt_no'] = $receipt_no;     //払込票番号
165                    $arrRet['cv_tel'] = $tel;                   //電話番号
166                    $arrRet['br1'] = lfSetConvMSG("","\n\n");
167                    $arrRet['cv_message'] = lfSetConvMSG("",$arrConveni_message[$conveni_code]);
168                    break;
169                //ミニストップ
170                case '33':
171                    $arrRet['cv_type'] = $conveni_type;         //コンビニの種類
172                    $arrRet['cv_payment_url'] = $payment_url;   //払込票URL
173                    $arrRet['br1'] = lfSetConvMSG("","\n\n");
174                    $arrRet['cv_message'] = lfSetConvMSG("",$arrConveni_message[$conveni_code]);
175                    break;
176                //デイリーヤマザキ
177                case '34':
178                    $arrRet['cv_type'] = $conveni_type;         //コンビニの種類
179                    $arrRet['cv_payment_url'] = $payment_url;   //払込票URL
180                    $arrRet['br1'] = lfSetConvMSG("","\n\n");
181                    $arrRet['cv_message'] = lfSetConvMSG("",$arrConveni_message[$conveni_code]);
182                    break;
183                }
184
185                //支払期限
186                $arrRet['br2'] = lfSetConvMSG("","\n\n");
187                $arrRet['cv_payment_limit'] = $payment_limit;
188                $arrRet['br3'] = lfSetConvMSG("","\n\n");
189
190                // タイトル
191                $arrRet['title'] = lfSetConvMSG("コンビニ決済", true);
192
193                // 決済送信データ作成
194                $arrModule['module_id'] = MDL_EPSILON_ID;
195                $arrModule['payment_total'] = $arrData["payment_total"];
196                $arrModule['payment_id'] = PAYMENT_CONVENIENCE_ID;
197               
198                // ステータスは未入金にする
199                $sqlval['status'] = 2;
200
201                //コンビニ決済情報を格納
202                $sqlval['conveni_data'] = serialize($arrRet);
203                $sqlval['memo01'] = PAYMENT_CONVENIENCE_ID;
204                $sqlval['memo02'] = serialize($arrRet);
205                $sqlval["memo03"] = $arrPayment[0]["module_id"];
206                $sqlval["memo04"] = $trans_code;
207                $sqlval['memo05'] = serialize($arrModule);
208
209                // 受注一時テーブルに更新
210                sfRegistTempOrder($uniqid, $sqlval);
211
212                if (is_callable(GC_MobileUserAgent) && GC_MobileUserAgent::isMobile()) {
213                    header("Location: " . gfAddSessionId(URL_SHOP_COMPLETE));
214                } else {
215                    header("Location: " . URL_SHOP_COMPLETE);
216                }
217            }
218        }
219        break;
220       
221    default:
222        $objFormParam->setParam($arrData);
223        break;
224}
225
226// 利用可能コンビニ
227$objFormParam->setValue("convenience", $arrPayment[0]["memo05"]);
228$objFormParam->splitParamCheckBoxes("convenience");
229$arrUseConv = $objFormParam->getValue("convenience");
230foreach($arrUseConv as $key => $val){
231    $arrConv[$val] = $arrConvenience[$val];
232}
233
234// 購入金額が30万より大きければセブンイレブンは利用不可
235if($arrData["payment_total"] > SEVEN_CHARGE_MAX){
236    unset($arrConv[11]);
237}
238
239$objPage->arrConv = $arrConv;
240
241$objPage->arrForm =$objFormParam->getHashArray();
242
243$objView->assignobj($objPage);
244// フレームを選択(キャンペーンページから遷移なら変更)
245$objCampaignSess->pageView($objView);
246
247//---------------------------------------------------------------------------------------------------------------------------------------------------------
248//パラメータの初期化
249function lfInitParam() {
250    global $objFormParam;
251    $objFormParam->addParam("コンビニの種類", "convenience", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
252    $objFormParam->addParam("お名前(セイ)", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
253    $objFormParam->addParam("お名前(メイ)", "order_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
254    $objFormParam->addParam("お電話番号1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
255    $objFormParam->addParam("お電話番号2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
256    $objFormParam->addParam("お電話番号3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
257}
258
259function lfSetConvMSG($name, $value){
260    return array("name" => $name, "value" => $value);
261}
262
263?>
Note: See TracBrowser for help on using the repository browser.