Wechat.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace addons\ddrive\controller;
  3. use app\common\controller\Api;
  4. use think\Db;
  5. /**
  6. * 微信接口
  7. */
  8. class Wechat extends Api
  9. {
  10. protected $noNeedLogin = ['*'];
  11. protected $noNeedRight = ['*'];
  12. /**
  13. * 获取微信openid
  14. *
  15. * @return void
  16. */
  17. public function getOpenid()
  18. {
  19. $code = $this->request->param('code');
  20. $config = get_addon_config('ddrive');
  21. $appid = $config['wx_appid'];
  22. $secret = $config['wx_secret'];
  23. $api = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";
  24. $res = \fast\Http::get($api);
  25. $res = json_decode($res, true);
  26. if (isset($res['errmsg'])) {
  27. $this->error($res['errmsg']);
  28. } else {
  29. $this->success("", $res);
  30. }
  31. }
  32. /**
  33. * 同步用户信息到本地
  34. *
  35. * @return void
  36. */
  37. public function syncUser()
  38. {
  39. $openid = $this->request->param('openid');
  40. $nick_name = $this->request->param('nick_name');
  41. $avatar_image = $this->request->param('avatar_image');
  42. $user = Db::name('user')->where('openid', $openid)->find();
  43. if ($user) {
  44. $this->success("用户已存在");
  45. }
  46. $user_id = Db::name('user')->insertGetId([
  47. 'openid' => $openid,
  48. 'nick_name' => $nick_name,
  49. 'avatar_image' => $avatar_image,
  50. 'createtime' => time(),
  51. ]);
  52. if ($user_id) {
  53. $this->success("同步成功");
  54. } else {
  55. $this->error('同步失败');
  56. }
  57. }
  58. }