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

本文介绍了如何使用Java后端解析微信小程序中encryptedData来获取用户完整信息,包括依赖的jar包、解密流程以及前后端交互步骤。通过前端调用微信接口获取code和用户加密信息,然后后端利用sessionKey解密encryptedData以获取包含openid的用户详情。

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

首先java 后端依赖两个jar

	<dependency>
		    <groupId>org.codehaus.xfire</groupId>
		    <artifactId>xfire-core</artifactId>
		    <version>1.2.6</version>
		</dependency>
		
		<dependency>
		    <groupId>org.bouncycastle</groupId>
		    <artifactId>bcprov-jdk16</artifactId>
		    <version>1.46</version>
		</dependency>

流程: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)
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值