Index: branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_credit.php
===================================================================
--- branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_credit.php	(revision 17224)
+++ branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_credit.php	(revision 17230)
@@ -53,4 +53,11 @@
 $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
 
+// ¥«¡¼¥È½¸·×½èÍý
+$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
+// °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ
+$arrData = sfGetOrderTemp($uniqid);
+// ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
+$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
+
 $objForm = lfInitParam($_POST);
 $objPage->arrForm = $objForm->getFormParamList();
@@ -64,11 +71,4 @@
         break;
     }
-
-    // ¥«¡¼¥È½¸·×½èÍý
-    $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
-    // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ
-    $arrData = sfGetOrderTemp($uniqid);
-    // ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
-    $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
 
     /**
@@ -80,5 +80,5 @@
         if (!$objCybs->canAddSubsId()) {
             $objPage->tpl_error = 'ÅÐÏ¿½ÐÍè¤ë¥«¡¼¥É¤Î·ï¿ô¤Ï' . MDL_CYBS_SUBS_ID_MAX . "·ï¤Þ¤Ç¤Ç¤¹¡£\n";
-            gfPrintLog(' -> ondemand error: over card max', MDL_CYBS_LOG);
+            gfPrintLog(' -> ondemand error: over card max ', MDL_CYBS_LOG);
             break;
         }
@@ -93,5 +93,5 @@
         // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óID¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ØÄÉ²Ã¤¹¤ë
         $subsId = $arrResults['pay_subscription_create_subscription_id'];
-        $objCybs->addSubsId($subsId);
+        $objCybs->addSubsId($subsId, $arrResults['merchant_ref_number']);
     }
 
@@ -155,17 +155,37 @@
 
     $objSiteSess->setRegistFlag();
-    //lfRegisterOrderTemp($uniqid, $objForm->getHashArray(), $arrResults);
+    lfRegisterOrderTemp($uniqid, $objForm->getHashArray(), $arrResults);
     header("Location: " . URL_SHOP_COMPLETE);
     exit;
+    break;
+
+// ÅÐÏ¿¥«¡¼¥É¤Î»ÈÍÑ
+case 'ondemand':
+    // ÆþÎÏ¹àÌÜ¤Î¸¡¾Ú
+    $subsId = $objForm->getValue('subs_id');
+    $arrErr = $objForm->checkError();
+    if (empty($subsId) || !empty($arrErr['subs_id'])) {
+        $objPage->arrErr['subs_id'] = '¢¨¡¡»ÈÍÑ¤¹¤ë¥«¡¼¥É¤òÁªÂò¤·¤Æ²¼¤µ¤¤¡£';
+        break;
+    }
+
+    $arrSendParam = lfCreateAuthParam($objForm->getHashArray(), $arrData);
+    $arrSendParam = lfCreateOndemandAuthParam($subsId, $arrSendParam);
+    $arrResults = lfSendRequest($arrSendParam);
+    if (PEAR::isError($e = lfIsError($arrResults))) {
+        $objPage->tpl_error = $e->getMessage();
+        gfPrintLog(' -> auth error: ' . $e->getMessage(), MDL_CYBS_LOG);
+        gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
+        break;
+    }
+
+    $objSiteSess->setRegistFlag();
+    lfRegisterOrderTemp($uniqid, $objForm->getHashArray(), $arrResults);
+    header("Location: " . URL_SHOP_COMPLETE);
+    exit;
+    break;
 
 // ¥Ñ¥¹¥ï¡¼¥ÉÆþÎÏ¤«¤é¤ÎÌá¤ê
 case 'verify3d':
-    // ¥«¡¼¥È½¸·×½èÍý
-    $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
-    // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ
-    $arrData = sfGetOrderTemp($uniqid);
-    // ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
-    $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
-
     // ¸¡¾Ú+Í¿¿®¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ë
     $obj3DForm = lfInit3DParam($_POST);
@@ -179,5 +199,7 @@
 
     $objSiteSess->setRegistFlag();
+    lfRegisterOrderTemp($uniqid, $objForm->getHashArray(), $arrResults);
     header("Location: " . URL_SHOP_COMPLETE);
+    exit;
     break;
 
@@ -190,12 +212,38 @@
 // ÄÌ¾ïÉ½¼¨
 default:
-    // TODO ¥ª¥ó¥Ç¥Þ¥ó¥É¼èÆÀ
-
-}
+}
+
+lfSetCardInfo($objPage); // ÅÐÏ¿ºÑ¤ß¥«¡¼¥É¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë
 
 $objView->assignobj($objPage);
 $objView->display(SITE_FRAME);
+
 sfPrintR($_POST, 'blue');
 sfPrintR($objPage, 'red');
+
+function lfSetCardInfo(&$objPage) {
+    $objCybs =& Mdl_Cybs_Config::getInstanse();
+    // ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â¤¬Ìµ¸ú¤Ê¤éreturn
+    if (!$objCybs->enableOndemand()) {
+        return;
+    }
+
+    // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óID¤ò¼èÆÀ
+    $arrSubsIds = $objCybs->getSubsIds();
+    $objPage->cardCount = 0; // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥ó¤ÎÅÐÏ¿·ï¿ô
+    foreach ($arrSubsIds as $subs) {
+        $arrResults = lfSendRequest(lfCreateOndemandRetParam($subs['subs_id'], $subs['merchant_ref_number']));
+
+        if (PEAR::isError($e = lfIsError($arrResults))) {
+            $objPage->tpl_error = $e->getMessage();
+            gfPrintLog(' -> get subs info error: ' . $e->getMessage(), MDL_CYBS_LOG);
+            gfPrintLog(print_r($arrResults, true), MDL_CYBS_LOG);
+            return;
+        }
+        $objPage->cardCount++;
+        $objPage->arrCard[] = $arrResults; // ¥«¡¼¥É¾ðÊó¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Øassign
+    }
+}
+
 /**
  * ¥â¡¼¥É¤ò¼èÆÀ¤¹¤ë
@@ -248,4 +296,5 @@
     $objForm->addParam("»ÙÊ§ÊýË¡", "paymethod", STEXT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
     $objForm->addParam("¥«¡¼¥É¾ðÊó¤ÎÅÐÏ¿", "register_ondemand", 1, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"));
+    $objForm->addParam("»ÈÍÑ¤¹¤ë¥«¡¼¥É", "subs_id", MTEXT_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"));
     $objForm->setParam($arrParam);
     $objForm->convParam();
@@ -263,10 +312,11 @@
     $objRequest = new CYBS_REQ;
 
+    foreach ($arrSendParam as $key => $value) {
+        $objRequest->add_request($key, $value);
+    }
+
+    $arrSendParam['customer_cc_number'] = ''; // ¥«¡¼¥ÉÈÖ¹æ¤Ï¥í¥°ÊÝÂ¸¤·¤Ê¤¤¡£
     gfPrintLog('### send request param ###', MDL_CYBS_LOG);
     gfPrintLog(print_r($arrSendParam, true), MDL_CYBS_LOG);
-
-    foreach ($arrSendParam as $key => $value) {
-        $objRequest->add_request($key, $value);
-    }
 
     if ( ($result = cybs_send($objRequest->requests)) == false ) {
@@ -360,4 +410,19 @@
 }
 
+function lfCreateOndemandRetParam($subsId, $merchant_ref_number) {
+    global $arrCybsRequestURL;
+
+    $objConfig =& Mdl_Cybs_Config::getInstanse();
+    $arrConfig = $objConfig->getConfig();
+
+    return array(
+        'subscription_id'     => $subsId,
+        "ics_applications"    => "ics_pay_subscription_retrieve",
+        "server_host"         => $arrCybsRequestURL[$arrConfig['cybs_request_url']],
+        "server_port"         => "80",
+        'merchant_id'         => $arrConfig['cybs_merchant_id'],
+        'merchant_ref_number' => $merchant_ref_number,
+    );
+}
 /**
  * ics_pa_enroll¥Ñ¥é¥á¡¼¥¿¤ò¹½ÃÛ¤¹¤ë.
@@ -549,7 +614,12 @@
  */
 function lfRegisterOrderTemp($uniqid, $arrForm, $arrResults) {
-    $sqlval = array();
-    $sqlval['memo03'] = $arrForm['card_name01'] . " " . $arrForm['card_name02'];
-    //$sqlval['memo02'] = serialize($arrResults['auth_auth_code']);
+    $sqlval = array(
+        'memo06' => 1,
+        'memo07' => $arrResults['request_token'],
+        'memo08' => $arrResults['request_id'],
+        //'memo08' => $arrResults[''],
+        //'memo09' => $arrResults[''],
+        //'memo10' => $arrResults[''],
+    );
 
     $objQuery = new SC_Query;
Index: branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs.php
===================================================================
--- branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs.php	(revision 17224)
+++ branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs.php	(revision 17230)
@@ -22,4 +22,6 @@
 $objForm = lfInitParam($_POST);
 $objPage->arrForm = $objForm->getFormParamList();
+
+sfAlterMemo(); // dtb_memo¤Ëmemo¥«¥é¥à¤òÄÉ²Ã¤¹¤ë
 
 $mode = isset($_POST['mode']) ? $_POST['mode'] : '';
Index: branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_order_edit.php
===================================================================
--- branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_order_edit.php	(revision 17230)
+++ branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_order_edit.php	(revision 17230)
@@ -0,0 +1,3 @@
+<?php
+
+?>
Index: branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs.inc
===================================================================
--- branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs.inc	(revision 17224)
+++ branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs.inc	(revision 17230)
@@ -90,3 +90,14 @@
 );
 
+define('MDL_CYBS_CREDIT_STATUS_AUTH', '1'); // Í¿¿®
+define('MDL_CYBS_CREDIT_STATUS_AUTHCANCEL', '2');// Í¿¿®¼è¤ê¾Ã¤·
+define('MDL_CYBS_CREDIT_STATUS_CAPTURE', '3'); // Çä¾å
+define('MDL_CYBS_CREDIT_STATUS_RETURN', '4'); // ÊÖ¶â
+
+$arrCybsCreditStatus = array(
+    MDL_CYBS_CREDIT_STATUS_AUTH => 'Í¿¿®',
+    MDL_CYBS_CREDIT_STATUS_AUTHCANCEL => 'Í¿¿®¼è¾Ã',
+    MDL_CYBS_CREDIT_STATUS_CAPTURE => 'Çä¾å',
+    MDL_CYBS_CREDIT_STATUS_RETURN => 'ÊÖ¶â'
+);
 ?>
Index: branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_credit.tpl
===================================================================
--- branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_credit.tpl	(revision 17224)
+++ branches/version-1/data/downloads/module/mdl_cybs/mdl_cybs_credit.tpl	(revision 17230)
@@ -177,23 +177,23 @@
 							</tr>
 							<!--{if $enable_ondemand}-->
-                            <tr>
-                                <td class="fs12" bgcolor="#f3f3f3">¤³¤Î¥«¡¼¥É¾ðÊó¤òÅÐÏ¿¤¹¤ë</td>
-                                <td bgcolor="#ffffff">
-                                <table cellspacing="0" cellpadding="0" summary=" ">
-                                    <tr>
-                                        <!--{assign var=key value="register_ondemand"}-->
-                                        <td class="fs12n">
-                                        <span class="red"><!--{$arrErr[$key]}--></span>
-                                        <input type="checkbox"
-                                               name="<!--{$key}-->"
-                                               value="1"
-                                               maxlength="<!--{$arrForm[$key].length}-->"
-                                               style="<!--{$arrErr[$key]|sfGetErrorColor}-->" <!--{if $arrForm[$key].value}-->checked=checked<!--{/if}-->>¥«¡¼¥É¾ðÊó¤òÅÐÏ¿¤¹¤ë<br>
-                                               ¢¨¥«¡¼¥É¤òÅÐÏ¿¤¹¤ë¤È¡¢¼¡²ó°Ê¹ßÅÐÏ¿¤·¤¿¥«¡¼¥É¤ò»ÈÍÑ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
-                                        </select></td>
-                                    </tr>
-                                </table>
-                                </td>
-                            </tr>
+							<tr>
+								<td class="fs12" bgcolor="#f3f3f3">¤³¤Î¥«¡¼¥É¾ðÊó¤òÅÐÏ¿¤¹¤ë</td>
+								<td bgcolor="#ffffff">
+								<table cellspacing="0" cellpadding="0" summary=" ">
+									<tr>
+										<!--{assign var=key value="register_ondemand"}-->
+										<td class="fs12n">
+										<span class="red"><!--{$arrErr[$key]}--></span>
+										<input type="checkbox"
+											   name="<!--{$key}-->"
+											   value="1"
+											   maxlength="<!--{$arrForm[$key].length}-->"
+											   style="<!--{$arrErr[$key]|sfGetErrorColor}-->" <!--{if $arrForm[$key].value}-->checked=checked<!--{/if}-->>¥«¡¼¥É¾ðÊó¤òÅÐÏ¿¤¹¤ë<br>
+											   ¢¨¥«¡¼¥É¤òÅÐÏ¿¤¹¤ë¤È¡¢¼¡²ó°Ê¹ßÅÐÏ¿¤·¤¿¥«¡¼¥É¤ò»ÈÍÑ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
+										</select></td>
+									</tr>
+								</table>
+								</td>
+							</tr>
 							<!--{/if}-->
 						</table>
@@ -218,8 +218,70 @@
 							</tr>
 						</table>
-
-						</td>
-					</tr>
-				</table>
+						</td>
+					</tr>
+				</table>
+
+				<!--{if $enable_ondemand && $cardCount > 0}-->
+				<table width="666" border="0" cellspacing="0" cellpadding="0" summary=" ">
+					<tr><td height="5" class="fs12"></td></tr>
+					<tr>
+						<td bgcolor="#cccccc">
+						<table width="666" border="0" cellspacing="1" cellpadding="10" summary=" ">
+							<tr>
+								<td class="fs12" bgcolor="#f3f3f3">ÅÐÏ¿ºÑ¤ß¤Î¥«¡¼¥É¤ò»ÈÍÑ¤¹¤ë¾ì¹ç¤Ï¡¢»ÈÍÑ¤¹¤ë¥«¡¼¥É¤òÁªÂò¤·¤Æ²¼¤µ¤¤¡£</td>
+							</tr>
+						</table>
+						</td>
+					</tr>
+					<tr><td height="5" class="fs12"></td></tr>
+					<tr>
+						<td bgcolor="#cccccc">
+						<table width="666" border="0" cellspacing="1" cellpadding="10" summary=" ">
+							<tr>
+								<td class="fs12" bgcolor="#f3f3f3">ÁªÂò</td>
+								<td class="fs12" bgcolor="#f3f3f3">¥«¡¼¥ÉÈÖ¹æ</td>
+								<td class="fs12" bgcolor="#f3f3f3">Í­¸ú´ü¸Â</td>
+							</tr>
+							<!--{if $arrErr.subs_id}-->
+                            <tr>
+                                <td class="fs12" bgcolor="#ffffff" colspan="3"><span class="red"><!--{$arrErr.subs_id}--></span></td>
+                            </tr>
+                            <!--{/if}-->
+							<!--{foreach from=$arrCard item=card}-->
+							<tr>
+								<td class="fs12" bgcolor="#ffffff"><input type="radio" name="subs_id" value="<!--{$card.pay_subscription_retrieve_subscription_id}-->"></td>
+								<td class="fs12" bgcolor="#ffffff"><!--{$card.pay_subscription_retrieve_customer_cc_number}--></td>
+								<td class="fs12" bgcolor="#ffffff">
+									<!--{$card.pay_subscription_retrieve_customer_cc_expmo}-->·î/<!--{$card.pay_subscription_retrieve_customer_cc_expyr}-->
+								</td>
+							</tr>
+							<!--{/foreach}-->
+						</table>
+						</td>
+					</tr>
+				</table>
+
+				<table width="666" border="0" cellspacing="0" cellpadding="0" summary=" ">
+					<tr><td height="5"></td></tr>
+					<tr>
+						<td align="center" bgcolor="#f7f5f4">
+						<table width="666" border="0" cellspacing="0" cellpadding="6" summary=" ">
+							<tr>
+								<td class="fs12st" align="center">°Ê¾å¤ÎÆâÍÆ¤Ç´Ö°ã¤¤¤Ê¤±¤ì¤Ð¡¢²¼µ­¡ÖÃíÊ¸´°Î»¥Ú¡¼¥¸¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£<br>
+								<span class="orange">¢¨²èÌÌ¤¬ÀÚ¤êÂØ¤ë¤Þ¤Ç¾¯¡¹»þ´Ö¤¬¤«¤«¤ë¾ì¹ç¤¬¤´¤¶¤¤¤Þ¤¹¤¬¡¢¤½¤Î¤Þ¤Þ¤ªÂÔ¤Á¤¯¤À¤µ¤¤¡£</span></td>
+							</tr>
+							<tr>
+								<td align="center" height="40" bgcolor="#f7f5f4">
+									<a href="#" onclick="document.form2.submit(); return false;" onmouseover="chgImgImageSubmit('<!--{$smarty.const.URL_DIR}-->img/common/b_back_on.gif',back03)" onmouseout="chgImgImageSubmit('<!--{$smarty.const.URL_DIR}-->img/common/b_back.gif',back03)"><img src="<!--{$smarty.const.URL_DIR}-->img/common/b_back.gif" width="150" height="30" alt="Ìá¤ë" border="0" name="back03" id="back03"/></a><img src="<!--{$smarty.const.URL_DIR}-->img/_.gif" width="12" height="" alt="" />
+									<input type="image" onclick="document.form1['mode'].value = 'ondemand'; return fnCheckSubmit();" onmouseover="chgImgImageSubmit('<!--{$smarty.const.URL_DIR}-->img/common/b_next_on.gif',this)" onmouseout="chgImgImageSubmit('<!--{$smarty.const.URL_DIR}-->img/common/b_next.gif',this)" src="<!--{$smarty.const.URL_DIR}-->img/common/b_next.gif" width="150" height="30" alt="¼¡¤Ø" border="0" name="next" id="next" />
+								</td>
+							</tr>
+						</table>
+
+						</td>
+					</tr>
+				</table>
+				<!--{/if}-->
+
 				</td>
 			</tr>
Index: branches/version-1/data/downloads/module/mdl_cybs/class/mdl_cybs_config.php
===================================================================
--- branches/version-1/data/downloads/module/mdl_cybs/class/mdl_cybs_config.php	(revision 17224)
+++ branches/version-1/data/downloads/module/mdl_cybs/class/mdl_cybs_config.php	(revision 17230)
@@ -161,4 +161,14 @@
      * ²ñ°÷¤Î¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óID¤òÊÖ¤¹.
      *
+     * array(
+     *    'subs_id' => '***',
+     *    'merchant_ref_number' => '***',
+     * ),
+     * array(
+     *    'subs_id' => '***',
+     *    'merchant_ref_number' => '***',
+     * ),
+     * ...
+     *
      * @return array
      */
@@ -166,13 +176,13 @@
         $objCustomer = new SC_Customer;
         $objCustomer->updateSession();
-        $subsIdsString = $objCustomer->getValue('cybs_subs_id');
-
-        if (is_null($subsIdsString)) {
+        $subsDataString = $objCustomer->getValue('cybs_subs_id');
+
+        if (is_null($subsDataString)) {
             return array();
         }
 
-        $arrSubsIds = unserialize($subsIdsString);
-
-        return is_array($arrSubsIds) ? $arrSubsIds : array();
+        $subsData = unserialize($subsDataString);
+
+        return is_array($subsData) ? $subsData : array();
     }
 
@@ -181,7 +191,8 @@
      *
      * @param string $subsId
+     * @param integer $merchant_ref_number
      * @param array $arrSubsResults
      */
-    function addSubsId($subsId) {
+    function addSubsId($subsId, $merchant_ref_number) {
         if (!$this->canAddSubsId()) {
             return;
@@ -192,9 +203,14 @@
         $arrSubsId = $this->getSubsIds();
 
-        print_r($arrSubsId);
         // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óID¤¬´û¤ËÂ¸ºß¤¹¤ë¾ì¹ç¤ÏÄÉ²Ã¤·¤Ê¤¤
-        if (in_array($subsId, $arrSubsId)) return;
-
-        $arrSubsId[] = $subsId;
+        foreach($arrSubsId as $subs) {
+            if ($subs['subs_id'] == $subsId) {
+                return;
+            }
+        }
+
+        $arrSubsId[] = array(
+            'subs_id' => $subsId,
+            'merchant_ref_number' => $merchant_ref_number);
         $arrUpdate = array('cybs_subs_id' => serialize($arrSubsId));
 
@@ -209,6 +225,6 @@
      */
     function canAddSubsId() {
-        $arrSubsIds = $this->getSubsIds();
-        if (is_array($arrSubsIds) && count($arrSubsIds) < MDL_CYBS_SUBS_ID_MAX) {
+        $arrSubsData = $this->getSubsIds();
+        if (is_array($arrSubsData) && count($arrSubsData) < MDL_CYBS_SUBS_ID_MAX) {
             return true;
         }
