48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | namespace app\service\wx; | ||
|  | 
 | ||
|  | use EasyWeChat\Factory; | ||
|  | use EasyWeChat\MiniProgram\Application; | ||
|  | use think\facade\Config; | ||
|  | 
 | ||
|  | /** | ||
|  |  * 微信小程序 | ||
|  |  * Class WechatApplets | ||
|  |  * @package app\service\wx | ||
|  |  */ | ||
|  | class WechatApplets | ||
|  | { | ||
|  |     private static $app = null; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * TODO 正式上线时需要替换模板配置信息和相关小程序配置信息 | ||
|  |      */ | ||
|  |     // 订阅消息模板:预约通知
 | ||
|  |     public const SUBSCRIBE_TPL_APPOINTMENT = 'uvGd7RqaegheGU-uVxR-uM3y2MadZeMOHdQaNiiWm8U'; | ||
|  | 
 | ||
|  |     private function __construct() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     private function __clone() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     //微信小程序实例  单例模式
 | ||
|  |     public static function getInstance(): ?Application | ||
|  |     { | ||
|  |         if (self::$app == null) { | ||
|  |             Config::load('extra/wechat', 'wechat'); | ||
|  |             $conf    = config('wechat'); | ||
|  |             $config    = [ | ||
|  |                 // 必要配置
 | ||
|  |                 'app_id'    => $conf['applets_appId'], | ||
|  |                 'secret'    => $conf['applets_appSecret'], | ||
|  |                 // 返回数据类型 array | xml
 | ||
|  |                 'response_type' => 'array', | ||
|  |             ]; | ||
|  |             self::$app = Factory::miniProgram($config); | ||
|  |         } | ||
|  |         return self::$app; | ||
|  |     } | ||
|  | } |