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 相关文章推荐
PHP 解决utf-8和gb2312编码转换问题
Mar 18 PHP
php实现文件下载(支持中文文名)
Dec 04 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
Sep 06 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
非常实用的php验证码类
May 15 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 PHP
PHP文件下载实例代码浅析
Aug 17 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP实现的curl批量请求操作示例
Jun 06 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 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水印
2007/03/16 PHP
PHP 替换模板变量实现步骤
2009/08/24 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
Async Validator 异步验证使用说明
2017/07/03 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
python实现图像识别功能
2018/01/29 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
考试作弊检讨书大全
2014/02/18 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书