短信验证码是网站必不可少的,基本每个公司都会用到,之前用的短信验证码是互易无线的,现在新公司又使用了网易云信的短信验证,

这些平台的使用基本都类似,都是基于curl请求

这次我就记录下我对网易云信验证码的使用过程

一:注册网易云信,获取appkey和appsert

设置配置文件,我们知道一般配置项都要写在配置文件中,方便管理

<?phpreturn  array ('netEasyMessage' => array('AppKey' => 'bc07*********f4c805460','AppSecret' => '658ab****0d9b',),);

二:把网易云信的php的包引入

我使用的是thinkphp3.2,直接放在THinkphp/Library/Org/Util/下载,注意修改文件名和类名,加上命名空间

我直接修改好的,http://download.csdn.net/detail/fei003/9862048可以直接使用,因为我使用的是thinkphp,所以可以直接实例化

这是官方api,http://download.csdn.net/detail/fei003/9862090其它框架可以直接引入

三:使用过程我只记录两种场景

第一种:固定类验证码

为什么说是固定类呢?因为接口提供直接发送验证码,不需要你提供任何参数.不需要生成验证码,这种只要调用就能自动发送一个四位的短信验证码,非常方便,当然也有弊 端

弊端:验证码位数默认为4位数字,在设置的时间间隔内,同一手机号返回的验证码是相同的

使用方法

    public function sendVerify(){$phone = I('post.phone');$feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));$re = $feiMessage->sendSmsCode($phone);}

api中提供的接口发送验证码方法是sendSmsCode();有三个参数,下面是该方法

/**
 * 发送短信验证码
 * @param  $mobile       [目标手机号]
 * @param  $deviceId     [目标设备号,可选参数]
 * @return $result      [返回array数组对象]
 */
public function sendSmsCode($mobile,$deviceId=''){$url = 'https://api.netease.im/sms/sendcode.action';
    $data= array('mobile' => $mobile,
        'deviceId' => $deviceId
    );
    if($this->RequestType=='curl'){$result = $this->postDataCurl($url,$data);
    }else{$result = $this->postDataFsockopen($url,$data);
    }return $result;
}

验证也是非常容易的,也是直接调用该方法

        // 短信验证码验证$feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));$re = $feiMessage->verifycode($data['phone'],$data['verify']); 

根据返回值再写逻辑代码

第二种:使用短信模板来扩展自己的验证码

短信模板就是带有变量的短信,变量部分自定义代替

先新建个通知类模板,如下图

登审核通过后会得到模板id,模板内容自定义,注意变量可以有多个

假如使用模板来发送验证码,这个过程还是很容易的,直接使用sendSMSTemplate()来发送,这个函数三个参数分别为

/**
 * 发送模板短信
 * @param  $templateid       [模板编号(由客服配置之后告知开发者)]
 * @param  $mobiles          [验证码]
 * @param  $params          [短信参数列表,用于依次填充模板,JSONArray格式,如["xxx","yyy"];对于不包含变量的模板,不填此参数表示模板即短信全文内容]
 * @return $result      [返回array数组对象]
 */
public function sendSMSTemplate($templateid,$mobiles=array(),$params=array()){$url = 'https://api.netease.im/sms/sendtemplate.action';
    $data= array('templateid' => $templateid,
        'mobiles' => json_encode($mobiles),
        'params' => json_encode($params));
    if($this->RequestType=='curl'){$result = $this->postDataCurl($url,$data);
    }else{$result = $this->postDataFsockopen($url,$data);
    }return $result;
}

使用方法

        // 短信模板发送 $feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));$re = $feiMessage->sendSMSTemplate('模板id',array($phone),$params);

注意:这里的$params 使用的是jsonArray格式!!!

网易云信提供的api果然很强大,针对im做个大量的封装,使用起来方便多了

网易云信-网易验证码短信,网易通知类短信的使用相关推荐

  1. 响铃:蜗牛读书“文”、网易云信“武”:游戏之外网易的AB面

    文|曾响铃 来源|科技向令说(xiangling0815) 2019年开年,网易又"搞事情"了. 近日,网易集团旗下网易云信.网易七鱼主办的"网易MCtalk泛娱乐创新峰 ...

  2. MIUI通知类短信权限的坑

    MIUI的坑爹设计还真不少.比如说,MIUI手机不插SIM卡就不能USB调试安装应用,好,插,结果又让你先登录小米账号(无话可说).MIUI权限申请也是坑! 就拿READ_SMS这个权限来说,按照安卓 ...

  3. OPPO手机无法读取通知类短信

    问题描述: OPPO手机无法读取通知类短信 解决方法: 在短信>短信设置里面>打开禁止后台应用读取验证码

  4. 网易云信(验证码短信接口接入)

    准备工具类:chekSum package net.tiantianup.commons.utils;import java.security.MessageDigest; import java.s ...

  5. 网易云信im即时通讯,php网易云信im即时通讯,tp,demo,即时通讯

    请先配置appKey和appSecret     本demo实现了服务端和web的联调(系统通知) 服务端参考文档:开发者中心 WEB参考文档:开发者中心 目录 1.公共类 Common.php 2. ...

  6. php网易云信如何使用,如何使用网易云信实现匿名聊天

    手机端的 APP 如果嵌入了 IM 模块,比如网易云信(环信),这些第三方的服务都有自己的账户系统,也是需要注册登录. 现在有这么一个需求:如何实现匿名聊天?同时要实现实名聊天. 需求可以简单理解为: ...

  7. Airbnb、小猪短租等这类短租类产品发展前景如何?

    Tsao 某家公司 打杂- 1 产品信息 1. 产品名称:小猪短租 2. 版本号:4.9.1 3. 体验环境:iPhone 7 (11.2.1) 4. slogin:居住自由主义 5. 产品定位:通过 ...

  8. 自主招生 计算机类 自荐信,自主招生类自荐信范文

    自主招聘自荐信怎么写?相信不少人都会有这样的困惑.为了令大家掌握如何写自荐招聘自荐信,以下整理了一则2010年自主招生自荐信范文,并希望大家通过本文,掌握自荐信写作技巧. 尊敬的老师: 您们好! 我是 ...

  9. 网易云信-短信验证码发送、验证

    提示:本文仅记录本人工作中遇到的难点与个人见解,仅供参考,如有问题请见谅. 目录 前言 一.网易云信短信服务是什么? 二.使用步骤 1.创建网易云信工具类CheckSumBuilder 2.短信验证码 ...

最新文章

  1. python使用函数的目的_在Python 3.x中经常看到定义函数有一个单独的 * 参数?定义这样参数的目的是?怎样对其取值呢?...
  2. java多线程学习三
  3. python玩王者荣耀皮肤_利用Python完成对王者荣耀英雄全皮肤的下载
  4. 多层神经网络(BP算法)介绍
  5. 洛谷 P1044 栈 [卡特兰数]
  6. 『Go 语言底层原理剖析』文末送书
  7. oracle pl sql 抛出例外
  8. 如何创建newsstand应用程序
  9. c语言关闭控制台窗口,怎样可以屏蔽控制台程序的关闭按钮
  10. JavaScript-变量的作用域 、const、let
  11. serializable接口_面试官:RandomAccess这个空接口有何用?
  12. batchplot放到哪个文件夹_Batchplot(CAD批量打印工具)下载
  13. 佛系前端面试题记录--第五周
  14. Intro.js 分步向导插件使用方法
  15. 【原创】驳罗素《我为什么不是基督徒》
  16. 【20211207】【雷达】毫米波雷达(一)—— 基本原理
  17. Cisco IOS配置环境,路由器和交换机的基本连接配置方法和连通性
  18. ES8都有哪些新特性,你还在用ES6吗?
  19. 利用PPT删除图片背景(PPT图片删除背景)
  20. rnnlm源码分析(七)

热门文章

  1. 网站打开出现服务器错误代码,网站打开出现“404”错误怎么解决?
  2. 水库雨水情自动测报系统 水雨情自动测报系统
  3. arcgis 栅格数据 邻域计算_ArcGIS教程:Spatial Analyst 中的运算类型
  4. java8之读取txt文件转ListString
  5. Javassist入门
  6. 上位机和下位机是什么
  7. 搭建达梦数据守护集群
  8. AutoCAD Electrical 2022—项目中新建、添加、删除图纸
  9. 基于相关性变量筛选偏最小二乘回归的多维相关时间序列建模方法
  10. 提高认知:从类目-属性说起,全方位解构商品题】