精华内容
下载资源
问答
  • android 验证码之短信验证(云之讯短信平台.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 这是一个短信验证码的demo,项目基本上都需要用到,我这里是用的之迅平台。希望能够帮助到大家
  • 目录1 云之讯短信验证码1.1 创建应用1.2 创建短信模板1.3 发送短信api1.4 编写代码1.5 编写测试用例1.6 mock接口1.7 编写接口服务2 阿里云短信服务2.1 申请签名与模板2.2 设置用户权限2.3 示例代码2.4 实现发送短信...

    反正对于个人来说这两个短信平台都不友好,建议使用假数据测试即可

    1 云之讯短信验证码

    短信验证码选用云之讯第三方短信平台:https://www.ucpaas.com/

    选择原因:注册赠送10元,无实名认证也可以发验证码短信。现在也没了3元好像

    1.1 创建应用

    自行注册、登录后进行创建应用:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KfTXt9gi-1609513156190)(assets/1563871381466.png)]

    创建完成:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rC5jFYeI-1609513156192)(assets/1563871420976.png)]

    默认情况下,短信只能发送给自己注册的手机号,为了测试方便需要添加测试手机号(最多6个):

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ReqZ1t0L-1609513156194)(assets/1563871502001.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lhYB6A3B-1609513156195)(assets/1563871525177.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wkvFRIsU-1609513156197)(assets/1563871623362.png)]

    1.2 创建短信模板

    发送短信需要创建短信模板,模板中采用{1}、{2}的形式作为参数占位。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LXPog0vu-1609513156197)(assets/1563872107275.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Op3NjIK-1609513156198)(assets/1563872196635.png)]

    模板处于待审核状态是不可以使用的,需要审核通过后才能使用,审核通过后会有短信通知。

    1.3 发送短信api

    地址:http://docs.ucpaas.com/doku.php?id=%E7%9F%AD%E4%BF%A1:sendsms

    参数:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3x4R3NQu-1609513156199)(assets/1563872944318.png)]

    响应:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WdsLWe8B-1609513156199)(assets/1563872971906.png)]

    返回码:http://docs.ucpaas.com/doku.php?id=error_code

    1.4 编写代码

    配置RestTemplateConfig:

    package com.tanhua.sso.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.client.ClientHttpRequestFactory;
    import org.springframework.http.client.SimpleClientHttpRequestFactory;
    import org.springframework.web.client.RestTemplate;
    import org.springframework.http.converter.StringHttpMessageConverter;
    
    import java.nio.charset.Charset;
    
    @Configuration
    public class RestTemplateConfig {
    
        @Bean
        public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
            RestTemplate restTemplate = new RestTemplate(factory);
            // 支持中文编码
            restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(Charset.forName("UTF-8")));
            return restTemplate;
    
        }
    
        @Bean
        public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
            SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
            factory.setReadTimeout(5000);//单位为ms
            factory.setConnectTimeout(5000);//单位为ms
            return factory;
        }
    }
    

    编写SmsService:

    package com.tanhua.sso.service;
    
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import org.apache.commons.lang3.RandomUtils;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.ResponseEntity;
    import org.springframework.stereotype.Service;
    import org.springframework.web.client.RestTemplate;
    
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    @Service
    public class SmsService {
    
        @Autowired
        private RestTemplate restTemplate;
    
        private static final ObjectMapper MAPPER = new ObjectMapper();
    
    
        /**
         * 发送验证码短信
         *
         * @param mobile
         */
        public String sendSms(String mobile) {
            String url = "https://open.ucpaas.com/ol/sms/sendsms";
            Map<String, Object> params = new HashMap<>();
            params.put("sid", "*******");
            params.put("token", "*******");
            params.put("appid", "*******");
            params.put("templateid", "*****");
            params.put("mobile", mobile);
            // 生成4位数验证 如果是多个参数用,分隔
            params.put("param", RandomUtils.nextInt(100000, 999999));
            ResponseEntity<String> responseEntity = this.restTemplate.postForEntity(url, params, String.class);
    
            String body = responseEntity.getBody();
    
            try {
                JsonNode jsonNode = MAPPER.readTree(body);
                //000000 表示发送成功
                if (StringUtils.equals(jsonNode.get("code").textValue(), "000000")) {
                    return String.valueOf(params.get("param"));
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            return null;
    
        }
    
    }
    
    

    相关参数的信息查询:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u8XCl0e1-1609513156200)(assets/1563874190329.png)]

    1.5 编写测试用例

    package com.tanhua.sso.service;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    @SpringBootTest
    @RunWith(SpringJUnit4ClassRunner.class)
    public class TestSmsService {
    
        @Autowired
        private SmsService smsService;
    
        @Test
        public void sendSms(){
            this.smsService.sendSms("158****7944");
        }
    }
    
    

    1.6 mock接口

    地址:https://mock-java.itheima.net/project/164/interface/api/11011

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bit2cyvF-1609513156200)(assets/1564535110994.png)]

    1.7 编写接口服务

    编写ErrorResult:

    package com.tanhua.sso.vo;
    
    import lombok.Builder;
    import lombok.Data;
    
    @Data
    @Builder
    public class ErrorResult {
    
        private String errCode;
        private String errMessage;
    }
    
    

    SmsController:

    package com.tanhua.sso.controller;
    
    import com.tanhua.sso.service.SmsService;
    import com.tanhua.sso.vo.ErrorResult;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.HttpStatus;
    import org.springframework.http.ResponseEntity;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Map;
    
    @RestController
    @RequestMapping("user")
    public class SmsController {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(SmsController.class);
    
        @Autowired
        private SmsService smsService;
    
        /**
         * 发送验证码
         *
         * @return
         */
        @PostMapping("login")
        public ResponseEntity<Object> sendCheckCode(@RequestBody Map<String, Object> param) {
            ErrorResult.ErrorResultBuilder resultBuilder = ErrorResult.builder().errCode("000000").errMessage("发送短信验证码失败");
            try {
                String phone = String.valueOf(param.get("phone"));
                Map<String, Object> sendCheckCode = this.smsService.sendCheckCode(phone);
                int code = ((Integer) sendCheckCode.get("code")).intValue();
                if (code == 3) {
                    return ResponseEntity.ok(null);
                }else if(code == 1){
                    resultBuilder.errCode("000001").errMessage(sendCheckCode.get("msg").toString());
                }
            } catch (Exception e) {
                LOGGER.error("发送短信验证码失败", e);
            }
    
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultBuilder.build());
        }
    
    }
    
    

    SmsService:

    package com.tanhua.sso.service;
    
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import org.apache.commons.lang3.RandomUtils;
    import org.apache.commons.lang3.StringUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.http.ResponseEntity;
    import org.springframework.stereotype.Service;
    import org.springframework.web.client.RestTemplate;
    
    import java.io.IOException;
    import java.time.Duration;
    import java.util.HashMap;
    import java.util.Map;
    
    @Service
    public class SmsService {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(SmsService.class);
    
        @Autowired
        private RestTemplate restTemplate;
    
        private static final ObjectMapper MAPPER = new ObjectMapper();
    
        @Autowired
        private RedisTemplate<String, String> redisTemplate;
    
        /**
         * 发送验证码
         *
         * @param mobile
         * @return
         */
        public Map<String, Object> sendCheckCode(String mobile) {
            Map<String, Object> result = new HashMap<>(2);
            try {
                String redisKey = "CHECK_CODE_" + mobile;
                String value = this.redisTemplate.opsForValue().get(redisKey);
                if (StringUtils.isNotEmpty(value)) {
                    result.put("code", 1);
                    result.put("msg", "上一次发送的验证码还未失效");
                    return result;
                }
                String code = this.sendSms(mobile);
                if (null == code) {
                    result.put("code", 2);
                    result.put("msg", "发送短信验证码失败");
                    return result;
                }
    
                //发送验证码成功
                result.put("code", 3);
                result.put("msg", "ok");
    
                //将验证码存储到Redis,2分钟后失效
                this.redisTemplate.opsForValue().set(redisKey, code, Duration.ofMinutes(2));
    
                return result;
            } catch (Exception e) {
    
                LOGGER.error("发送验证码出错!" + mobile, e);
    
                result.put("code", 4);
                result.put("msg", "发送验证码出现异常");
                return result;
            }
    
        }
    
    }
    
    
    package com.itheima.sso.vo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Result {
    
        private boolean success;
        private int code;
        private String message;
    }
    
     public Result sendCheckCode(String phone) {
            String checkCodeKEY = "CHECK_CODE_" + phone;
            String redisCode = redisTemplate.opsForValue().get(checkCodeKEY);
            if (StringUtils.isNotEmpty(redisCode)){
                return new Result(true,1,"上一次发送的验证码还未失效");
            }
            String code = this.sendSms(phone);
            if (code == null){
                return new Result(false,2,"发送验证码失效");
            }
            //存储在redis中
            this.redisTemplate.opsForValue().set(checkCodeKEY,code, Duration.ofHours(24));
            return new Result(true,3,"发送验证码成功");
        }
    

    2 阿里云短信服务

    在这里插入图片描述
    云之讯平台如果不能审核通过的话,可以使用阿里云短信服务进行发送。

    2.1 申请签名与模板

    https://dysms.console.aliyun.com/dysms.htm?spm=5176.12818093.0.ddysms.2a4316d0ql6PyD

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pcO8oYJ6-1609513156201)(assets/image-20201016193819097.png)]

    说明:申请签名时,个人用户只能申请一个并且签名的名称必须为“ABC商城”,否则审核不通过。

    申请模板:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sg65tGfg-1609513156202)(assets/image-20201016193927924.png)]

    审核时间需要12小时,请耐心等待

    2.2 设置用户权限

    在阿里云中,需要在RAM服务中创建用户以及权限,才能通过api进行访问接口。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MHN7QetQ-1609513156202)(assets/image-20201016194331790.png)]

    创建用户:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d1XQd7pt-1609513156203)(assets/image-20201016194409024.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W2KlHCgW-1609513156204)(assets/image-20201016195011698.png)]

    创建完成后要保存AccessKey Secret和AccessKey ID,AccessKey Secret只显示这一次,后面将不再显示。

    添加权限:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VSlRiOHN-1609513156205)(assets/image-20201016194636739.png)]

    2.3 示例代码

    文档:https://help.aliyun.com/document_detail/101414.html?spm=a2c4g.11186623.6.625.18705ffa8u4lwj:

    package com.tanhua.sso.service;
    
    import com.aliyuncs.CommonRequest;
    import com.aliyuncs.CommonResponse;
    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.http.MethodType;
    import com.aliyuncs.profile.DefaultProfile;
    /*
    pom.xml
    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-core</artifactId>
      <version>4.5.3</version>
    </dependency>
    */
    public class SendSms {
        public static void main(String[] args) {
            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
                    "LTAI4G7d2Q9CHc741gighjTF", "uKOOGdIKvmoGhHlej8cJY8H3nlU6Fj");
            IAcsClient client = new DefaultAcsClient(profile);
    
            CommonRequest request = new CommonRequest();
            request.setSysMethod(MethodType.POST);
            request.setSysDomain("dysmsapi.aliyuncs.com");
            request.setSysVersion("2017-05-25");
            request.setSysAction("SendSms");
            request.putQueryParameter("RegionId", "cn-hangzhou");
            request.putQueryParameter("PhoneNumbers", "158****7944"); //目标手机号
            request.putQueryParameter("SignName", "ABC商城"); //签名名称
            request.putQueryParameter("TemplateCode", "SMS_204756062"); //短信模板code
            request.putQueryParameter("TemplateParam", "{\"code\":\"123456\"}");//模板中变量替换
            try {
                CommonResponse response = client.getCommonResponse(request);
    
                //{"Message":"OK","RequestId":"EC2D4C9A-0EAC-4213-BE45-CE6176E1DF23","BizId":"110903802851113360^0","Code":"OK"}
                System.out.println(response.getData());
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                e.printStackTrace();
            }
        }
    }
    
    

    2.4 实现发送短信方法

    配置文件:aliyun.properties

        aliyun.sms.regionId = cn-hangzhou
        aliyun.sms.accessKeyId = LTAI4G7d2Q9CHc741gighjTF
        aliyun.sms.accessKeySecret = uKOOGdIKvmoGhHlej8cJY8H3nlU6Fj
        aliyun.sms.domain= dysmsapi.aliyuncs.com
        aliyun.sms.signName= ABC商城
        aliyun.sms.templateCode= SMS_204756062
    

    需要注意中文编码问题:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xh9YrQ4n-1609513156205)(assets/image-20201016203847636.png)]

    读取配置:

    package com.tanhua.sso.config;
    
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    
    @Configuration
    @PropertySource("classpath:aliyun.properties")
    @ConfigurationProperties(prefix = "aliyun.sms")
    @Data
    public class AliyunSMSConfig {
    
        private String regionId;
        private String accessKeyId;
        private String accessKeySecret;
        private String domain;
        private String signName;
        private String templateCode;
    
    }
    

    代码实现:

    //SmsService.java
    /**
         * 通过阿里云发送验证码短信
         *
         * @param mobile
         */
        public String sendSmsAliyun(String mobile) {
            DefaultProfile profile = DefaultProfile.getProfile(
                    this.aliyunSMSConfig.getRegionId(),
                    this.aliyunSMSConfig.getAccessKeyId(),
                    this.aliyunSMSConfig.getAccessKeySecret());
            IAcsClient client = new DefaultAcsClient(profile);
    
            String code = RandomUtils.nextInt(100000, 999999) +"";
    
            CommonRequest request = new CommonRequest();
            request.setSysMethod(MethodType.POST);
            request.setSysDomain(this.aliyunSMSConfig.getDomain());
            request.setSysVersion("2017-05-25");
            request.setSysAction("SendSms");
            request.putQueryParameter("RegionId", this.aliyunSMSConfig.getRegionId());
            request.putQueryParameter("PhoneNumbers", mobile);
            request.putQueryParameter("SignName", this.aliyunSMSConfig.getSignName());
            request.putQueryParameter("TemplateCode", this.aliyunSMSConfig.getTemplateCode());
            request.putQueryParameter("TemplateParam", "{\"code\":\""+code+"\"}");
            try {
                CommonResponse response = client.getCommonResponse(request);
                if(StringUtils.contains(response.getData(), "\"Code\":\"OK\"")){
                    return code;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
           return null;
        }
    
    展开全文
  • 通过手机短信验证码的方式进行身份验证越来越普遍, 这里就简单的介绍一下 如何通过 “云之讯平台完成短信验证码的发送。 “云之讯平台只负责往指定的手机号码中发送短信,具体的短信模板需要在“云之讯”管理...

     

    通过手机短信验证码的方式进行身份验证越来越普遍, 这里就简单的介绍一下 如何通过 “云之讯” 平台完成短信验证码的发送。

    “云之讯”平台只负责往指定的手机号码中发送短信,具体的短信模板需要在“云之讯”管理平台设定好,并且其余的逻辑控制都需要自己处理, 比如:验证码多长时间过期,保证验证码的唯一性 等等。

    1):我们需要到云之讯的管理平台进行注册【http://www.ucpaas.com/】,然后拿到相应的开发者信息,具体会用到的开发者信息有:Account Sid, Auth Token

    2):之后我们在对应的应用列表中创建一个属于我们自己的应用, 之后可以拿到对应应用的 ID

    3):在测试阶段,我们可以往测试白名单中添加几个测试手机号码用于短信的发送, 待应用通过审核之后就可以往任何手机号码中发送短信了

    4):在短信管理中,向刚刚添加的应用中创建对应的短信模板,之后可以拿到对应短信模板的 ID

     

    之后就是开发代码,通过传递对应的参数(开发者信息,应用ID,短信模板信息,接收短信的电话号码等等)来调用平台中的 Service 来完成短信的发送。

    具体代码可以到官方的指定地点下载【http://docs.ucpaas.com/doku.php?id=%E5%BC%80%E5%8F%91%E5%AE%9E%E4%BE%8B】,我本地已经测试通过,至于如何优化官方的事例代码 以及 如何根据自己的需求来添加逻辑,这里就不便多说了~~

    转载于:https://www.cnblogs.com/mingmingruyuedlut/p/5133462.html

    展开全文
  • 平台功能设置人性化:语音验证码+短信验证码一体化,方便用户使用。现在很多项目都慢慢开始了语音验证码的步伐。2.平台稳定经营时间久:接码平台倒闭或跑路,屡见不鲜。要选择经营时间长久,有一定品牌的接码平台。...

    20200303084523_7225_zs_sy.jpg

    20200115093711_7978_zs_sy.jpg

    20200115102934_5031_zs_sy.jpg

    20200115102934_0201_zs_sy.jpg

    20200115102935_0171_zs_sy.jpg

    免费接码验证码接收平台

    好用的接码平台有以下几个特征:

    1.平台功能设置人性化:语音验证码+短信验证码一体化,方便用户使用。现在很多项目都慢慢开始了语音验证码的步伐。

    2.平台稳定经营时间久:接码平台倒闭或跑路,屡见不鲜。要选择经营时间长久,有一定品牌的接码平台。所以,平台充值,建议大家用多少充多少。保证自己的利益

    20200112130734_2393_zs_sy.jpg

    3.接码过程稳定快速:选择非虚拟号段的实卡接码平台,号码库更新快,建议大家可以先找个项目测试下,接码速度和稳定性可以得到印证。菏泽java云之讯短信接口价格如何计算? 新锐信息科技服务至上[新锐信息科技sws6azr]

    我们日常会接触到到验证码短信,订单通知和快递通知,除此之外还有一些营销类短信也是人们常说的‘垃圾短信’。那么这些106短信是什么?他们来自哪里?又是从什么地方发送到我们的手机?如果我的企业或者个人网站需要短信服务又该注意那些?短信的价格和计费方式1行业类验证码以及通知类的每条价格大概再3分8到4分5左右2营销类会员营销4分-4,5分教育地产5-6分金融类5-7分电商4-5分大概就说这几个,如何您的行业不在这其中,可以留言或者私信我。

    20200115160311_9563_zs_sy.jpg

    展开全文
  • 在一般的系统中如果需要填写手机号时,都需要短信验证码确保手机号的真实性,我们目前集成有云之讯平台短信服务,后面还有陆续集成更多平台进来。要开通短信验证,# 云之讯1.1首选访问[云之讯官网]...

    在一般的系统中如果需要填写手机号时,都需要短信验证码确保手机号的真实性,我们目前集成有云之讯平台的短信服务,后面还有陆续集成更多平台进来。

    要开通短信验证,

    # 云之讯

    1.1首选访问[云之讯官网](http://www.ucpaas.com:80/?code=R16RdCw8B681W%2BeI9YW4G%2Fgmeka4RmYfAB2sUtngm4J0I1YMHYDWEA%3D%3D),完成注册登录

    1.2然后进入首页,先创建一个应用

    ![](https://box.kancloud.cn/ea6e2cf65d9f05d39f2afa02ec1368f1_1389x677.png)

    1.3点击左边的创建应用

    ![](https://box.kancloud.cn/b4661f6fae479397f62863cce92e1c6c_613x323.png)

    1.4创建完应用之后,选择当前这个应用

    ![](https://box.kancloud.cn/7143b0c380f7ec05ffff7766924b8497_1208x636.png)

    1.5点击‘模板库’,再点击‘创建模板’

    ![](https://box.kancloud.cn/acccec73f2eb5108095a22ca5c9db1e2_944x542.png)

    ![](https://box.kancloud.cn/e4f718fb2ff214da268ba966b33673db_1063x454.png)

    1.6点击‘验证类模板’,填写信息,‘内容’部分,除{1}和10分钟之外的内容,都可自定义,填完后点击‘保存’

    ![](https://box.kancloud.cn/5136d7c58d7481e7a8776ffd20911568_917x661.png)

    1.7等待审核完成,即可使用

    ![](https://box.kancloud.cn/bec560556772b852317a660b2425db38_1065x478.png)

    1.8把云之讯相应参数填入后台对应的位置

    ![](https://box.kancloud.cn/61912e81e07bfb055e59d111af651d0e_1236x749.png)

    ![](https://box.kancloud.cn/797bf10a4e425cb5734808b6e9a7818d_869x585.png)

    ![](https://box.kancloud.cn/2b4950edaa5da80e47fc663157176cf7_866x604.png)

    1.9点击确定,即可正常使用短信服务

    # 腾讯云

    >注:腾讯的功能还在开发中

    2.1首先访问[腾讯云官网](https://www.qcloud.com/product/sms)完成注册登录

    2.2点击立即使用

    ![](https://box.kancloud.cn/5e9b69ad9b2e8df585fb191823c21a12_939x591.png)

    2.3点击添加应用,然后填写信息,完成添加

    ![](https://box.kancloud.cn/cb9430c7a1c750fdb3c033cbcb1f2860_1688x429.png)

    2.4点击应用名,查看appid和appkey

    ![](https://box.kancloud.cn/b7a1fcc4e45cff02d9a0f836c1f05386_989x566.png)

    2.5之后再点击‘国内文本短信’-》‘短信内容配置’,然后再点击创建签名

    ![](https://box.kancloud.cn/0a937e7b3e06833948ca207c3bada9ee_1535x496.png)

    2.6.创建签名完成后,点击‘短信正文’-》‘创建正文’,按要求写好模板内容

    >[warning] 模板只能有两个变量,一个是验证码,一个是有效时间,如下:

    ![](https://box.kancloud.cn/eb6c48ebdb207cb847f59524c4797bdd_476x96.png)

    ![](https://box.kancloud.cn/ebdff1f1ec35c426ddb9773128332e59_1427x570.png)

    2.7等审核通过后,把在腾讯云获取到的信息,填写到网站后台

    ![](https://box.kancloud.cn/68abe99f4d8305c6e5cb652270aaf53e_711x641.png)

    # 小程序使用发短信功能

    完整的小程序代码请查看WeiPHP根目录下的weiapp_demo目录的sms页面

    展开全文
  • 主要介绍了python3.7实现云之讯、聚合短信平台的短信发送功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • python3.7实现云之讯、聚合短信平台的短信发送 1、云之讯平台数据返回Json格式: {'reason': '操作成功', 'result': {'sid': '17209241456456455454', 'fee': 1, 'count': 1}, 'error_code': 0} 2、聚合平台数据...
  • 这是调用云之讯平台短信的案例,读取平台给出的安全码等信息,调用其给出的API方法,调用远程中的短信模板,实现发送短信的服务
  • 这是一款根据云之讯平台而做短信验证码的demo。希望能帮助到你们。具体平台使用的参数可参考我的博客:http://blog.csdn.net/u013895206
  • android 短信验证码实现(使用云之讯平台.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 云之讯发送短信接口

    2017-12-13 16:58:03
    //短信验证码(模板短信),默认以65个汉字(同65个英文)为一条(可容纳字数受您应用名称占用字符影响),超过长度短信平台将会自动分割为多条发送。分割后的多条短信将按照具体占用条数计费。 // $appId = "f16a02d...
  • 云之讯语音、短信验证码实现

    千次阅读 2015-02-03 15:17:34
    使用云之讯语音验证码功能,需要到云之讯开放平台去注册对应的账号,才能使用。 这里http://www.ucpaas.com/doc/doc_rest3-2.jsp 是官方文档 ,需要自己研究第一行文字,才能 明白业务功能的实现点。 下面是一个...
  • //云之讯短信模板 private static JsonReqClient InstantiationRestAPI() { return new JsonReqClient(); } public static String sendMessage(String mobile,String param,int no) { return ...
  • 云之讯

    2016-07-31 21:52:12
    云之讯融合通讯开放平台为企业及个人开发者提供各种通讯服务,包括在线语音服务、短信服务、视频服务、会议服务、IM服务等,开发者通过嵌入云通讯API能在应用中轻松实现各种通讯功能,包括发送语音、短信验证码、...
  • 1、在云之讯服务平台申请短信服务; 2、导入附件中的jar包; 3、按照SmsUtil中的说明(示例代码)即可实现给特定手机号发送短信验证码 该jar包依赖: <groupId>com.google.code.gson</groupId> <artifactId>gson...
  • nodejs短信验证码,基于云之讯

    千次阅读 2018-10-29 20:14:37
    1、先去云之讯平台注册一个账号先(自己去做就好了),然后下载nodejs 的sdk,他们对nodejs已经做了适配的,用的是express,在koa中的用法其实也差不多。没两样的,看下图。   下载完之后,看文件结构,读一下...
  • 云之讯——简单的短信验证 PHP版

    千次阅读 2018-01-12 05:05:28
    第一步: 在云之讯平台申请账号,平台自动有十元红包惊醒免费测试 第二步 下载DEMO http://docs.ucpaas.com/doku.php?id=sms_sd smsyzm.php //载入ucpass类 require_once('lib/Ucpaas.class.php'); require...
  • 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK。 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK。undefined ...
  • ucpaas云之讯nodejs版本SDK最近用到云之讯平台短信和语音验证码功能,因为没有在他们官网上发现nodejs版本的SDK,所以我按照他们的PHP版本实现了一个nodejs版本的SDK供大家使用。原版PHPSDK也一并上传了,方便大家...
  • SpringBoot发送短信验证码

    千次阅读 2019-12-16 01:28:59
    本文章使用的是SpringBoot结合云之讯短信平台,其实什么平台不重要,基本上思路都是差不多的 我使用的是刚刚创建SpringBoot项目,什么都没有的项目: (1)下载云之讯SDK。 1.百度搜索云之讯,进入 2.点击注册...

空空如也

空空如也

1 2 3
收藏数 55
精华内容 22
关键字:

云之讯短信平台