用免费短信验证码SDK实现手机注册验证功能
- 格式:doc
- 大小:273.50 KB
- 文档页数:6
短信验证码原理随着移动互联网的快速发展,短信验证码已成为了各大互联网应用的常用验证方式。
从注册、登录到账户操作等,几乎所有需要身份认证的场景都需要短信验证码的保障。
那么,短信验证码是怎么实现的呢?一、短信验证码的作用短信验证码(SMS Verification Code)是运营商通信技术的一种应用,是指以短信形式发送一串数字或字母等组合的验证码,来进行用户身份验证或信息确认的过程。
短信验证码通过对短信的下发、接收和校验等多个环节的验证,来保障用户账号的安全性。
二、短信验证码的产生方式短信验证码的产生方式主要有两种,一种是基于算法生成,另一种则是人工制定。
基于算法生成的短信验证码,在短信发送前,由运营商或第三方短信服务提供商使用特定的算法生成一串固定的随机数字或字母组合,然后将其下发至接收方手机。
这种方式的优点是快捷、准确,并且可以随机生成不同的验证码,安全性更高。
人工制定的短信验证码,则是由真人指定、输入验证码,通常适用于验证手机绑定银行卡等场景。
这种方式缺点在于人为干扰因素更多,容易造成错误码的输入,安全性较低。
三、短信验证的实现过程短信验证码的实现过程可概括为“发送——接收——校验”三个环节。
(一)发送环节在用户完成短信验证的触发行为后,如注册新账号、登录或更改敏感信息等,应用程序会向短信服务商发起请求,要求发送短信验证码。
若请求成功,则短信服务商向指定接收手机发送具有短信验证码信息的短信。
(二)接收环节当用户在指定的接收手机上收到验证短信时,需要打开短信内容,查看验证码信息。
由于短信验证码的有效期通常较短,所以用户需要迅速输入短信上的验证码,完成验证环节。
(三)校验环节系统会对用户输入的短信验证码与后台验证短信中的验证码信息进行比对。
若一致,则操作通过验证,用户可以继续进行下一步操作;若不一致,则操作不予通过,用户需重新获取并输入正确的验证码。
总体而言,短信验证码的实现流程简单、易于操作,同时有效地保障了用户账号的安全性。
短信验证码实现原理摘要:一、短信验证码的定义与作用二、短信验证码的实现原理1.生成随机码2.发送随机码到用户手机3.用户输入验证码并提交4.验证码核验与匹配5.反馈结果三、短信验证码的应用场景四、短信验证码的优缺点五、未来发展趋势与应用展望正文:一、短信验证码的定义与作用短信验证码,顾名思义,是一种用于验证用户身份的编码。
它通过发送包含特定信息的短信到用户手机,要求用户在规定时间内输入正确的验证码,以证明自己是合法用户。
短信验证码在当今互联网时代被广泛应用于注册、登录、找回密码、支付确认等场景,有效提高了账户安全性。
二、短信验证码的实现原理1.生成随机码:短信验证码系统首先需要生成一个随机码,这个随机码通常由数字和字母组成,具有一定的长度。
2.发送随机码到用户手机:短信服务提供商将生成的随机码发送到用户手机,用户收到短信后,可以在规定时间内输入该验证码。
3.用户输入验证码并提交:在规定时间内,用户需要输入收到的短信验证码,并将其提交到验证服务器。
4.验证码核验与匹配:验证服务器收到用户提交的验证码后,将其与存储在数据库中的原始验证码进行比对。
如果输入的验证码与数据库中的验证码匹配,则验证通过。
5.反馈结果:验证服务器将验证结果反馈给用户,如果验证成功,用户可以继续进行相关操作;如果验证失败,提示用户重新输入或联系客服。
三、短信验证码的应用场景短信验证码广泛应用于各类互联网服务,如注册、登录、找回密码、支付确认、实名认证等场景。
通过使用短信验证码,可以有效降低恶意注册、破解密码等风险,保障用户账户安全。
四、短信验证码的优缺点优点:1.安全性较高:相较于纯数字验证码,短信验证码含有字母和数字,提高了破解难度。
2.便捷性:短信验证码可直接发送到用户手机,用户随时随地可查看和输入。
3.易于实现:短信验证码系统成熟,部署和维护成本较低。
缺点:1.依赖手机信号:用户在部分地区可能因信号不佳而无法收到短信。
2.容易被恶意软件拦截:部分恶意软件会拦截短信,导致用户无法正常接收验证码。
php手机短信验证代码(共9篇)篇一:短信验证码PHP代码篇二:用维泰SDK实现发送短信验证码php源码phprequire "httprequest.php";/*' 该示范程序通过:88/ 发送短信''返回值:'返回值大于0表示成功,小于0表示失败。
如果失败,返回信息还包括失败原因的文字描述。
'说明:'返回成功仅表示服务器已经成功接收客户提交的任务,并不表示对方已经收到短信。
'因移动公司对短信内容审核严格,如测试未收到,请及时联系客服'请不要发送"测试","你好","abc"等无意义的内容*/function smsend($strMobile,$strText){//发送短信的服务器地址$strServerURL = ":88/cgi/sendsmsbatch.asp";// 短信账号:免费申请,如有问题请联系QQ732055019// :88/mis/user_reg_form.asp?interest=sms.api $strUser= "username";// 验证密码: 初始密码由平台通过短信发送, 用户可登录平台自己修改$strPass= "userpass";if($strUser==""){echo ("短信帐号没有设定!");return;}if($strPass==""){echo ("短信验证密码没有设定!");return;}if($strMobile==""){echo ("短信接收号码无效!");return;}if($strText=="undefined|| $strText==""){echo ("短信内容不能为空!");return;}if(strlen($strText)69){echo ("短信内容不能超过69个字");return;}//准备表单:使用urlencode对参数进行编码,字符集gb2312 $strForm = "User=. urlencode($strUser);$strForm .= "&Pass=. urlencode($strPass);$strForm .= "&Mobile=. urlencode($strMobile);$strForm .= "&Text=. urlencode($strText);$h= new HttpRequest();$s= $h-request("GET",$strServerURL."?".$strFor m,"");if (strpos($s,"SUCCESS")===false){//出现错误echo ("短信通知发送失败!br.$s);}else {//发送成功echo("短信通知发送成功!");}}htmlheadtitle发送短信通知/titlemeta http-equiv="Content-Typecontent="text/html; charset=gb2312"/headbodybrdiv class="title1"发送短信通知/divdiv class="content1"$strMobile="132****9999";//接收短信的手机号码 $strText="Test SMS";//短信内容(不要超过69个字) smsend($strMobile,$strText);/div/body/htmlphp //httprequest.phpclass HttpRequest{var $_host;var $_uri;var $_port;var $_response;function parseURL($url){$req = $url;$pos = strpos($req, '://');$this-_protocol = strtolower(substr($req, 0, $pos));$req = substr($req, $pos+3);$pos = strpos($req, '/');if($pos === false)$pos = strlen($req);$host = substr($req, 0, $pos);if(strpos($host, ':') === false){$this-_host = $host;$this-_port = ($this-_protocol == 'https') ? 443 : 80;}else{list($this-_host, $this-_port) = explode(':', $host);}$this-_uri = substr($req, $pos);if($this-_uri == '')$this-_uri = '/';}function request($method , $url, $sPostData){$this-parseURL($url);$fp = pfsockopen( $this-_host, $this-_port, &$errno, &$errstr, 120); if( !$fp ) {echo "$errstr ($errno)br\n";return "";}if( strtoupper($method) == "GET"){fputs( $fp, "GET ".$this-_uri.HTTP/1.0\r\n"); }else if( strtoupper($method) == "POST) {fputs( $fp, "POST ".$this-_uri.HTTP/1.0\r\n"); }fputs( $fp, "Accept: */*\n");fputs( $fp, "Host: ".$this-_host."\r\n");fputs( $fp, "Connection: Close\r\n");if( strtoupper($method) == "POST) {$strlength = strlen( $data);fputs( $fp, "Content-type:application/x-www-form-urlencoded\r\n); fputs( $fp, "Content-length: ".$strlength."\r\n");fputs($fp, "\r\n");fputs( $fp, $data."\r\n");}else{fputs($fp, "\r\n");}$this-_response = "";while( !feof( $fp ) ) {$this-_response .= fgets( $fp, 4096);}fclose( $fp);$s = $this-getResponseBody();return $s;}function getResponse(){return $this-_response;}function getResponseBody(){$sKey = "\r\n\r\n";$pos = strpos($this-_response,$sKey);if($pos===false) return "";$str= substr($this-_response,$pos + 4);return $str;}}篇三:用免费短信验证码SDK实现手机注册验证功能用免费短信验证码SDK实现手机注册验证功能第一步获取短信SDK请到Mob官网下载最新版本的SDK,下载回来后解压,可以看到下面的文件结构:其中SMS_SDK.framework 为依赖库文件SMS_SDKDemo 为示例demo ,其中保存了短信SDK的演示项目代码。
Java加腾讯云实现短信验证码功能⼀、概要现如今在⽇常⼯作和⽣活中短信验证码对于我们来说是⾮常熟悉的,⽐较常见的注册账号或者交易⽀付时候,⼿机会收到⼀个短信验证码,我们可以通过验证码来有效验证⾝份,避免⼀些信息被盗。
验证⾝份⽬前随着app软件以及⼀些电商⽹站发展,在注册相关账号或者⽀付时候都离不了短信验证码,通过验证码能够有效避免⼀些重复数据或者烂数据。
⽽且只需要⽽只要在规定时间内正确输⼊短信验证码,就可以直接登录账号或者进⾏相关交易⽀付等。
1.0、具体的实现步骤1.0.1、⾸先你必须要有⼀个备案成功的⽹站,然后添加⼀个短信应⽤,如下图:第⼀步:创建短信应⽤第⼆步:创建短信签名第三步:在第⼆步成功后再创建短信模板第四步:这⾥就设置完成了,接下来是Java代码,通过腾讯给的java sdk接⼝实现package com.hexianwei.sms;import com.github.qcloudsms.SmsSingleSender;import com.github.qcloudsms.SmsSingleSenderResult;import org.json.JSONException;import javax.xml.ws.http.HTTPException;import java.io.IOException;import java.util.Random;public class SendSMSUtils {public static void main(String[] args) {//腾讯短信应⽤的 SDK AppIDint appid = 1400******;String appkey = "****************************";//腾讯云短信中的 App Keyint templateId = ******;// NOTE: 这⾥是短信模板ID需要在短信控制台中申请String smsSign = "";//设置信息标头,如【腾讯云】//验证码String str = "";try {//随机⽣成6位的验证码Random random = new Random();for (int i = 0; i < 6; i++) {str += random.nextInt(10);}String[] params = {str, "2"};SmsSingleSender ssender = new SmsSingleSender(appid, appkey);// 签名参数未提供或者为空时,会使⽤默认签名发送短信,这⾥的138********是为⽤户输⼊的⼿机号码SmsSingleSenderResult result = ssender.sendWithParam("86", "138********", templateId, params, smsSign, "", ""); System.out.println(result);} catch (HTTPException e) {// HTTP响应码错误e.printStackTrace();} catch (JSONException e) {// json解析错误e.printStackTrace();} catch (IOException e) {// ⽹络IO错误e.printStackTrace();} catch (com.github.qcloudsms.httpclient.HTTPException e) {e.printStackTrace();}}}注:本博客仅为个⼈学习笔记!。
短信认证方案1. 引言短信认证(SMS Verification)是一种常用的身份验证方式,其中用户通过手机接收来自认证服务提供商的短信验证码来验证其身份。
短信认证方案通常用于保护在线账户、授权交易和实施双因素身份验证。
本文将介绍短信认证方案的基本原理、安全性问题和最佳实践。
2. 原理短信认证方案的基本原理是向用户发送包含随机验证码的短信消息,用户通过在网页或应用程序内输入接收到的验证码来验证自己的身份。
下面是短信认证方案的工作流程:1.用户在网页或应用程序中选择使用短信认证来验证身份。
2.用户输入自己的手机号码。
3.认证服务提供商向用户提供的手机号码发送包含随机验证码的短信消息。
4.用户从手机的短信应用程序中获取验证码。
5.用户将验证码输入网页或应用程序进行验证。
6.系统验证验证码的有效性。
7.用户成功验证身份后,可以继续访问受保护的资源或执行授权交易。
3. 安全性问题尽管短信认证方案被广泛使用,但它并不是一个完美的解决方案,它仍然存在一些安全性问题需要注意。
下面是一些常见的安全性问题:3.1 短信传输安全性短信是通过公共通信网络传输的,因此存在被拦截或篡改的风险。
黑客可以通过拦截短信消息来获取验证码,然后利用该验证码进行身份欺骗或未授权访问。
为了解决传输安全性问题,建议使用安全的通信协议,如HTTPS,来保护用户和认证服务提供商之间的通信。
3.2 短信漏洞短信是通过移动网络发送的,可能存在接收和转发问题。
黑客可以利用这些漏洞来重定向短信,使其发送到他们控制的设备上,从而绕过用户的身份验证。
为了减少短信漏洞的风险,建议使用双因素身份验证,并在用户验证成功后,通过其他方式(如应用程序内通知)告知用户。
3.3 SIM卡劫持黑客可以使用SIM卡劫持技术获取受害者的短信消息。
他们可以通过社会工程和其他技术手段欺骗移动运营商,将受害者的手机号码转接到自己控制的设备上。
为了防止SIM卡劫持,建议用户与移动运营商合作,开启额外的安全保护措施,如开启SIM卡锁定机制。
手机短信验证方案手机短信验证方案一直以来都是许多网站和应用程序中常用的安全验证方式之一。
在用户注册、登录、密码重置等操作中,手机短信验证方案能有效地保护用户账户的安全性。
本文将介绍手机短信验证方案的原理、优势以及可能面临的挑战。
1. 手机短信验证方案的原理手机短信验证方案主要通过向用户的手机号码发送包含验证码的短信来完成验证过程。
用户在接收到短信后,将验证码输入网站或应用程序中的相应字段,从而完成身份验证。
2. 手机短信验证方案的优势2.1 安全性高:手机短信验证能够在一定程度上降低恶意攻击者的非法访问风险。
通过发送短信验证码到用户注册时提供的手机号码,确保只有持有该手机号码的用户才能进行后续操作。
2.2 方便快捷:相比其他复杂的安全验证方式,手机短信验证方案不需要用户记忆密码或使用其他设备进行身份验证。
用户只需接收短信并输入验证码,即可完成验证步骤,无需额外的操作。
2.3 可追溯性:手机短信验证方案能够记录每个操作的验证历史,包括验证时间、IP地址、手机号码等信息,为后续安全审计和投诉处理提供依据。
3. 手机短信验证方案可能面临的挑战3.1 依赖手机号码:手机短信验证方案必须依赖用户提供的手机号码,如果用户无法接收短信或手机号码存在问题,将无法进行验证,给用户带来不便。
3.2 安全性隐患:尽管手机短信验证方案相对较安全,但仍存在一些安全隐患。
比如,攻击者可能通过伪造短信或窃取用户手机号码等方式绕过验证过程,从而实施恶意操作。
3.3 成本问题:手机短信验证方案需要支付短信费用,并且对于大型网站或应用程序来说,发送大量的短信会增加相应的成本。
综上所述,手机短信验证方案在保护用户账户安全方面具有一定的优势,但同时也面临着依赖手机号码、安全性隐患以及成本问题等挑战。
为了更好地确保用户账户的安全性,网站和应用程序可以结合其他安全验证方式,如双因素认证、人机验证等,提高整体的安全性。
同时,对手机短信验证方案的脆弱性进行监测和修复,不断改进与加强其安全性,以适应不断演变的网络安全威胁。
腾讯云短信接⼝完成验证码功能个⼈使⽤⼼得(下⾯的例⼦是我个⼈项⽬中使⽤的)封装成⼀个包settings.py# 短信应⽤ SDK AppIDAPPID = 1400009099 # SDK AppID 以1400开头# 短信应⽤ SDK AppKeyAPPKEY = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad"# 短信模板ID,需要在短信控制台中申请TEMPLATE_ID= 7839 # NOTE: 这⾥的模板 ID`7839`只是⽰例,真实的模板 ID 需要在短信控制台中申请# 签名SMS_SIGN = "腾讯云"# NOTE: 签名参数使⽤的是`签名内容`,⽽不是`签名ID`。
这⾥的签名"腾讯云"只是⽰例,真实的签名需要在短信控制台中申请sms.pyfrom qcloudsms_py import SmsSingleSenderfrom .settings import *from luffyapi.utils.logging import loggerimport random#mac系统的ssl安全验证import sslssl._create_default_https_context = ssl._create_unverified_contextsender = SmsSingleSender(APPID,APPKEY)class Send_sms:def__init__(self,mobile,exp):self.mobile = mobileself.code = self.get_code()self.exp = exp# 短信发送模块def send_sms(self):try:response = sender.send_with_param(86, self.mobile, TEMPLATE_ID, (self.code, self.exp), sign=SMS_SIGN, extend="", ext="") except Exception as e:logger.error('sms error: %s' % e)return Falseif response and response['result'] == 0:return Truelogger.error('sms error:%s' % response['errmsg'])return False# 随机验证码⽣成模块def get_code(self):self.code = ''for i in range(4):self.code += str(random.randint(0, 9))return self.code__init__.pyfrom .sms import Send_sms提醒:qcloudsms_py模块别忘记安装了,指令如下pip install qcloudsms_py。
使⽤MobTech平台实现免费的短信验证码验证功能⼀、技术概述使⽤短信验证码验证注册、登录和找回密码⼏乎是每⼀个APP、甚⾄是许多⽹页所需要⽀持的技术。
对于我们学⽣完成⾮商⽤项⽬,往往需要⼀个免费提供短信验证码技术⽀持的SDK,⽽许多平台需要收费,很难找到适合的平台。
⼆、技术详述1.在MobTech中获取App Key和App Secret(1)⾸先进⼊MobTech官⽹:(2)登陆过后,选择开发者服务,点击SMSSDK。
(3)点击开始使⽤(4)点击创建应⽤,按要求填写信息后创建,并接⼊SMSSDK(5)随后点击创建好的应⽤查看应⽤的App Key和App Secret2.实现短信验证码验证功能这⾥给出MobTech的开发⽂档链接:(1)在项⽬中相应位置插⼊脚本和MobSDK插件和扩展对应项⽬中插⼊脚本:对应项⽬中插⼊MobSDK插件和扩展:脚本代码:buildscript {repositories {jcenter()}dependencies {// 注册MobSDKclasspath "com.mob.sdk:MobSDK:2018.0319.1724"}}MobSDK插件和扩展:apply plugin: 'com.mob.sdk'MobSDK {appKey "替换为mob官⽅申请的appkey"appSecret "替换为mob官⽅申请的appkey对应的appSecret"SMSSDK {}}(2)功能实现i)短信验证按钮60s计时Handler hd = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == CODE_REPEAT) {btn_check.setEnabled(true);btn_sure.setEnabled(true);tm.cancel();//取消任务tt.cancel();//取消任务TIME = 60;//时间重置btn_check.setText("重新发送验证码");}else {btn_check.setText(TIME + "重新发送验证码");}}};ii)回调EventHandler eh=new EventHandler(){@Overridepublic void afterEvent(int event, int result, Object data) {if (result == SMSSDK.RESULT_COMPLETE) {if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {phoneNum = et_phonenum.getText().toString();password = et_password.getText().toString();userName = et_userName.getText().toString();////这⾥将数据userName password phoneNum发送到数据库////Intent intent = new Intent(RegisterActivity.this,MainActivity.class);intent.putExtra("phone",phoneNum);startActivity(intent);toast("验证成功");}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){ //获取验证码成功toast("获取验证码成功");}else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){//如果你调⽤了获取国家区号类表会在这⾥回调 //返回⽀持发送验证码的国家列表}}else{//错误等在这⾥(包括验证失败)//错误码请参照/android-api-错误码参考/这⾥我就不再继续写了toast("验证码不匹配,请重新输⼊验证码");}}};iii)弹窗确认下发private void alterWarning() {//构造器AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("提⽰"); //设置标题builder.setMessage("我们将要发送到" + phone + "验证"); //设置内容builder.setIcon(R.mipmap.ic_launcher);//设置图标,图⽚id即可builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {//设置确定按钮@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss(); //关闭dialog//通过sdk发送短信验证(请求获取短信验证码,在监听(eh)中返回)SMSSDK.getVerificationCode(country, phone);//做倒计时操作Toast.makeText(RegisterActivity.this, "已发送" + which, Toast.LENGTH_SHORT).show();btn_check.setEnabled(false);btn_sure.setEnabled(true);tm = new Timer();tt = new TimerTask() {@Overridepublic void run() {hd.sendEmptyMessage(TIME--);}};tm.schedule(tt,0,1000);}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { //设置取消按钮@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();Toast.makeText(RegisterActivity.this, "已取消" + which, Toast.LENGTH_SHORT).show();}});//参数都设置完成了,创建并显⽰出来builder.create().show();}iiii)销毁短信注册protected void onDestroy() {super.onDestroy();// 注销回调接⼝registerEventHandler必须和unregisterEventHandler配套使⽤,否则可能造成内存泄漏。
短信验证登录引言短信验证登录是一种常见的身份验证方式,通过手机接收并输入验证码来完成登录过程。
相比传统的用户名和密码登录方式,短信验证登录更加方便和安全,减少了用户记忆密码的负担,并增加了账户安全性。
本文将介绍短信验证登录的原理、适用场景以及安全性考虑等方面。
原理短信验证登录的原理是基于手机号码和验证码进行身份验证。
用户在登录界面输入手机号码后,系统会向该手机号码发送一条包含验证码的短信。
用户收到短信后,在登录界面输入收到的验证码。
系统会验证用户输入的验证码与之前发送的验证码是否匹配,如果匹配则表示验证通过,用户可以成功登录。
适用场景短信验证登录适用于不需要强制要求用户设置用户名和密码的场景,比如临时登录、快速注册等。
以下是一些典型的适用场景:1.手机应用快速登录:在手机应用中,用户可以使用手机号码进行快速登录,无需记住繁琐的用户名和密码。
2.临时登录:对于一些用户不常用的网站或服务,用户可以选择使用手机号码进行临时登录,无需注册用户名和密码。
3.快速注册:用户可以通过手机号码进行快速注册,系统会为用户自动生成账号,并通过短信发送验证码进行确认。
安全性考虑虽然短信验证登录提供了方便的登录方式,但在安全性方面也存在一些考虑。
1.短信安全性:由于短信是通过无线网络传输的,存在被截获的风险。
为增加短信的安全性,可以采用加密传输或使用一次性的动态验证码。
2.手机号码保护:手机是与用户身份绑定的重要信息,需要采取措施保护手机号码的安全。
例如,避免向第三方透露手机号码,定期更换手机号码等。
3.防止验证码被冒用:为防止验证码被他人冒用,可以限制验证次数、设置验证码有效期限等。
4.双因素认证:为增加账户安全性,可以将短信验证登录与其他身份验证方式结合,如手机指纹识别、人脸识别等。
优缺点短信验证登录有以下一些优点:•便捷性:用户只需记住手机号码,无需记住复杂的用户名和密码。
•安全性:通过动态的验证码验证方式,提高了账户的安全性,避免了密码泄露或被猜测的风险。
用免费短信验证码SDK实现手机注册验证功能
第一步获取短信SDK
请到Mob官网下载最新版本的SDK,下载回来后解压,可以看到下面的文件结构:
链接:/Download
其中SMS_SDK.framework 为依赖库文件SMS_SDKDemo 为示例demo ,其中保存了短信SDK的演示项目代码。
第二步导入SDK
短信SDK 使用如下方式完成集成。
具体步骤如下:将SMS_SDK.framework 文件直接拖入项目中
第三步添加依赖库文件
第四步添加代码
1 在appDelegate 添加
1 #import <SMS_SDK/SMS_SDK.h>
2 在 1 - (BOOL )application :(UIApplication *)application didFinishLaunchingWithOptions :(NSDictionary *)launchOptions
添加
//初始化短信SDK demo 并未提供短信SDK appkey 和 appsecret 请用户到
/index.php/Sms#/ 这里申请 注意:是在短信验证SDK 后台申请 1 [SMS_SDK registerApp :appKey withSecret :appSecret ];
第五步 添加UI 事件响应 弹出注册界面和通讯录好友界面
1 弹出注册页面 1
2
3
4
5
6 -(IBAction )registerUser :(id )sender {
RegViewController * reg =[[RegViewController alloc ] init ];
[self presentViewController :reg animated :YES completion :^{
}];
}
2 弹出通讯录好友界面 Objective-C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -(IBAction )getAddressBookFriends :(id )sender {
NSLog (@"show my friends");
[_testView setNumber :0];
SectionsViewControllerFriends * friends =[[SectionsViewControllerFriends alloc ] init ];
_friendsController =friends ;
[_friendsController setMyBlock :_friendsBlock ];
[SMS_MBProgressHUD showMessag :@"正在加载中..." toView :self .view ];
[SMS_SDK getAppContactFriends :1 result :^(enum SMS_ResponseState state , NSArray *array ) { if (1==state )
{
NSLog (@"block 获取好友列表成功");
[_friendsController setMyData :array ];
[self presentViewController :_friendsController animated :YES completion :^{
;
}];
}
else if (0==state )
{
NSLog (@"block 获取好友列表失败");
25 26 27 }
}];
}
附录: UI 介绍
UI 文件夹下包含所用到的图片资源和界面UI Smssdk.bundle 为图片资源 其他文件 为界面UI
1、注册界面 RegViewController,在事件响应中 弹出该控制器即可 进入该界面后 点击国家和地区 会进入 选择国家和地区的选项 相对应的控制器为SectionsViewController,在该控制器会从服务端 获取SDK 所支持的国家和地区。
用户在注册页面输入手机号码之后 点击下一步服务端 会发送短信验证码 界面会跳转到短信验证界面 该界面对应的控制器为VerifyViewController 主要处理短信的验证功能
2、通讯录好友界面 SectionsViewControllerFriends,在事件响应中 弹出该好友控制器即可 进入该界面后
会把通讯录的好友分为两类:
已加入的用户:可以点击添加按钮
直接去添加已加入该app 的通讯录好友 待邀请的用户:可以点击按钮 发送短信 邀请好友加入该app
API 介绍 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 /**
* @brief 注册应用,此方法在应用启动时调用一次并且只能在主线程调用。
* @param appKey ,应用key,在shareSDK 官网中注册的应用Key
* @param appSecret 应用秘钥,在shareSDK 官网中注册的应用秘钥
*/
+(void )registerApp :(NSString*)appKey withSecret :(NSString*)appSecret ;
/**
* @brief 获取appkey 。
* @return 返回appkey
*/
+(NSString*)appKey ;
/**
* @brief 获取appsecret 。
* @return 返回appsecret
*/
+(NSString*)appSecret ;
/**
* @brief 获取通讯录数据
* @return 返回的数组里面存储的数据类型是SMS_AddressBook
*/
+(NSMutableArray*)addressBook ;
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
/**
* @brief 发送短信。
* @param 要发送短信的号码
*/
+(void )sendSMS :(NSString*)tel ;
/**
* @brief 向服务端请求获取通讯录好友信息。
* @param 调用参数 默认填choose=1
* @param 请求结果回调block
*/
+(void )getAppContactFriends :(int )choose
result :(GetAppContactFriendsBlock )result ;
/**
* @brief 获取验证码。
* @param 电话号码
* @param 区号
* @param 请求结果回调block
*/
+(void )getVerifyCodeByPhoneNumber :(NSString*) phone AndZone :(NSString*) zone
result :(GetVerifyCodeBlock )result ;
/**
* @brief 提交验证码。
* @param 验证码
* @param 请求结果回调block
*/
+(void )commitVerifyCode :(NSString *)code
result :(CommitVerifyCodeBlock )result ;
/**
* @brief 请求所支持的区号。
* @param 请求结果回调block
*/
+(void )getZone :(GetZoneBlock )result ;
/**
* @brief 提交用户资料。
* @param 用户信息
* @param 请求结果回调block
*/
+(void )submitUserInfo :(SMS_UserInfo*)user
result :(SubmitUserInfoBlock )result ;
/**
75 76 77 78 79 80 81 82 * @brief 设置最近新好友条数。
*/
+(void )setLatelyFriendsCount :(int )count ;
/**
* @brief 显示最近新好友条数回调。
* @param 设置结果回调block
*/
+(void )showFriendsBadge :(ShowNewFriendsCountBlock )result ;。