PHP如何接入第三方短信SDK-Poison

短信接入SDK其实说难不难说,说简单很简单,只要你能吃的准他的套路就没有问题了

第一步,找到第三方短信SDK找到客服,要测试的短信,一般情况下只会给到10条左右测试短信(不排除有200条不可变动短信)

第二步,找到官方文档,看需要什么参数,返回什么参数等等

第三步,打开编辑器,废话太多,直接上代码了

需要加群沟通的 加wx poison_robot 发送 互联网交流 进群

SendSMS.php
<?php
/**
 * Created by Zend studio.
 * name: Poison
 */
$aa = include_once 'conf.php';
include_once 'Tools.php';

$randnum = rand(1000,9999);//这个可以自己确定,就是一个随机数
$send_arr = array(	//将需要的参数放入数组中
    'account' =>$aa['SMS_ACCOUNT'] ,
    'password' => $aa['SMS_PWD'],
    'content' =>str_replace('$code$',$randnum,$aa['SMS_WORD']),
    'mobile' =>'15609220575'
);


$returnStr = invoke_fraud_api($aa['SMS_URL'],$send_arr);//调用下面的方法,下面的方法不不要动,直接使用就好了
$ins = new Tools();//调用Tools


$ins -> decodeXml($returnStr);//此方法用来解析返回来的XML文件
$code = $ins -> getXmlData('code');//取出返回值


if($code === '2'){//这个短信返回2为发送成功,返回给前端
  echo json_encode(array('result' => 1));
}else{
  echo json_encode(array('result' => 2,'reason' => $ins -> getXmlData('msg') ));
}




function invoke_fraud_api($url,array $params, $isPost = true,$timeout = 5000, $connection_timeout = 5000) {
 $api_url = $url;
 if($isPost){
  $options['CURLOPT_POST'] = 1;
 }


 $options = array(
     CURLOPT_URL => $api_url,      // 请求URL
     CURLOPT_RETURNTRANSFER => 1,  // 获取请求结果


  // -----------请确保启用以下两行配置------------
     CURLOPT_SSL_VERIFYPEER => 1,  // 验证证书
     CURLOPT_SSL_VERIFYHOST => 2,  // 验证主机名
  // -----------否则会存在被窃听的风险------------
     CURLOPT_POSTFIELDS => http_build_query($params) // 注入接口参数
 );


 if (defined("CURLOPT_TIMEOUT_MS")) {
  $options[CURLOPT_NOSIGNAL] = 1;
  $options[CURLOPT_TIMEOUT_MS] = $timeout;
 } else {
  $options[CURLOPT_TIMEOUT] = ceil($timeout / 1000);
 }
 if (defined("CURLOPT_CONNECTTIMEOUT_MS")) {
  $options[CURLOPT_CONNECTTIMEOUT_MS] = $connection_timeout;
 } else {
  $options[CURLOPT_CONNECTTIMEOUT] = ceil($connection_timeout / 1000);
 }
 $ch = curl_init();
 $cacert = getcwd() . '/ca-bundle.crt';
 curl_setopt ($ch, CURLOPT_CAINFO, $cacert);
 curl_setopt_array($ch, $options);
 if(!($response = curl_exec($ch))) {
  // 错误处理,按照同盾接口格式fake调用结果
  return array(
      "success" => "false",
      "reason_code" => "000:调用API时发生错误[".curl_error($ch)."]"
  );
 }
 curl_close($ch);
 return $response;
}
 
Tools()//这个是用来json、xml发送和解析的工具类
  public function decodeJson($str){
        $this -> jsonResult = (array)json_decode($str);
    }

    public function getJsonData($key){
       return $this -> jsonResult[$key];
    }

    public function encodeXml($parent,$arr){
         $xml = new DOMDocument('1.0','utf-8');
         $parentObj = $xml -> createElement($parent);
         $xml -> appendChild($parentObj);
         foreach($arr as $key => $val){
             $obj = $xml -> createElement($key,$val);
             $parentObj -> appendChild($obj);
         }
        $str = $xml -> saveXML();
        if($parent === 'xml'){
            $arr = explode('?>',$str);
            return end($arr);
        }else{
            return $str;
        }
    }

    public function decodeXml($str){
        $xml = simplexml_load_string($str);
       $this -> xmlResult = (array)$xml;
    }

    public  function getXmlData($key){
        return (string)$this -> xmlResult[$key];
    }
}


最后放入一个最最关键的文件,ca-bundle.crt 放在更目录下


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值