java解密小程序用户信息_【小程序】java 后台获取用户信息(解密encryptedData)...

本文详细介绍了如何使用Java后端解密微信小程序用户的encryptedData,涉及的步骤包括前端获取code和encryptedData,然后发送到后端,后端通过微信API获取sessionKey并进行解密操作。代码示例展示了具体的解密过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先java 后端依赖两个jar

org.codehaus.xfire

xfire-core

1.2.6

org.bouncycastle

bcprov-jdk16

1.46

流程:1.需要微信前端调用wx.login接口获取code。 然后再调用wx.getuserInfo接口获取用户的信息。

获取到的信息包含有用户基本信息(这里面没有openid),以及encryptedData,这个encryptedData含有完整用户信息(含openid),但是数据是加密的,需要服务器端来解析。

2. 前端调用服务器接口,将获取到的code,以及encryptedData,和iv一起发送到后端。

3. 服务器在解密encryptedData之前,需要调用微信接口获取sessionkey. 有了encryptedData才能解密。

前端调用代码:wx.login({

success: function (res_login) {

if (res_login.code){

wx.getUserInfo({

success:function(res){

console.log(res)

var jsonData = {

code: res_login.code,

encryptedData: res.encryptedData,

iv: res.iv

};

wx.request({

url: 'http://domain/miniapp/login/userinfo',

header: { 'Content-Type': 'application/json' },

method:'POST',

data: jsonData,

success: res => {

console.log(res.data)

wx.hideLoading()

this.setData({

projectlist: res.data.content

})

}

})

}

})

}

}

})

服务器端代码:import java.io.IOException;

import java.io.PrintWriter;

import java.io.UnsupportedEncodingException;

import java.nio.channels.ScatteringByteChannel;

import java.security.AlgorithmParameters;

impo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值