GMOペイメントプラグインのエラー 投稿する

投稿者:s_sato  投稿日時:2024-03-15 14:56:27
いつもお世話になっております。
GMOペイメントプラグイン(プロトコル版Ver1.1)で、ここ数日以下のエラーが出るようになりました。
決済完了の時に出たエラーで、決済自体は問題なく出来ていました。

------------
Fatal error: Uncaught TypeError: Argument 1 passed to soyshop_redirect_cart() must be of the type string, null given, called in /home/dayshop/www/***/soyshop/webapp/src/module/plugins/payment_gmo_protocol/soyshop.payment.php on line 176 and defined in /home/dayshop/www/***/soyshop/webapp/src/base/func/common.php:320 Stack trace: #0 /home/dayshop/www/***/soyshop/webapp/src/module/plugins/payment_gmo_protocol/soyshop.payment.php(176): soyshop_redirect_cart(NULL) #1 /home/dayshop/www/***/soyshop/webapp/src/logic/plugin/extensions/soyshop.payment.php(106): SOYShopGmoProtocolPaymentModule->onPostOptionPage() #2 /home/dayshop/www/***/soyshop/webapp/lib/soy2_build.php(8685): SOYShopPaymentDeletageAction->run('soyshop.payment...', 'payment_gmo_pro...', Object(SOYShopGmoProtocolPaymentModule)) #3 /home/dayshop/www/***/soyshop/webapp/src/cart/_common/pages/Cart05Page.class.php(26): SOY2Plugin::invoke('soyshop.payment...', Array) #4 /home/dayshop/www/***/soyshop/webapp/lib/soy2_build. !
in /home/dayshop/www/***/soyshop/webapp/src/base/func/common.php on line 320
----------------
どういったエラーなのかわかりますでしょうか。
よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2024-03-15 14:58:20
/home/dayshop/www/***/soyshop/webapp/src/module/plugins/payment_gmo_protocol/soyshop.payment.php on line 176

/home/dayshop/www/***/soyshop/webapp/src/base/func/common.php:320
の箇所のコードをお伝え下さい。

ご使用されているバージョンは古いみたいで、こちらにあるコードでは内容が確認できませんでした。
投稿者:s_sato  投稿日時:2024-03-18 10:10:00
ありがとうございます。
/home/dayshop/www/***/soyshop/webapp/src/module/plugins/payment_gmo_protocol/soyshop.payment.php on line 176
の方ですが、コメントアウト行でしたので、その付近をコピペしてみます。

-----------------------------------------------------
/home/dayshop/www/***/soyshop/webapp/src/module/plugins/payment_gmo_protocol/soyshop.payment.php on line 176

// 新しいカードを使うときはカードを登録 トークン化に伴い、使用しない
$cardSeq = null;
// if(isset($_POST["cardNo"]) && isset($_POST["expire"])){
// $cardSeq = $gmoInterface->sendSaveCard($user->getId(), $_POST["cardNo"], $_POST["expire"]);
// }

// 既存のカードを使用するとき トークン化に伴い、使用しない
// if(isset($_POST["use_registered_card"]) && $_POST["use_registered_card"] == "registered"){
// $temp = isset($_POST["registered_card"]) ? explode("_", $_POST["registered_card"]) : array();
// if(count($temp)>1){
// $cardSeq = $temp[1];
// }
// }

//トークン化の場合
$token = null;
if(isset($_POST["token"]) && strlen($_POST["token"])){
$token = $_POST["token"];
}


// 決済の実行
$result = $gmoInterface->sendExecTran($this->getCart(), $cardSeq, $token);

//実行結果の処理 3Dセキュアしないカードだった時
if(!isset($result["ACSUrl"])){
$res = $this->exeResult($result);
if($res){
$this->getCart()->setAttribute("page", "Complete");
$param = null;
if(isset($_GET[session_name()])){
$param = session_name() . "=" . session_id();
}
soyshop_redirect_cart($param);
exit;
}
}
}


----------------------------------------------------------
/home/dayshop/www/***/soyshop/webapp/src/base/func/common.php:320

//多言語化対応
if(defined("SOYSHOP_PUBLISH_LANGUAGE")){
SOY2::import("module.plugins.util_multi_language.util.UtilMultiLanguageUtil");
if(class_exists("UtilMultiLanguageUtil")){
$config = UtilMultiLanguageUtil::getConfig();
if(isset($config[SOYSHOP_PUBLISH_LANGUAGE]["prefix"]) && strlen($config[SOYSHOP_PUBLISH_LANGUAGE]["prefix"])){
if(strpos($cartUri, "/")){
$cartUri = str_replace("/", "/" . $config[SOYSHOP_PUBLISH_LANGUAGE]["prefix"] . "/", $cartUri);
}else{
$cartUri = $config[SOYSHOP_PUBLISH_LANGUAGE]["prefix"] . "/" . $cartUri;
}
}
}
}

define("SOYSHOP_CART_URI", $cartUri);
return SOYSHOP_CART_URI;
}
----------------------------------------------------------
よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2024-03-18 11:02:34
ありがとうございます。

/home/dayshop/www/***/soyshop/webapp/src/module/plugins/payment_gmo_protocol/soyshop.payment.php on line 176
ですが、現在のバージョンで禁止されている記述があります。

$param = null;
if(isset($_GET[session_name()])){
$param = session_name() . "=" . session_id();
}
soyshop_redirect_cart($param);

$param = "";
if(isset($_GET[session_name()])){
$param = session_name() . "=" . session_id();
}
soyshop_redirect_cart($param);
に変更してみてください。
投稿者:s_sato  投稿日時:2024-03-18 11:16:51
エラー表示が消えました!
ありがとうございました。
ログインして投稿する