Changeset 20467


Ignore:
Timestamp:
2011/03/03 12:02:18 (10 years ago)
Author:
nanasess
bzr:base-revision:
ohkouchi@loop-az.jp-20110302111225-7nt684mmays9jmmw
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/class/pages/shopping/LC_Page_Shopping_Confirm.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Confirm.php
data/class/pages/shopping/LC_Page_Shopping_LoadPaymentModule.php lc_page_shopping_loa-20101025071457-rpmc2g2y1ik9lyow-1
data/class/pages/upgrade/helper/LC_Upgrade_Helper_Json.php 16839@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fupgrade%2Fhelper%2FLC_Upgrade_Helper_Json.php
test/class/page/shopping/LC_Page_Shopping_LoadPaymentModule_Test.php lc_page_shopping_loa-20101025071501-16934ygv2y12gz92-1
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110303030004-43u2fhzy6y0i15nf
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110303030214-5ztlfgyzhqa3cncl
bzr:revno:
3194
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-revisions:

data/class/pages/shopping/LC_Page_Shopping_Confirm.php ohkouchi@loop-az.jp-20110303030004-43u2fhzy6y0i15nf
data/class/pages/shopping/LC_Page_Shopping_LoadPaymentModule.php ohkouchi@loop-az.jp-20110303030004-43u2fhzy6y0i15nf
test/class/page/shopping/LC_Page_Shopping_LoadPaymentModule_Test.php ohkouchi@loop-az.jp-20110303030004-43u2fhzy6y0i15nf
bzr:timestamp:
2011-03-03 12:02:14.236999989 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-03-03T03:02:14.237000Z
Message:

#842(決済モジュールから load_payment_module へ戻った場合の挙動の改善)

  • 受注フローの変更に伴い, LC_Page_Shopping_LoadPaymentModule.php を修正
Location:
branches/version-2_5-dev
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php

    r20448 r20467  
    151151            // 決済モジュールを使用する場合 
    152152            if ($this->use_module) { 
    153                 $_SESSION["payment_id"] = $this->arrForm['payment_id']; 
     153                $_SESSION["order_id"] = $this->arrForm['order_id']; 
    154154                $objPurchase->completeOrder(ORDER_PENDING); 
    155155                SC_Response_Ex::sendRedirect(SHOPPING_MODULE_URLPATH); 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_LoadPaymentModule.php

    r20448 r20467  
    2828 * 決済モジュールの呼び出しを行うクラス. 
    2929 * 
     30 * 決済フローの妥当性検証は, トランザクションID等を使用して, 決済モジュール側で 
     31 * 行う必要がある. 
     32 * 
    3033 * @package Page 
    3134 * @author Kentaro Ohkouchi 
     
    5255     */ 
    5356    function process() { 
    54         $objSiteSess = new SC_SiteSession_Ex(); 
    55         $objCartSess = new SC_CartSession_Ex(); 
    56         $objPurchase = new SC_Helper_Purchase_Ex(); 
    5757 
    58         if (!$objSiteSess->isPrePage()) { 
    59             SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, $objSiteSess); 
    60         } 
    61  
    62         $uniqid = $objSiteSess->getUniqId(); 
    63         $objPurchase->verifyChangeCart($uniqid, $objCartSess); 
    64  
    65         $payment_id = $this->getPaymentId(); 
    66         if ($payment_id === false) { 
     58        $order_id = $this->getOrderId(); 
     59        if ($order_id === false) { 
    6760            SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 
    6861            return; 
    6962        } 
    7063 
    71         $module_path = $this->getModulePath($payment_id); 
     64        $module_path = $this->getModulePath($order_id); 
    7265        if ($module_path === false) { 
    7366            SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, "", true, 
     
    7669        } 
    7770        require_once($module_path); 
    78     } 
    79  
    80     /** 
    81      * モバイルページを初期化する. 
    82      * 
    83      * @return void 
    84      */ 
    85     function mobileInit() { 
    86         $this->init(); 
    87     } 
    88  
    89     /** 
    90      * Page のプロセス(モバイル). 
    91      * 
    92      * @return void 
    93      */ 
    94     function mobileProcess() { 
    95         $this->process(); 
    9671    } 
    9772 
     
    10681 
    10782    /** 
    108      * 支払い方法IDをキーにして, 決済モジュールのパスを取得する. 
     83     * 受注IDをキーにして, 決済モジュールのパスを取得する. 
    10984     * 
    11085     * 決済モジュールが取得できた場合は, require 可能な決済モジュールのパスを返す. 
    111      * 支払い方法IDが無効な場合, 取得したパスにファイルが存在しない場合は false 
     86     * 受注IDが無効な場合, 取得したパスにファイルが存在しない場合は false 
    11287     * 
    113      * @param integer $payment_id 支払い方法ID 
     88     * @param integer $order_id 受注ID 
    11489     * @return string|boolean 成功した場合は決済モジュールのパス; 
    11590     *                        失敗した場合 false 
    11691     */ 
    117     function getModulePath($payment_id) { 
     92    function getModulePath($order_id) { 
    11893        $objQuery =& SC_Query::getSingletonInstance(); 
    11994        $sql = <<< __EOS__ 
    12095            SELECT module_path 
    121               FROM dtb_payment 
    122              WHERE payment_id = ? 
     96              FROM dtb_payment T1 
     97              JOIN dtb_order T2 
     98                ON T1.payment_id = T2.payment_id 
     99             WHERE order_id = ? 
    123100__EOS__; 
    124         $module_path = $objQuery->getOne($sql, array($payment_id)); 
     101        $module_path = $objQuery->getOne($sql, array($order_id)); 
    125102        if (file_exists($module_path)) { 
    126103            return $module_path; 
     
    130107 
    131108    /** 
    132      * 支払い方法ID を取得する. 
     109     * 受注ID を取得する. 
    133110     * 
    134      * 以下の順序で支払い方法IDを取得する. 
     111     * 以下の順序で受注IDを取得する. 
    135112     * 
    136      * 1. $_SESSION['payment_id'] 
    137      * 2. $_POST['payment_id'] 
    138      * 3. $_GET['payment_id'] 
     113     * 1. $_SESSION['order_id'] 
     114     * 2. $_POST['order_id'] 
     115     * 3. $_GET['order_id'] 
    139116     * 
    140      * 支払い方法IDが取得できない場合は false を返す. 
     117     * 受注IDが取得できない場合は false を返す. 
    141118     * 
    142119     * @access private 
    143      * @return integer|boolean 支払い方法の取得に成功した場合は支払い方法IDを返す; 
     120     * @return integer|boolean 受注IDの取得に成功した場合は受注IDを返す; 
    144121     *                         失敗した場合は, false を返す. 
    145122     */ 
    146     function getPaymentId() { 
    147         if (isset($_SESSION['payment_id']) 
    148             && !SC_Utils_Ex::isBlank($_SESSION['payment_id'])) { 
    149             return $_SESSION['payment_id']; 
     123    function getOrderId() { 
     124        if (isset($_SESSION['order_id']) 
     125            && !SC_Utils_Ex::isBlank($_SESSION['order_id']) 
     126            && SC_Utils_Ex::sfIsInt($_SESSION['order_id'])) { 
     127            return $_SESSION['order_id']; 
    150128        } 
    151129 
    152         if (isset($_POST['payment_id']) 
    153             && !SC_Utils_Ex::isBlank($_POST['payment_id'])) { 
    154             return $_POST['payment_id']; 
     130        if (isset($_POST['order_id']) 
     131            && !SC_Utils_Ex::isBlank($_POST['order_id']) 
     132            && SC_Utils_Ex::sfIsInt($_POST['order_id'])) { 
     133            return $_POST['order_id']; 
    155134        } 
    156135 
    157         if (isset($_GET['payment_id']) 
    158             && !SC_Utils_Ex::isBlank($_GET['payment_id'])) { 
    159             return $_GET['payment_id']; 
     136        if (isset($_GET['order_id']) 
     137            && !SC_Utils_Ex::isBlank($_GET['order_id']) 
     138            && SC_Utils_Ex::sfIsInt($_GET['order_id'])) { 
     139            return $_GET['order_id']; 
    160140        } 
    161  
    162141        return false; 
    163142    } 
  • branches/version-2_5-dev/test/class/page/shopping/LC_Page_Shopping_LoadPaymentModule_Test.php

    r20116 r20467  
    4646    } 
    4747 
    48     function testGetPaymentIdBySession() { 
    49         $_SESSION['payment_id'] = 1; 
    50         $_GET['payment_id'] = 2; 
    51         $_POST['payment_id'] = 3; 
     48    function testGetOrderIdBySession() { 
     49        $_SESSION['order_id'] = 1; 
     50        $_GET['order_id'] = 2; 
     51        $_POST['order_id'] = 3; 
    5252 
    53         $this->expected = $_SESSION['payment_id']; 
    54         $this->actual = $this->objPage->getPaymentId(); 
     53        $this->expected = $_SESSION['order_id']; 
     54        $this->actual = $this->objPage->getOrderId(); 
    5555 
    5656        $this->verify(); 
    5757    } 
    5858 
    59     function testGetPaymentIdByPOST() { 
    60         $_GET['payment_id'] = 1; 
    61         $_POST['payment_id'] = 1; 
     59    function testGetOrderIdByPOST() { 
     60        $_GET['order_id'] = 1; 
     61        $_POST['order_id'] = 1; 
    6262 
    63         $this->expected = $_POST['payment_id']; 
    64         $this->actual = $this->objPage->getPaymentId(); 
     63        $this->expected = $_POST['order_id']; 
     64        $this->actual = $this->objPage->getOrderId(); 
    6565 
    6666        $this->verify(); 
    6767    } 
    6868 
    69     function testGetPaymentIdByGET() { 
    70         $_GET['payment_id'] = 2; 
     69    function testGetOrderIdByGET() { 
     70        $_GET['order_id'] = 2; 
    7171 
    72         $this->expected = $_GET['payment_id']; 
    73         $this->actual = $this->objPage->getPaymentId(); 
     72        $this->expected = $_GET['order_id']; 
     73        $this->actual = $this->objPage->getOrderId(); 
    7474 
    7575        $this->verify(); 
    7676    } 
    7777 
    78     function testGetPaymentIdIsNull() { 
    79         $this->assertFalse($this->objPage->getPaymentId()); 
     78    function testGetOrderIdIsNull() { 
     79        $this->assertFalse($this->objPage->getOrderId()); 
    8080    } 
    8181 
    8282    function testGetModulePath() { 
     83        $order_id = 10000; 
    8384        $payment_id = 10000; 
    8485        $module_path = __FILE__; 
    85         $this->setPayment($payment_id, $module_path); 
     86        $this->setPayment($order_id, $payment_id, $module_path); 
    8687 
    8788        $this->expected = __FILE__; 
    88         $this->actual = $this->objPage->getModulePath($payment_id); 
     89        $this->actual = $this->objPage->getModulePath($order_id); 
    8990 
    9091        $this->verify(); 
     
    9293 
    9394    function testGetModulePathIsFailure() { 
     95        $order_id = 10000; 
    9496        $payment_id = 10000; 
    9597        $module_path = "aaa"; 
    96         $this->setPayment($payment_id, $module_path); 
     98        $this->setPayment($order_id, $payment_id, $module_path); 
    9799 
    98         $this->actual = $this->objPage->getModulePath($payment_id); 
     100        $this->actual = $this->objPage->getModulePath($order_id); 
    99101 
    100102        $this->assertFalse($this->actual); 
     
    106108    } 
    107109 
    108     function setPayment($payment_id, $module_path) { 
    109         $this->objQuery->insert("dtb_payment", array('payment_id' => $payment_id, 
     110    function setPayment($order_id, $payment_id, $module_path) { 
     111        $this->objQuery->insert('dtb_order', array('order_id' => $order_id, 
     112                                                   'customer_id' => (int) 0, 
     113                                                   'payment_id' => $payment_id, 
     114                                                   'create_date' => 'now()', 
     115                                                   'update_date' => 'now()')); 
     116 
     117        $this->objQuery->insert("dtb_payment", array('payment_id' => $order_id, 
    110118                                                     'module_path' => $module_path, 
    111                                                      'creator_id' => 1)); 
     119                                                     'creator_id' => 1, 
     120                                                     'create_date' => 'now()', 
     121                                                     'update_date' => 'now()')); 
    112122    } 
    113123} 
Note: See TracChangeset for help on using the changeset viewer.