互亿无线短信接口接入
目录
- 申请互亿无线信息
- 公共函数
- 扩展库代码
- 前端代码
申请互亿无线信息
https://user.ihuyi.com/nav/sms.html
内有官方接口DEMO可下载
公共函数
//randomNum() 函数返回随机整数。
function randomNum($length = 6, $numeric = 0)
{PHP_VERSION < '4.2.0' && mt_srand((float) microtime() * 1000000);if ($numeric) {$hash = sprintf('%0' . $length . 'd', mt_rand(0, pow(10, $length) - 1));} else {$hash = '';$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';$max = strlen($chars) - 1;for ($i = 0; $i < $length; $i++) {$hash .= $chars[mt_rand(0, $max)];}}return $hash;
}//将 xml数据转换为数组格式。
function xml_to_array($xml)
{$reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";if (preg_match_all($reg, $xml, $matches)) {$count = count($matches[0]);for ($i = 0; $i < $count; $i++) {$subxml = $matches[2][$i];$key = $matches[1][$i];if (preg_match($reg, $subxml)) {$arr[$key] = xml_to_array($subxml);} else {$arr[$key] = $subxml;}}}return $arr;
}//请求数据到短信接口,检查环境是否 开启 curl init。
function sms_post($curlPost, $url)
{$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_NOBODY, true);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);$return_str = curl_exec($curl);curl_close($curl);return $return_str;
}
扩展库代码
public function __construct(){//短信 互亿无线$GLOBALS['ihuyi']['appid'] = 'XXXX';//需从短信控制台获取appid$GLOBALS['ihuyi']['appkey'] = 'XXXX';//需从短信控制台获取appkey$GLOBALS['ihuyi']['sms_send_time'] = 60;$GLOBALS['ihuyi']['sms_send_num'] = 5;$GLOBALS['ihuyi']['sms_send_black_time'] = 600;$GLOBALS['ihuyi']['url'] = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";$GLOBALS['ihuyi']['is_open_send_limit'] = 1;parent::__construct();}/*** 获取短信验证码* @author * @date 2019-05-17* @param* @return array*/public function getcode(){if ($this->request->isPost()) {$validate = new \think\Validate(['mobile' => 'require|mobile']);$validate->message(['mobile.require' => '手机号不能为空','mobile.mobile' => '手机号不正确']);$data = $this->request->post();if (!$validate->check($data)) {$this->error($validate->getError());}//有图形验证码if (isset($data['captcha'])) {if (!cmf_captcha_check($data['captcha'], '', false)) {$this->error("图形验证码错误");}}//生成的随机数$mobile_code = randomNum(4, 1);$content = "您的验证码是:" . $mobile_code . "。请不要把验证码泄露给其他人。";$post_data = "account=" . $GLOBALS['ihuyi']['appid'] . "&password=" . $GLOBALS['ihuyi']['appkey'] . "&mobile=" . $data['mobile'] . "&content=" . rawurlencode($content);$gets = xml_to_array(sms_post($post_data, $GLOBALS['ihuyi']['url']));ys_log('common/getcode', '手机号:' . $data['mobile'] . '时间:' . time() . '返回语:' . $gets['SubmitResult']['msg'] . '验证码' . $mobile_code);session('mobile', $data['mobile']);session('mobile_code', $mobile_code);if ($gets['SubmitResult']['code'] == 2) {$this->success('发送成功');} else {$this->error('发送失败');}}}
前端代码
<div class="form-item"><div class="form-item-wrap"><label class="form-label">验证码</label><input class="input-block" type="tel" name="vCode" placeholder="请输入手机验证码" xf-verify="required"autocomplete="off" maxlength="10" xf-title="手机验证码不能为空"><span class="layui-btn layui-btn-sm" id="getCode">获取验证码</span></div><p class="err-msg"></p>
</div><script>//获取验证码
$("#getCode").click(function () {//手机验证码var mobile = $("#mobile").val();//手机验证码var reg = /(1[3-9]\d{9}$)/;if (mobile == "") {layer.msg('手机号不能为空', {time: 3000 //3秒关闭});return false;} else if (!reg.test(mobile)) {layer.msg('手机号格式不正确', {time: 3000 //3秒关闭});return false;} else {//图形验证码var captcha = $("#captcha").val();//图形验证码if (captcha != 'undefined') {if (captcha == "") {layer.msg('图形验证码不能为空', {time: 3000 //3秒关闭});return false;}getcode_obj = { mobile: mobile, captcha: captcha };}else {getcode_obj = { mobile: mobile };}var clickThis = this;$.post("/Common/Common/getcode", getcode_obj, function (data) {//alert(JSON.stringify(data));if (data.code == 0) {layer.msg(data.msg, {time: 3000 //3秒关闭});return false;} else if (data.code == 1) {layer.msg(data.msg, {time: 3000 //3秒关闭});//倒计时settime(clickThis);}});}
});
var countdown = 120;
function settime(obj) {if (countdown == 0) {obj.removeAttribute('disabled');obj.setAttribute('class', 'layui-btn layui-btn-sm');obj.innerHTML = "立即发送";countdown = 120;return;} else {obj.setAttribute('disabled', true);obj.setAttribute('class', 'layui-btn layui-btn-sm layui-btn-disabled');obj.innerHTML = "" + countdown + "秒";countdown--;}setTimeout(function () {settime(obj)}, 1000)
}
</script>
互亿无线短信接口接入相关推荐
- SpringBoot 整合 发送互亿无线短信验证码
这里 提供的验证码是:https://user.ihuyi.com/ 互亿无线 产品的 百亿无线 这个短信验证,需要 固定格式的 短信内容.否则,就判定为发送失败 以下 代码需要 Jsoup 支持 自 ...
- 互亿天线短信接口php文档
官方接口文档好像有点小问题,今天接入到 Lerevl 框架里面就直接报错了 , 看到一个明显的错误,大家应该都可以看出来,希望可以帮到新手朋友 .
- php网站短信接口接入核心代码—动力思维乐信
php网站短信接口接入步骤: ①首先需要注册动力思维乐信短信接口平台账号,注册地址:(http://www.lx598.com/acc/x5?i=110792),注册免费送100条测试短信: ②登录接 ...
- Kewail平台的短信接口接入流程。
短信接口接入流程 手机短信接口接入操作流程: 申请短信签名 → 申请短信模板 → 生成AccessKey → 下载DEMO/攒写接口调用文档 → 免费测试发送 → 购买发信量正式使用. 一.申请短信签 ...
- 云片短信php接口_php与阿里云短信接口接入
使用阿里云短信API,需要在控制台获取以下必要参数,其中需要自己手机验证+官方审核多次,尤其审核需要保持耐心. 1. accessKeyId 相当于你的个人账户密钥: 2. accessKeySecr ...
- 网易云信(验证码短信接口接入)
准备工具类:chekSum package net.tiantianup.commons.utils;import java.security.MessageDigest; import java.s ...
- python发送短信接口_python发送短信和发送邮件
先注册好 发短信脚本内容 #接口类型:互亿无线触发短信接口,支持发送验证码短信.订单通知短信等. #账户注册:请通过该地址开通账户http://sms.ihuyi.com/register.html ...
- C++如何开发验证码短信接口API
验证码通知短信应用场景 验证码通知短信可广泛应用于以下场景 C++对接验证码短信接口DEMO示例 本文为您提供了C++版本的验证码短信接口对接DEMO示例 //接口类型:无线触发短信接口,支持发送验证 ...
- Go语言如何快速对接短信接口
Go语言短信接口demo //接口类型:互亿无线触发短信接口,支持发送验证码短信.订单通知短信等. // 账户注册:请通过该地址开通账户 http://user.ihuyi.com/?DKimmu / ...
- 怎么用VB对接三方验证码短信接口
VB对接验证码短信接口DEMO示例 //接口类型:互亿无线触发短信接口,支持发送验证码短信.订单通知短信等. // 账户注册:请通过该地址开通账 http://user.ihuyi.com/?DKim ...
最新文章
- Java 集合类详解
- 字符串一:替换空格()
- 程序开发工具java_15款Java程序员必备的开发工具
- DL之CNN:基于CNN-RNN(GRU,2)算法(keras+tensorflow)实现不定长文本识别
- Mysql数据库函数(数字,字符串,日期时间)
- java简单纸牌游戏_2020年最佳2人棋盘游戏:拼凑,Kingdomino等
- 免费福利 | 送你一份免费音频,让你躺着也能学习葡萄酒知识!
- 【C#学习笔记】单精度和双精度浮点型操作留意。
- Android应用方法数查看,查看size是否超过65k
- 百度搜索引擎推出“熊掌号”,保护原创作者权益
- excel财务案例建模_Pro Excel财务建模:技术创业公司的构建模型
- 前端人脸识别框架tracking.js,解决ios浏览器调摄像头黑屏的问题,兼容pc、安卓、ios。
- 18岁少年盗取1500万日元萌乃币, 逼交易所关停, 引发日本史上第一次加密币盗窃法律诉讼...
- 【有问不答】非白色光斑的检测(单个实例)
- 每日一问。2015.1.8
- 一周 Go World 新鲜事-2019W11
- 迅为开发板-i.MX6Q开发板飞思卡尔imx6开发板专业推荐
- 微信小程序云开发 serverData() 服务器时间 本地解析
- Cg教程_可编程实时图形权威指南(扫描清晰版)+部分unity shader 知识
- 齐鲁师范学院计算机专业在那个校区,齐鲁师范学院有几个校区及校区地址