12

我问这个是因为我大部分时间都在 SO 上,似乎无法得到/找到答案。

这就是我想要做的(不使用付费网关):

-首先,我正在建立一个包含各种信息和日期的数据库。

- 使用 cron 我将运行一个脚本,在该日期通过电子邮件向 SMS PHP 脚本发送各种信息(用户提供)给用户。

- 避免维护准确的蜂窝运营商列表。我想以某种方式 ping 号码并返回运营商和适当的“@carrier-email-extension”以发送消息。(我不想在注册过程中询问用户;简化注册 - 因为不是 PIA 并获得更多用户) - 我目前有一个下拉列表,列出了大约 50 家运营商(我知道我可能忘记或不小心遗漏了一些),但我不想维护列表。我想删除这部分表格。理想情况下,我想在输入时通过 ajax/javascript 检查号码,并在提交期间将运营商信息发送到 MYSQL。

- 用户已经同意从我的服务中获取 SMS 消息/更新/文本,因此没有恶意行为。他们在设置另一条消息时会同意:

您将在 {date}向您的手机号码 {mobile number} 发送一条包含以下信息 {listed information} 的 SMS 消息。

有什么建议么?

4

3 回答 3

3

它的两步过程。

  1. 查找手机的国家/地区代码..您可以使用 Google API... Google 免费提供(Google:libphonenumber - Google 的电话号码处理库)

  2. 网络代码列表可在 Wikipedia 上找到...对于每个国家/地区,您必须通过选择前几位国家/地区代码来实现它。(谷歌:移动国家代码 - 维基百科)

您将找到每个国家/地区的网络代码列表,您将看到运营商名称和 MC /C MNC 列表。当您从手机号码中找出一个国家的国家代码时,每个运营商都有一个唯一的 MCC MNC 。然后对于每个国家,您必须编写一个查找表;选择手机号码的前 3 位数字,并为他分配网络代码... 为您所在国家/地区的运营商做这个练习,您会明白的。

因为我为一个 文本 API实现了它,所以我可以告诉你这个.. 它的工作量很大。祝你好运!

于 2013-04-08T20:09:28.013 回答
3

如果您想确定电话号码的实际运营商,您应该进行所谓的 HLR(归属位置寄存器)查找。许多消息传递服务都提供这样的服务,并且它们通常有一个 HTTP API。然而,它会花费你 - 每次查找都有一个价格,虽然很小,但所有这些都加起来了。

此外,如果您在特定国家/地区需要此功能,负责电话号码的监管机构可能有也可能没有某种可以查询号码数据的数据库服务。这些通常具有固定成本,因此如果您对该国家/地区的数字进行了足够多的查找以便获得回报,则应该进行数学计算。

于 2013-04-15T00:26:53.197 回答
3

我也遇到了这个问题 - 这是一个快速的解决方案,它将为您提供手机运营商的电子邮件到 SMS 功能,仅给出手机号码:

<?php                               
// leave this blank - we may never implement an authentication key
$smsarc_API_key = ''; 

// enter the user's 10 digit cell phone number. 
// example format: $smsarc_to = '5556667777';
$smsarc_number = '3123094991'; 

// lookup carrier
$ch = curl_init();  curl_setopt ($ch, CURLOPT_URL, 'http://www.smsarc.com/api-carrier-lookup.php?sa_number='.$smsarc_number);   $AskApache_result = curl_exec ($ch);        $smsarc_message_status =  $AskApache_result; curl_close($ch);

// print the carrier lookup results
echo $smsarc_carrier;
?>

来自他们网站的开发人员 API: http ://www.smsarc.com/free-php-cell-phone-carrier-lookup/

于 2014-07-23T16:36:24.047 回答