从网上查了一下,单位里用的应该是容联云通讯的短信开发平台,一看官网神马的,真的很高大上,短信接口的开发要比移动支付接口的开发神马的整合起来简单多了,档案系统用的是 thinkphp 系统,整合起来短信接口就更不在话下了,直接把类库放置到 thinkphp 目录系统下 /lib/thinkphp/extend/vendor/sms/ccprestSDK.php,这只是一个类库的核心文件,基本上不用去管的,在使用的时候直接实例化里面的 function 就OK了。
好了,在 thinkphp 里面整合还是比较简单的,看如下的整合代码,因为我这里只需要简单的发送一个短信,所以使用代码量还是比较少的,如下所示:
- //发送验证码
- Vendor('Sms.CCPRestSDK');
- //主帐号
- $accountSid= '11';
- //主帐号Token
- $accountToken= '22';
- //应用Id
- $appId='33';
- //请求地址,格式如下,不需要写https://
- $serverIP='app.cloopen.com';
- //请求端口
- $serverPort='8883';
- //REST版本号
- $softVersion='2013-12-26';
- $arr=array();
- $arr['0']='smiling'; //先生
- $arr['1']='夏日工作室 '; //投资平台名称
- $arr['2']="http://www.xiariboke.com/?id=5"; //保单链接
- $mobile = 13000000000;
- if($mobile){
- $rest = new REST($serverIP,$serverPort,$softVersion);
- $rest->setAccount($accountSid,$accountToken);
- $rest->setAppId($appId);
- $result = $rest->sendTemplateSMS($mobile,$arr,"106439");
- if($result == NULL ) {
- echo "result error!";
- break;
- }
- if($result->statusCode!=0) {
- echo $result->statusMsg . " 错误代码:".$result->statusCode;
- //TODO 添加错误处理逻辑
- }else{
- return 1;
- }
- }
- //结束发送
看代码很简单吧,使用短信首先把短信类库引进进来,Vendor('Sms.CCPRestSDK');,然后定义模板ID,以及新建数组内容,数组 $arr 支持多个,看自己的需求了,当然这个数组是可以直接赋值或者调用 post 的值再或者调用数据库里面的值,下面把我整合单位通讯的发送代码再分享一下,如下所示:
- //发送短信开始
- //企业名称
- $listc = M("company")->where("id=".$_SESSION[C('COMPANY_AUTH_KEY')])->find();
- //$listc[nickname]; //企业名称
- //保单ID
- $list_p2pid = M("p2p")->order('id desc')->find();
- $list_p2pid[id] = $list_p2pid[id]+1;
- //发送短信实例化
- Vendor('Sms.CCPRestSDK');
- //主帐号
- $accountSid= '111111';
- //主帐号Token
- $accountToken= '222222';
- //应用Id
- $appId='aabbcc';
- //请求地址,格式如下,不需要写https://
- $serverIP='app.cloopen.com';
- //请求端口
- $serverPort='8883';
- //REST版本号
- $softVersion='2013-12-26';
- $arr=array();
- $arr['0']=$data['realname']; //姓名
- $arr['1']=$listc[nickname]; //投资平台名称
- $arr['2']="http://xiariboke.com/?m=p&i=".$list_p2pid[id]; //保单链接
- $mobile = $data['phone'];
- if($mobile){
- $rest = new REST($serverIP,$serverPort,$softVersion);
- $rest->setAccount($accountSid,$accountToken);
- $rest->setAppId($appId);
- $result = $rest->sendTemplateSMS($mobile,$arr,"106439");
- if($result == NULL ) {
- echo "result error!";
- break;
- }
- if($result->statusCode!=0) {
- echo $result->statusMsg . " 错误代码:".$result->statusCode;
- //TODO 添加错误处理逻辑
- }else{
- //return 1;
- }
- }
- //发送结束发送
看代码很简单吧,短信内容的值是提先定义好的,然后在数组里面调用赋值,好了,再详细的内容就不再讲了,网上铺天盖地的各种短信厂商,在其官网上面都提供了详尽的短信接口实例,以及 DEMO 的下载,多测试一下就会贯通的。
三个短信文件:
(1)、/index/Dangan/Lib/Action/PublicAction.class 方法:sendsms
(2)、/common/common.php 方法:sendsms
(3)、类库文件:/lib/thinkphp/extend/vendor/sms/ccprestSDK.php 模板方法:sendTemplateSMS