TP5 封装通用的微信服务类
生活随笔
收集整理的這篇文章主要介紹了
TP5 封装通用的微信服务类
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、安裝依賴包
我們這里用的是 EasyWeChat
EasyWeCha官網(wǎng) https://www.easywechat.com/
安裝地址 https://github.com/easywechat/docs
相關(guān)文檔 https://www.easywechat.com/docs/4.1/payment/index
- composer安裝
1、封裝服務(wù)類
<?phpnamespace app\common\service; use EasyWeChat\Factory; use EasyWeChat\MiniProgram\Application; use think\Hook;/*** 微信服務(wù)* @package app\common\service*/ class WeChatService {//微信公眾號配置private $officeConfig = ['app_id' => 'wx727ac3b3f4439a25','secret' => '23471aaeb7d0ab3679da9f9a7d58bb25',// 指定 API 調(diào)用返回結(jié)果的類型:array(default)/collection/object/raw/自定義類名'response_type' => 'array',//...];//微信支付private $payConfig = [// 必要配置'app_id' => 'xxxx','mch_id' => 'your-mch-id','key' => 'key-for-signature', // API 密鑰// 如需使用敏感接口(如退款、發(fā)送紅包等)需要配置 API 證書路徑(登錄商戶平臺下載 API 證書)'cert_path' => 'path/to/your/cert.pem', // XXX: 絕對路徑!!!!'key_path' => 'path/to/your/key', // XXX: 絕對路徑!!!!'notify_url' => '默認的訂單回調(diào)地址', // 你也可以在下單時單獨設(shè)置來想覆蓋它];//微信小程序配置private $miniConfig = ['app_id' => 'wx3cf0f39249eb0exx','secret' => 'f1c242f4f28f735d4687abb469072axx',// 下面為可選項// 指定 API 調(diào)用返回結(jié)果的類型:array(default)/collection/object/raw/自定義類名'response_type' => 'array','log' => ['level' => 'debug','file' => PUBLIC_PATH . '/logs/wechat.log',],];//開放平臺配置private $openConfig = ['app_id' => '開放平臺第三方平臺 APPID','secret' => '開放平臺第三方平臺 Secret','token' => '開放平臺第三方平臺 Token','aes_key' => '開放平臺第三方平臺 AES Key'];private $token = ''; //獲取小程序的ACCESS_TOKENprivate $isContract = false; //是否開啟支付中簽約/*** @ApiTitle (實例化)* @param int $type* @return bool|Application|\EasyWeChat\OfficialAccount\Application|\EasyWeChat\OpenPlatform\Application|\EasyWeChat\Payment\Application* @throws \EasyWeChat\Kernel\Exceptions\HttpException* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException* @throws \Psr\SimpleCache\InvalidArgumentException*/public function connect($type = 0){//實例化對象if ($type == 0) $app = Factory::miniProgram($this->miniConfig); //微信小程序if ($type == 1) $app = Factory::officialAccount($this->officeConfig); //微信公眾號if ($type == 2) $app = Factory::payment($this->payConfig); //微信支付if ($type == 3) $app = Factory::openPlatform($this->payConfig); //微信開放平臺//獲取token$accessToken = $app->access_token;$this->token = $accessToken->getToken()['access_token']; // token 數(shù)組 token['access_token'] 字符串return $app ?? false;}/*** @ApiTitle (生成小程序二維碼)* @return bool|int* @throws \EasyWeChat\Kernel\Exceptions\HttpException* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException* @throws \Psr\SimpleCache\InvalidArgumentException*/public function createCode(){$app = $this->connect(0);$response = $app->app_code->getUnlimit('scene-value', ['page' => 'path/to/page','width' => 600,]);if ($response instanceof \EasyWeChat\Kernel\Http\StreamResponse) {$dir = 'qrCode/' . date('Ymd', time()) . '/';if (!file_exists($dir)) mkdir($dir, 0777, true);$url = PUBLIC_PATH . $dir . 'app_mini_code.png';$response->save($url);//保存到OSS$urlOss = Hook::listen("upload_oss", $url, null, true);//刪除本地圖片和文件夾if (file_exists($url)) {unlink($url);rmdir($dir);}}return $urlOss ?? false;}}其中微信小程序、公眾號、微信支付和開放平臺等配置都在這里面寫,如果需要企業(yè)微信等配置自行根據(jù)自己的業(yè)務(wù)修改里面的代碼即可。
3、調(diào)用服務(wù)類
- 我們只要 new 一個服務(wù)類就可以使用里面的方法了
- 調(diào)用 EasyWeChat 包的方法,只需要 connect 一下就可以了,其中需要傳參
感謝你的觀看,如果有什么問題歡迎在留言區(qū)留言。
總結(jié)
以上是生活随笔為你收集整理的TP5 封装通用的微信服务类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新手做自媒体运营了解这几个步骤,运营效率
- 下一篇: 二维码 | 如何实现一码多用