【问题标题】:Sending SMS via PHP using Curl使用 Curl 通过 PHP 发送 SMS
【发布时间】:2018-08-18 08:41:34
【问题描述】:

我在下面有这个表单,它假设向后端发送一个 POST 请求,然后在提交时发送一条短信:

<form id="sms" method="post">
      <input type="number" name="mobile" id="mobile" class="text"/>
      <button type="button" name="sub" value="Submit">Send</button>
</form>

我从后端人员那里得到了这个,没有其他细节。我找到了一些在线教程,但我什么也做不了。

curl -X POST \
  https://example.com/gateway/sms \
  -H 'Accept: application/json' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 's: APP' \
  -d '{ 
   "mobile": "1112223333"
 }'

谁能给我指出一个可以处理这些信息的 PHP 处理器?我的知识非常有限。

【问题讨论】:

  • PHP 不能自己发送短信。您需要为此使用一些服务,并且在 SO 上询问有关场外服务的建议是题外话。您需要自己进行研究。
  • 好的。谢谢。
  • 您实际上是在向https://example.com 发帖,还是您正在使用的真实服务的占位符?
  • 这是实际工作 URL 的占位符。

标签: php jquery ajax curl


【解决方案1】:

希望您可以与后端人员交谈,但据我所知,他们要求您使用 javascript 创建一个 POST 请求,该请求与您示例中的 curl 命令执行相同的操作。

您的表单不会按原样工作,因为它将使用编码表单将请求发送到后端,但后端需要 JSON。

您需要捕获表单提交,然后执行类似的操作

url = 'https://example.com/gateway/sms';
data = {mobile: _get_number_from_form() };
success = function(data) { console.log(data); };
headers = {s: 'APP'};
jQuery.ajax({
    type: 'POST',
    url: url,
    data: data,
    success: success,
    dataType: 'json',
    headers: headers
});

postman 和 Chrome 中的网络标签在这里会很有用。

【讨论】:

  • 没错。我对此比较陌生。所以我必须将JSON格式的数据发送到后端?我最初的想法是创建一个 PHP 表单处理器并发送手机号码,其余的由他们的后端处理。无论哪种方式,我都不知道如何进行。不过,我也无法制作您的代码的头/尾。太感谢了。我正在网上寻找解决方案。
  • 是的,如果 curl 命令是我们所要做的。我上面给出的 jQuery 示例将正确地将 javscript dict 转换为 JSON。
  • 我在上面编辑了我的评论。让我进一步搜索,看看是否有现成的解决方案。这实际上超出了我的范围。非常感谢。
  • 在你的心智模型中,“PHP 表单处理器”和后端的其余部分是什么关系?我曾假设您的 PHP 表单处理器 在后端。
  • 也许这个教程可以把事情弄清楚:developerdrive.com/2013/04/…
【解决方案2】:
 $inNumber = $_REQUEST["inNumber"];
 $sender = $_REQUEST["sender"];
 $keyword = $_REQUEST["keyword"];
 $content = $_REQUEST["content"];
 $email = $_REQUEST["email"];
 $credits = $_REQUEST["credits"];

// Account details
        $apiKey = urlencode('jpvpyVsTv50-O7te5yiz3oP1DjMkdsiuHSUBS');

        // Message details
        $numbers = $_REQUEST["sender"];
        $sender = urlencode('JHSSVE');

        $text = "Thank you for your order";
        $message = rawurlencode($text);
     $test = true;

        // Prepare data for POST request
        $data = array('apikey' => $apiKey, 'numbers' => $numbers, "sender" => $sender, "message" => $message);

        // Send the POST request with cURL
        $ch = curl_init('https://api.textlocal.in/send/');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        curl_close($ch);

【讨论】:

    猜你喜欢
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多