unity功能开发——实名认证
推荐阅读:
前言
首先给大家介绍一下游戏实名认证。
网游实名制全称网络游戏实名制,是针对网络游戏的,玩家玩网络游戏时,需要输入真实的身份信息的制度。
要求用户使用有效身份证件实名注册,并保护用户注册信息,不得为使用游客模式”登录的用户提供游戏内充值或者消费服务。其主要目的是:为了防止沉迷游戏。
问题
因此,对于一个游戏来说,实名认证功能也是必不可少的,那么,你知道怎么来实现这个功能吗?
解决
1.首先需要有个界面来展示实名认证。
我们创建一个Text来作为它的标题,并赋值文本为"实名认证中心",接着创建两个InputField对象,用作姓名和身份证信息输入。
最后创建两个按钮,分别为"取消"按钮和"认证"按钮。到此,界面已经创建完成了,如下:
拼接界面只完成了该系统的冰山一角,接下来,我们要正式开始认证功能实现了。
2.请求认证。
在游戏开发中,通常我们实现实名认证是借助SDK接口来实现的,大致流程就是将实名认证需要用到的一些数据按照某种格式拼接成一个http地址,然后使用WWW去请求该地址,请求后会返回认证结果。根据不同返回结果对应处理。
通常我们会有一个data字符串,是由姓名,身份证号等信息拼接而成的。由于这个data字段存放的信息很重要,为了保护玩家的隐私,通常我们需要经过MD5将它加密成另一个字符串。
/// 对字符串MD5加密
public static string md5(string source)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
///转换为UTF8编码的字节数组
byte[] data = Encoding.UTF8.GetBytes(source);
///计算哈希值
byte[] md5Data = md5.ComputeHash(data, 0, data.Length);
md5.Clear();
string destString = "";
for (int i = 0; i < md5Data.Length; i++)
{
destString += System.Convert.ToString(md5Data[i], 16).PadLeft(2, '0');
}
destString = destString.PadLeft(32, '0');
return destString;
}
3.返回结果处理。
假设
resp = 1:认证成功
resp = 2:认证失败(改账户绑定账号个数已达最大值)
resp = 3:认证失败(输入信息错误)
根据实名认证的返回结果,我们只需要特殊处理返回成功情况。
返回成功处理:
1.隐藏实名认证入口;
广播通知关闭入口,使用SetActive(入口,false)隐藏入口按钮
2.全局变量标记已实名认证;
通常这里会使用SDK的一个变量来标记
3.关闭认证界面