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中运用jQuery的Ajax跨域调用实现代码
Feb 21 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
Jun 05 PHP
基于PHP中的常用函数回顾
Jul 11 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
php多线程并发实现方法
Sep 30 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
PHP简单实现防止SQL注入的方法
Mar 13 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 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
星际RPG字典
2020/03/04 星际争霸
php重定向的三种方法分享
2012/02/22 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
python中Apriori算法实现讲解
2017/12/10 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
关于母亲节的感言
2014/02/04 职场文书
陕西导游词
2015/02/04 职场文书
2015年采购部工作总结
2015/04/23 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
七年级作文之秋游
2019/10/21 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js