6月 26

PCでは問題なくクレジット決済で購入できるのに、モバイルではできない問題に直面。
クレジット決済画面でカード番号などを入力したあと、自サイト(EC-CUBE)に戻ってきたときに「不正なページ移動です」とでる。
ちなみに、コンビニ決済は問題なし。

ということはセッション絡みということはわかるんやけど、どこが悪いのかが分からない…

しかし、神は私を見放さなかった!

EC-CUBEコミュで解決策がありました。
micaさん、感謝します。あなたは私にとっての神です。
/data/class/session/SC_SessionFactory.phpを以下のように修正

function getInstance() {

$type = defined('SESSION_KEEP_METHOD')  ?  SESSION_KEEP_METHOD  :  '';

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

switch($type) {
// セッションの維持にリクエストパラメータを使用する
case 'useRequest':
$session = new SC_SessionFactory_UseRequest;
defined('MOBILE_SITE')
? $session->setState('mobile')
: $session->setState('pc');
break;

// クッキーを使用する
case 'useCookie':
default:
$session = new SC_SessionFactory_UseCookie;
break;
}

return $session;
}

このスレは「モバイルで商品の注文ができません」ということで、買い物かごにすら商品が入らない現象だったので、私の現象とは違うだろうと思っていた。
先入観で決め付けず、とりあえず試してみることは大事だと、改めて思った。

written by sixbird \\ tags: , , ,