最近和同学们一起开发一个自主项目,要用到短信验证码,在网上搜索了很久,看到一个推荐贴,提到了很多不错的短信服务商。经过测试,帖子中提到的服务商他们的短信到达率和到达速度也都不错。最后,由于经费问题,我们决定选用云片网络。以下是开发流程:

  首先,注册并登陆到后台,并填写一些信息、申请。获得APIKEY。

  接下来,有了APIKEY就能开发接口了。

<?php
header("Content-Type:text/html;charset=utf-8");
$apikey = "********填入APPKEY********";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8', 'Content-Type:application/x-www-form-urlencoded','charset=utf-8')); // 设置验证方式
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设置返回结果为流
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间
curl_setopt($ch, CURLOPT_POST, 1); // 设置通信方式
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 发送模板短信
// 需要对value进行编码
$mobile = 12345678910; // 接收短信的手机号
$code = getRandomCheckCode(); // 要发送的验证码
$data=array(
'tpl_id' => 5, // 此处为模板id,不设置时默认为1
'tpl_value' => urlencode('#code#').'='.urlencode($code)
.'&'.urlencode('#company#').'='.urlencode('公司名称')
.'&'.urlencode('#app#').'='.urlencode('app名称'),
'apikey' => $apikey,
'mobile' =>$mobile
); curl_setopt ($ch, CURLOPT_URL, 'https://sms.yunpian.com/v1/sms/tpl_send.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$send_result = json_decode(curl_exec($ch), true);
curl_close($ch);
if(0 == $send_result['code']) { // 成功 } else { // 失败 }
// 此处附上一个验证码生成函数
function getRandomCheckCode() {
$chars = '0123456789';
mt_srand((double)microtime()*1000000*getmypid());
$CheckCode="";
while(strlen($CheckCode)<6)
$CheckCode.=substr($chars,(mt_rand()%strlen($chars)),1);
return $CheckCode;
}
?>

App开发(Android与php接口)之:短信验证码的更多相关文章

  1. android 中调用接口发送短信

    android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getD ...

  2. android中如何自动获取短信验证码

    package com.loaderman.smsbroadcastreceiver; import java.util.regex.Matcher; import java.util.regex.P ...

  3. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  4. Yii2在Form中处理短信验证码的Validator,耦合度最低的短信验证码验证方式

    短信验证码在目前大多数web应用中都会有,本文介绍一个基于Yii2 Validator方式的验证码验证方式. 在其他文章中看到的方式大多比较难做到一次封装,多次重用. 使用此方式的好处自然不用多说,V ...

  5. 微信小程序 键盘显示短信验证码

    1.场景描述: IOS系统 一些APP或者微信小程序在收到短信验证码的时候会在键盘上自动保存验证码信息,当用户点击的时候,会自动赋值到当前所点击的输入框中 2.案例: 2.实现: TIPS:这个功能是 ...

  6. Android开发之短信验证码示例

    在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据 聚合数据介绍 聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务.免费提供从天气查询.空气质量.地图坐标到金融 ...

  7. Spring Security构建Rest服务-1203-Spring Security OAuth开发APP认证框架之短信验证码登录

    浏览器模式下验证码存储策略 浏览器模式下,生成的短信验证码或者图形验证码是存在session里的,用户接收到验证码后携带过来做校验. APP模式下验证码存储策略 在app场景下里是没有cookie信息 ...

  8. 示例浅谈PHP与手机APP开发,即API接口开发

    示例浅谈PHP与手机APP开发,即API接口开发 API(Application Programming Interface,应用程序接口)架构,已经成为目前互联网产品开发中常见的软件架构模式,并且诞 ...

  9. Android 项目开发实战:聚合数据短信验证码

    聚合数据集成短信验证码官网: https://www.juhe.cn/docs/api/id/54 我根据文档集成了一个例子 效果: 源码下载:http://download.csdn.net/det ...

随机推荐

  1. Java网络编程之流——readline()方法的bug

    readline()方法有一个隐含的bug,它不一定会把一个回车看作行的结束.相反,readline()只识别换行或回车/换行对.当在流中检测到回车时,readline()会在继续之前等待,查看下一个 ...

  2. 比较常用到的一些linux命令行

    find ./ -type f -name "*.c" | xargs grep -l "tm_common_ctrl_init_chip_init"     ...

  3. GPS部标平台的架构设计(十)-基于Asp.NET MVC构建GPS部标平台

    在当前很多的GPS平台当中,有很多是基于asp.NET+siverlight开发的遗留项目,代码混乱而又难以维护,各种耦合和关联,要命的是界面也没见到比Javascript做的控件有多好看,随着需求的 ...

  4. 如何做好GPS平台软硬件集成测试

    集成测试是为了构建一个更大的系统或平台,这个系统的几个部分通常是由不同的团队或甚至不同的公司开发的,以前在做信息化的软件开发时,面临的集成测试通常是不同软件子系统之间的集成测试,往往被这一阶段的测试搞 ...

  5. Access restriction: The type QName is not accessible due to restriction on required library

    There's another solution that also works. I found it on this forum: Go to the Build Path settings in ...

  6. jsonp

    一次关于JSONP的小实验与总结   前言: 今天,无意间看到自己某个文件夹下有个JSONP的东西.慢慢回忆起,这个东西是之前想写的一个demo,也不知道是多久以前了,但是不知道怎么的,给忘那边了.那 ...

  7. win7,安装node失败

    win7下,下载node安装包,安装之后 打开命令行输入 node -v,仍然提示命令不可用. 解决办法: 找到环境变量: 在用户变量里修改 path: 添加系统变量 NODE_PATH: 关机重启电 ...

  8. 学习笔记:MySQL操作初步

    对数据库的操作:SQL语言 一:SQL:Structured Query Language,结构化查询语言! 二:DDL:Data Definition Language,数据定义语言 三:DML:D ...

  9. 不安装oracle客户端,用plsql连接oracle

    常用的Oracle开发的工具有SQL Developer和PL/SQL Developer,个人感觉前者虽然跨平台性优于后者,但比较大(大于300M)占用资源,而且用户体验也一般,而后者相对就小很多( ...

  10. ASP.net gridview之性别

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...