Index: branches/feature-module-update/data/downloads/module/mdl_epsilon/card.php
===================================================================
--- branches/rel/data/downloads/module/mdl_epsilon/card.php (revision 12157)
+++ branches/feature-module-update/data/downloads/module/mdl_epsilon/card.php (revision 15078)
@@ -12,10 +12,10 @@
class LC_Page {
function LC_Page() {
- /** ɬ¤º»ØÄꤹ¤ë **/
- $this->tpl_mainpage = 'mdl_epsilon/card.tpl'; // ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+ /** 必ず指定する **/
+ $this->tpl_mainpage = 'mdl_epsilon/card.tpl'; // メインテンプレート
/*
- session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
- ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤Î͸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£
- private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+ session_start時のno-cacheヘッダーを抑制することで
+ 「戻る」ボタン使用時の有効期限切れ表示を抑制する。
+ private-no-expire:クライアントのキャッシュを許可する。
*/
session_cache_limiter('private-no-expire');
@@ -29,29 +29,29 @@
$arrInfo = $objSiteInfo->data;
-// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ¤ò¥Á¥§¥Ã¥¯
+// ユーザユニークIDの取得と購入状態の正当性をチェック
$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
-// ¥«¡¼¥È½¸·×½èÍý
+// カート集計処理
$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
-// °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆɹþ
+// 一時受注テーブルの読込
$arrData = sfGetOrderTemp($uniqid);
-// ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
+// カート集計を元に最終計算
$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
-// Âåɽ¾¦ÉʾðÊó
+// 代表商品情報
$arrMainProduct = $objPage->arrProductsClass[0];
-// »Ùʧ¤¤¾ðÊó¤ò¼èÆÀ
+// 支払い情報を取得
$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"]));
-// trans_code¤ËÃͤ¬¤¢¤ê³î¤Ä¡¢Àµ¾ï½ªÎ»¤Î¤È¤¤Ï¥ª¡¼¥À¡¼³Îǧ¤ò¹Ô¤¦¡£
+// trans_codeに値があり且つ、正常終了のときはオーダー確認を行う。
if($_GET["result"] == "1"){
- // Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµÏ¿¤·¤Æ¤ª¤¯
+ // 正常な推移であることを記録しておく
$objSiteSess->setRegistFlag();
- // GET¥Ç¡¼¥¿¤òÊݸ
+ // GETデータを保存
$arrVal["credit_result"] = $_GET["result"];
$arrVal["memo01"] = PAYMENT_CREDIT_ID;
@@ -59,9 +59,9 @@
$sqlval["memo04"] = sfGetXMLValue($arrXML,'RESULT','TRANS_CODE');
- // ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¥³¡¼¥É
- $arrMemo["trans_code"] = array("name"=>"Epsilon¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¥³¡¼¥É", "value" => $_GET["trans_code"]);
+ // トランザクションコード
+ $arrMemo["trans_code"] = array("name"=>"Epsilonトランザクションコード", "value" => $_GET["trans_code"]);
$arrVal["memo02"] = serialize($arrMemo);
- // ·èºÑÁ÷¿®¥Ç¡¼¥¿ºîÀ®
+ // 決済送信データ作成
$arrModule['module_id'] = MDL_EPSILON_ID;
$arrModule['payment_total'] = $arrPayment[0]["payment_total"];
@@ -69,8 +69,8 @@
$arrVal["memo05"] = serialize($arrModule);
- // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ë¹¹¿·
+ // 受注一時テーブルに更新
sfRegistTempOrder($uniqid, $arrVal);
- // ´°Î»²èÌ̤Ø
+ // 完了画面へ
if (is_callable(GC_MobileUserAgent) && GC_MobileUserAgent::isMobile()) {
header("Location: " . gfAddSessionId(URL_SHOP_COMPLETE));
@@ -80,43 +80,43 @@
}
-// ¥Ç¡¼¥¿Á÷¿®
+// データ送信
lfSendCredit($arrData, $arrPayment, $arrMainProduct);
//---------------------------------------------------------------------------------------------------------------------------------------------------------
-// ¥Ç¡¼¥¿Á÷¿®½èÍý
+// データ送信処理
function lfSendCredit($arrData, $arrPayment, $arrMainProduct, $again = true){
global $objSiteSess;
global $objCampaignSess;
- // ¥Ç¡¼¥¿Á÷¿®ÀèCGI
+ // データ送信先CGI
$order_url = $arrPayment[0]["memo02"];
- // Èó²ñ°÷¤Î¤È¤¤Ï user_id ¤Ë not_member¤ÈÁ÷¤ë
+ // 非会員のときは user_id に not_memberと送る
($arrData["customer_id"] == 0) ? $user_id = "not_member" : $user_id = $arrData["customer_id"];
- // Á÷¿®¥Ç¡¼¥¿À¸À®
- $item_name = $arrMainProduct["name"] . "¡ß" . $arrMainProduct["quantity"] . "¸Ä (Âåɽ)";
+ // 送信データ生成
+ $item_name = $arrMainProduct["name"] . "×" . $arrMainProduct["quantity"] . "個 (代表)";
$arrSendData = array(
- 'contract_code' => $arrPayment[0]["memo01"], // ·ÀÌ󥳡¼¥É
- 'user_id' => $user_id , // ¥æ¡¼¥¶ID
- 'user_name' => $arrData["order_name01"].$arrData["order_name02"], // ¥æ¡¼¥¶Ì¾
- 'user_mail_add' => $arrData["order_email"], // ¥á¡¼¥ë¥¢¥É¥ì¥¹
- 'order_number' => $arrData["order_id"], // ¥ª¡¼¥À¡¼ÈÖ¹æ
- 'item_code' => $arrMainProduct["product_code"], // ¾¦ÉÊ¥³¡¼¥É(Âåɽ)
- 'item_name' => $item_name, // ¾¦ÉÊ̾(Âåɽ)
- 'item_price' => $arrData["payment_total"], // ¾¦ÉʲÁ³Ê(Àǹþ¤ßÁí³Û)
- 'st_code' => $arrPayment[0]["memo04"], // ·èºÑ¶èʬ
- 'mission_code' => '1', // ²Ý¶â¶èʬ(¸ÇÄê)
- 'process_code' => '1', // ½èÍý¶èʬ(¸ÇÄê)
- 'xml' => '1', // ±þÅú·Á¼°(¸ÇÄê)
- 'memo1' => "", // ͽÈ÷01
- 'memo2' => ECCUBE_PAYMENT . "_" . date("YmdHis"), // ͽÈ÷02
+ 'contract_code' => $arrPayment[0]["memo01"], // 契約コード
+ 'user_id' => $user_id , // ユーザID
+ 'user_name' => $arrData["order_name01"].$arrData["order_name02"], // ユーザ名
+ 'user_mail_add' => $arrData["order_email"], // メールアドレス
+ 'order_number' => $arrData["order_id"], // オーダー番号
+ 'item_code' => $arrMainProduct["product_code"], // 商品コード(代表)
+ 'item_name' => $item_name, // 商品名(代表)
+ 'item_price' => $arrData["payment_total"], // 商品価格(税込み総額)
+ 'st_code' => $arrPayment[0]["memo04"], // 決済区分
+ 'mission_code' => '1', // 課金区分(固定)
+ 'process_code' => '1', // 処理区分(固定)
+ 'xml' => '1', // 応答形式(固定)
+ 'memo1' => "", // 予備01
+ 'memo2' => ECCUBE_PAYMENT . "_" . date("YmdHis"), // 予備02
);
- // ¥Ç¡¼¥¿Á÷¿®
+ // データ送信
$arrXML = sfPostPaymentData($order_url, $arrSendData);
- // ¥¨¥é¡¼¤¬¤¢¤ë¤«¥Á¥§¥Ã¥¯¤¹¤ë
+ // エラーがあるかチェックする
$err_code = sfGetXMLValue($arrXML,'RESULT','ERR_CODE');
@@ -124,15 +124,15 @@
$err_detail = sfGetXMLValue($arrXML,'RESULT','ERR_DETAIL');
- // ·èºÑ¶èʬ¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï VISA,MASTER ¤Î¤ß¤ÇºÆÁ÷¿®¤ò»î¤ß¤ë
+ // 決済区分エラーの場合には VISA,MASTER のみで再送信を試みる
if($err_code == "909" and $again){
$arrPayment[0]["memo04"] = "10000-0000-00000";
lfSendCredit($arrData, $arrPayment, $arrMainProduct, false);
}
- sfDispSiteError(FREE_ERROR_MSG, "", true, "¹ØÆþ½èÍýÃæ¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£
¡¦" . $err_detail . "
¤³¤Î¼ê³¤¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£");
+ sfDispSiteError(FREE_ERROR_MSG, "", true, "購入処理中に以下のエラーが発生しました。
・" . $err_detail . "
この手続きは無効となりました。");
} else {
- // Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµÏ¿¤·¤Æ¤ª¤¯
+ // 正常な推移であることを記録しておく
$objSiteSess->setRegistFlag();
- // ·ÈÂÓüËö¤Î¾ì¹ç¤Ï¡¢¥»¥Ã¥·¥ç¥óID¡¦¥ª¡¼¥À¡¼Èֹ桦Ìá¤Ã¤Æ¤¯¤ëURL¤òÊݸ¤·¤Æ¤ª¤¯¡£
+ // 携帯端末の場合は、セッションID・オーダー番号・戻ってくるURLを保存しておく。
if (is_callable(GC_MobileUserAgent) && GC_MobileUserAgent::isMobile()) {
sfMobileSetExtSessionId('order_number', $arrData['order_id'], 'shopping/load_payment_module.php');