【问题标题】:Receiving sms fails on Nexmo Send Sms在 Nexmo 发送短信上接收短信失败
【发布时间】:2017-06-23 18:34:18
【问题描述】:

我一直在寻找类似的主题,但找不到任何解决方案, 我希望有人可以帮助我..

注意:我在 xampp localhost 上运行脚本,我的国家代码是 +90 我已按照 Nexmo 文档发送短信。下面是php脚本。

<?php

$url = 'https://rest.nexmo.com/sms/json?' . http_build_query(
    [
      'api_key' =>  'xxxxxxxx',
      'api_secret' => 'xxxxxxxxxxx',
      'to' => 90542xxxxxxx,
      'from' => 'MyCompanyName',
      'text' => 'Working'
    ]
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

echo $response;

?>

以下是结果。似乎它正在发送它但是我没有在我的手机上收到短信是什么可能导致这种情况?

{ "message-count": "1", "messages": [{ "to": "90542xxxxxxx", "message-id": "0C00000016FF36E9", "status": "0", "remaining-balance": "1.77080000", "message-price": "0.01910000", "network": "28602" }] }

【问题讨论】:

    标签: php nexmo


    【解决方案1】:

    短信未送达的原因:

    1. 在不允许使用此类发件人 ID 的区域中使用字母数字发送。这是土耳其地区 (+90) 的法律要求。在这种情况下,Nexmo 会将发件人 ID 更改为 NXSMS。有关支持字母数字发件人 ID 的详细信息,请参阅: https://docs.nexmo.com/messaging/sms-api/building-global-apps#country_specific_features
    2. 运营商未能传递消息。可以(并且建议)设置 webhook 回调,以便通知您的应用收到交货回执。见https://docs.nexmo.com/messaging/sms-api/api-reference#delivery_receipt

    提高送达率的一种方法是使用通过 Nexmo 购买的 from 号码。在这些示例中,还有一个 callback 参数集,以便应用程序获知 SMS 传送。

    使用Nexmo PHP client library:

    <?php
    $client = new Nexmo\Client(new Nexmo\Client\Credentials\Basic(API_KEY, API_SECRET));
    
    $message = $client->message()->send([
        'to' => '90542xxxxxxx',
        'from' => '90555xxxxxxx',
        'text' => 'Working',
        'callback' => 'https://example.com/dlr;
    ]);
    

    或者根据问题中的代码:

    <?php
    
    $url = 'https://rest.nexmo.com/sms/json?' . http_build_query(
        [
          'api_key' =>  'xxxxxxxx',
          'api_secret' => 'xxxxxxxxxxx',
          'to' => '90542xxxxxxx',
          'from' => '90555xxxxxxx',
          'text' => 'Working',
          'callback' => 'https://example.com/dlr;
        ]
    );
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    
    echo $response;
    

    相关:Nexmo FAQ on SMS delivery in Turkey

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多