微信小程序通过Java后台获取openid

本文介绍了微信小程序通过Java后台获取openid的步骤,包括理解openid的工作机制,小程序端发送code,Java Servlet使用code换取openid。文中详细讲述了实现过程,并分享了测试结果和遇到的问题,如HttpClient库的位置变化和API检查的重要性。
摘要由CSDN通过智能技术生成

写在前面

Client: 微信小程序

Server: Java Servlet running on local Tomcat 9.0

Tools: 微信开发者工具 && Eclipse

获取思路

参考试水微信小程序与Java后台通信一文,我们可以快速建立起小程序与 Java 后台之间的通信。而获取 openid 之前,我们首先要知道微信小程序官方如何定义 openid 的工作机制。参考微信小程序公众平台的开发文档:小程序登录,可以得知 openid 的工作机制主要为下图所示:

由此可以得知小程序若想在后台获取到 openid 就必须在前端发送一个临时生成的 code 到 Java 后台,然后 Java 后台使用 code 向微信相关 API 请求并获得 session_key 以及 openid。请求的 API 为:

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

其中 appid 和 secret 秘钥需要在开发者平台的开发设置中获取,且 secret 秘钥不会明文保存,生成后记得保存下来,否则如果忘记需要重新生成。js_code 则是小程序传回的临时 code。

小程序端

小程序端制作一个简单的测试界面,并在 js 中向后台发送生成的 code:

//app.js
App({
   
  globalData: {
   
    userInfo: null
  }
})
<!--index.wxml-->
<view>
  <view class="userinfo">
    <block wx:if="{
    {!hasUserInfo && canIUse}}">
      <image class="userinfo-avatar" src="{
    {usernoneSrc}}" mode="cover"></image>
      <button open-type="getUserInfo" bindgetuserinfo="getUserInfo" style='margin-bottom:50rpx' bindtap="login"> 点击授权 </button>
    </block>
    <block wx:else>
      <image class="userinfo-avatar" src="{
    {userInfo.avatarUrl}}" mode="cover"></image>
      <text class="userinfo-nickname">{
  {userInfo.nickName}}</text>
    </block>
  </view>
  <view class="vipText">
    <block wx:
  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值