回到项目 .. 先在微信接口类里再添加一个新的方法 .. 名字是 update_user_weixin_session .. 方法有两个参数,$user_id .. 还有 $session .. 这个方法可以更新指定用户的 $session ..
方法里面用一下 update_user_meta .. 这个函数可以更新用户的 meta 信息,也就是用户的自定义字段 .. 先是用户的 id 号,这里就是 $user_id .. 然后是字段的名字,可以用一个 wx_openid .. 第三个参数是对应的值 .. 这里用 $session 里的 openid 的值 ..
复制一份 .. 修改一下 .. meta 的名字是 wx_session_key .. 对应的值是 session 里的 session_key ..
用户的 meta 的名字我们可以自己定义 .. wx 这个前缀表示的就是 weixin ..
在上面的 bind 方法里,可以先去做一下判断 .. 用一下 is_wp_error ,把 $session 交给它,如果 $session 是个 wordpress 错误,这个方法就会返回 true .. 如果是这样的话, 我们可以直接 return 这个 $session ..
如果 session 不是个错误,可以用一下 $this 的 update_user_weixin_session .. 一个 $user_id ,还有一个 $session ..
返回一个 ok ..
这里用的 $user_id 再去定义一下 .. 它的值就是 $request 里面的 userId .. 在小程序的用户档案页面,我们发送给微信接口的数据里面,userId 表示的就是用户的 id 号 ..
数据库客户端
下面可以再找一个数据库的客户端 .. 比如 mysql 的 workbench .. mac 用户也可以使用 sequel pro ..
连接到网站数据库 .. 选择网站的数据库 ..
再选中数据库里面的 wp_usermeta 这个数据表 .. 它里面的东西就是网站上的用户的 meta 信息 .. 搜索一下 meta_key
操作符选择 contains .. 搜索的是 wx_ 前缀的 meta key .. 暂时还没有找到结果 ..
测试
回到小程序 .. 再去试一下 .. 按一下 确定 ..
返回的数据是个 WordPress 错误 ... 这是因为在 get_weixin_session 这个方法里面,APP_ID 的值现在是个无效的值 .. 再修改一下 .. 让它等于环境变量文件里的 WX_APP_ID ..
再回到微信开发者工具 .. 刷新一下页面 ... 按一下 确定 .. 这里返回的数据是 ok .. 说明成功获取到了用户的微信登录状态,并且更新了用户的 meta 信息 ..
打开数据库客户端 .. 刷新一下 ..
这回再搜索 wx 前缀的 meta 信息的时候,会找到两条结果 .. 注意 user_id 的值是 18 ,这个用户就应该是在小程序那里申请绑定微信的那个用户的 id 号 ..
meta_key 有个 wx_openid ,它的值是微信用户在我们的应用上的唯一标识 .. wx_session_key 是这个用户的微信的登录状态 ..
openid 的值不会变,不过 session_key 的值以后会有变化 ..
回到小程序 .. 刷新一下页面 .. 再按一下 确定 .. 小程序会重新调用 wx.login 接口,它会刷新用户的登录状态 ..
然后再到数据库客户端这里检查一下 .. 刷新 ..
你会发现这个用户的 wx_session_key 的值跟之前相比会有一些变化 ..