我是一名后端开发人员,在使用 Android google chrome 时遇到了重定向问题。
我开发的网站与支付网关集成。
付款流程如下:-
1- 在网站数据库上创建的付款订单。
2- API 请求发送到支付网关以创建支付请求。
3- 提供支付 URL 的 API 网关响应。
4- 用户被重定向到该支付 URL。
5-一旦用户成功支付并捕获支付状态,支付网关网站通过以下链接将用户重定向回我的网站:-
6-在处理路由(/payment/callback)的后端代码控制器中,我有以下php代码:-
public function callback(Request $request)
{
// Check if cancelled value = 1 (user cancelled) OR cancelled in knet payment page
if ($request->cancelled OR (!$request->cancelled && $request->Result == 'CANCELED') OR $request->Result != 'CAPTURED')
{
//Here to return to view if the payment is cancelled in gateway payment page
echo 'the request cancelled';
return redirect()->route('payment_status')->with($request->all());
}
//Query order
$order = Order::where('payment_ref',$request->hash)->first();
\Auth::login($order->user);
if ($order == null) {
return 'Could Not Find Order, Please Contact IT Support';
}
if (!$request->cancelled && $request->Result = 'CAPTURED')
{
if ($order->status === 'closed'){
die('This Page Has Been Expired');
}
$order->status = 'closed';
$order->save();
return redirect()->route('payment_status')->with($request->all());
}
问题是当用户使用谷歌浏览器(Android 版本)时向他显示一条消息:-
此页面已过期
虽然它应该向他显示交易详细信息,但由以下代码制作(其他浏览工作正常):-
return redirect()->route('payment_status')->with($request->all());
我尝试使用以下 google chrome 手机(Samsung Note 9 和 OnePlus 3T)。
*使用的 php 框架(Laravel)。
请指教。