常见问题:ECJia到家:平台后台删除用户后微信登录报错解决方案

来自ECJiaWiki
跳转至: 导航搜索

发生场景

由于某些原因,需要删除旧用户,使该用户成为微商城新用户以便测试新用户注册登录流程;管理员在平台后台直接删除用户后,该用户再次使用微信登录微商城之后就会报错,无法正常使用。

原因

管理员在平台后台删除 A 用户,但是数据库中还有残留的 A 用户的数据没有被删除,用户再次使用微信登录时,由于数据残留,就会导致该结果。要解决该问题,需要在数据库中把 A 用户的残留数据删除。


正常微信登录

  • 用户进入微商城,无需登录即可浏览其他内容,需要登录时进入【我的】,选择登录即可
平台后台删除用户后微信登录报错解决方案01.png

平台后台删除用户

  • 有时候平台为了测试,可能会删除某一用户,进行测试
平台后台删除用户后微信登录报错解决方案02.png
平台后台删除用户后微信登录报错解决方案03.png
  • 用户再次登录微商城后,显示如下图
平台后台删除用户后微信登录报错解决方案04.png



解决方案

  1. 使用phpmyadmin等数据库管理工具进入数据库,删除表中 A 用户残留的微信登录数据,主要在 wechat_user 和 connect_user 两张表中。
  2. 思路:首先在wechat_user表中根据nickname(A用户的昵称)找到 A 用户的openid或者unionid,复制openid或者unionid后,删除该数据,然后在connect_user表中根据openid或者unionid找到 A 用户的数据,删除该数据。(目前connect_user表中的 open_id 字段,当微信公众号未绑定微信开放平台,无unionid 时,为 openid;当已绑定微信开放平台,有 unionid 时,为 unionid)

公众号未绑定微信开放平台,无unionid,使用openid

  • 公众号未绑定微信开放平台,无unionid,则是根据nickname找到 A 用户的 open_id ,确定用户,删除2处残留数据。首先选择 wechat_user表,然后点击上方的【搜索】,找到nickname (也就是你的微信用户昵称)字段,把图中的 wechat 更换成 A 用户的昵称
平台后台删除用户后微信登录报错解决方案09.png


  • 选择根据nickname搜索出来的用户,复制该用户的标识(openid),然后勾选,点击【删除】,删除该数据
平台后台删除用户后微信登录报错解决方案05.png
  • 然后选择 connect_user 表,根据刚刚复制的 openid 搜索到一致的 openid,然后删除该数据
平台后台删除用户后微信登录报错解决方案06.png

公众号已绑定微信开放平台,有unionid,使用unionid

  • 公众号已绑定微信开放平台,有unionid,则是根据nickname找到 A 用户的 unionid ,确定用户,删除2处残留数据。首先选择 wechat_user表,然后点击上方的【搜索】,找到nickname (也就是你的微信用户昵称)字段,把图中的 wechat 更换成 A 用户的昵称
平台后台删除用户后微信登录报错解决方案09.png


  • 选择根据nickname搜索出来的用户,复制 A 用户的unionid,然后勾选,点击【删除】,删除该数据
平台后台删除用户后微信登录报错解决方案10.png
  • 然后选择 connect_user 表,根据刚刚复制的 unionid 搜索到一致的 unionid(目前为 open_id字段),然后删除该数据
平台后台删除用户后微信登录报错解决方案11.png


修复后用户再次登录

  • 平台后台清除缓存,用户再次登录,修复完成
平台后台删除用户后微信登录报错解决方案07.png
平台后台删除用户后微信登录报错解决方案08.png