当前位置: 首页 > article >正文

手机二要素接口如何用C#实现调用

一、什么是手机二要素?

手机二要素又称运营商二要素,运营商二要素核验,实名核验,手机号核验,手机二要素核验,即传入姓名、手机号码,校验此两项是否一致。实时核验,返回校验结果!

二、手机二要素适用哪些场景?

例如:社交平台

1.账号注册与找回:社交平台在用户注册新账号时,要求提供手机号码和姓名进行验证,可以防止虚假账号的产生。同时,当用户忘记密码或账号被盗时,通过验证手机二要素可以快速找回账号,保障用户的社交网络安全。

2.实名认证:为了营造一个真实、安全的社交环境,社交平台可能会对用户进行实名认证。手机二要素验证可以作为实名认证的一种方式,确保用户提供的身份信息真实有效。

三、如何用C#实现接口调用?

以阿里云接口为例,通过C#实现接口调用,具体示例代码如下:

//using System.IO;
//using System.Text;
//using System.Net;
//using System.Net.Security;
//using System.Security.Cryptography.X509Certificates;

        private const String host = "https://kzmobile2.market.alicloudapi.com";
        private const String path = "/api-mall/api/mobile_two/check";
        private const String method = "POST";
        private const String appcode = "你自己的AppCode";

        static void Main(string[] args)
        {
            String querys = "";
            String bodys = "mobile=mobile&name=name";
            String url = host + path;
            HttpWebRequest httpRequest = null;
            HttpWebResponse httpResponse = null;

            if (0 < querys.Length)
            {
                url = url + "?" + querys;
            }

            if (host.Contains("https://"))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
            }
            else
            {
                httpRequest = (HttpWebRequest)WebRequest.Create(url);
            }
            httpRequest.Method = method;
            httpRequest.Headers.Add("Authorization", "APPCODE " + appcode);
            //根据API的要求,定义相对应的Content-Type
            httpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
            if (0 < bodys.Length)
            {
                byte[] data = Encoding.UTF8.GetBytes(bodys);
                using (Stream stream = httpRequest.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }
            }
            try
            {
                httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            }
            catch (WebException ex)
            {
                httpResponse = (HttpWebResponse)ex.Response;
            }

            Console.WriteLine(httpResponse.StatusCode);
            Console.WriteLine(httpResponse.Method);
            Console.WriteLine(httpResponse.Headers);
            Stream st = httpResponse.GetResponseStream();
            StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
            Console.WriteLine(reader.ReadToEnd());
            Console.WriteLine("\n");

        }

        public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true;
        }

正确返回示例代码:

{
    "msg": "成功",
    "success": true,
    "code": 200,
    "data": {
        "result": "0",  //0一致 ,1不一致,2库无或销户
        "orderNo": "202406282055560705659",
        "desc": "一致"
    }
}


http://www.kler.cn/a/326468.html

相关文章:

  • Clickhouse基础(一)
  • 分布式环境下定时任务扫描时间段模板创建可预订时间段
  • 点击底部的 tabBar 属于 wx.switchTab 跳转方式,目标页面的 onLoad 不会触发(除非是第一次加载)
  • Tauri教程-基础篇-第二节 Tauri的核心概念上篇
  • ios脚本巨魔商店多巴胺越狱基本操作教程
  • Perturbed-Attention Guidance(PAG) 笔记
  • Jenkins本地安装配置与远程访问管理本地服务详细流程
  • 【LeetCode每日一题】——95.不同的二叉搜索树 II
  • python流程控制语句
  • Python编码系列—Python观察者模式:实现事件驱动架构的利器
  • 力扣 中等 275.H指数
  • 凌晨1点开播!Meta Connect 2024开发者大会,聚焦Llama新场景和AR眼镜
  • javacv FFmpegFrameGrabber 阻塞重连解决方法汇总
  • 【深度学习基础模型】Hopfield 网络 (HN) 详细理解并附实现代码。
  • 【RabbitMQ】RabbitMq消息丢失、重复消费以及消费顺序性的解决方案
  • C#知识|设计模式的分类及认识
  • 从0学习React(1)
  • Goweb---Gorm操作数据库(三) 更新
  • 数学建模研赛总结
  • 【动态规划-分组背包】力扣1155. 掷骰子等于目标和的方法数
  • 并发编程三大特性(原子性、可见性、有序性)
  • 每日一题:⻓度最⼩的⼦数组
  • 计算机毕业设计 Java教务管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • python魔法(python高级magic方法进阶)
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第十五章 Linux 文件系统概念
  • 基于大数据的二手电子产品需求分析及可视化系统