最近小編發(fā)現(xiàn)有些客戶反應使用短信寶接口http請求短信發(fā)送失敗,經(jīng)過技術人員排查發(fā)現(xiàn)是因為客戶服務器的機房阻斷了http請求而導致的(特別是將服務器托管在國外的客戶)
解決這種問題一般有兩種方案
第一種您可以聯(lián)系您服務器所在機房工作人員打開http請求
第二種您可以使用短信寶https短信接口
首先檢測確認是否是機房線路阻斷http請求
如果您是windows服務器您可以用您的IE瀏覽器訪問下國內網(wǎng)站 例如:http://www.donews.com/如果不能訪問則表示是您服務器所在機房阻斷了http請求的原因。
如果您是linux服務器您可以使用命令 wget http://www.donews.com/來測試 如果顯示下載失敗則也是因為您服務器所在機房阻斷了http請求的原因
解決方案
1:找到您的發(fā)送類函數(shù),將短信寶http接口替換成https
|
1
2
3
|
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
|
$user = "***"; //短信寶平臺帳號$pass = md5("****"); //短信寶平臺密碼$content="短信內容";//要發(fā)送的短信內容$phone = "*****";//要發(fā)送短信的手機號碼$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:如有其它疑問,請咨詢短信寶客服。
最新更新
電商類
CMS類
微信類