用户登录

先在小程序这里,换一个用户登录 .. 取消 .. 按一下登录 .. 再用网站上的另一个用户的身份登录到小程序 .. 输入用户名 .. 密码 ... 按一下 登录 ..

登录以后,在用户个人档案页面上,再按一下这个 确定 .. 这样会请求绑定当前登录到微信的用户 .. 成功以后,回到数据库客户端 .. 刷新一下 ..

你会发现,现在有两个用户的 wx_openid 的值都是一样的 ..

先删除掉刚刚绑定的用户的 wx_openid 还有 wx_session_key 的值 ..

我们要让微信用户跟网站用户是一对一的关系,也就是同一个 openid 只能属于网站上的一个用户 ...

接口

回到接口 .. 先在这个接口类里添加一个新的方法 .. 名字是 get_user_by_openid . 支持一个 openid 参数 ..

方法里面我们可以根据传递给这个方法的 openid 的值得到网站上的用户 ..

$users 等于 ... 用一下 get_users ,一个数组参数 .. 里面添加一个 meta_key ,对应的值是 wx_openid .. 再添加一个 meta_value .. 对应的值就是传递进来的这个 $openid 的值 .. meta_compare 设置成 等于 ..

这个 get_users 是 WordPress 提供的方法,这里我们做的就是按照用户的 wx_openid 这个 meta ,查询出网站上的用户 ..

下面判断一下 .. 如果 empty $users .. 我们就 return NULL .. 意思就是指定的 openid 还没有绑定网站上的用户 ..

如果查询出用户,我们可以 return $users 里面的第一个项目 ..

使用

再找到 bind 这个方法 .. 在更新用户 meta 之前,先用一下 $this 的 get_user_by_openid .. openid 的值可以用 $session 里的 openid 来表示 .. 返回的结果起个名字,可以是 $user ..

下面判断一下 .. 如果 $user ,意思就是如果用指定的这个 openid 的值在网站上找到了对应的用户,就说明当前微信用户已经跟网站上的某个用户绑定在一起了 .. 在这种情况下,就可以 return 一个新的 WP_Error .. 错误代码可以是 weixin_rest_already_bind ...

第二个参数是错误信息 .. __( '您的微信帐号跟某个用户已经绑定在一起了。' )

第三个参数是个数组 ... 把 status 设置成 400 ..

测试

回到小程序 .. 刷新一下页面 .. 按一下确定 .. 返回的数据是个 WordPress 的错误 .. 状态码是我们设置的 400 ..

错误信息是 ,您的微信帐号跟某个用户已经绑定在一起了。

确保网站用户与微信用户一对一《 微信小程序:微信绑定 #6 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点