バージョン選択

フォーラム

メニュー

オンライン状況

118 人のユーザが現在オンラインです。 (106 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 118
もっと...

サイト内検索

質問 > フロント機能 > イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
topo
投稿日時: 2008/8/29 17:37
対応状況: −−−
常連
登録日: 2008/6/11
居住地: 岡山
投稿: 64
【解決!】テスト結果4
seasoft様から『2.3.0-RC』がかなり本気だと伺ったので
現状の『正式版2.1.2』と『2.3.0-RC』の比較をしっかりしてみました。

結果として原因判明しました!
どうも私のとっている環境での設定が問題解決の邪魔を1つしていたようでした・・・><

ひとまず解決しましたのでご報告しておきます。
ご協力頂いた方々、有難うございました〜!

----------------------------------------
【0】www\data\install.php
→クライアントの要望により携帯のパスを『mobile』から変更していた。

引用:

define ('MOBILE_HTML_PATH', HTML_PATH . 'i/');
define ('MOBILE_SITE_URL', SITE_URL . 'i/');
define ('MOBILE_SSL_URL', SSL_URL . 'i/');
define ('MOBILE_URL_DIR', URL_DIR . 'i/');


----------------------------------------
【1】data\shopping\load_payment_module.php
→以下の処理が増えているものの今回の話には関係なさそうなので
 考えない事とする。

引用:

// SPSモジュール連携用
if (file_exists(MODULE_PATH . 'mdl_sps/inc/include.php')
&& !$objCartSess->getTotalQuantity()) {

require_once MODULE_PATH . 'mdl_sps/inc/include.php';
header("Location: " . ERROR_URL);
exit;
}


----------------------------------------
【2】www\require.php
→『require_base.php』に大部分の処理がまとまっている。
 【追加】テスト結果3のようにセッションの取得位置が違うので
 リダイレクトの前に持ってくる。

引用:

// セッション初期化・開始
require_once CLASS_PATH . 'session/SC_SessionFactory.php';
$sessionFactory = SC_SessionFactory::getInstance();
$sessionFactory->initSession();


----------------------------------------
【3】www\data\class\session\sc_sessionfactory.php
→比較を取ってみたが特に変更は無し。
 成功事例にならって以下のロジックは追加。
 
引用:

// *******************************************************
// モバイル用ページの場合はセッション管理をuseRequestで固定。
$type = defined('MOBILE_SITE') ? 'useRequest' : $type;
// *******************************************************

switch($type) {


----------------------------------------
【4】data\class\session\sessionfactory\sc_sessionfactory_userequest.php
→比較を取ってみたが特に変更は無し。
 結局ここで既存のセッションが取れず『session_start();』に行ってしまうのが問題か?

引用:

function initSession() {
// セッションIDの受け渡しにクッキーを使用しない。
ini_set('session.use_cookies', '0');

// パラメーターから有効なセッションIDを取得する。
$sessionId = $this->getSessionId();

if (!$sessionId) {
session_start();
}

// セッションIDまたはセッションデータが無効な場合は、セッションIDを再生成
// し、セッションデータを初期化する。
if ($sessionId === false || !$this->validateSession()) {
session_regenerate_id(true);
// セッションデータの初期化
$this->state->inisializeSessionData();

// 新しいセッションIDを付加してリダイレクトする。
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
// GET の場合は同じページにリダイレクトする。
$objMobile = new SC_Helper_Mobile_Ex;
header('Location: ' . $objMobile->gfAddSessionId());
} else {
// GET 以外の場合はトップページへリダイレクトする。
header('Location: ' . URL_SITE_TOP . '?' . SID);
}
exit;
}

// 有効期限を更新する.
$this->state->updateExpire();
}


----------------------------------------
【5】data\class\session\sessionfactory\sc_sessionfactory_userequest.php
→問題の『getSessionId』の箇所。
 本当の要は『getExtSessionId』でデータがどれるかどうか。

引用:

function getSessionId() {
// パラメーターからセッションIDを取得する。
$sessionId = @$_POST[session_name()];
if (!isset($sessionId)) {
$sessionId = @$_GET[session_name()];
}
if (!isset($sessionId)) {
$sessionId = $this->getExtSessionId();
}
if (!isset($sessionId)) {
return false;
}

// セッションIDの存在をチェックする。
$objSession = new SC_Helper_Session_Ex();
if ($objSession->sfSessRead($sessionId) === null) {
GC_Utils_Ex::gfPrintLog("Non-existent session id : sid=$sessionId");
return false;
}
return session_id($sessionId);
}


----------------------------------------
【6】data\class\session\sessionfactory\sc_sessionfactory_userequest.php
→ここでのデータ取得に失敗しているので結局うまく動かない。
 以下のようにデバッグプリントを仕込む。

引用:

function getExtSessionId() {
if (!preg_match('|^' . URL_DIR . '(.*)$|', $_SERVER['SCRIPT_NAME'], $matches)) {
return null;
}

$url = $matches[1];
$lifetime = $this->state->getLifeTime();
$time = date('Y-m-d H:i:s', time() - $lifetime);
$objQuery = new SC_Query;

$test_msg = "" ;

foreach ($_REQUEST as $key => $value) {
$session_id = $objQuery->get("dtb_mobile_ext_session_id", "session_id",
"param_key = ? AND param_value = ? AND url = ? AND create_date >= ?",
array($key, $value, $url, $time));

$test_msg = $test_msg . "$key, $value, $url, $time : $session_id #" ;

if (isset($session_id)) {
return $session_id;
}
}

// モバイルサイトの時だけ特別エラーへ
if ( defined('MOBILE_SITE') && $test_msg ) {
SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, "", true, "$test_msg");
}

return null;
}


----------------------------------------
【7】www\data\downloads\module\mdl_epsilon\lc_page_mdl_epsilon_credit.php
→原因判明!
 『mobile/shopping...』のように書いてある為に『dtb_mobile_ext_session_id』テーブルの『url』カラムに
 入ってくるデータが『mobile/shopping...』になり、当社で求めている『i/shopping...』では無い為に
 セッションIDが取れていない事が判明。修正して解決へ!

引用:

// 携帯端末の場合は、セッションID・オーダー番号・戻ってくるURLを保存しておく。
if (is_callable("SC_MobileUserAgent", "isMobile") && SC_MobileUserAgent::isMobile()) {
SC_Helper_Mobile::sfMobileSetExtSessionId('order_number', $arrData['order_id'], 'mobile/shopping/load_payment_module.php');
SC_Helper_Mobile::sfMobileSetExtSessionId('order_number', $arrData['order_id'], 'mobile/shopping/confirm.php');
}

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 yaris 2008/7/4 10:22
     Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 homan 2008/7/4 15:05
       Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 yaris 2008/7/4 15:11
         Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 yaris 2008/7/4 15:43
           Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 homan 2008/7/4 16:02
             Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 yaris 2008/7/4 16:23
               Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 homan 2008/7/4 17:48
                 Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 yaris 2008/7/8 13:47
                   Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 john 2008/7/16 14:56
                     Re: イプシロンの「カード決済」を携帯で行うと「不正なページ移動です。」となる。 yaris 2008/7/18 11:20
                       うまく行きません・・・ topo 2008/8/28 21:18
                         【追加】テスト結果1 topo 2008/8/29 10:34
                           Re: 【追加】テスト結果1 yamane 2008/8/29 10:49
                             【追加】テスト結果2 topo 2008/8/29 11:06
                               【追加】テスト結果3 topo 2008/8/29 12:41
                               » 【解決!】テスト結果4 topo 2008/8/29 17:37
                                   Re: 【解決!】テスト結果4 nakata 2008/8/29 18:23
                                     Re: 【解決!】テスト結果4 topo 2008/8/29 18:47

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,031名です
総投稿数は110,282件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1677
8
red
1570
9
mcontact
1343
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.