- Timestamp:
- 2007/03/11 06:27:25 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/data/downloads/module/mdl_epsilon/mdl_epsilon.php
r11729 r11730 10 10 11 11 $arrPayment = array( 12 1 => ' クレジット',13 2 => ' コンビニ'12 1 => '¥¯¥ì¥¸¥Ã¥È', 13 2 => '¥³¥ó¥Ó¥Ë' 14 14 ); 15 15 … … 19 19 ); 20 20 21 // ページ管理クラス21 //¥Ú¡¼¥¸´ÉÍý¥¯¥é¥¹ 22 22 class LC_Page { 23 // コンストラクタ23 //¥³¥ó¥¹¥È¥é¥¯¥¿ 24 24 function LC_Page() { 25 // メインテンプレートの指定25 //¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤Î»ØÄê 26 26 $this->tpl_mainpage = MODULE_PATH . 'mdl_epsilon/mdl_epsilon.tpl'; 27 $this->tpl_subtitle = ' イプシロン決済モジュール';27 $this->tpl_subtitle = '¥¤¥×¥·¥í¥ó·èºÑ¥â¥¸¥å¡¼¥ë'; 28 28 global $arrPayment; 29 29 $this->arrPayment = $arrPayment; … … 38 38 $objQuery = new SC_Query(); 39 39 40 // コンビニ入金チェック40 // ¥³¥ó¥Ó¥ËÆþ¶â¥Á¥§¥Ã¥¯ 41 41 lfEpsilonCheck(); 42 42 43 // 認証確認43 // ǧ¾Ú³Îǧ 44 44 $objSess = new SC_Session(); 45 45 sfIsSuccess($objSess); 46 46 47 // パラメータ管理クラス47 // ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹ 48 48 $objFormParam = new SC_FormParam(); 49 49 $objFormParam = lfInitParam($objFormParam); 50 // POST 値の取得50 // POSTÃͤμèÆÀ 51 51 $objFormParam->setParam($_POST); 52 52 53 // 汎用項目を追加(必須!!)53 // ÈÆÍѹàÌܤòÄɲÃ(ɬ¿Ü¡ª¡ª) 54 54 sfAlterMemo(); 55 55 56 56 switch($_POST['mode']) { 57 57 case 'edit': 58 // 入力エラー判定58 // ÆþÎÏ¥¨¥é¡¼È½Äê 59 59 $objPage->arrErr = lfCheckError(); 60 60 61 // エラーなしの場合にはデータを更新61 // ¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç¤Ë¤Ï¥Ç¡¼¥¿¤ò¹¹¿· 62 62 if(count($objPage->arrErr) == 0) { 63 // データ更新63 // ¥Ç¡¼¥¿¹¹¿· 64 64 lfUpdPaymentDB(); 65 65 66 // javascript 実行67 $objPage->tpl_onload = 'alert(" 登録完了しました。\n基本情報>支払方法設定より詳細設定をしてください。"); window.close();';66 // javascript¼Â¹Ô 67 $objPage->tpl_onload = 'alert("ÅÐÏ¿´°Î»¤·¤Þ¤·¤¿¡£\n´ðËܾðÊó¡ä»ÙʧÊýË¡ÀßÄê¤è¤ê¾ÜºÙÀßÄê¤ò¤·¤Æ¤¯¤À¤µ¤¤¡£"); window.close();'; 68 68 } 69 69 break; 70 70 case 'module_del': 71 // 汎用項目の存在チェック71 // ÈÆÍѹàÌܤθºß¥Á¥§¥Ã¥¯ 72 72 if(sfColumnExists("dtb_payment", "memo01")){ 73 // データの削除フラグをたてる73 // ¥Ç¡¼¥¿¤Îºï½ü¥Õ¥é¥°¤ò¤¿¤Æ¤ë 74 74 $objQuery->query("UPDATE dtb_payment SET del_flg = 1 WHERE module_id = ?", array(MDL_EPSILON_ID)); 75 75 } 76 76 break; 77 77 default: 78 // データのロード78 // ¥Ç¡¼¥¿¤Î¥í¡¼¥É 79 79 lfLoadData(); 80 80 break; … … 83 83 $objPage->arrForm = $objFormParam->getFormParamList(); 84 84 85 $objView->assignobj($objPage); // 変数をテンプレートにアサインする86 $objView->display($objPage->tpl_mainpage); // テンプレートの出力85 $objView->assignobj($objPage); //ÊÑ¿ô¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥¢¥µ¥¤¥ó¤¹¤ë 86 $objView->display($objPage->tpl_mainpage); //¥Æ¥ó¥×¥ì¡¼¥È¤Î½ÐÎÏ 87 87 //------------------------------------------------------------------------------------------------------- 88 /* パラメータ情報の初期化*/88 /* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */ 89 89 function lfInitParam($objFormParam) { 90 $objFormParam->addParam(" 契約コード", "code", INT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));91 $objFormParam->addParam(" 接続先URL", "url", URL_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "URL_CHECK"));92 $objFormParam->addParam(" 利用決済", "payment", "", "", array("EXIST_CHECK"));93 $objFormParam->addParam(" 利用クレジット", "credit");94 $objFormParam->addParam(" 利用コンビニ", "convenience");90 $objFormParam->addParam("·ÀÌ󥳡¼¥É", "code", INT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 91 $objFormParam->addParam("ÀܳÀèURL", "url", URL_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "URL_CHECK")); 92 $objFormParam->addParam("ÍøÍÑ·èºÑ", "payment", "", "", array("EXIST_CHECK")); 93 $objFormParam->addParam("ÍøÍÑ¥¯¥ì¥¸¥Ã¥È", "credit"); 94 $objFormParam->addParam("ÍøÍÑ¥³¥ó¥Ó¥Ë", "convenience"); 95 95 return $objFormParam; 96 96 } 97 97 98 // エラーチェックを行う98 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 99 99 function lfCheckError(){ 100 100 global $objFormParam; … … 102 102 $arrErr = $objFormParam->checkError(); 103 103 104 // 利用クレジット、利用コンビニのエラーチェック104 // ÍøÍÑ¥¯¥ì¥¸¥Ã¥È¡¢ÍøÍÑ¥³¥ó¥Ó¥Ë¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯ 105 105 $arrChkPay = $_POST["payment"]; 106 106 foreach((array)$arrChkPay as $key => $val){ 107 // 利用クレジット107 // ÍøÍÑ¥¯¥ì¥¸¥Ã¥È 108 108 if($val == 1 and count($_POST["credit"]) <= 0){ 109 $arrErr["credit"] = " 利用クレジットが選択されていません。<br />";110 } 111 // 利用コンビニ109 $arrErr["credit"] = "ÍøÍÑ¥¯¥ì¥¸¥Ã¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br />"; 110 } 111 // ÍøÍÑ¥³¥ó¥Ó¥Ë 112 112 if($val == 2 and count($_POST["convenience"]) <= 0){ 113 $arrErr["convenience"] = " 利用コンビニが選択されていません。<br />";114 } 115 } 116 117 // ssl 対応判定113 $arrErr["convenience"] = "ÍøÍÑ¥³¥ó¥Ó¥Ë¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br />"; 114 } 115 } 116 117 // sslÂбþȽÄê 118 118 if(!extension_loaded('openssl') and ereg( "^https://", $_POST["url"] )){ 119 $arrErr["url"] = " このサーバーはSSLに対応していません。<br>httpで接続してください。";120 } 121 122 // 接続チェックを行う119 $arrErr["url"] = "¤³¤Î¥µ¡¼¥Ð¡¼¤ÏSSL¤ËÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£<br>http¤ÇÀܳ¤·¤Æ¤¯¤À¤µ¤¤¡£"; 120 } 121 122 // Àܳ¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 123 123 if(count($arrErr) == 0) $arrErr = lfChkConnect(); 124 124 … … 126 126 } 127 127 128 // 接続チェックを行う128 // Àܳ¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 129 129 function lfChkConnect(){ 130 130 global $objQuery; … … 133 133 $arrRet = array(); 134 134 135 // メールアドレス取得135 // ¥á¡¼¥ë¥¢¥É¥ì¥¹¼èÆÀ 136 136 $email = $objQuery->getone("SELECT email03 FROM dtb_baseinfo"); 137 137 138 // 契約コード138 // ·ÀÌ󥳡¼¥É 139 139 (in_array(1, (array)$_POST["payment"])) ? $cre = "1" : $cre = "0"; 140 140 (in_array(2, (array)$_POST["payment"])) ? $con = "1" : $con = "0"; 141 141 $st_code = $cre . "0" . $con . "00-0000-00000"; 142 142 143 // 送信データ生成143 // Á÷¿®¥Ç¡¼¥¿À¸À® 144 144 $arrSendData = array( 145 'contract_code' => $_POST["code"], // 契約コード146 'user_id' => "connect_test", // ユーザID147 'user_name' => " 接続テスト", // ユーザ名148 'user_mail_add' => $email, // メールアドレス149 'st_code' => $st_code, // 決済区分150 'process_code' => '3', // 処理区分(固定)151 'xml' => '1', // 応答形式(固定)145 'contract_code' => $_POST["code"], // ·ÀÌ󥳡¼¥É 146 'user_id' => "connect_test", // ¥æ¡¼¥¶ID 147 'user_name' => "Àܳ¥Æ¥¹¥È", // ¥æ¡¼¥¶Ì¾ 148 'user_mail_add' => $email, // ¥á¡¼¥ë¥¢¥É¥ì¥¹ 149 'st_code' => $st_code, // ·èºÑ¶èʬ 150 'process_code' => '3', // ½èÍý¶èʬ(¸ÇÄê) 151 'xml' => '1', // ±þÅú·Á¼°(¸ÇÄê) 152 152 ); 153 153 154 // データ送信154 // ¥Ç¡¼¥¿Á÷¿® 155 155 $arrXML = sfPostPaymentData($_POST["url"], $arrSendData, false); 156 156 if($arrXML == "") { 157 $arrRet["url"] = " 接続できませんでした。<br>";157 $arrRet["url"] = "Àܳ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£<br>"; 158 158 return $arrRet; 159 159 } 160 160 161 // エラーがあるかチェックする161 // ¥¨¥é¡¼¤¬¤¢¤ë¤«¥Á¥§¥Ã¥¯¤¹¤ë 162 162 $err_code = sfGetXMLValue($arrXML,'RESULT','ERR_CODE'); 163 163 switch ($err_code) { … … 165 165 break; 166 166 case "607": 167 $arrRet["code"] = " 契約コードが違います。<br>";167 $arrRet["code"] = "·ÀÌ󥳡¼¥É¤¬°ã¤¤¤Þ¤¹¡£<br>"; 168 168 return $arrRet; 169 169 default : … … 172 172 } 173 173 174 // コンビニ指定があればコンビニ分ループし、チェックを行う174 // ¥³¥ó¥Ó¥Ë»ØÄ꤬¤¢¤ì¤Ð¥³¥ó¥Ó¥Ëʬ¥ë¡¼¥×¤·¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 175 175 if(count($_POST["convenience"]) > 0){ 176 176 foreach($_POST["convenience"] as $key => $val){ 177 // 送信データ生成178 $arrSendData['conveni_code'] = $val; // コンビニコード179 $arrSendData['user_tel'] = "0300000000"; // ダミー電話番号180 $arrSendData['user_name_kana'] = " 送信テスト"; // ダミー氏名(カナ)181 $arrSendData['haraikomi_mail'] = 0; // 払込メール(送信しない)177 // Á÷¿®¥Ç¡¼¥¿À¸À® 178 $arrSendData['conveni_code'] = $val; // ¥³¥ó¥Ó¥Ë¥³¡¼¥É 179 $arrSendData['user_tel'] = "0300000000"; // ¥À¥ß¡¼ÅÅÏÃÈÖ¹æ 180 $arrSendData['user_name_kana'] = "Á÷¿®¥Æ¥¹¥È"; // ¥À¥ß¡¼»á̾(¥«¥Ê) 181 $arrSendData['haraikomi_mail'] = 0; // ʧ¹þ¥á¡¼¥ë(Á÷¿®¤·¤Ê¤¤) 182 182 183 // データ送信183 // ¥Ç¡¼¥¿Á÷¿® 184 184 $arrXML = sfPostPaymentData($_POST["url"], $arrSendData, false); 185 185 if($arrXML == "") { 186 $arrRet["url"] = " 接続できませんでした。<br>";186 $arrRet["url"] = "Àܳ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£<br>"; 187 187 return $arrRet; 188 188 } 189 189 190 // エラーがあるかチェックする190 // ¥¨¥é¡¼¤¬¤¢¤ë¤«¥Á¥§¥Ã¥¯¤¹¤ë 191 191 $err_code = sfGetXMLValue($arrXML,'RESULT','ERR_CODE'); 192 192 if($err_code != ""){ … … 200 200 } 201 201 202 // 登録データを読み込む202 // ÅÐÏ¿¥Ç¡¼¥¿¤òÆÉ¤ß¹þ¤à 203 203 function lfLoadData(){ 204 204 global $objFormParam; 205 205 206 // データを取得206 //¥Ç¡¼¥¿¤ò¼èÆÀ 207 207 $arrRet = lfGetPaymentDB(" AND del_flg = '0'"); 208 208 209 // 値をセット209 // Ãͤò¥»¥Ã¥È 210 210 $objFormParam->setParam($arrRet[0]); 211 211 212 // 画面表示用にデータを変換212 // ²èÌÌɽ¼¨ÍѤ˥ǡ¼¥¿¤òÊÑ´¹ 213 213 $arrDisp = array(); 214 214 foreach($arrRet as $key => $val){ 215 // 利用決済を表示用に変換215 // ÍøÍÑ·èºÑ¤òɽ¼¨ÍѤËÊÑ´¹ 216 216 $arrDisp["payment"][$key] = $val["payment"]; 217 217 218 // クレジットの決済区分を取得218 // ¥¯¥ì¥¸¥Ã¥È¤Î·èºÑ¶èʬ¤ò¼èÆÀ 219 219 if($val["payment"] == 1) $credit = $val["payment_code"]; 220 220 221 // コンビニ221 // ¥³¥ó¥Ó¥Ë 222 222 if($val["payment"] == 2) $arrDisp["convenience"] = $val["convenience"]; 223 223 } … … 225 225 $objFormParam->splitParamCheckBoxes("convenience"); 226 226 227 // クレジット227 // ¥¯¥ì¥¸¥Ã¥È 228 228 if(substr($credit, 0, 1)) $arrCredit["credit"][] = 1; 229 229 if(substr($credit, 1, 1)) $arrCredit["credit"][] = 2; … … 231 231 } 232 232 233 // DB からデータを取得する233 // DB¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë 234 234 function lfGetPaymentDB($where = "", $arrWhereVal = array()){ 235 235 global $objQuery; … … 253 253 254 254 255 // データの更新処理255 // ¥Ç¡¼¥¿¤Î¹¹¿·½èÍý 256 256 function lfUpdPaymentDB(){ 257 257 global $objQuery; 258 258 global $objSess; 259 259 260 // 利用コンビニにチェックが入っている場合には、ハイフン区切りに編集する260 // ÍøÍÑ¥³¥ó¥Ó¥Ë¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ï¥¤¥Õ¥ó¶èÀÚ¤ê¤ËÊÔ½¸¤¹¤ë 261 261 $convCnt = count($_POST["convenience"]); 262 262 if($convCnt > 0){ … … 267 267 } 268 268 269 // del_flg を削除にしておく269 // del_flg¤òºï½ü¤Ë¤·¤Æ¤ª¤¯ 270 270 $del_sql = "UPDATE dtb_payment SET del_flg = 1 WHERE module_id = ? "; 271 271 $arrDel = array(MDL_EPSILON_ID); 272 272 $objQuery->query($del_sql, $arrDel); 273 273 274 // データ登録274 // ¥Ç¡¼¥¿ÅÐÏ¿ 275 275 foreach($_POST["payment"] as $key => $val){ 276 // ランクの最大値を取得する276 // ¥é¥ó¥¯¤ÎºÇÂçÃͤò¼èÆÀ¤¹¤ë 277 277 $max_rank = $objQuery->getone("SELECT max(rank) FROM dtb_payment"); 278 278 279 // 支払方法データを取得279 // »ÙʧÊýË¡¥Ç¡¼¥¿¤ò¼èÆÀ 280 280 $arrPaymentData = lfGetPaymentDB("AND memo03 = ?", array($val)); 281 281 282 // クレジットにチェックが入っていればクレジットを登録する282 // ¥¯¥ì¥¸¥Ã¥È¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ì¤Ð¥¯¥ì¥¸¥Ã¥È¤òÅÐÏ¿¤¹¤ë 283 283 if($val == 1){ 284 284 (in_array(1, $_POST["credit"])) ? $visa = "1" : $visa = "0"; 285 285 (in_array(2, $_POST["credit"])) ? $jcb = "1" : $jcb = "0"; 286 286 $arrData = array( 287 "payment_method" => "Epsilon クレジット"287 "payment_method" => "Epsilon¥¯¥ì¥¸¥Ã¥È" 288 288 ,"fix" => 3 289 289 ,"creator_id" => $objSess->member_id … … 304 304 } 305 305 306 // コンビニにチェックが入っていればコンビニを登録する306 // ¥³¥ó¥Ó¥Ë¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ì¤Ð¥³¥ó¥Ó¥Ë¤òÅÐÏ¿¤¹¤ë 307 307 if($val == 2){ 308 308 309 // セブンイレブンのみ選択した場合には利用上限を30万にする。309 // ¥»¥Ö¥ó¥¤¥ì¥Ö¥ó¤Î¤ßÁªÂò¤·¤¿¾ì¹ç¤Ë¤ÏÍøÍѾå¸Â¤ò30Ëü¤Ë¤¹¤ë¡£ 310 310 if(count($_POST["convenience"]) == 1 and $_POST["convenience"][0] == 11) { 311 311 $upper_rule_max = SEVEN_CHARGE_MAX; … … 317 317 318 318 $arrData = array( 319 "payment_method" => "Epsilon コンビニ"319 "payment_method" => "Epsilon¥³¥ó¥Ó¥Ë" 320 320 ,"fix" => 3 321 321 ,"creator_id" => $objSess->member_id … … 336 336 } 337 337 338 // データが存在していればUPDATE、無ければINSERT338 // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤ì¤ÐUPDATE¡¢Ìµ¤±¤ì¤ÐINSERT 339 339 if(count($arrPaymentData) > 0){ 340 340 $objQuery->update("dtb_payment", $arrData, " module_id = '" . MDL_EPSILON_ID . "' AND memo03 = '" . $val ."'"); … … 346 346 } 347 347 348 // コンビニ入金確認処理348 // ¥³¥ó¥Ó¥ËÆþ¶â³Îǧ½èÍý 349 349 function lfEpsilonCheck(){ 350 350 global $objQuery; 351 351 352 // trans_code を指定されていて且つ、入金済みの場合352 // trans_code ¤ò»ØÄꤵ¤ì¤Æ¤¤¤Æ³î¤Ä¡¢Æþ¶âºÑ¤ß¤Î¾ì¹ç 353 353 if($_POST["trans_code"] != "" and $_POST["paid"] == 1 and $_POST["order_number"] != ""){ 354 // ステータスを入金済みに変更する354 // ¥¹¥Æ¡¼¥¿¥¹¤òÆþ¶âºÑ¤ß¤ËÊѹ¹¤¹¤ë 355 355 $sql = "UPDATE dtb_order SET status = 6, update_date = now() WHERE order_id = ? AND memo04 = ? "; 356 356 $objQuery->query($sql, array($_POST["order_number"], $_POST["trans_code"])); 357 357 358 // POST の内容を全てログ保存358 // POST¤ÎÆâÍÆ¤òÁ´¤Æ¥í¥°Êݸ 359 359 $log_path = DATA_PATH . "logs/epsilon.log"; 360 360 gfPrintLog("epsilon conveni start---------------------------------------------------------", $log_path); … … 364 364 gfPrintLog("epsilon conveni end-----------------------------------------------------------", $log_path); 365 365 366 // 応答結果を表示366 //±þÅú·ë²Ì¤òɽ¼¨ 367 367 echo "1"; 368 368 }
Note: See TracChangeset
for help on using the changeset viewer.
