137 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace addons\epay;
 | 
						|
 | 
						|
use addons\epay\library\Service;
 | 
						|
use addons\epay\library\Hook;
 | 
						|
use think\Addons;
 | 
						|
use think\Config;
 | 
						|
use think\Lang;
 | 
						|
use think\Loader;
 | 
						|
 | 
						|
/**
 | 
						|
 * 微信支付宝整合插件
 | 
						|
 */
 | 
						|
class Epay extends Addons
 | 
						|
{
 | 
						|
 | 
						|
    /**
 | 
						|
     * 插件安装方法
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function install()
 | 
						|
    {
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 插件卸载方法
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function uninstall()
 | 
						|
    {
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 插件启用方法
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function enable()
 | 
						|
    {
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 插件禁用方法
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function disable()
 | 
						|
    {
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    // 支持自定义加载
 | 
						|
    public function epayConfigInit()
 | 
						|
    {
 | 
						|
        $this->actionBegin();
 | 
						|
    }
 | 
						|
 | 
						|
    // 插件方法加载开始
 | 
						|
    public function addonActionBegin()
 | 
						|
    {
 | 
						|
        $this->actionBegin();
 | 
						|
    }
 | 
						|
 | 
						|
    // 模块控制器方法加载开始
 | 
						|
    public function actionBegin()
 | 
						|
    {
 | 
						|
        //添加命名空间
 | 
						|
        if (!class_exists('\Yansongda\Pay\Pay')) {
 | 
						|
 | 
						|
            //SDK版本
 | 
						|
            $version = Service::getSdkVersion();
 | 
						|
 | 
						|
            $libraryDir = ADDON_PATH . 'epay' . DS . 'library' . DS;
 | 
						|
            Loader::addNamespace('Yansongda\Pay', $libraryDir . $version . DS . 'Yansongda' . DS . 'Pay' . DS);
 | 
						|
 | 
						|
            $checkArr = [
 | 
						|
                '\Hyperf\Context\Context'     => 'context',
 | 
						|
                '\Hyperf\Contract\Castable'   => 'contract',
 | 
						|
                '\Hyperf\Engine\Constant'     => 'engine',
 | 
						|
                '\Hyperf\Macroable\Macroable' => 'macroable',
 | 
						|
                '\Hyperf\Pimple\Container'    => 'pimple',
 | 
						|
                '\Hyperf\Utils\Arr'           => 'utils',
 | 
						|
            ];
 | 
						|
            foreach ($checkArr as $index => $item) {
 | 
						|
                if (!class_exists($index)) {
 | 
						|
                    Loader::addNamespace(substr($index, 1, strrpos($index, '\\') - 1), $libraryDir . 'hyperf' . DS . $item . DS . 'src' . DS);
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            if (!class_exists('\Yansongda\Supports\Logger')) {
 | 
						|
                Loader::addNamespace('Yansongda\Supports', $libraryDir . $version . DS . 'Yansongda' . DS . 'Supports' . DS);
 | 
						|
            }
 | 
						|
 | 
						|
            // V3需载入辅助函数
 | 
						|
            if ($version == Service::SDK_VERSION_V3) {
 | 
						|
                require_once $libraryDir . $version . DS . 'Yansongda' . DS . 'Pay' . DS . 'Functions.php';
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * 应用初始化
 | 
						|
     */
 | 
						|
    public function appInit()
 | 
						|
    {
 | 
						|
        // 公共方法
 | 
						|
        require_once __DIR__ . '/helper/helper.php';
 | 
						|
        if(!class_exists('\QRcode')){
 | 
						|
            require_once __DIR__ .'/library/phpqrcode.php';
 | 
						|
        }
 | 
						|
//        //全局事件注册
 | 
						|
        Hook::register();
 | 
						|
        //加载语言包
 | 
						|
        Lang::load(glob(APP_PATH. '/api/lang/zh-cn/*/*'));
 | 
						|
        //加载第三方类库
 | 
						|
        if(!class_exists('\WeChat\Pay')){
 | 
						|
            \think\Loader::addNamespace('WeChat',ADDON_PATH . 'epay' . DS . 'library' . DS . 'zoujingli' . DS . 'wechat-developer' . DS . 'WeChat' . DS);
 | 
						|
        }
 | 
						|
        if(!class_exists('WeMini\Crypt')){
 | 
						|
            \think\Loader::addNamespace('WeMini',ADDON_PATH . 'epay' . DS . 'library' . DS . 'zoujingli' . DS . 'wechat-developer' . DS . 'WeMini' . DS);
 | 
						|
        }
 | 
						|
        if(!class_exists('WePay\Order')){
 | 
						|
            \think\Loader::addNamespace('WePay',ADDON_PATH . 'epay' . DS . 'library' . DS . 'zoujingli' . DS . 'wechat-developer' . DS . 'WePay' . DS);
 | 
						|
        }
 | 
						|
        if(!class_exists('WePayV3\Order')){
 | 
						|
            \think\Loader::addNamespace('WePayV3',ADDON_PATH . 'epay' . DS . 'library' . DS . 'zoujingli' . DS . 'wechat-developer' . DS . 'WePayV3' . DS);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
}
 |