云平台短信验证码通知短信java/php/.net开发实现
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,一、本文目的大部分平台都有一个接入发送短信验证码、通知短信的需求。虽然市场上大部分平台的接口都只是一个非常普通的HTTP-GET请求,但终归有需要学习和借鉴使用的朋友。本文的初衷是主要提供学习便利,方
千家信息网最后更新 2025年12月01日云平台短信验证码通知短信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安全错误
数据库的锁怎样保障安全
软件开发必去K湖南岚鸿
王东峰网络安全信息化
临沂企业党建软件开发系统
php二维数组遍历数据库
重庆通管局网络安全管理处负责人
软件开发项目推荐
通化数据库管理工程师资格证
广州初越网络技术有限公司
防火墙是网络安全中的应用
速读数据库
数据库时标技术的特点
人工智能和软件开发的区别
网络安全公司500强
服务器销售税率是多少
如何在方舟生存进化中创造服务器
崇明区咨询软件开发服务费
二十大网络安全公司排名
信息化软件开发设施服务标准
西安邮电大学数据库期末答案
江苏软件开发有哪些公司
网络安全带来的行业
河北java软件开发需要多少钱
现在企业用什么连接远程服务器
福建服务器电源厂家报价
服务器里东西怎么弄出来的
冒险岛2服务器大全
网络安全公司500强
港口网络安全
如何测试本地到服务器的延迟
网络安全的填空题