admin 发布于2017-4-26 16:38 172 次浏览 0 位用户参与讨论   [复制分享主题]

在游戏开发中登录、修改密码等情况下往往需要使用短信验证

本文介绍在Unity中访问SMSSDK来实现短信验证这一功能

实现了在Android平台上运行,我已经上传了本文源码点击打开链接,大家可以下载参考学习(含APK、SMSDK)

大家也可以访问其官网来下载最新SMSSDK

准备开发环境解压下载下来的SMSSDK,按下图路径将Plugins目录拖到Unity Asset目录下

按如下图步骤切换到Android平台下开发

接下来新建一个Scene,在Main Camera(可以选择其他游戏对象)下添加SMSSDK脚本组件

添加上需要填写App Key和App Serect,这个需要在官网注册获取,获取后填写进去

编写代码新建一个C#脚本挂载到Main Camera上(其他对象也行)
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using UnityEngine.UI;  
  4. using cn.SMSSDK.Unity;  
  5.   
  6. public class MySelfDemoText : MonoBehaviour ,SMSSDKHandler//实现接口,用于设置回调  
  7. {  
  8.     public InputField PhoneNumberInput;  
  9.     public InputField VerificationInput;  
  10.   
  11.     public Text respText;  
  12.     public Text MessText;  
  13.   
  14.     private SMSSDK smssdk;  
  15.   
  16.     private UserInfo userInfo;  
  17.   
  18.     private string phoneNum = "";  
  19.     private string zone = "86";  
  20.   
  21.     private string appKey = "1d3d7e144fc11";  
  22.     private string appSerect = "056678a6f8570d521368968e80d62b91";  
  23.   
  24.     // Use this for initialization  
  25.     void Start ()   
  26.     {  
  27.         smssdk = GameObject.Find("Main Camera").GetComponent<SMSSDK>();  
  28.         smssdk.init(appKey,appSerect,false);//初始化SDK  
  29.   
  30.         smssdk.setHandler(this);//设置回调,用户处理从客户端返回的信息  
  31.   
  32.         userInfo = new UserInfo();  
  33.     }  
  34.       
  35.     // Update is called once per frame  
  36.     void Update ()   
  37.     {  
  38.         if (Input.GetKeyDown(KeyCode.Escape))  
  39.         {  
  40.             Application.Quit();  
  41.         }  
  42.     }  
  43.   
  44.     public void OnBtnVerification()  
  45.     {  
  46.         phoneNum = PhoneNumberInput.text;  
  47.         Debug.Log(phoneNum);  
  48.         //通过手机号获取验证码  
  49.         smssdk.getCode(CodeType.TextCode,phoneNum,zone);  
  50.     }  
  51.   
  52.     public void OnBtnOK()  
  53.     {  
  54.         //提交验证码  
  55.         smssdk.commitCode(phoneNum,zone,VerificationInput.text);  
  56.     }  
  57.   
  58.     public void onComplete(int action, object resp)  
  59.     {  
  60.         ActionType act = (ActionType)action;  
  61.         if (resp != null)  
  62.         {  
  63.             respText.text = resp.ToString();  
  64.         }  
  65.         if (act == ActionType.GetCode)  
  66.         {  
  67.             string responseString = (string)resp;  
  68.             Debug.Log("isSmart :" + responseString);  
  69.             MessText.text = "isSmart :" + responseString;  
  70.         }  
  71.         else if (act == ActionType.GetVersion)  
  72.         {  
  73.             string version = (string)resp;  
  74.             MessText.text = "version :" + version;  
  75.         }  
  76.         else if (act == ActionType.GetSupportedCountries)  
  77.         {  
  78.   
  79.             string responseString = (string)resp;  
  80.             Debug.Log("zoneString :" + responseString);  
  81.             MessText.text = "zoneString :" + responseString;  
  82.   
  83.         }  
  84.         else if (act == ActionType.GetFriends)  
  85.         {  
  86.             string responseString = (string)resp;  
  87.             Debug.Log("friendsString :" + responseString);  
  88.             MessText.text = "friendsString :" + responseString;  
  89.         }  
  90.         else if (act == ActionType.CommitCode)  
  91.         {  
  92.   
  93.             string responseString = (string)resp;  
  94.             Debug.Log("commitCodeString :" + responseString);  
  95.             MessText.text = "commitCodeString :" + responseString;  
  96.   
  97.         }  
  98.         else if (act == ActionType.SubmitUserInfo)  
  99.         {  
  100.   
  101.             string responseString = (string)resp;  
  102.             Debug.Log("submitString :" + responseString);  
  103.             MessText.text = "submitString :" + responseString;  
  104.         }  
  105.         else if (act == ActionType.ShowRegisterView)  
  106.         {  
  107.   
  108.             string responseString = (string)resp;  
  109.             Debug.Log("showRegisterView :" + responseString);  
  110.             MessText.text = "showRegisterView :" + responseString;  
  111.         }  
  112.         else if (act == ActionType.ShowContractFriendsView)  
  113.         {  
  114.   
  115.             string responseString = (string)resp;  
  116.             Debug.Log("showContractFriendsView :" + responseString);  
  117.             MessText.text = "showContractFriendsView :" + responseString;  
  118.         }  
  119.     }  
  120.   
  121.     public void onError(int action, object resp)  
  122.     {  
  123.         Debug.Log("Error :" + resp);  
  124.         respText.text = resp.ToString();  
  125.     }  
  126. }
复制代码
最后将其打包成APK,需要做下如下图修改


之后便能在Android上接收短信并完成验证!


文章来源:http://blog.csdn.net/qq_33747722/article/details/70409198


无欲无求
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| Archiver|手机版|小黑屋| 亮社区   

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 京ICP备16064692号-2 )

快速
回复
返回
列表
返回
顶部
加入R社联盟,立即注册账号登陆 QQ账号登陆 微信账号登陆