本文章主要是在C# ASP.NET Core Web API框架实现向手机发送验证码短信功能。这里我选择是一个互亿无线短信验证码平台,其实像阿里云,腾讯云上面也可以。
- 首先我们先去 互亿无线 https://www.ihuyi.com/api/sms.html 去注册一个账号
注册完成账号后,它会送10条免费短信以及通话验证码(ps:我这上面不是10条因为我已经使用了 新人都是10条)
2.下面开始代码首先创建一个SendSmsUtil.cs的类
3.下面直接上代码
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace YourNamespace.Utils
{
public class SendSmsUtil
{
private static readonly string URL = “http://106.ihuyi.com/webservice/sms.php?method=Submit“; // 国内请求路径
private static readonly string APPID = “这里填写自己的APPID”; // 这里填写自己的APPID
private static readonly string APIKEY = “这里填写自己的APIKEY”; // 这里填写自己的APIKEY
public static async Task SendSmsAsync(string number)
{
using (var client = new HttpClient())
{
// 随机编号
Random random = new Random();
int mobileCode = random.Next(100000, 999999); // 生成一个六位数的随机数
string content = $"您的验证码是:{mobileCode}。请不要把验证码泄露给其他人。";
var parameters = new List>
{
new KeyValuePair("account", APPID),
new KeyValuePair("password", APIKEY),
new KeyValuePair("mobile", number),
new KeyValuePair("content", content)
};
var contentToSend = new FormUrlEncodedContent(parameters);
try
{
var response = await client.PostAsync(URL, contentToSend);
var responseBody = await response.Content.ReadAsStringAsync();
// 解析 XML 响应
// 解析 XML
XDocument xmlDoc = XDocument.Parse(responseBody);
// 从 XML 中获取信息
var code = xmlDoc.Root.Element(XName.Get("code", "http://106.ihuyi.com/"))?.Value;
var msg = xmlDoc.Root.Element(XName.Get("msg", "http://106.ihuyi.com/"))?.Value;
var smsid = xmlDoc.Root.Element(XName.Get("smsid", "http://106.ihuyi.com/"))?.Value;
Console.WriteLine($"code: {code}");
Console.WriteLine($"msg: {msg}");
Console.WriteLine($"smsid: {smsid}");
Console.WriteLine($"mo: {mobileCode}");
if (code == "2")
{
Console.WriteLine("短信提交成功");
return mobileCode.ToString();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return "";
}
}
}
}
4.APPID和APIKEY 在这个地方查看
5.下面是控制器中需要的代码
`using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using YourNamespace.Utils;
namespace YourNamespace.Controllers
{
[Route(“api/[controller]”)]
[ApiController]
public class SmsController : ControllerBase
{
[HttpPost(“send”)]
public async Task
{
if (string.IsNullOrEmpty(phoneNumber))
{
return BadRequest(“手机号码不能为空”);
}
var result = await SendSmsUtil.SendSmsAsync(phoneNumber);
if (string.IsNullOrEmpty(result))
{
return StatusCode(500, "发送短信失败");
}
return Ok(new { VerificationCode = result });
}
}
}`
6.输入手机号并且测试 下面是个成功的结果 手机并且能受到验证码
以上内容已实现手机验证码功能。代码主要参考官网代码和AI生成还有,可能存在一些语句问题感谢大家的指导和建议!
转载请请注明出处,谢谢!
朱世杰(@Twolp)指导
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容