小程序data-param=‘5’表示什么

小程序data-param=‘5’表示什么,第1张

data-*表示自定义属性 data-phone='110'表示phone=110,data-param='5'表示param=5 自定义属慧简性用于存放数据;获取方团碧李法<view data-phone='塌迟110' data-param='5' bindtap='bindClick'></view> Page({bindClick:function(e){

var ds = e.currentTarget.dataset

var phone = ds.phone,param = ds.param

// var {phone,param} = e.currentTarget.dataset

}})

通过wx.getUserInfo获取用户的openId 和unionId,需要对接口返回的加密数据( encryptedData )进行对称解密。

/**

    * 功能描述: <br>

    * 〈功能详细描述〉

    *

*@paramargs

*@see[相关类/方法](可逗穗兄选)

*@since[产品/模块版本](可选)

    */

publicstaticvoidmain(String[] args){

String encryptedData ="********......*******"

String sessionKey ="********......*******"

String iv ="9btKSYjvtGMGpknPpjS2Ag=="

        JSONObject jsonObject = getUserInfo(encryptedData, sessionKey, iv)

System.out.println(jsonObject.getString("unionId"))

        System.out.println(jsonObject.toJSONString())

    }

结果运行报错:

javax.crypto.BadPaddingException: pad block corrupted

at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$BufferedGenericBlockCipher.doFinal(Unknown Source)

at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source)

at javax.crypto.Cipher.doFinal(Cipher.java:2087)

at com.saic.ebiz.service.util.AESUtils.getUserInfo(AESUtils.java:62)

at com.saic.ebiz.service.util.AESUtils.main(AESUtils.java:86)

Exception in thread"main"java.lang.NullPointerException

at com.saic.ebiz.service.util.AESUtils.main(AESUtils.java:87)

查询原因,有可能是我族拦的wx.login在wx.getUserInfo之后调的原因,细究一下

我们通过wx.login获得用户授权码code,接下来我们用code以及appid和appSecret请求微信

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

获取session_key,而sessionKey又是解密encryptedData的密钥,所以一旦我们的wx.login在wx.getUserInfo之后获取,我们redis中存储的sessionKey绝对不是当前获取encryptedData的密钥。所以更改小程序请求顺序,每次请求wx.getUserInfo之前先请求wx.login,同时生成sessionKey放入缓存。而后需要解密的时候就可以正常解密了

特别注意: 让前端看一下你的请求顺序山袭是不是错了

using System

using System.Collections.Generic

using System.Text

using System.Text.RegularExpressions

///控制台测试

static void Main(string[] args)

{

#region Student Text

AllStudent all = new AllStudent(3)

all.AddAllreslut()

all.RtAvg()

all.printStu()

all.sorting()

Console.WriteLine("改碰(冒泡排序)排序后成绩如下:")

all.printStu()

#endregion

}

以下是羡谈单个学生类和整体兄歼碰学生类

#region Student类

public class Students

{

#region 构造函数

public Students()

{

}

public Students(string name, string number, float Cres, float Elys, float maths)

{

_name = name

_number = number

_Cres = Cres

_ely = Elys

_math = maths

_avg = (Cres + Elys + maths) / 3

}

#endregion

#region 字段

private string _name

public string Name

{

get { return _name}

set { _name = value}

}

private string _number

public string Number

{

get { return _number}

set { _number = value}

}

private float _Cres

public float Cres

{

get { return _Cres}

set { _Cres = value}

}

private float _ely

public float Ely

{

get { return _ely}

set { _ely = value}

}

private float _math

public float Math

{

get { return _math}

set { _math = value}

}

private float _avg

public float Avg

{

get { return _avg}

set { _avg = value}

}

#endregion

}

#endregion

#region 全体学生类

public class AllStudent

{

#region 构造函数

public AllStudent(int cout)

{

_cout = cout

_stuList = new List<Students>()

}

#endregion

#region 字段和属性

private int _cout

public int Cout

{

get { return _cout}

set { _cout = value}

}

private List<Students>_stuList

public List<Students>StuList

{

get { return _stuList}

set { _stuList = value}

}

#endregion

#region 学生成绩录入方法

public void AddAllreslut()

{

for (int i = 0i <_couti++)

{

string[] strs = new string[5]

Console.WriteLine("请输入学生姓名:")

strs[0] = Console.ReadLine()

Console.WriteLine("请输入学生学号:")

strs[1] = Console.ReadLine()

Console.WriteLine("请输入学生C++成绩:")

strs[2] = Console.ReadLine()

if (!Isfloat(strs[2]))

{

Console.WriteLine("请输入正确的成绩:")

strs[2] = Console.ReadLine()

}

else

{

if (float.Parse(strs[2]) >100)

{

Console.WriteLine("请输入正确的成绩:")

strs[2] = Console.ReadLine()

}

}

Console.WriteLine("请输入学生英语成绩:")

strs[3] = Console.ReadLine()

if (!Isfloat(strs[3]))

{

Console.WriteLine("请输入正确的成绩:")

strs[3] = Console.ReadLine()

}

else

{

if (float.Parse(strs[3]) >100)

{

Console.WriteLine("请输入正确的成绩:")

strs[3] = Console.ReadLine()

}

}

Console.WriteLine("请输入学生数学成绩:")

strs[4] = Console.ReadLine()

if (!Isfloat(strs[4]))

{

Console.WriteLine("请输入正确的成绩:")

strs[4] = Console.ReadLine()

}

else

{

if (float.Parse(strs[4]) >100)

{

Console.WriteLine("请输入正确的成绩:")

strs[4] = Console.ReadLine()

}

}

Students student = new Students(strs[0], strs[1], float.Parse(strs[2]), float.Parse(strs[3]), float.Parse(strs[4]))

Console.WriteLine(strs[0] + "同学的平均成绩为:" + student.Avg)

Console.WriteLine()

_stuList.Add(student)

}

}

#endregion

#region 按学号查询平均成绩

public void RtAvg()

{

Console.WriteLine("请输入要查询平均成绩学生的学号:")

string number = Console.ReadLine()

float avg = RtAvg(number)

if (avg != 0)

{

Console.WriteLine(number + "的平均成绩为:" + avg)

Console.ReadKey()

}

else

{

Console.WriteLine("没有该学号学生成绩!")

Console.ReadKey()

}

}

public float RtAvg(string number)

{

for (int i = 0i <_stuList.Counti++)

{

if (_stuList[i].Number.Trim() == number.Trim())

{

return _stuList[i].Avg

}

}

return 0

}

#endregion

#region 按平均分排序方法

public void sorting()

{

List<Students>list = new List<Students>()

for (int i = 0i <_stuList.Counti++)

{

Students stus = new Students()

for (int j = 0j <_stuList.Count - i - 1j++)

{

if (_stuList[j].Avg >_stuList[j + 1].Avg)

{

stus = _stuList[j]

_stuList[j] = _stuList[j + 1]

_stuList[j + 1] = stus

}

else

{

stus = _stuList[j + 1]

}

}

if (i == _stuList.Count - 1)

{

stus = _stuList[0]

}

list.Add(stus)

}

_stuList = list

}

#endregion

#region 输出所有学生成绩

public void printStu()

{

Console.WriteLine("一下是所有学生信息:")

for (int i = 0i <_stuList.Counti++)

{

Console.WriteLine(_stuList[i].Name + "同学的基本信息:")

Console.WriteLine("学号:" + _stuList[i].Number + " C++成绩为:" + _stuList[i].Cres + " 英语成绩为:" + _stuList[i].Ely + " 数学成绩为:" + _stuList[i].Math+" 平均成绩为:"+_stuList[i].Avg)

Console.WriteLine()

}

Console.ReadKey()

}

#endregion

#region 验证浮点数方法

public static bool Isfloat(string Input)

{

if (Input == null)

{

return false

}

else

{

string pattern = "^(\\d*\\.)?\\d+$"

if (Regex.Match(Input, pattern, RegexOptions.Compiled).Success)

{

return true

}

else

{

return false

}

}

}

#endregion

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12307489.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存