基于Unity的阿里云短信SDK接入流程

基于Unity的阿里云短信SDK接入流程

第一步我们需要去使用阿里云的短信服务

在这里插入图片描述

1.如果没有注册过,就先去注册阿里云账号,并进行实名认证;
2. 注册完在产品这模块有个短信服务,开通短信服务,然后进入管理控制台;
在这里插入图片描述
3. 进入后,在国内消息中添加签名,签名名字自定义,使用场景选择验证码,申请说明自定义;
准备完全后就坐等俩小时(不用俩小时),等审核完毕。
在审核的时候我们接着把下面的操作完成。
在这里插入图片描述
在这里插入图片描述
4. 在模板管理中相同方式添加模板;
忘了说了,阿里云对短信服务是收费的,首先你得在阿里云上充值一点点钱 ,不要太多。
类似的这个模板也是需要经过审核的,审核时间不长,也就俩小时不到。在这里插入图片描述
模板内容这块使用他们推荐的常用模板库在这里插入图片描述

  1. 接下来,在审核的过程中,我们去下载短信验证的SDK(我用的是老版的SDK,现在出了个新版);
    (1)点开下面的帮助文档,在里面选择老版SDK下载
    在这里插入图片描述
    在这里插入图片描述
    (2)下载完解压,开始创建Unity工程,新建一个Unity工程
    dysms_net\net\api_demo\net2.0
    在这个net2.0文件夹下有俩个dll文件
    在这里插入图片描述
    在上一级目录也有同名的俩个dll文件,但是外部的是支持.net4以上的,在内部的是支持.net3.5的
    将这俩个dll文件导入新建的unity工程,位置没有固定
    在这里插入图片描述
    然后创建一个C#脚本 我命名为AliyunSMS,不用继承MonoBehaviour
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Dysmsapi.Model.V20170525;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AliyunSMS 
{
    //产品名称:云通信短信API产品,开发者无需替换
    const string product = "Dysmsapi";
    //产品域名,开发者无需替换
    const string domain = "dysmsapi.aliyuncs.com";

    // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
    const string accessKeyId = "LTAIpmeh3BTq603D";//-----(1)操作1
    const string accessKeySecret = "hl76uQ8DY169SXsxsAMXUtWUoO1OlE";//---------(2)操作2
    public static SendSmsResponse sendSms(string iphone,string varcode)
    {
        IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);
        SendSmsRequest request = new SendSmsRequest();
        SendSmsResponse response = null;
        try
        {

            //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
            request.PhoneNumbers = iphone;
            //必填:短信签名-可在短信控制台中找到
            request.SignName = "XuHan";//-------(3)操作3
            //必填:短信模板-可在短信控制台中找到
            request.TemplateCode = "SMS_163725001";//-------(4)操作4
            //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
            request.TemplateParam = "{\"code\":\""+varcode+"\"}";
            //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
            request.OutId = "yourOutId";
            //请求失败这里会抛ClientException异常
            response = acsClient.GetAcsResponse(request);

        }
        catch (ServerException e)
        {
            Debug.Log(e.ErrorCode);
        }
        catch (ClientException e)
        {
            Debug.Log(e.ErrorCode);
        }
        return response;

    }

}

操作1:此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
const string accessKeyId = “LTAIpmeh3BTq603D”;//-----(1)操作1
将LTAIpmeh3BTq603D替换成自己的accessKeyId
在这里插入图片描述
操作2: 这里的accessKeySecret需要自己绑定手机认证才能显示,将代码中的accessKeySecret替换成自己的
在这里插入图片描述
操作3: //必填:短信签名-可在短信控制台中找到
request.SignName = “XuHan”;//-------(3)操作3
将这个SignName 替换成自己的签名名称
在这里插入图片描述
操作4: //必填:短信模板-可在短信控制台中找到
request.TemplateCode = “SMS_163725001”;//-------(4)操作4
将TemplateCode 替换在这里插入图片描述

  1. 测试短信验证
    简单的创建一个场景,一个输入手机号的输入框,一个发送按钮,在按钮上添加一个脚本在这里插入图片描述
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.UI;

public class SendMessage : MonoBehaviour
{
    InputField inputField;
    void Start()
    {
        inputField = GameObject.Find("InputSMS").GetComponent<InputField>();
        transform.GetComponent<Button>().onClick.AddListener(SendMsg);
        //aliyunSMS = GameObject.FindObjectOfType<AliyunSMS>();
    }
    public void SendMsg() {

        if (inputField.text == "" || inputField.text == null) {
            Debug.Log("请输入手机号");
            return;
        }
        string patten = @"^1\d{10}$";//正则表达式  手机号第一位为1,后面十位都是数字
        if (Regex.IsMatch(inputField.text,patten))
        {
            Debug.Log("请输入正确的格式的手机号");
        }
        string code = "";
        int a = Random.Range(000000, 999999);
        code += a.ToString();
        AliyunSMS.sendSms(inputField.text, code);
    }
}

AliyunSMS.sendSms(inputField.text, code);
这句代码传的参数是手机号(输入框内的值),code是随机的六位数
接下来就可以发送短信了。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bubblingo0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值