当前位置: 首页 > 工具软件 > Easy Admin > 使用案例 >

Fastadmin和Easywechat

呼延才俊
2023-12-01

大概情况

Fastadmin是一款基于TP5.0的快速开发框架,不过很久没更新了,微信授权登录这一块,考虑用easywechat实现,发现官方的naixiaoxin-wechat包,需要TP5.1+

所以官方的easywechat包可以用于TP,但不能用于fastadmin,自己尝试安装了一下,做个记录

尝试

尝试用composer将版本强行提高,wechat/overture到4.0+,tp内核到5.1+,可以装naixiaoxin,但是fastadmin直接挂了,没办法,最终多次尝试之后使用折衷方案(感觉naixiaoxin的包不知道有没有以前的版本,不是很会用,也许大佬有其他方案)

最终方案

composer.json中将overtrue的版本更改为

"overtrue/wechat": "~4.0",

调用方式参考了这个链接 参考链接

然后在方法中调用,先使用

use EasyWeChat\Factory;

在\application\extra\下新建 wechat.php作为配置文件

<?php

return [
  /**
   * Debug 模式,bool 值:true/false
   *
   * 当值为 false 时,所有的日志都不会记录
   */
  'debug'  => false,
  /**
   * 账号基本信息,请从微信公众平台/开放平台获取
   */
  'app_id'  => 'xxxxx',         // AppID
  'secret'  => 'xxxxxx',     // AppSecret
  'token'   => 'xxxxx',          // Token
  'aes_key' => 'i0MbeyhX8lp5tlL7hRCjbLo2GdVNqCD3h7DcmFJmnGU',
  'response_type' => 'array',
  /**
   * 日志配置
   *
   * level: 日志级别, 可选为:
   *         debug/info/notice/warning/error/critical/alert/emergency
   * permission:日志文件权限(可选),默认为null(若为null值,monolog会取0644)
   * file:日志文件位置(绝对路径!!!),要求可写权限
   */
  'log' => [
      'level'      => 'debug',
      'permission' => 0777,
      'file'       => '/tmp/easywechat.log',
  ],
  /**
   * OAuth 配置
   *
   * scopes:公众平台(snsapi_userinfo / snsapi_base),开放平台:snsapi_login
   * callback:OAuth授权完成后的回调页地址
   */
  'oauth' => [
      'scopes'   => ['snsapi_userinfo'],
      'callback' => '/user/wechat/oauth_callback',
  ],
  /**
   * 微信支付
   */


  'payment' => [
      'merchant_id'        => '135*****602',
      'key'                => '80b8682*****8fdac7784',
      'cert_path'          => ROOT_PATH . 'public/certs/wechat/apiclient_cert.pem', // XXX: 绝对路径!!!!
      'key_path'           => ROOT_PATH . 'public/certs/wechat/apiclient_key.pem',      // XXX: 绝对路径!!!!
      'notify_url'       => 'http://*******/notify/wxpay',
  ],
  /**
   * Guzzle 全局设置
   *
   * 更多请参考: http://docs.guzzlephp.org/en/latest/request-options.html
   */
  'guzzle' => [
      'timeout' => 3.0, // 超时时间(秒)
      'verify' => true, // 关掉 SSL 认证(强烈不建议!!!)
  ],  
];


代码中实例化的时候使用如下方式

$app = Factory::officialAccount(config('wechat'));

后续使用的时候参考官方easywechat的一般使用方式就可以啦

$response = $app->oauth->scopes(['snsapi_userinfo'])
                          ->redirect();

 return $response;

可以正常授权,OK!

 类似资料: