如何向多个短信Api发送OTP ?



我有一个php脚本,允许我发送otp到SMS Api;但有时短信会延迟或不发送,所以我在考虑在代码中添加另一个Api,所以现在OTP也被发送到WhatsApp。

谁能帮我修改代码,在下面的代码中添加另一个api ?

$phone = preg_replace('/[^0-9]/', '', $phone);
$curl = curl_init();
$curl = curl_init();
$params = array(
'Username' => '030XXXXXX',
'Password' => 'XXXXXX',
'From' => 'XXXXXX',
'To' => $phone,
'Message' => $message,
);
$encoded_query = http_build_query($params);
curl_setopt($curl, CURLOPT_URL, 'https://connect.jazz.com/sendsms_url.html?' . $encoded_query);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$curl_error = curl_errno($curl);
curl_close($curl);
if($test_call) return $result;
if ($curl_error !== 0) {
return false;
}

if ($err) {
return false;
} else {
return true;
}
}

谢谢

使用策略模式来实现您的SMS提供程序。然后你可以发送你的消息与工作,当工作失败时,重试与另一种策略(如WhatsApp提供商)。

处理失败情况的示例作业:

class SendExampleSmsJob implements ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels;

public function handle()
{
// Process sending message ...
}

/**
* Handle a job failure.
*/
public function failed(Throwable $exception)
{
// dispatch another job to send Whatsapp message or something else
}
}