Estoy trabajando en un proyecto de Laravel 8. Aquí necesito integrar una API SOAP. La llamada de la URL está funcionando y la URL de devolución de llamada también está funcionando. Pero el problema es que cuando llamo a la URL de la API, el usuario se desconecta automáticamente. Urgente necesidad de solucionar este problema. Aquí está mi controlador para llamar a la API. Gracias por adelantado.
public function dbblpay(Request $req){ $errmsg = ""; $userid = '*******'; $pwd = '**********'; $dbblurl = "https://ecomtest.dutchbanglabank.com"; try { $txnrefnum = $req->payref; $clientIp = $_SERVER['REMOTE_ADDR']; $cardType = $req->optcard; $totalamount = $req->total; $wsdlUrl = $dbblurl.'/ecomws/dbblecomtxn?wsdl'; $options = array( 'cache_wsdl' => 0, 'trace' => 1, 'stream_context' => stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ))); $client = new SoapClient($wsdlUrl, $options); $cParameters = array( 'userid' => $userid, 'pwd' => $pwd, 'amount' => $totalamount, 'cardtype' => $cardType, 'txnrefnum' => $txnrefnum, 'clientip' => $clientIp ); $result = $client->getransid($cParameters); foreach ($result as $value) $TRANSACTION_ID = "N/A"; $part1 = ""; $part2 = ""; $errmsg = ''; if (strpos($value,"TRANSACTION_ID") !== false) { $arr = explode(":",$value); $part1 = $arr[0]; $part2 = $arr[1]; if ($part1 == "TRANSACTION_ID") { $TRANSACTION_ID = $part2; $_SESSION['trans_id'] = $TRANSACTION_ID; setcookie('trans_id',$TRANSACTION_ID,time()+300,"/"); $trans_id_en = urlencode($TRANSACTION_ID); header("Location: ".$dbblurl."/ecomm2/ClientHandler?card_type=".$cardType."&trans_id=".$trans_id_en); exit(); } else { $errmsg = $value; return view('dbbl.dbblcheckout', compact('errmsg')); } } else { $errmsg = $value; return view('dbbl.dbblcheckout', compact('errmsg')); } } catch(Exception $e) { $errmsg = "System Problem"; } }Descubrí el problema por mí mismo.
En el archivo config/session.php cambié la configuración de 'same_site' => "strict", a 'same_site' => "lax", y funcionó para mí.