微信小程序用户信息解密方法不返回openid吗
Closed this issue · 6 comments
微信小程序用户信息不返回openid吗
简要描述
小程序文档有openid字段,但是SDK工具没有
模块版本情况
- WxJava 模块名: weixin-java-miniapp
- WxJava 版本号: 4.6.0
详细描述
小程序文档用户信息解密有openid字段,
如接口 wx.getUserInfo 敏感数据当中的 watermark:
{
"openId": "OPENID",
"nickName": "NICKNAME",
"gender": GENDER,
"city": "CITY",
"province": "PROVINCE",
"country": "COUNTRY",
"avatarUrl": "AVATARURL",
"unionId": "UNIONID",
"watermark":
{
"appid":"APPID",
"timestamp":TIMESTAMP
}
}
但是使用
maService.getUserService().getUserInfo(sessionKey, encryptedData, iv)
方法返回的用户信息Java没有openid
public class WxMaUserInfo implements Serializable {
private static final long serialVersionUID = 6719822331555402137L;
private String nickName;
private String gender;
private String language;
private String city;
private String province;
private String country;
private String avatarUrl;
private String unionId;
private Watermark watermark;
public static WxMaUserInfo fromJson(String json) {
return (WxMaUserInfo)WxMaGsonBuilder.create().fromJson(json, WxMaUserInfo.class);
}
public WxMaUserInfo() {
}
}
尽管在获取SessionKey时有openid字段;但是我自己的方法直接返回WxMaUserInfo
对象不能使用openid;
这个接口已经过期了
你确定还可以得到吗?不是已经建议尽快迁移到使用getUserProfile了吗?
getUserProfile
写完这个issue后也用getUserProfile,得到的数据也是一样的加解密方法,有WxJava谁还会想着去自己实现解密数据,分两步调用把返回数据组合才能使用OpenID加用户信息了:SessionKey获取OpenID,解密再获取用户信息。
getUserProfile
写完这个issue后也用getUserProfile,得到的数据也是一样的加解密方法,有WxJava谁还会想着去自己实现解密数据,分两步调用把返回数据组合才能使用OpenID加用户信息了:SessionKey获取OpenID,解密再获取用户信息。
建议在小程序调用 wx.login() 获取 code,后端使用 code 换去 openid (如果该小程序绑定了开放平台还可以获取到用户的 unino_id)
getUserProfile
写完这个issue后也用getUserProfile,得到的数据也是一样的加解密方法,有WxJava谁还会想着去自己实现解密数据,分两步调用把返回数据组合才能使用OpenID加用户信息了:SessionKey获取OpenID,解密再获取用户信息。
建议在小程序调用 wx.login() 获取 code,后端使用 code 换去 openid (如果该小程序绑定了开放平台还可以获取到用户的 unino_id)
好的,现在就是这样用的,wx.login code换sessionKey时候获取OpenID接着获取用户信息然后一起返回数据;