<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 整合插件 在FastAdmin中默認是不允許整合其它付費插件的,如需整合到其它付費插件,則必須有相應可替代的功能,不能因為缺少這個付費插件而無法使用。如需整合免費插件,則無相應限制。 ## 適配后臺暗色模式插件 ## 整合普通插件 在使用其它插件的方法、模型、代碼之前,需按以下方法進行判斷 ~~~php //讀取插件的狀態,epay為插件標識 $info = get_addon_info('epay'); if($info && $info['state']){ //代碼邏輯 } else { exception("請確保微信支付寶整合插件已安裝并啟用"); } ~~~ 如果需要判斷依賴插件的版本可使用 ~~~php //讀取插件的狀態,epay為插件標識 $info = get_addon_info('epay'); if($info && $info['state']){ if(version_compare($info['version'], '1.3.0') >= 0){ //代碼邏輯 } else { exception("請安裝微信支付寶整合插件1.3.0及以上版本"); } } else { exception("請確保微信支付寶整合插件已安裝并啟用"); } ~~~ 如需讀取插件配置可使用 ~~~php //讀取插件的配置,epay為插件標識 $config = get_addon_config('epay'); $version = $config['version'] ?? 'v2'; ~~~ ## 整合支付插件 默認微信支付寶整合插件是使用微信支付`V2`的API接口,如需使用`V3`的接口需要做特殊處理。 目前微信支付寶整合插件已經發布`1.3.0`,從`1.3.0`開始支持微信支付`V3`的API接口,我們在整合微信支付寶插件時如果需要使用`V3`的接口,需要按以下的步驟進行操作。 ### 準備工作 1、首先確保已經安裝微信支付寶整合插件`1.3.0+` 2、在我們控制器代碼的`__construct`或`_initialize`方法中使用`set_addon_config('epay', ['version' => 'v3'], false);`切換`V3`接口,該代碼務必在`__construct`或`_initialize`方法中使用。 3、參照`easyPay`文檔使用`V3`的接口:https://pay.yansongda.cn/docs/v3/quick-start/init.html ### 常用方法 ~~~css //獲取當前接口版本 \addons\epay\library\Service::getSdkVersion(); //判斷當前是V2還是V3接口 \addons\epay\library\Service::isVersionV2(); \addons\epay\library\Service::isVersionV3(); ~~~ 插件內還提供了快捷**獲取微信支付寶插件配置**和**提交訂單**的方法(可選),也可以參考`epsyPay`的文檔自行實例化使用。 ~~~php /** * 獲取初始化配置,V2和V3返回的結構不一致 * @param string $type 支付類型 * @param array $custom 自定義微信支付寶相關配置,用于覆蓋插件默認配置 * @return array */ \addons\epay\library\Service::getConfig($type = 'wechat', $custom = []); /** * 提交訂單 * @param array|float $amount 訂單金額 * @param string $orderid 訂單號 * @param string $type 支付類型,可選alipay或wechat * @param string $title 訂單標題 * @param string $notifyurl 通知回調URL * @param string $returnurl 跳轉返回URL * @param string $method 支付方法,支持web/wap/app/scan/pos/mp/miniapp * @param string $openid Openid * @param array $custom 自定義微信支付寶相關配置,用于覆蓋插件默認配置 * @return Response|RedirectResponse|Collection */ \addons\epay\library\Service::submitOrder($amount, $orderid = null, $type = null, $title = null, $notifyurl = null, $returnurl = null, $method = null, $openid = '', $custom = []); ~~~ 溫馨提示: 1、你的支付參數配置信息可以在自己的應用中進行定義和配置 2、`V2`和`V3`的接口中特別是微信支付差異比較大,需特別注意。 ## 整合云存儲上傳插件 在插件開發中可以快速的整合FastAdmin插件市場的云存儲上傳插件。如果是后臺上傳無需任何特殊配置。 如果我們需要使用API上傳文件至云存儲,有以下兩種方式可以使用: ### 框架自帶API上傳(需登錄) 在使用框架自帶的API進行上傳文件,則要求傳遞用戶當前的`token`,如果應用插件未使用FastAdmin的默認用戶體系,可能無法獲取到用戶的`token`,此時建議使用`插件自定義API上傳`的形式 請求地址 > http://www.yoursite.com/api/common/upload 請求方法 > POST 請求參數 | 參數 | 必需 | 描述 | | --- | --- | --- | | file | 是 | 上傳文件 | | token | 是 | 用戶的token | ### 插件自定義API上傳(無需登錄或自行鑒權) 如果我們的應用插件未使用FastAdmin的默認用戶體系,可能無法獲取到用戶的`token`,從而無法使用框架自帶的API上傳接口,此時我們可以采用自定義API進行上傳。 請求地址 > http://www.yoursite.com/addons/demo/common/upload 請求方法 > POST 請求參數 | 參數 | 必需 | 描述 | | --- | --- | --- | | file | 是 | 上傳文件 | | custom1 | 是 | 自定義參數1 | | custom2 | 是 | 自定義參數2 | 代碼示例 ~~~php namespace addons\demo\controller; use app\common\exception\UploadException; use app\common\library\Upload; use think\addons\Controller; use Exception; use think\App; use think\Config; use think\Hook; use think\Lang; class Common extends Controller { //上傳方法 public function upload() { // 自定義鑒權判斷 // 強烈建議這里判斷$file = $this->request->file('file');的后綴和mimetype // 載入語言包,避免出現英文錯誤提示 Lang::load(APP_PATH . 'api/lang/zh-cn.php'); // 獲取上傳配置 $uploadConfig = Config::get("upload"); // 兼容云存儲上傳 if ($uploadConfig['storage'] != 'local') { // 這里可以修改允許上傳文件的后綴或修改存儲的文件路徑,例如只允許上傳圖片 set_addon_config($uploadConfig['storage'], ['savekey' => '/uploads/{year}{mon}{day}/{filemd5}{.suffix}', 'mimetype' => 'jpg,png,bmp,jpeg,gif'], false); // 添加允許上傳的行為 Hook::add('upload_config_checklogin', function () { return true; }); request()->param('isApi', true); App::invokeMethod(["\\addons\\{$uploadConfig["storage"]}\\controller\\Index", "upload"], ['isApi' => true]); } else { // 這里可以修改允許上傳文件的后綴或修改存儲的文件路徑,例如只允許上傳圖片 //Config::set('upload', array_merge($uploadConfig, ['savekey' => '/uploads/{year}{mon}{day}/{filemd5}{.suffix}', 'mimetype' => 'jpg,png,bmp,jpeg,gif'])); $attachment = null; // 默認普通上傳文件 $file = $this->request->file('file'); try { $upload = new Upload($file); $attachment = $upload->upload(); } catch (UploadException $e) { $this->error($e->getMessage()); } $this->success('上傳成功', '', ['url' => $attachment->url, 'fullurl' => cdnurl($attachment->url, true)]); } } } ~~~ ## 整合第三方登錄插件 如果使用了FastAdmin自帶的`fa_user`表,建議整合第三方登錄插件,第三方登錄插件支持微信、微博、QQ,支持微信掃碼登錄,支持UnionID機制。 當我們開發的應用插件獲取到了第三方平臺的openid以后,可以調用`\addons\third\library\Service::connect`來創建關聯,如下: ~~~php /** * 綁定第三方登錄 * @param string $platform 平臺,wechat=微信,qq=QQ,weibo=微博 * @param array $params 參數,必須包含openid * @param array $extend 會員擴展信息,可使用fa_user表中的字段 * @param int $keeptime 有效時長,默認為永久 * @return boolean */ \addons\third\library\Service::connect('wechat', [ 'openid'=>'用戶的openid', 'unionid'=>'用戶的unionid', //僅在微信 'apptype'=>'第三方類型',//miniapp=微信小程序,mp=公眾號,web=PC,app=APP 'nickname'=>'用戶昵稱',//可以為空 'avatar'=>'頭像',//可以為空 ], [ 'mobile'=>'手機號', //可選,可使用fa_user表字段 'username'=>'用戶名' ,//可選,可使用fa_user表字段 ]); ~~~ 如果需要判斷用戶是否綁定第三方登錄,可以使用如下判斷: ~~~php /** * 判斷是否綁定第三方 * @param string $platform 平臺 * @param string $openid Openid * @param string $apptype 平臺類型(web/miniapp/mp/app),可選 * @param string $unionid Unionid,可選 * @return bool */ $isBind = \addons\third\library\Service::isBindThird('wechat', '用戶的openid','miniapp','用戶的unionid'); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看