php版阿里大于(阿里大鱼)短信发送实例详解


Posted in PHP onNovember 30, 2016

本文实例讲述了php版阿里大于(阿里大鱼)短信发送实现方法。分享给大家供大家参考,具体如下:

通用函数

// 发送大于短信 更牛逼的
  protected function sendDayuSmsPlus($tel,$type,$data) {
    $dayu_template = 'dayu_template_'.$type;
    $signname = C($dayu_template.".signname");
    $templatecode = C($dayu_template.".templatecode");
    // require LIB_PATH . 'ORG/Taobao-sdk-php/TopSdk.php';
    include_once LIB_PATH . 'ORG/Taobao-sdk-php/TopSdk.php';
    $c = new TopClient;
    $c->appkey = C('dayu_appkey');
    $c->secretKey = C('dayu_secretKey');
    $req = new AlibabaAliqinFcSmsNumSendRequest;
    $req->setSmsType("normal");
    $req->setSmsFreeSignName("{$signname}");
    if ($type == 'sold') {
      $req->setSmsParam('{"name":"'. $data['name'] .'"}');
    }
    if ($type == 'buysuccess') {
      $req->setSmsParam('{"name":"'. $data['name'] .'","product":"'. $data['product'] .'"}');
    }
    if ($type == 'newagent') {
      $req->setSmsParam('{"name":"'. $data['name'] .'"}');
    }
    $req->setRecNum("{$tel}");
    $req->setSmsTemplateCode("{$templatecode}");
    $resp = $c->execute($req);
    return $resp;
  }

优化

// 发送大于短信 更牛逼的
  protected function sendDayuSmsPlus($tel,$type,$data) {
    $dayu_template = 'dayu_template_'.$type;
    $signname = C($dayu_template.".signname");
    $templatecode = C($dayu_template.".templatecode");
    // require LIB_PATH . 'ORG/Taobao-sdk-php/TopSdk.php';
    include_once LIB_PATH . 'ORG/Taobao-sdk-php/TopSdk.php';
    $c = new TopClient;
    $c->appkey = C('dayu_appkey');
    $c->secretKey = C('dayu_secretKey');
    $req = new AlibabaAliqinFcSmsNumSendRequest;
    $req->setSmsType("normal");
    $req->setSmsFreeSignName("{$signname}");
    switch($type) {
      case 'sold':
        $req->setSmsParam('{"name":"'. $data['name'] .'"}');
        break;
      case 'buysuccess':
        $req->setSmsParam('{"name":"'. $data['name'] .'","product":"'. $data['product'] .'"}');
        break;
      case 'newagent':
        $req->setSmsParam('{"name":"'. $data['name'] .'"}');
        break;
      default:
         $req->setSmsParam('{"code":"'. $data['code'] .'","product":"'. $data['product'] .'"}');
    }
    $req->setRecNum("{$tel}");
    $req->setSmsTemplateCode("{$templatecode}");
    $resp = $c->execute($req);
    return $resp;
  }

这里的require 和 include_once 还是有区别的。如果用require,重复调用方法,就会报错。Fatal error: Cannot redeclare class。改成include_once 就可以了。

配置模板

<?php
return array (
 // 阿里大鱼短信配置
 'dayu_appkey'=>'xxxxxx',
 'dayu_secretKey'=>'xxxxxxxxxxxxxxxxxxxxx',
 'dayu_template_register' => array('signname'=>'注册验证','templatecode'=>'SMS_9655457'),
 'dayu_template_alteration' => array('signname'=>'变更验证','templatecode'=>'SMS_9655454'),
 'dayu_template_identity' => array('signname'=>'身份验证','templatecode'=>'SMS_9655461'),
 'dayu_template_sold'=> array('signname'=>'点多多','templatecode'=>'SMS_12800188'),
 'dayu_template_buysuccess'=> array('signname'=>'点多多','templatecode'=>'SMS_12775103'),
 'dayu_template_newagent'=> array('signname'=>'点多多','templatecode'=>'SMS_12815193'),
);

关于签名签名会显示在短信中【点多多】,只要是允许的签名,系统的或者自己审核通过的,可以混用。

php版阿里大于(阿里大鱼)短信发送实例详解

php版阿里大于(阿里大鱼)短信发送实例详解

php版阿里大于(阿里大鱼)短信发送实例详解

原生类

<?php
/**
 * TOP API: alibaba.aliqin.fc.sms.num.send request
 *
 * @author auto create
 * @since 1.0, 2015.12.02
 */
class AlibabaAliqinFcSmsNumSendRequest
{
  /**
   * 公共回传参数,在“消息返回”中会透传回该参数;举例:用户可以传入自己下级的会员ID,在消息返回时,该会员ID会包含在内,用户可以根据该会员ID识别是哪位会员使用了你的应用
   **/
  private $extend;
  /**
   * 短信接收号码。支持单个或多个手机号码,传入号码为11位手机号码,不能加0或+86。群发短信需传入多个号码,以英文逗号分隔,一次调用最多传入200个号码。示例:18600000000,13911111111,13322222222
   **/
  private $recNum;
  /**
   * 短信签名,传入的短信签名必须是在阿里大鱼“管理中心-短信签名管理”中的可用签名。如“阿里大鱼”已在短信签名管理中通过审核,则可传入”阿里大鱼“(传参时去掉引号)作为短信签名。短信效果示例:【阿里大鱼】欢迎使用阿里大鱼服务。
   **/
  private $smsFreeSignName;
  /**
   * 短信模板变量,传参规则{"key":"value"},key的名字须和申请模板中的变量名一致,多个变量之间以逗号隔开。示例:针对模板“验证码$[code],您正在进行${product}身份验证,打死不要告诉别人哦!”,传参时需传入{"code":"1234","product":"alidayu"}
   **/
  private $smsParam;
  /**
   * 短信模板ID,传入的模板必须是在阿里大鱼“管理中心-短信模板管理”中的可用模板。示例:SMS_585014
   **/
  private $smsTemplateCode;
  /**
   * 短信类型,传入值请填写normal
   **/
  private $smsType;
  private $apiParas = array();
  public function setExtend($extend)
  {
    $this->extend = $extend;
    $this->apiParas["extend"] = $extend;
  }
  public function getExtend()
  {
    return $this->extend;
  }
  public function setRecNum($recNum)
  {
    $this->recNum = $recNum;
    $this->apiParas["rec_num"] = $recNum;
  }
  public function getRecNum()
  {
    return $this->recNum;
  }
  public function setSmsFreeSignName($smsFreeSignName)
  {
    $this->smsFreeSignName = $smsFreeSignName;
    $this->apiParas["sms_free_sign_name"] = $smsFreeSignName;
  }
  public function getSmsFreeSignName()
  {
    return $this->smsFreeSignName;
  }
  public function setSmsParam($smsParam)
  {
    $this->smsParam = $smsParam;
    $this->apiParas["sms_param"] = $smsParam;
  }
  public function getSmsParam()
  {
    return $this->smsParam;
  }
  public function setSmsTemplateCode($smsTemplateCode)
  {
    $this->smsTemplateCode = $smsTemplateCode;
    $this->apiParas["sms_template_code"] = $smsTemplateCode;
  }
  public function getSmsTemplateCode()
  {
    return $this->smsTemplateCode;
  }
  public function setSmsType($smsType)
  {
    $this->smsType = $smsType;
    $this->apiParas["sms_type"] = $smsType;
  }
  public function getSmsType()
  {
    return $this->smsType;
  }
  public function getApiMethodName()
  {
    return "alibaba.aliqin.fc.sms.num.send";
  }
  public function getApiParas()
  {
    return $this->apiParas;
  }
  public function check()
  {
    RequestCheckUtil::checkNotNull($this->recNum,"recNum");
    RequestCheckUtil::checkNotNull($this->smsFreeSignName,"smsFreeSignName");
    RequestCheckUtil::checkNotNull($this->smsTemplateCode,"smsTemplateCode");
    RequestCheckUtil::checkNotNull($this->smsType,"smsType");
  }
  public function putOtherTextParam($key, $value) {
    $this->apiParas[$key] = $value;
    $this->$key = $value;
  }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
杏林同学录(七)
Oct 09 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
php学习之 循环结构实现代码
Jun 09 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
让PHP更快的提供文件下载的代码
Jun 13 PHP
thinkphp实现数组分页示例
Apr 13 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 PHP
thinkphp缓存技术详解
Dec 09 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
php获取远程文件的内容和大小
Nov 03 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 #PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 #PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 #PHP
PHP获取指定日期是星期几的实现方法
Nov 30 #PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 #PHP
详解PHP处理密码的几种方式
Nov 30 #PHP
php+js实现百度地图多点标注的方法
Nov 30 #PHP
You might like
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
php实现的生成排列算法示例
2019/07/25 PHP
js调用css属性写法
2013/09/21 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
详解Python的Django框架中的通用视图
2015/05/04 Python
python线程、进程和协程详解
2016/07/19 Python
利用Python破解验证码实例详解
2016/12/08 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
使用python3实现操作串口详解
2019/01/01 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
tensorflow 模型权重导出实例
2020/01/24 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
酒吧副总经理岗位职责
2013/12/10 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
明信片寄语大全
2014/04/08 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
学校校庆演讲稿
2014/05/22 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python