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

  首先,注册并登陆到后台,并填写一些信息、申请。获得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. Hibernate不能自动建表解决办法

    最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且 ...

  2. mac系统terminal连接linux

    ssh user@hostname user是管理员账号 hostname是服务器ip

  3. Leetcode: Count The Repetitions

    Define S = [s,n] as the string S which consists of n connected strings s. For example, ["abc&qu ...

  4. Leetcode: Design Snake Game

    Design a Snake game that is played on a device with screen size = width x height. Play the game onli ...

  5. HDU 4504 威威猫系列故事——篮球梦(dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=4504 题目大意: 中文都看得懂.不过我是看hint才正确理解什么意思的.开始的时候理解错了. 解题思路: 给定时 ...

  6. LeetCode: Product of Array Except Self

    Dynamic Programming public class Solution { public int[] productExceptSelf(int[] nums) { int[] ans = ...

  7. hdu 1556

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. Javascript模块化编程(二):AMD规范(转)

    这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要 ...

  9. tk画图

    Page 387 of chapter 7 """ 6-23 page 343 play media files """ def odd() ...

  10. try,catch,finally含return时的执行顺序及丢失的伪例

    最近面试遇到一个之前也看到过但没去看一下的问题.就是有return情况下的try,catch,finally的执行顺序. 今天写了下. 先看顺序问题.总结如下: 一:finally中没有写return ...