Unity 阿里云 之 SMS短信服务功能接入实现

Unity 阿里云 之 SMS短信服务功能接入实现

 

目录

Unity 阿里云 之 SMS短信服务功能接入实现

一、简介和目的

二、实现要点

三、使用注意

四、实现步骤


 

一、简介和目的

短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力。

支持国内和国际快速发送验证码、短信通知和推广短信,服务范围覆盖全球200多个国家和地区。

短信服务功能可以在账号登陆的时候进行验证;或者后期修改密码,进行修改验证;更方便的可以在游戏后期进行一些推广使用。

 

二、实现要点

1、在阿里云开发工具包(SDK)下载 SDK核心库 dll(aliyun-net-sdk-Core.dll),引入Unity

https://develop.aliyun.com/tools/sdk?spm=a2c4g.11186623.2.13.ac463854vV2vlZ#/dotnet

2、在短信服务中添加 签名管理模板管理 内容

3、申请阿里云 AccessKey

4、关键代码

void SendSMS(string phone,string code) {
        IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");
        DefaultAcsClient client = new DefaultAcsClient(profile);
        CommonRequest request = new CommonRequest();
        request.Method = MethodType.POST;
        request.Domain = "dysmsapi.aliyuncs.com";
        request.Version = "2017-05-25";
        request.Action = "SendSms";
        // request.Protocol = ProtocolType.HTTP;
        request.AddQueryParameters("PhoneNumbers", phone);
        request.AddQueryParameters("SignName", "xan游");
        request.AddQueryParameters("TemplateCode", "SMS_177551456");
        request.AddQueryParameters("TemplateParam", "{'code':'"+code+"'}");
        try
        {
            CommonResponse response = client.GetCommonResponse(request);
            Debug.Log(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
        }
        catch (ServerException e)
        {
            print(e);
        }
        catch (ClientException e)
        {
            print(e);
        }
    }

5、数据返回结果

{
	"Message": "OK",
	"RequestId": "873043ac-bcda-44db-9052-2e204c6ed20f",
	"BizId": "607300000000000000^0",
	"Code": "OK"
}

三、使用注意

1、注意:这里好像要买套餐,不然手机接收不到信息,调用短信服务功能的时候,可能会返回结果是 账号余额不足

2、注意:aliyun-net-sdk-Core.dll 好像是 .Net 4.x Equivalent ,如果需要,把Unity的 Player Settings 的 other 中修改为对应的版本

 

四、实现步骤

1、登陆阿里云网站,找到短信服务功能

2、在短信服务中,进入 管理控制平台

3、添加签名管理

4、添加 模板管理

5、上面的 签名 和 模板 审核通过之后,可以在快速学习中测试一下

注意:这里好像要买套餐,不然手机接收不到信息,返回结果是 账号余额不足

6、测试OK ,可以查看 代码,Unity的为 .Net,当然这里也可以测试-发起调用

注意:这里好像要买套餐,不然手机接收不到信息,返回结果是 账号余额不足

7、在 网址 https://develop.aliyun.com/tools/sdk?spm=a2c4g.11186623.2.13.ac463854vV2vlZ#/dotnet

下载 SDK核心库 dll 插件

 

8、对了,如果没有 AccessKey ,记得申请一个

9、把 SDK核心库 aliyun-net-sdk-Core.dll 引入 Unity,并且 简单的布局短信服务UI

注意:aliyun-net-sdk-Core.dll 好像是 .Net 4.x Equivalent ,如果需要,把Unity的 Player Settings 的 other 中修改为对应的版本

10、新建脚本,编写代码,关键代码 就是第 6 步那里获取,并把自己的 AccessKey 对应添加进代码中

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Http;
using UnityEngine.UI;

public class AliyunSMS : MonoBehaviour
{

    public InputField phone_ipt;
    public InputField code_ipt;

    public Button getCode_btn;
    public Button code_btn;


    private string phone;
    private string code;

    // Start is called before the first frame update
    void Start()
    {
        

        // 输入手机号,获取验证码
        getCode_btn.onClick.AddListener(()=> {

            if (String.IsNullOrEmpty(phone_ipt.text)) {

                Debug.Log("请确认手机号码");

                return;
            }
            // 电话号码
            phone = phone_ipt.text;

            // 生成验证码
            int ran = UnityEngine.Random.Range(100000, 999999);
            code = ran.ToString();

            SendSMS(phone, code);
        });

        // 验证输入是否正确
        code_btn.onClick.AddListener(()=> {

            if (String.IsNullOrEmpty(code_ipt.text))
            {

                Debug.Log("请确认验证码");

                return;
            }

            if (code_ipt.text.Equals(code))
            {
                Debug.Log("验证码输入正确");
            }
            else {
                Debug.Log("验证码输入错误");
            }

        });


    }

    // Update is called once per frame
    void Update()
    {
        
    }

    /// <summary>
    /// 验证码发送到手机
    /// </summary>
    /// <param name="phone"></param>
    /// <param name="code"></param>
    void SendSMS(string phone,string code) {
        IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>"");
        DefaultAcsClient client = new DefaultAcsClient(profile);
        CommonRequest request = new CommonRequest();
        request.Method = MethodType.POST;
        request.Domain = "dysmsapi.aliyuncs.com";
        request.Version = "2017-05-25";
        request.Action = "SendSms";
        // request.Protocol = ProtocolType.HTTP;
        request.AddQueryParameters("PhoneNumbers", phone);
        request.AddQueryParameters("SignName", "xan游");
        request.AddQueryParameters("TemplateCode", "SMS_177551456");
        request.AddQueryParameters("TemplateParam", "{'code':'"+code+"'}");
        try
        {
            CommonResponse response = client.GetCommonResponse(request);
            Debug.Log(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
        }
        catch (ServerException e)
        {
            print(e);
        }
        catch (ClientException e)
        {
            print(e);
        }
    }
}





11、运行场景

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
无线短信验证码接口/订单通知短信专用接口,具有全国全网发送、3-5秒内响应、100%到达、通道稳定免维护等优势专为网站短信验证码、网站订单通知等互动应用开设。 短信验证码/订单通知短信模板示例 通用短信签名: 【会员验证通知】 固定短信模板: 1.验证码类 您的验证码是:【变量】。如需帮助请联系客服。 您的验证码是:【变量】。请不要把验证码泄露给其他人。如非本人操作,可不用理会! 您的手机号:【变量】,注册验证码:【变量】,一天内提交有效,如不是本人操作请忽略! 您的手机号:【变量】,绑定验证码:【变量】,一天内提交有效,如不是本人操作请忽略! 尊敬的用户您已经注册成功,用户名:【变量】 密码:【变量】 感谢您的注册! 2.订单通知类 您的订单编码:【变量】。如需帮助请联系客服。 您的订单:【变量】,已于【变量】付款成功。感谢您的购买! 您的订单:【变量】,收货人:【变量】 电话:【变量】,已经成功提交。感谢您的购买! 您的订单:【变量】已经支付完成,订单已确认有效。以下是您获得的邀请码:【变量】 您的订单:【变量】,已取消! 您的订单:【变量】,确认收货成功。感谢您购买与支持,欢迎您下次光临! 订单号:【变量】 已于【变量】配货。如有问题请及时联系! 订单号:【变量】 已于【变量】发货,如有问题请及时联系! 您有新的订单:【变量】,收货人:【变量】,电话:【变量】,请及时确认订单! 【变量】,订单号 :【变量】 买家已取消订单! 订单号 :【变量】 买家付款了。收货人:【变量】,电话:【变量】。请及时安排发货! 订单号 :【变量】 买家已确认收货! 备注:需要通过官方网站注册个用户
Unity是一种跨平台的游戏开发引擎,可以用于开发iOS、Android、Windows等多种平台的游戏。而阿里云则是阿里巴巴集团提供的云计算服务平台,该平台提供了各种云服务器、存储、数据库等服务,方便开发者部署和管理应用程序。 Unity阿里云之间的接口主要包括以下几个方面: 1. 阿里云服务器(ECS)集成:Unity可以使用阿里云提供的API和SDK进行与ECS实例的交互,包括创建、删除、管理云服务器等。 2. 阿里云对象存储(OSS)集成:通过阿里云的OSS服务Unity可以实现游戏素材的存储和管理,包括上传、下载、删除等操作。 3. 阿里云消息服务(MNS)集成:Unity可以通过阿里云的消息服务实现游戏之间的消息传递和通信,方便实现多人游戏或在线功能。 4. 阿里云数据库服务(RDS)集成:Unity可以使用阿里云提供的数据库服务,如MySQL、SQL Server等,在游戏中存储和管理用户数据、排行榜等信息。 要实现Unity阿里云的接口,首先要根据阿里云提供的开发文档和教程了解相关的API和SDK的使用方法。然后,在Unity项目中导入相应的SDK,并根据文档进行配置和设置。最后,在代码中调用相应的API和方法,实现阿里云的交互。 总之,Unity阿里云的接口集成可以为游戏开发者提供强大的云计算能力和存储服务,使得游戏开发和部署更加便捷和灵活。通过学习和掌握相关的教程和文档,开发者可以使用Unity开发出更具有丰富性和可扩展性的游戏应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

仙魁XAN

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

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

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

打赏作者

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

抵扣说明:

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

余额充值