WechatOauth2Provider.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace crmeb\services\easywechat\oauth2\wechat;
  12. use crmeb\services\SystemConfigService;
  13. use Pimple\Container;
  14. use Pimple\ServiceProviderInterface;
  15. use think\facade\Request;
  16. /**
  17. * 微信网页授权
  18. * Class WechatOauthProvider
  19. * @package crmeb\services\easywechat\oauth\wechat
  20. * @method oauth(string $code = '') code授权获取acces_token openid
  21. * @method getUserInfo($openId, $lang = 'zh_CN') openid 获取用户信息
  22. * @method setRequest(Request $request) 设置request对象
  23. */
  24. class WechatOauth2Provider implements ServiceProviderInterface
  25. {
  26. /**
  27. *
  28. * @param Container $pimple
  29. */
  30. public function register(Container $pimple)
  31. {
  32. $request = app('request');
  33. $wechat = SystemConfigService::more(['wechat_appid', 'wechat_app_appid', 'wechat_app_appsecret', 'wechat_appsecret']);
  34. if ($request->isApp()) {
  35. $appId = isset($wechat['wechat_app_appid']) ? trim($wechat['wechat_app_appid']) : '';
  36. $appsecret = isset($wechat['wechat_app_appsecret']) ? trim($wechat['wechat_app_appsecret']) : '';
  37. } else {
  38. $appId = isset($wechat['wechat_appid']) ? trim($wechat['wechat_appid']) : '';
  39. $appsecret = isset($wechat['wechat_appsecret']) ? trim($wechat['wechat_appsecret']) : '';
  40. }
  41. $pimple['oauth2'] = function ($pimple) use ($appId, $appsecret) {
  42. return new WechatOauth($pimple['access_token'], $appId, $appsecret);
  43. };
  44. }
  45. }