1

我正在编写一个脚本以通过 URL 链接将字符串发送到 SMS 网关并从它们那里获取响应。

他们将以代码和文本作为答案,“ 200 = SUCCESS ”或错误代码:“- 100 = UNKNOWN ERROR ”、“- 101 = MISSING PARAMETER ”等。

在我的后端代码中,我想知道如何继续循环,等待 SMS 网关返回带有错误代码的消息,然后将我的字符串重新发送到 SMS 网关,直到成功或确认?

$link = "http://www.smsgateway.com/send.php?phoneno=".$phonenumber."&message=".urlencode($smsMessage);

接下来,我使用 cURL 发送此链接并获得响应:

$returned_content = using_cURL_function_to_get_response($link);

现在,我的$returned_content将显示:
成功代码:200 = SUCCESS
失败代码:-100 = UNKNOWN ERROR
失败代码:-101 = MISSING PARAMETER
以及更多-1xx失败/错误代码

然后,我想执行一个循环来检查 $returned_content,如果它是失败/错误代码,然后通过 cURL 再次将字符串发送到 SMS 网关。

if ($returned_content = 'ANY FAILURE / ERROR-CODE') {
    //redo cURL
    $link = "http://www.smsgateway.com/send.php?phoneno=".$phonenumber."&message=".urlencode($smsMessage);
    $returned_content = using_cURL_function_to_get_response($link);

    // Check the $returned_content
} else {
    // inform me the '200 = SUCCESS' via email
    mail($myEmail, $successfulSubjectt, $returned_content, $msgHeaders);
}

我不确定这个循环部分,有人可以帮忙吗?

4

2 回答 2

1

我猜你想要做的是这样的:

$link = "http://www.smsgateway.com/send.php?phoneno=".$phonenumber."&message=".urlencode($smsMessage);
while ($returned_content != '200 = SUCCESS')
{
    $returned_content = using_cURL_function_to_get_response($link);
}

mail($myEmail, $successfulSubjectt, $returned_content, $msgHeaders);

但这不是一个好主意。假设你永远不会成功?您将有一个无限循环。你真的应该重新考虑你想要做什么。

于 2012-05-21T04:35:17.717 回答
0

那么当您尝试发送短信并收到错误消息时,您想重试发送吗?那将如何运作?

另外,不确定,但目标服务器可能会将其解释为 DoS 攻击。

我认为你应该重新考虑你的方法。如果您的目标是让某些用户能够发送 SMS,那么如何向他们显示一条消息,说明发送他们的 SMS 时出错,他们应该稍后再试?

于 2012-05-21T07:05:54.060 回答