阿里大鱼虽免费,但不足的是内容、签名什么都要进行审核,且短信内容必须以模版方式进行调用,不能根据自己的需求随意发送, 接下介绍下阿里大鱼免费短信具体实现方法,该方法php程序可通用。
首先要去阿里大鱼下载sdk,引用其中5个基础文件即可,然后进入阿里大鱼开发平台申请一个帐号,新建应用,从后台获取appkey值和secretKey值;然后再新建一个短信模版,审核通过后取得模版id,同时如果需要在模版中传人参数可以在通过setSmsParam方法设置进去;同样短信签名也需要后台申请,审核通过才可以填写相应的短信签名进去;
做完上面的操作,把获取的参数根据下面的方法传入即可。
如下返回值是数组返回的,已解析,有点注意的是官方文档返回结构和实际的结构不一样,发送成功的返回的值是二维数组结构,发送失败的话则说简单的一维数组结构。
include('aldy/TopClient.php'); //这个是你下面实例化的类 include('aldy/ResultSet.php'); //这个是topClient 里面需要实例化一个类所以我们也要加载 不然会报错 include('aldy/RequestCheckUtil.php'); //这个是成功后返回的信息文件 include('aldy/TopLogger.php'); //这个是错误信息返回的一个php文件 include('aldy/AlibabaAliqinFcSmsNumSendRequest.php'); //这个也是你下面示例的类 //短信发送 模版id(TemplateCode),发送号码(RecNum),FreeSignName(短信签名) function send_sms($TemplateCode,$RecNum,$FreeSignName){ $c = new TopClient; $c->appkey = ;//appkey值 $c->secretKey = ;//secretKey值 $req = new AlibabaAliqinFcSmsNumSendRequest; //$req->setExtend("123456"); $req->setSmsType("normal"); $req->setSmsFreeSignName($FreeSignName); $req->setSmsParam("{/"code/":/"1234/",/"product/":/"alidayu/"}");.//模版参数 $req->setRecNum($RecNum); $req->setSmsTemplateCode($TemplateCode); $resp = $c->execute($req); $content = json_decode(json_encode($resp),true); try { $result= $content['sub_msg']; throw new Exception('It is an exception!'); } catch (Exception $e) { if( $content['result']['success'] == 'true' ){ $result= '发送成功'; }else{ $result= '发送失败'; } } echo $result; exit(); }
新闻热点
疑难解答