diff --git a/beike/Plugin/Manager.php b/beike/Plugin/Manager.php index 5a51538c..ba213cb9 100644 --- a/beike/Plugin/Manager.php +++ b/beike/Plugin/Manager.php @@ -93,7 +93,7 @@ class Manager $bootstraps = new Collection; foreach ($this->getEnabledPlugins() as $plugin) { - if ($this->filesystem->exists($file = $plugin->getPath() . '/bootstrap.php')) { + if ($this->filesystem->exists($file = $plugin->getBootFile())) { $bootstraps->push([ 'code' => $plugin->getDirName(), 'file' => $file diff --git a/beike/Plugin/Plugin.php b/beike/Plugin/Plugin.php index 5d0ef726..8ec86618 100644 --- a/beike/Plugin/Plugin.php +++ b/beike/Plugin/Plugin.php @@ -148,6 +148,16 @@ class Plugin implements Arrayable, \ArrayAccess return $this->columns; } + /** + * 获取插件启动文件路径 + * + * @return string + */ + public function getBootFile(): string + { + return $this->getPath() . '/Bootstrap.php'; + } + public function toArray(): array { diff --git a/beike/Repositories/PluginRepo.php b/beike/Repositories/PluginRepo.php index 58a3f80c..cfb48915 100644 --- a/beike/Repositories/PluginRepo.php +++ b/beike/Repositories/PluginRepo.php @@ -51,7 +51,7 @@ class PluginRepo { $code = $bPlugin->code; $path = $bPlugin->getPath(); - $staticPath = $path . '/static'; + $staticPath = $path . '/Static'; if (is_dir($staticPath)) { File::copyDirectory($staticPath, public_path('plugin/' . $code)); } diff --git a/beike/Shop/Providers/PluginServiceProvider.php b/beike/Shop/Providers/PluginServiceProvider.php index c4dd3b86..063044c5 100644 --- a/beike/Shop/Providers/PluginServiceProvider.php +++ b/beike/Shop/Providers/PluginServiceProvider.php @@ -39,12 +39,12 @@ class PluginServiceProvider extends ServiceProvider public function boot() { $manager = app('plugin'); - $bootstraps = $manager->getEnabledBootstraps(); + $plugins = $manager->getEnabledPlugins(); $this->pluginBasePath = base_path('plugins'); - foreach ($bootstraps as $bootstrap) { - $pluginCode = $bootstrap['code']; - $this->bootPlugin($bootstrap); + foreach ($plugins as $plugin) { + $pluginCode = $plugin->getDirname(); + $this->bootPlugin($plugin); $this->loadRoutes($pluginCode); $this->loadTranslations($pluginCode); $this->loadViews($pluginCode); @@ -55,12 +55,12 @@ class PluginServiceProvider extends ServiceProvider /** * 调用插件 Bootstrap::boot() * - * @param $bootstrap + * @param $plugin */ - private function bootPlugin($bootstrap) + private function bootPlugin($plugin) { - $filePath = $bootstrap['file']; - $pluginCode = $bootstrap['code']; + $filePath = $plugin->getBootFile(); + $pluginCode = $plugin->getDirname(); if (file_exists($filePath)) { $className = "Plugin\\{$pluginCode}\\Bootstrap"; if (method_exists($className, 'boot')) { diff --git a/beike/Shop/Services/PaymentService.php b/beike/Shop/Services/PaymentService.php index 5b93f299..0e0ca17e 100644 --- a/beike/Shop/Services/PaymentService.php +++ b/beike/Shop/Services/PaymentService.php @@ -13,6 +13,7 @@ namespace Beike\Shop\Services; use Beike\Models\Order; use Beike\Repositories\OrderRepo; +use Illuminate\Support\Str; use Illuminate\View\View; use Stripe\Customer; use Stripe\Exception\ApiErrorException; @@ -52,9 +53,10 @@ class PaymentService public function pay() { $orderPaymentCode = $this->paymentMethodCode; - $viewPath = "checkout.payment.{$this->paymentMethodCode}"; + $paymentCode = Str::studly($orderPaymentCode); + $viewPath = "$paymentCode::checkout.payment"; if (!view()->exists($viewPath)) { - throw new \Exception("找不到Payment{$orderPaymentCode}view{$viewPath}"); + throw new \Exception("找不到支付方式 {$orderPaymentCode} 模板 {$viewPath}"); } $paymentView = view($viewPath, ['order' => $this->order])->render(); return view('checkout.payment', ['order' => $this->order, 'payment' => $paymentView]); @@ -66,7 +68,7 @@ class PaymentService */ public function capture($creditCardData): bool { - $apiKey = plugin_setting('bk_stripe.secret_key'); + $apiKey = plugin_setting('stripe.secret_key'); Stripe::setApiKey($apiKey); $token = Token::create([ 'card' => [ diff --git a/database/migrations/2021_12_26_111435_create_tables.php b/database/migrations/2021_12_26_111435_create_tables.php index 64d0e073..f4ded272 100644 --- a/database/migrations/2021_12_26_111435_create_tables.php +++ b/database/migrations/2021_12_26_111435_create_tables.php @@ -111,7 +111,7 @@ class CreateTables extends Migration Schema::create('settings', function (Blueprint $table) { $table->id(); $table->string('type')->comment('类型,包括 system、plugin'); - $table->string('space')->comment('配置组, 比如 bk_stripe, flat_shipping'); + $table->string('space')->comment('配置组, 比如 stripe, paypal, flat_shipping'); $table->string('name')->comment('配置名称, 类似字段名'); $table->string('value')->comment('配置值'); $table->boolean('json')->default(false); diff --git a/plugins/BKStripe/static/css/demo.css b/plugins/Stripe/Static/css/demo.css similarity index 71% rename from plugins/BKStripe/static/css/demo.css rename to plugins/Stripe/Static/css/demo.css index a8e13541..dd144f10 100644 --- a/plugins/BKStripe/static/css/demo.css +++ b/plugins/Stripe/Static/css/demo.css @@ -1,6 +1,6 @@ /** 这里是插件css, 请在blade里面使用以下代码引入 - + */ #bk-stripe-app .form-wrap { @@ -11,4 +11,4 @@ #bk-stripe-app .pay-iamges img { max-width: 70px; margin-right: 4px; -} \ No newline at end of file +} diff --git a/plugins/BKStripe/static/image/pay-1.png b/plugins/Stripe/Static/image/pay-1.png similarity index 100% rename from plugins/BKStripe/static/image/pay-1.png rename to plugins/Stripe/Static/image/pay-1.png diff --git a/plugins/BKStripe/static/image/pay-2.png b/plugins/Stripe/Static/image/pay-2.png similarity index 100% rename from plugins/BKStripe/static/image/pay-2.png rename to plugins/Stripe/Static/image/pay-2.png diff --git a/plugins/BKStripe/static/image/pay-3.png b/plugins/Stripe/Static/image/pay-3.png similarity index 100% rename from plugins/BKStripe/static/image/pay-3.png rename to plugins/Stripe/Static/image/pay-3.png diff --git a/plugins/BKStripe/static/image/pay-4.png b/plugins/Stripe/Static/image/pay-4.png similarity index 100% rename from plugins/BKStripe/static/image/pay-4.png rename to plugins/Stripe/Static/image/pay-4.png diff --git a/plugins/BKStripe/static/image/pay-5.png b/plugins/Stripe/Static/image/pay-5.png similarity index 100% rename from plugins/BKStripe/static/image/pay-5.png rename to plugins/Stripe/Static/image/pay-5.png diff --git a/plugins/BKStripe/static/js/demo.js b/plugins/Stripe/Static/js/demo.js similarity index 50% rename from plugins/BKStripe/static/js/demo.js rename to plugins/Stripe/Static/js/demo.js index 777d21ca..5bfe05d3 100644 --- a/plugins/BKStripe/static/js/demo.js +++ b/plugins/Stripe/Static/js/demo.js @@ -1,4 +1,4 @@ /** * 这里是插件js, 请在blade里面使用以下代码引入 - * + * */ diff --git a/plugins/Stripe/Views/checkout/payment.blade.php b/plugins/Stripe/Views/checkout/payment.blade.php new file mode 100644 index 00000000..166a1dfb --- /dev/null +++ b/plugins/Stripe/Views/checkout/payment.blade.php @@ -0,0 +1,129 @@ + + + + + + + +