Ignore:
Timestamp:
2007/07/20 15:58:59 (16 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Location:
branches/feature-module-update
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update

    • Property svn:ignore set to
      .cache

      .settings

      .projectOptions
  • branches/feature-module-update/data/downloads/module/mdl_epsilon/mdl_epsilon.php

    r12157 r15078  
    1010 
    1111$arrPayment = array( 
    12     1 => '¥¯¥ì¥¸¥Ã¥È', 
    13     2 => '¥³¥ó¥Ó¥Ë' 
     12    1 => 'クレジット', 
     13    2 => 'コンビニ' 
    1414); 
    1515 
     
    1919); 
    2020 
    21 //¥Ú¡¼¥¸´ÉÍý¥¯¥é¥¹ 
     21//ページ管理クラス 
    2222class LC_Page { 
    23     //¥³¥ó¥¹¥È¥é¥¯¥¿ 
     23    //コンストラクタ 
    2424    function LC_Page() { 
    25         //¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤Î»ØÄê 
     25        //メインテンプレートの指定 
    2626        $this->tpl_mainpage = MODULE_PATH . 'mdl_epsilon/mdl_epsilon.tpl'; 
    27         $this->tpl_subtitle = '¥¤¥×¥·¥í¥ó·èºÑ¥â¥¸¥å¡¼¥ë'; 
     27        $this->tpl_subtitle = 'イプシロン決済モジュール'; 
    2828        global $arrPayment; 
    2929        $this->arrPayment = $arrPayment; 
     
    3838$objQuery = new SC_Query(); 
    3939 
    40 // ¥³¥ó¥Ó¥ËÆþ¶â¥Á¥§¥Ã¥¯ 
     40// コンビニ入金チェック 
    4141lfEpsilonCheck(); 
    4242 
    43 // ǧ¾Ú³Îǧ 
     43// 認証確認 
    4444$objSess = new SC_Session(); 
    4545sfIsSuccess($objSess); 
    4646 
    47 // ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹ 
     47// パラメータ管理クラス 
    4848$objFormParam = new SC_FormParam(); 
    4949$objFormParam = lfInitParam($objFormParam); 
    50 // POSTÃͤμèÆÀ 
     50// POST値の取得 
    5151$objFormParam->setParam($_POST); 
    5252 
    53 // ÈÆÍѹàÌܤòÄɲÃ(ɬ¿Ü¡ª¡ª) 
     53// 汎用項目を追加(必須!!) 
    5454sfAlterMemo(); 
    5555 
    5656switch($_POST['mode']) { 
    5757case 'edit': 
    58     // ÆþÎÏ¥¨¥é¡¼È½Äê 
     58    // 入力エラー判定 
    5959    $objPage->arrErr = lfCheckError(); 
    6060 
    61     // ¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç¤Ë¤Ï¥Ç¡¼¥¿¤ò¹¹¿·  
     61    // エラーなしの場合にはデータを更新  
    6262    if(count($objPage->arrErr) == 0) { 
    63         // ¥Ç¡¼¥¿¹¹¿· 
     63        // データ更新 
    6464        lfUpdPaymentDB(); 
    6565         
    66         // javascript¼Â¹Ô 
    67         $objPage->tpl_onload = 'alert("ÅÐÏ¿´°Î»¤·¤Þ¤·¤¿¡£\n´ðËܾðÊó¡ä»ÙʧÊýË¡ÀßÄê¤è¤ê¾ÜºÙÀßÄê¤ò¤·¤Æ¤¯¤À¤µ¤¤¡£"); window.close();'; 
     66        // javascript実行 
     67        $objPage->tpl_onload = 'alert("登録完了しました。\n基本情報>支払方法設定より詳細設定をしてください。"); window.close();'; 
    6868    } 
    6969    break; 
    7070case 'module_del': 
    71     // ÈÆÍѹàÌܤθºß¥Á¥§¥Ã¥¯ 
     71    // 汎用項目の存在チェック 
    7272    if(sfColumnExists("dtb_payment", "memo01")){ 
    73         // ¥Ç¡¼¥¿¤Îºï½ü¥Õ¥é¥°¤ò¤¿¤Æ¤ë 
     73        // データの削除フラグをたてる 
    7474        $objQuery->query("UPDATE dtb_payment SET del_flg = 1 WHERE module_id = ?", array(MDL_EPSILON_ID)); 
    7575    } 
    7676    break; 
    7777default: 
    78     // ¥Ç¡¼¥¿¤Î¥í¡¼¥É 
     78    // データのロード 
    7979    lfLoadData();    
    8080    break; 
     
    8383$objPage->arrForm = $objFormParam->getFormParamList(); 
    8484 
    85 $objView->assignobj($objPage);                  //ÊÑ¿ô¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥¢¥µ¥¤¥ó¤¹¤ë 
    86 $objView->display($objPage->tpl_mainpage);      //¥Æ¥ó¥×¥ì¡¼¥È¤Î½ÐÎÏ 
     85$objView->assignobj($objPage);                  //変数をテンプレートにアサインする 
     86$objView->display($objPage->tpl_mainpage);      //テンプレートの出力 
    8787//------------------------------------------------------------------------------------------------------- 
    88 /* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */ 
     88/* パラメータ情報の初期化 */ 
    8989function 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");    
    9595    return $objFormParam; 
    9696} 
    9797 
    98 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 
     98// エラーチェックを行う 
    9999function lfCheckError(){ 
    100100    global $objFormParam; 
     
    102102    $arrErr = $objFormParam->checkError(); 
    103103     
    104     // ÍøÍÑ¥¯¥ì¥¸¥Ã¥È¡¢ÍøÍÑ¥³¥ó¥Ó¥Ë¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     104    // 利用クレジット、利用コンビニのエラーチェック 
    105105    $arrChkPay = $_POST["payment"]; 
    106106    foreach((array)$arrChkPay as $key => $val){ 
    107         // ÍøÍÑ¥¯¥ì¥¸¥Ã¥È 
     107        // 利用クレジット 
    108108        if($val == 1 and count($_POST["credit"]) <= 0){ 
    109             $arrErr["credit"] = "ÍøÍÑ¥¯¥ì¥¸¥Ã¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br />"; 
    110         } 
    111         // ÍøÍÑ¥³¥ó¥Ó¥Ë 
     109            $arrErr["credit"] = "利用クレジットが選択されていません。<br />"; 
     110        } 
     111        // 利用コンビニ 
    112112        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対応判定 
    118118    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    // 接続チェックを行う 
    123123    if(count($arrErr) == 0) $arrErr = lfChkConnect(); 
    124124 
     
    126126} 
    127127 
    128 // Àܳ¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 
     128// 接続チェックを行う 
    129129function lfChkConnect(){ 
    130130    global $objQuery; 
     
    133133    $arrRet = array(); 
    134134     
    135     // ¥á¡¼¥ë¥¢¥É¥ì¥¹¼èÆÀ 
     135    // メールアドレス取得 
    136136    $email = $objQuery->getone("SELECT email03 FROM dtb_baseinfo"); 
    137137 
    138     // ·ÀÌ󥳡¼¥É    
     138    // 契約コード     
    139139    (in_array(1, (array)$_POST["payment"])) ? $cre = "1" : $cre = "0"; 
    140140    (in_array(2, (array)$_POST["payment"])) ? $con = "1" : $con = "0"; 
    141141    $st_code = $cre . "0" . $con . "00-0000-00000"; 
    142142     
    143     // Á÷¿®¥Ç¡¼¥¿À¸À® 
     143    // 送信データ生成 
    144144    $arrSendData = array( 
    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',                           // ±þÅú·Á¼°(¸ÇÄê) 
     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',                           // 応答形式(固定) 
    152152    ); 
    153153     
    154     // ¥Ç¡¼¥¿Á÷¿® 
     154    // データ送信 
    155155    $arrXML = sfPostPaymentData($_POST["url"], $arrSendData, false); 
    156156    if($arrXML == "") { 
    157         $arrRet["url"] = "Àܳ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£<br>"; 
     157        $arrRet["url"] = "接続できませんでした。<br>"; 
    158158        return $arrRet;  
    159159    } 
    160160     
    161     // ¥¨¥é¡¼¤¬¤¢¤ë¤«¥Á¥§¥Ã¥¯¤¹¤ë 
     161    // エラーがあるかチェックする 
    162162    $err_code = sfGetXMLValue($arrXML,'RESULT','ERR_CODE'); 
    163163    switch ($err_code) { 
     
    165165            break; 
    166166        case "607": 
    167             $arrRet["code"] = "·ÀÌ󥳡¼¥É¤¬°ã¤¤¤Þ¤¹¡£<br>"; 
     167            $arrRet["code"] = "契約コードが違います。<br>"; 
    168168            return $arrRet; 
    169169        default : 
     
    172172    } 
    173173 
    174     // ¥³¥ó¥Ó¥Ë»ØÄ꤬¤¢¤ì¤Ð¥³¥ó¥Ó¥Ëʬ¥ë¡¼¥×¤·¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 
     174    // コンビニ指定があればコンビニ分ループし、チェックを行う 
    175175    if(count($_POST["convenience"]) > 0){ 
    176176        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;             // 払込メール(送信しない) 
    182182             
    183             // ¥Ç¡¼¥¿Á÷¿® 
     183            // データ送信 
    184184            $arrXML = sfPostPaymentData($_POST["url"], $arrSendData, false); 
    185185            if($arrXML == "") { 
    186                 $arrRet["url"] = "Àܳ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£<br>"; 
     186                $arrRet["url"] = "接続できませんでした。<br>"; 
    187187                return $arrRet;  
    188188            } 
    189189             
    190             // ¥¨¥é¡¼¤¬¤¢¤ë¤«¥Á¥§¥Ã¥¯¤¹¤ë 
     190            // エラーがあるかチェックする 
    191191            $err_code = sfGetXMLValue($arrXML,'RESULT','ERR_CODE'); 
    192192            if($err_code != ""){ 
     
    200200} 
    201201 
    202 // ÅÐÏ¿¥Ç¡¼¥¿¤òÆÉ¤ß¹þ¤à 
     202// 登録データを読み込む 
    203203function lfLoadData(){ 
    204204    global $objFormParam; 
    205205     
    206     //¥Ç¡¼¥¿¤ò¼èÆÀ 
     206    //データを取得 
    207207    $arrRet = lfGetPaymentDB(" AND del_flg = '0'"); 
    208208     
    209     // Ãͤò¥»¥Ã¥È 
     209    // 値をセット 
    210210    $objFormParam->setParam($arrRet[0]); 
    211211 
    212     // ²èÌÌɽ¼¨ÍѤ˥ǡ¼¥¿¤òÊÑ´¹ 
     212    // 画面表示用にデータを変換 
    213213    $arrDisp = array(); 
    214214    foreach($arrRet as $key => $val){ 
    215         // ÍøÍÑ·èºÑ¤òɽ¼¨ÍѤËÊÑ´¹ 
     215        // 利用決済を表示用に変換 
    216216        $arrDisp["payment"][$key] = $val["payment"]; 
    217217         
    218         // ¥¯¥ì¥¸¥Ã¥È¤Î·èºÑ¶èʬ¤ò¼èÆÀ 
     218        // クレジットの決済区分を取得 
    219219        if($val["payment"] == 1) $credit = $val["payment_code"]; 
    220220         
    221         // ¥³¥ó¥Ó¥Ë 
     221        // コンビニ 
    222222        if($val["payment"] == 2) $arrDisp["convenience"] = $val["convenience"]; 
    223223    } 
     
    225225    $objFormParam->splitParamCheckBoxes("convenience"); 
    226226     
    227     // ¥¯¥ì¥¸¥Ã¥È 
     227    // クレジット 
    228228    if(substr($credit, 0, 1)) $arrCredit["credit"][] = 1; 
    229229    if(substr($credit, 1, 1)) $arrCredit["credit"][] = 2; 
     
    231231} 
    232232 
    233 // DB¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë 
     233// DBからデータを取得する 
    234234function lfGetPaymentDB($where = "", $arrWhereVal = array()){ 
    235235    global $objQuery; 
     
    253253 
    254254 
    255 // ¥Ç¡¼¥¿¤Î¹¹¿·½èÍý 
     255// データの更新処理 
    256256function lfUpdPaymentDB(){ 
    257257    global $objQuery; 
    258258    global $objSess; 
    259259     
    260     // ÍøÍÑ¥³¥ó¥Ó¥Ë¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ï¥¤¥Õ¥ó¶èÀÚ¤ê¤ËÊÔ½¸¤¹¤ë 
     260    // 利用コンビニにチェックが入っている場合には、ハイフン区切りに編集する 
    261261    $convCnt = count($_POST["convenience"]); 
    262262    if($convCnt > 0){ 
     
    267267    } 
    268268         
    269     // del_flg¤òºï½ü¤Ë¤·¤Æ¤ª¤¯ 
     269    // del_flgを削除にしておく 
    270270    $del_sql = "UPDATE dtb_payment SET del_flg = 1 WHERE module_id = ? "; 
    271271    $arrDel = array(MDL_EPSILON_ID); 
    272272    $objQuery->query($del_sql, $arrDel); 
    273273     
    274     // ¥Ç¡¼¥¿ÅÐÏ¿ 
     274    // データ登録 
    275275    foreach($_POST["payment"] as $key => $val){ 
    276         // ¥é¥ó¥¯¤ÎºÇÂçÃͤò¼èÆÀ¤¹¤ë 
     276        // ランクの最大値を取得する 
    277277        $max_rank = $objQuery->getone("SELECT max(rank) FROM dtb_payment"); 
    278278 
    279         // »ÙʧÊýË¡¥Ç¡¼¥¿¤ò¼èÆÀ          
     279        // 支払方法データを取得            
    280280        $arrPaymentData = lfGetPaymentDB("AND memo03 = ?", array($val)); 
    281281         
    282         // ¥¯¥ì¥¸¥Ã¥È¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ì¤Ð¥¯¥ì¥¸¥Ã¥È¤òÅÐÏ¿¤¹¤ë 
     282        // クレジットにチェックが入っていればクレジットを登録する 
    283283        if($val == 1){ 
    284284            (in_array(1, $_POST["credit"])) ? $visa = "1" : $visa = "0"; 
    285285            (in_array(2, $_POST["credit"])) ? $jcb = "1" : $jcb = "0"; 
    286286            $arrData = array(            
    287                 "payment_method" => "Epsilon¥¯¥ì¥¸¥Ã¥È" 
     287                "payment_method" => "Epsilonクレジット" 
    288288                ,"fix" => 3 
    289289                ,"creator_id" => $objSess->member_id 
     
    304304        } 
    305305         
    306         // ¥³¥ó¥Ó¥Ë¤Ë¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ì¤Ð¥³¥ó¥Ó¥Ë¤òÅÐÏ¿¤¹¤ë 
     306        // コンビニにチェックが入っていればコンビニを登録する 
    307307        if($val == 2){ 
    308308             
    309             // ¥»¥Ö¥ó¥¤¥ì¥Ö¥ó¤Î¤ßÁªÂò¤·¤¿¾ì¹ç¤Ë¤ÏÍøÍѾå¸Â¤ò30Ëü¤Ë¤¹¤ë¡£ 
     309            // セブンイレブンのみ選択した場合には利用上限を30万にする。 
    310310            if(count($_POST["convenience"]) == 1 and $_POST["convenience"][0] == 11) { 
    311311                $upper_rule_max = SEVEN_CHARGE_MAX; 
     
    317317             
    318318            $arrData = array( 
    319                 "payment_method" => "Epsilon¥³¥ó¥Ó¥Ë" 
     319                "payment_method" => "Epsilonコンビニ" 
    320320                ,"fix" => 3 
    321321                ,"creator_id" => $objSess->member_id 
     
    336336        } 
    337337 
    338         // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤ì¤ÐUPDATE¡¢Ìµ¤±¤ì¤ÐINSERT 
     338        // データが存在していればUPDATE、無ければINSERT 
    339339        if(count($arrPaymentData) > 0){ 
    340340            $objQuery->update("dtb_payment", $arrData, " module_id = '" . MDL_EPSILON_ID . "' AND memo03 = '" . $val ."'"); 
     
    346346} 
    347347 
    348 // ¥³¥ó¥Ó¥ËÆþ¶â³Îǧ½èÍý 
     348// コンビニ入金確認処理 
    349349function lfEpsilonCheck(){ 
    350350    global $objQuery; 
    351351     
    352     // trans_code ¤ò»ØÄꤵ¤ì¤Æ¤¤¤Æ³î¤Ä¡¢Æþ¶âºÑ¤ß¤Î¾ì¹ç 
     352    // trans_code を指定されていて且つ、入金済みの場合 
    353353    if($_POST["trans_code"] != "" and $_POST["paid"] == 1 and $_POST["order_number"] != ""){ 
    354         // ¥¹¥Æ¡¼¥¿¥¹¤òÆþ¶âºÑ¤ß¤ËÊѹ¹¤¹¤ë 
     354        // ステータスを入金済みに変更する 
    355355        $sql = "UPDATE dtb_order SET status = 6, update_date = now() WHERE order_id = ? AND memo04 = ? "; 
    356356        $objQuery->query($sql, array($_POST["order_number"], $_POST["trans_code"])); 
    357357         
    358         // POST¤ÎÆâÍÆ¤òÁ´¤Æ¥í¥°Êݸ 
     358        // POSTの内容を全てログ保存 
    359359        $log_path = DATA_PATH . "logs/epsilon.log"; 
    360360        gfPrintLog("epsilon conveni start---------------------------------------------------------", $log_path); 
     
    364364        gfPrintLog("epsilon conveni end-----------------------------------------------------------", $log_path); 
    365365         
    366         //±þÅú·ë²Ì¤òɽ¼¨ 
     366        //応答結果を表示 
    367367        echo "1"; 
    368368    } 
Note: See TracChangeset for help on using the changeset viewer.