待发短信

在线客服
产品支持 短信宝客服
合作渠道 渠道合作
服务咨询

4001-021-502

工作时间

9:00-18:00

如何请求访问短信宝https短信接口

最近小编发现有些客户反应使用短信宝接口http请求短信发送失败,经过技术人员排查发现是因为客户服务器的机房阻断了http请求而导致的(特别是将服务器托管在国外的客户)
解决这种问题一般有两种方案
第一种您可以联系您服务器所在机房工作人员打开http请求
第二种您可以使用短信宝https短信接口
首先检测确认是否是机房线路阻断http请求
如果您是windows服务器您可以用您的IE浏览器访问下国内网站 例如:http://www.donews.com/如果不能访问则表示是您服务器所在机房阻断了http请求的原因。
如果您是linux服务器您可以使用命令 wget http://www.donews.com/来测试 如果显示下载失败则也是因为您服务器所在机房阻断了http请求的原因

解决方案
1:找到您的发送类函数,将短信宝http接口替换成https

?
1
2
3
$smsapi = "http://api.smsbao.com/";
替换成
$smsapi = "https://api.smsbao.com/";

2:更改请求短信宝请求方式使用CURL请求

?
1
2
3
4
5
6
7
8
9
10
11
12
    $result =file_get_contents($sendurl);
替换成
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $sendurl);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书
    $r = curl_exec($ch);
    curl_close($ch);

完整实例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$smsapi = "https://api.smsbao.com/";
$user = "***"//短信宝平台帐号
$pass = md5("****"); //短信宝平台密码
$content="短信内容";//要发送的短信内容
$phone = "*****";//要发送短信的手机号码
$sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sendurl);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书
$result = curl_exec($ch);
curl_close($ch);
echo $result;

3:如有其它疑问,请咨询短信宝客服。

 
开源插件
文章标签