| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- // +----------------------------------------------------------------------
- // | likeadmin快速开发前后端分离管理后台(PHP版)
- // +----------------------------------------------------------------------
- // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
- // | 开源版本可自由商用,可去除界面版权logo
- // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
- // | github下载:https://github.com/likeshop-github/likeadmin
- // | 访问官网:https://www.likeadmin.cn
- // | likeadmin团队 版权所有 拥有最终解释权
- // +----------------------------------------------------------------------
- // | author: likeadminTeam
- // +----------------------------------------------------------------------
- namespace app\common\service\wechat;
- use EasyWeChat\Kernel\Exceptions\Exception;
- use EasyWeChat\MiniApp\Application;
- /**
- * 微信功能类
- * Class WeChatMnpService
- * @package app\common\service
- */
- class WeChatMnpService
- {
- protected $app;
- protected $config;
- public function __construct()
- {
- $this->config = $this->getConfig();
- $this->app = new Application($this->config);
- }
- /**
- * @notes 配置
- * @return array
- * @throws \Exception
- * @author 段誉
- * @date 2023/2/27 12:03
- */
- protected function getConfig()
- {
- $config = WeChatConfigService::getMnpConfig();
- if (empty($config['app_id']) || empty($config['secret'])) {
- throw new \Exception('请先设置小程序配置');
- }
- return $config;
- }
- /**
- * @notes 小程序-根据code获取微信信息
- * @param string $code
- * @return array
- * @throws Exception
- * @throws \EasyWeChat\Kernel\Exceptions\HttpException
- * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
- * @throws \Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface
- * @throws \Symfony\Contracts\HttpClient\Exception\DecodingExceptionInterface
- * @throws \Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface
- * @throws \Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface
- * @throws \Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface
- * @author 段誉
- * @date 2023/2/27 11:03
- */
- public function getMnpResByCode(string $code)
- {
- $utils = $this->app->getUtils();
- $response = $utils->codeToSession($code);
- if (!isset($response['openid']) || empty($response['openid'])) {
- throw new Exception('获取openID失败');
- }
- return $response;
- }
- /**
- * @notes 获取手机号
- * @param string $code
- * @return \EasyWeChat\Kernel\HttpClient\Response|\Symfony\Contracts\HttpClient\ResponseInterface
- * @throws \Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface
- * @author 段誉
- * @date 2023/2/27 11:46
- */
- public function getUserPhoneNumber(string $code)
- {
- return $this->app->getClient()->postJson('wxa/business/getuserphonenumber', [
- 'code' => $code,
- ]);
- }
- }
|