Fix 401 error on sign request on verify
This commit is contained in:
@@ -105,15 +105,33 @@ class WalletPaymentController extends Controller
|
||||
throw new UnprocessableEntityHttpException('پرداخت آنلاین فعال نیست');
|
||||
}
|
||||
|
||||
$payload = array_filter([
|
||||
'status' => $request->input('status'),
|
||||
'reference_id' => $request->input('reference_id'),
|
||||
'session_id' => $request->input('session_id'),
|
||||
'amount' => $request->input('amount'),
|
||||
'track_number' => $request->input('track_number'),
|
||||
'timestamp' => $request->input('timestamp'),
|
||||
'signature' => $request->input('signature'),
|
||||
], static fn ($v) => $v !== null && $v !== '');
|
||||
$payload = [];
|
||||
foreach ([
|
||||
'status',
|
||||
'reference_id',
|
||||
'session_id',
|
||||
'amount',
|
||||
'track_number',
|
||||
'timestamp',
|
||||
'signature',
|
||||
] as $key) {
|
||||
if (!$request->has($key)) {
|
||||
continue;
|
||||
}
|
||||
$value = $request->input($key);
|
||||
if ($value === null || is_array($value)) {
|
||||
continue;
|
||||
}
|
||||
// track_number خالی هم ممکن است در امضا باشد
|
||||
$payload[$key] = (string) $value;
|
||||
}
|
||||
|
||||
if (($payload['signature'] ?? '') === '' || ($payload['reference_id'] ?? '') === '') {
|
||||
return response()->json([
|
||||
'ok' => false,
|
||||
'message' => 'پارامترهای بازگشت ناقص است',
|
||||
], 422);
|
||||
}
|
||||
|
||||
$synthetic = Request::create('/', 'GET', $payload);
|
||||
$result = $gateway->handleReturn($synthetic);
|
||||
|
||||
Reference in New Issue
Block a user