I have some PHP code whereby I post data to an API and get some response data. When a user pays the response status from the API should change. I am trying to delay the execution of PHP code and wait for 15 seconds before getting the payment status from the API which is not working as expected.. I have no idea how to do that in PHP or rather Laravel Queues since am using Laravel 5.4
~ Kindly assist?
$data = array(
'payment_reference' => $checkID,
'payment_type' => $type
);
//Post request to an API and get the status and store in a variable
$paySt = $this->global_Curl($data, 'api/payment/status')->data;
sleep(15);
//Second call to the API after sleep to check if status has changed
$payStat = $this->global_Curl($data, 'api/payment/status')->data;
if($payStat->status === '1'){
return 'true';
}
sleep()
function is used to delay the current execution
check the link
https://www.w3schools.com/php/showphp.asp?filename=demo_func_misc_sleep
In your case, you need to again call the payment api after 4-5 sec delay
For Example:
#Payment process hit code
#sleep(4); //delay/wait for 4 second
#Again run code to check the payment status.