微信小程序获取unionId
官方解释
获取途径
wx.getUserInfo 从解密数据中获取 UnionID
注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。 第一步 需要的参数session_key, iv, encryptedData
// An highlighted block /// <summary> /// AES解密 /// </summary> /// <param name="encryptedData">待解密的字节数组</param> /// <param name="sessionKey">解密密钥字节数组</param> /// <param name="iv">IV初始化向量字节数组</param> /// <param name="cipher">运算模式</param> /// <param name="padding">填充模式</param> /// <returns></returns> public static string DecryptByAesBytes(string encryptedData, string sessionKey, string iv) { try { //非空验证 if (!string.IsNullOrWhiteSpace(encryptedData) && !string.IsNullOrWhiteSpace(sessionKey) && !string.IsNullOrWhiteSpace(iv)) { var decryptBytes = Convert.FromBase64String(encryptedData.Replace( , +)); var keyBytes = Convert.FromBase64String(sessionKey.Replace( , +)); var ivBytes = Convert.FromBase64String(iv.Replace( , +)); var aes = new AesCryptoServiceProvider { Key = keyBytes, IV = ivBytes, Mode = CipherMode.CBC, Padding = PaddingMode.PKCS7 }; var outputBytes = aes.CreateDecryptor().TransformFinalBlock(decryptBytes, 0, decryptBytes.Length); var decryptResult = Encoding.UTF8.GetString(outputBytes); dynamic decryptData = JsonConvert.DeserializeObject(decryptResult, new { unionid = "" }.GetType()); return decryptData.unionid; } else { return ""; } } catch (Exception e) { Logger.WriteLog("AES对称解密失败原因:" + e.Message); return ""; } }
通过调用官方的接口获取(局限性)
调用以下地址可以获取unionid和openid
这里不做详细介绍了,看下官网例子就能够明白,上面的话是常用且实用的方法
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
简单分享一个关于室内设计的小程序流程