千家信息网

云平台短信验证码通知短信java/php/.net开发实现

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,一、本文目的大部分平台都有一个接入发送短信验证码、通知短信的需求。虽然市场上大部分平台的接口都只是一个非常普通的HTTP-GET请求,但终归有需要学习和借鉴使用的朋友。本文的初衷是主要提供学习便利,方
千家信息网最后更新 2024年11月26日云平台短信验证码通知短信java/php/.net开发实现

一、本文目的

  • 大部分平台都有一个接入发送短信验证码、通知短信的需求。虽然市场上大部分平台的接口都只是一个非常普通的HTTP-GET请求,但终归有需要学习和借鉴使用的朋友。
  • 本文的初衷是主要提供学习便利,方便初学者学习简单的http接口对接实现,由于各大短信通道服务商API参数基本相同,本Demo可以适当减少开发者对接短信通道接口的开发成本,提供参考。
  • 若有朋友不想从文章中复制源码,需要直接下载,源码已上传至GitHub。
  • GitHub传送门:https://github.com/yzchen0o0/demo-sms

二、发送短信接口请求

  • 请求参数模板
    https://{{url}}?appKey={{app_key}}&appSecret={{app_secret}}&phones={{mobile}}&content=【{{sign}}】{{content}}
  • 示例
    https://xxxyun.com/sendsms?appKey=aaaaa&appSecret=bbbb&phones=13888888888&content=【某云】您的验证码是:666666

    三、参数描述

参数名说明
url请求地址
app_key客户在供应商注册的唯一key码
app_secret客户在供应商注册的唯一secret码
mobile接收短信的用户手机号
sign短信内容的产品名称

四、各开发语言实现

1、Java

import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;/** * 短信发送工具类 * 

* http接口请求依赖 okhttp-3.14.2.jar, okio-1.17.2.jar *

*/public class SmsUtil { private static final String HOST = "https://api.zhuanxinyun.com/api/v2/sendSms.json"; private static final String SIGN = "【签名】"; private static final String APP_KEY = "app_key"; private static final String APP_SECRET = "app_secret"; /** * 测试请求 * @param args */ public static void main(String[] args) { String mobile = "18566770000"; String code = "666666"; String body = sendSmsCode(mobile, code); System.out.println(body); } /** * 发送短信验证码 * @param mobile 接收手机号 * @param code 验证码 */ public static String sendSmsCode(String mobile, String code) { StringBuffer content = new StringBuffer().append("验证码:" ).append(code).append(",如非本人操作请忽略。"); return sendSms(mobile, content.toString()); } /** * 发送短信信息 * @param mobile 接收手机号 * @param content 短信内容 */ public static String sendSms(String mobile, String content) { // 拼接请求参数 StringBuffer url = new StringBuffer().append(HOST).append("?appKey=").append(APP_KEY).append("&appSecret=") .append(APP_SECRET).append("&phones=").append(mobile).append("&content=").append(SIGN).append(content); // 封装请求参数 Request request = new Request.Builder().url(url.toString()).get().build(); OkHttpClient client = new OkHttpClient(); try { // 发起请求 Response response = client.newCall(request).execute(); return response.body().string(); } catch (Exception e) { e.printStackTrace(); } return null; }}

2、php

3、.Net

using System;using System.IO;using System.Net;using System.Text;namespace SmsCode{    class Program    {        private static  String HOST = "https://api.zhuanxinyun.com/api/v2/sendSms.json";        private static  String SIGN = "【签名】";        private static  String APP_KEY = "app_key";        private static  String APP_SECRET = "APP_SECRET";        static void Main(string[] args)        {            string mobile = "手机号";            string code = "内容";            string body = sendSmsCode(mobile, code);            Console.WriteLine(body);        }        /**        * 发送短信验证码        * @param mobile     接收手机号        * @param code           验证码        */        public static String sendSmsCode(String mobile, String code)        {            StringBuilder content = new StringBuilder().Append("验证码:").Append(code).Append(",如非本人操作请忽略。");            return sendSms(mobile, content.ToString());           // StringBuilder        }        /**        * 发送短信信息        * @param mobile     接收手机号        * @param content        短信内容        */        public static string sendSms(String mobile, String content)        {            string msg = string.Empty;            // 拼接请求参数            StringBuilder url = new StringBuilder().Append(HOST).Append("?appKey=").Append(APP_KEY).Append("&appSecret=")                    .Append(APP_SECRET).Append("&phones=").Append(mobile).Append("&content=").Append(SIGN).Append(content);            // 封装请求参数            try            {                // 发起请求                 msg = Request_GET(url.ToString(), "UTF-8");            }            catch (Exception ex)            {                msg=ex.Message;            }            return msg;        }        public static string Request_GET(string urlString, string encoding)        {            HttpWebRequest httpWebRequest = null;            HttpWebResponse httpWebResponse = null;            Stream stream = null;            StreamReader streamReader = null;            string result = string.Empty;            try            {                httpWebRequest = (WebRequest.Create(urlString) as HttpWebRequest);                httpWebRequest.Method = "GET";                //httpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; Maxthon 2.0)";                httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();                stream = httpWebResponse.GetResponseStream();                streamReader = new StreamReader(stream, Encoding.GetEncoding(encoding));                result = streamReader.ReadToEnd();            }            catch (SystemException ex)            {                result = "err:" + ex.Message;            }            finally            {                if (httpWebRequest != null)                {                    httpWebRequest.Abort();                }                if (httpWebResponse != null)                {                    httpWebResponse.Close();                }                if (stream != null)                {                    stream.Close();                }                if (streamReader != null)                {                    streamReader.Close();                }            }            return result;        }    }}

五、返回值

{"errorCode":"000000","errorMsg":"提交成功"}
    000000    提交成功

技术交流

My Blog

blog.guijianpan.com

短信 验证 参数 手机 手机号 接口 内容 开发 学习 平台 成功 供应商 信息 大部分 客户 朋友 源码 通道 供应 封装 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机专升本专业课c语言数据库 黑龙江专业网络技术服务五星服务 视频服务器托管 服务器怎么设计安全 组织网络安全培训情况报告 危害网络安全法第27条 数据库课程设计团队心得体会 金融领域网络安全课题 file开头的服务器连接软件 汇顶科技vs互联网 net读写数据库需要哪些类 北京软件开发培训哪里好 金华蜂巢网络技术有限公司 服务器是什么操作系统 丛林网络技术如何绑定打卡 5e为什么不能选择高配服务器 五大机构软件开发工资一般多少 网络安全素养微视频 成都软件开发的公司有哪些 运城网络安全教育平台作业 手机小说阅读软件开发 广东服务器防火墙设备 视频服务器托管 街道开展网络安全应急演练 网络技术服务费做什么科目 计算机网络技术的证 java如何链接数据库 我的世界网易版怎么进不了服务器 怎么提高办公软件开发速度 怎样知道数据库的sid
0