From d0c7b43cceea300a57c292759c21dc63a93c4871 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Wed, 15 Feb 2023 09:44:47 +0800 Subject: [PATCH] plugin code format --- .../Controllers/Account/OrderController.php | 1 + pint.json | 1 - plugins/FlatShipping/Bootstrap.php | 29 ++++----- plugins/FlatShipping/Lang/en/common.php | 6 +- plugins/FlatShipping/Lang/zh_cn/common.php | 6 +- plugins/FlatShipping/columns.php | 18 +++--- plugins/LatestProducts/Bootstrap.php | 14 ++--- .../Controllers/MenusController.php | 8 +-- .../Paypal/Controllers/PaypalController.php | 62 +++++++++---------- plugins/Paypal/Lang/en/setting.php | 2 +- plugins/Paypal/Lang/zh_cn/setting.php | 2 +- plugins/Paypal/columns.php | 54 ++++++++-------- plugins/Social/Bootstrap.php | 2 +- .../Controllers/AdminSocialController.php | 5 +- .../Controllers/ShopSocialController.php | 11 ++-- plugins/Social/Lang/en/providers.php | 44 ++++++------- plugins/Social/Lang/en/setting.php | 12 ++-- plugins/Social/Lang/zh_cn/providers.php | 44 ++++++------- plugins/Social/Lang/zh_cn/setting.php | 54 ++++++++-------- plugins/Social/Models/CustomerSocial.php | 2 +- plugins/Social/Repositories/CustomerRepo.php | 33 +++++----- .../Stripe/Controllers/StripeController.php | 16 ++--- plugins/Stripe/Lang/en/common.php | 24 +++---- plugins/Stripe/Lang/zh_cn/common.php | 24 +++---- .../Stripe/Services/StripePaymentService.php | 31 +++++----- plugins/Stripe/columns.php | 34 +++++----- 26 files changed, 272 insertions(+), 267 deletions(-) diff --git a/beike/Shop/Http/Controllers/Account/OrderController.php b/beike/Shop/Http/Controllers/Account/OrderController.php index 1e28ef9b..17a96621 100644 --- a/beike/Shop/Http/Controllers/Account/OrderController.php +++ b/beike/Shop/Http/Controllers/Account/OrderController.php @@ -86,6 +86,7 @@ class OrderController extends Controller $customer = current_customer(); $order = OrderRepo::getOrderByNumber($number, $customer); hook_action('account.order.pay.before', ['order' => $order]); + return (new PaymentService($order))->pay(); } catch (\Exception $e) { return redirect(shop_route('account.order.show', $number))->withErrors($e->getMessage()); diff --git a/pint.json b/pint.json index 6cea97a9..50bbe32e 100644 --- a/pint.json +++ b/pint.json @@ -48,7 +48,6 @@ }, "exclude": [ "database", - "plugins", "beike/Hook" ], "notName": [ diff --git a/plugins/FlatShipping/Bootstrap.php b/plugins/FlatShipping/Bootstrap.php index ca8934a7..21c5371b 100644 --- a/plugins/FlatShipping/Bootstrap.php +++ b/plugins/FlatShipping/Bootstrap.php @@ -21,26 +21,26 @@ class Bootstrap * 获取固定运费方式 * * @param CheckoutService $checkout - * @param Plugin $plugin + * @param Plugin $plugin * @return array * @throws \Exception */ public function getQuotes(CheckoutService $checkout, Plugin $plugin): array { - $code = $plugin->code; + $code = $plugin->code; $pluginResource = (new PluginResource($plugin))->jsonSerialize(); - $quotes[] = [ - 'type' => 'shipping', - 'code' => "{$code}.0", - 'name' => $pluginResource['name'], + $quotes[] = [ + 'type' => 'shipping', + 'code' => "{$code}.0", + 'name' => $pluginResource['name'], 'description' => $pluginResource['description'], - 'icon' => $pluginResource['icon'], - 'cost' => $this->getShippingFee($checkout), + 'icon' => $pluginResource['icon'], + 'cost' => $this->getShippingFee($checkout), ]; + return $quotes; } - /** * 计算固定运费 * @@ -49,16 +49,17 @@ class Bootstrap */ public function getShippingFee(CheckoutService $checkout): float|int { - $totalService = $checkout->totalService; - $amount = $totalService->amount; - $shippingType = plugin_setting('flat_shipping.type', 'fixed'); + $totalService = $checkout->totalService; + $amount = $totalService->amount; + $shippingType = plugin_setting('flat_shipping.type', 'fixed'); $shippingValue = plugin_setting('flat_shipping.value', 0); if ($shippingType == 'fixed') { return $shippingValue; } elseif ($shippingType == 'percent') { return $amount * $shippingValue / 100; - } else { - return 0; } + + return 0; + } } diff --git a/plugins/FlatShipping/Lang/en/common.php b/plugins/FlatShipping/Lang/en/common.php index 62186bfa..7461686f 100644 --- a/plugins/FlatShipping/Lang/en/common.php +++ b/plugins/FlatShipping/Lang/en/common.php @@ -10,8 +10,8 @@ */ return [ - 'way' => 'Way', - 'flat_shipping' => 'Flat Shipping', - 'percentage' => 'Percentage', + 'way' => 'Way', + 'flat_shipping' => 'Flat Shipping', + 'percentage' => 'Percentage', 'shipping_value' => 'Shipping Value', ]; diff --git a/plugins/FlatShipping/Lang/zh_cn/common.php b/plugins/FlatShipping/Lang/zh_cn/common.php index 5089aafc..a7d395a0 100644 --- a/plugins/FlatShipping/Lang/zh_cn/common.php +++ b/plugins/FlatShipping/Lang/zh_cn/common.php @@ -10,8 +10,8 @@ */ return [ - 'way' => '方式', - 'flat_shipping' => '固定运费', - 'percentage' => '百分比', + 'way' => '方式', + 'flat_shipping' => '固定运费', + 'percentage' => '百分比', 'shipping_value' => '运费值', ]; diff --git a/plugins/FlatShipping/columns.php b/plugins/FlatShipping/columns.php index 81fcf5e7..ed2e24f7 100644 --- a/plugins/FlatShipping/columns.php +++ b/plugins/FlatShipping/columns.php @@ -11,19 +11,19 @@ return [ [ - 'name' => 'type', + 'name' => 'type', 'label_key' => 'common.flat_shipping', - 'type' => 'select', - 'options' => [ + 'type' => 'select', + 'options' => [ ['value' => 'fixed', 'label_key' => 'common.flat_shipping'], - ['value' => 'percent', 'label_key' => 'common.percentage'] + ['value' => 'percent', 'label_key' => 'common.percentage'], ], - 'required' => true, + 'required' => true, ], [ - 'name' => 'value', + 'name' => 'value', 'label_key' => 'common.shipping_value', - 'type' => 'string', - 'required' => true, - ] + 'type' => 'string', + 'required' => true, + ], ]; diff --git a/plugins/LatestProducts/Bootstrap.php b/plugins/LatestProducts/Bootstrap.php index 2a54fb18..6d11c947 100644 --- a/plugins/LatestProducts/Bootstrap.php +++ b/plugins/LatestProducts/Bootstrap.php @@ -27,7 +27,6 @@ class Bootstrap // $this->modifySetting(); } - /** * 在前台网页头部添加二级菜单链接 */ @@ -36,13 +35,13 @@ class Bootstrap add_hook_filter('menu.content', function ($data) { $data[] = [ 'name' => trans('LatestProducts::header.latest_products'), - "link" => shop_route('latest_products'), + 'link' => shop_route('latest_products'), ]; + return $data; }, 0); } - /** * 修改前台全局 header 模板演示 */ @@ -66,11 +65,11 @@ class Bootstrap add_hook_blade('header.menu.icon', function ($callback, $output, $data) { $view = view('LatestProducts::shop.header_icon')->render(); + return $output . $view; }); } - /** * 修改产品详情页演示 * 1. 通过数据 hook 修改产品详情页产品名称 @@ -83,12 +82,14 @@ class Bootstrap // 通过数据 hook 修改产品详情页产品名称 add_hook_filter('product.show.data', function ($product) { $product['product']['name'] = '[疯狂热销]' . $product['product']['name']; + return $product; }); // 通过模板 hook 在产品详情页名称上面添加 Hot 标签 add_hook_blade('product.detail.name', function ($callback, $output, $data) { $badge = 'Hot'; + return $badge . $output; }); @@ -100,11 +101,11 @@ class Bootstrap // 通过模板 hook 在产品详情页立即购买后添加按钮 add_hook_blade('product.detail.buy.after', function ($callback, $output, $data) { $view = ''; + return $output . $view; }); } - /** * 后台产品编辑页添加自定义字段演示 */ @@ -112,11 +113,11 @@ class Bootstrap { add_hook_blade('admin.product.edit.extra', function ($callback, $output, $data) { $view = view('LatestProducts::admin.product.edit_extra_field', $data)->render(); + return $output . $view; }, 1); } - /** * 系统设置添加新 tab */ @@ -130,5 +131,4 @@ class Bootstrap return view('LatestProducts::admin.setting.tab')->render(); }); } - } diff --git a/plugins/LatestProducts/Controllers/MenusController.php b/plugins/LatestProducts/Controllers/MenusController.php index 7afd1b5f..8b0af4a4 100644 --- a/plugins/LatestProducts/Controllers/MenusController.php +++ b/plugins/LatestProducts/Controllers/MenusController.php @@ -20,12 +20,11 @@ class MenusController extends Controller public function getRoutes(): array { return [ - 'method' => __METHOD__, - 'route_list' => [] + 'method' => __METHOD__, + 'route_list' => [], ]; } - public function latestProducts() { $products = ProductRepo::getBuilder(['active' => 1]) @@ -35,8 +34,9 @@ class MenusController extends Controller $data = [ 'products' => $products, - 'items' => ProductSimple::collection($products)->jsonSerialize(), + 'items' => ProductSimple::collection($products)->jsonSerialize(), ]; + return view('LatestProducts::shop.latest_products', $data); } } diff --git a/plugins/Paypal/Controllers/PaypalController.php b/plugins/Paypal/Controllers/PaypalController.php index f5f8ddfb..71117f73 100644 --- a/plugins/Paypal/Controllers/PaypalController.php +++ b/plugins/Paypal/Controllers/PaypalController.php @@ -11,17 +11,16 @@ * https://www.zongscan.com/demo333/1311.html * https://clickysoft.com/how-to-integrate-paypal-payment-gateway-in-laravel/ * https://www.positronx.io/how-to-integrate-paypal-payment-gateway-in-laravel/ - * */ namespace Plugin\Paypal\Controllers; -use Illuminate\Http\Request; use Beike\Repositories\OrderRepo; +use Beike\Services\StateMachineService; use Illuminate\Http\JsonResponse; +use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Srmklive\PayPal\Services\PayPal; -use Beike\Services\StateMachineService; class PaypalController { @@ -30,29 +29,28 @@ class PaypalController private function initPaypal() { $paypalSetting = plugin_setting('paypal'); - $config = [ - 'mode' => $paypalSetting['sandbox_mode'] ? 'sandbox' : 'live', - 'sandbox' => [ - 'client_id' => $paypalSetting['sandbox_client_id'], + $config = [ + 'mode' => $paypalSetting['sandbox_mode'] ? 'sandbox' : 'live', + 'sandbox' => [ + 'client_id' => $paypalSetting['sandbox_client_id'], 'client_secret' => $paypalSetting['sandbox_secret'], ], - 'live' => [ - 'client_id' => $paypalSetting['live_client_id'], + 'live' => [ + 'client_id' => $paypalSetting['live_client_id'], 'client_secret' => $paypalSetting['live_secret'], ], 'payment_action' => 'Sale', - 'currency' => 'USD', - 'notify_url' => '', - 'locale' => 'en_US', - 'validate_ssl' => false, + 'currency' => 'USD', + 'notify_url' => '', + 'locale' => 'en_US', + 'validate_ssl' => false, ]; config(['paypal' => null]); $this->paypalClient = new PayPal($config); - $token = $this->paypalClient->getAccessToken(); + $token = $this->paypalClient->getAccessToken(); $this->paypalClient->setAccessToken($token); } - /** * 创建 paypal 订单 * @param Request $request @@ -62,29 +60,28 @@ class PaypalController public function create(Request $request): JsonResponse { $this->initPaypal(); - $data = \json_decode($request->getContent(), true); + $data = \json_decode($request->getContent(), true); $orderNumber = $data['orderNumber']; - $customer = current_customer(); - $order = OrderRepo::getOrderByNumber($orderNumber, $customer); - $total = round($order->total, 2); + $customer = current_customer(); + $order = OrderRepo::getOrderByNumber($orderNumber, $customer); + $total = round($order->total, 2); $paypalOrder = $this->paypalClient->createOrder([ - "intent" => "CAPTURE", - "purchase_units" => [ + 'intent' => 'CAPTURE', + 'purchase_units' => [ [ - "amount" => [ - "currency_code" => $order->currency_code, - "value" => $total, + 'amount' => [ + 'currency_code' => $order->currency_code, + 'value' => $total, ], - 'description' => 'test' - ] + 'description' => 'test', + ], ], ]); return response()->json($paypalOrder); } - /** * 客户同意后扣款回调 * @param Request $request @@ -94,17 +91,17 @@ class PaypalController public function capture(Request $request): JsonResponse { $this->initPaypal(); - $data = \json_decode($request->getContent(), true); + $data = \json_decode($request->getContent(), true); $orderNumber = $data['orderNumber']; - $customer = current_customer(); - $order = OrderRepo::getOrderByNumber($orderNumber, $customer); + $customer = current_customer(); + $order = OrderRepo::getOrderByNumber($orderNumber, $customer); $paypalOrderId = $data['paypalOrderId']; - $result = $this->paypalClient->capturePaymentOrder($paypalOrderId); + $result = $this->paypalClient->capturePaymentOrder($paypalOrderId); try { DB::beginTransaction(); - if ($result['status'] === "COMPLETED") { + if ($result['status'] === 'COMPLETED') { StateMachineService::getInstance($order)->changeStatus(StateMachineService::PAID); DB::commit(); } @@ -112,6 +109,7 @@ class PaypalController DB::rollBack(); dd($e); } + return response()->json($result); } } diff --git a/plugins/Paypal/Lang/en/setting.php b/plugins/Paypal/Lang/en/setting.php index 8e899d30..e6b4211a 100644 --- a/plugins/Paypal/Lang/en/setting.php +++ b/plugins/Paypal/Lang/en/setting.php @@ -11,5 +11,5 @@ return [ 'sandbox_mode' => 'Sandbox Mode', - 'enabled' => 'Enabled', + 'enabled' => 'Enabled', ]; diff --git a/plugins/Paypal/Lang/zh_cn/setting.php b/plugins/Paypal/Lang/zh_cn/setting.php index d16a51cf..098ac7db 100644 --- a/plugins/Paypal/Lang/zh_cn/setting.php +++ b/plugins/Paypal/Lang/zh_cn/setting.php @@ -11,5 +11,5 @@ return [ 'sandbox_mode' => '沙盒模式', - 'enabled' => '开启', + 'enabled' => '开启', ]; diff --git a/plugins/Paypal/columns.php b/plugins/Paypal/columns.php index 3f4c8f37..266a4f36 100644 --- a/plugins/Paypal/columns.php +++ b/plugins/Paypal/columns.php @@ -11,46 +11,46 @@ return [ [ - 'name' => 'sandbox_client_id', - 'label' => 'Sandbox Client ID', - 'type' => 'string', - 'required' => true, - 'rules' => 'required|size:80', + 'name' => 'sandbox_client_id', + 'label' => 'Sandbox Client ID', + 'type' => 'string', + 'required' => true, + 'rules' => 'required|size:80', 'description' => '沙盒模式 Client ID', ], [ - 'name' => 'sandbox_secret', - 'label' => 'Sandbox Secret', - 'type' => 'string', - 'required' => true, - 'rules' => 'required|size:80', + 'name' => 'sandbox_secret', + 'label' => 'Sandbox Secret', + 'type' => 'string', + 'required' => true, + 'rules' => 'required|size:80', 'description' => '沙盒模式 Secret', ], [ - 'name' => 'live_client_id', - 'label' => 'Live Client ID', - 'type' => 'string', - 'required' => true, - 'rules' => 'required|size:80', + 'name' => 'live_client_id', + 'label' => 'Live Client ID', + 'type' => 'string', + 'required' => true, + 'rules' => 'required|size:80', 'description' => '正式环境 Client ID', ], [ - 'name' => 'live_secret', - 'label' => 'Live Secret', - 'type' => 'string', - 'required' => true, - 'rules' => 'required|size:80', + 'name' => 'live_secret', + 'label' => 'Live Secret', + 'type' => 'string', + 'required' => true, + 'rules' => 'required|size:80', 'description' => '正式环境 Secret', ], [ - 'name' => 'sandbox_mode', - 'label_key' => 'setting.sandbox_mode', - 'type' => 'select', - 'options' => [ + 'name' => 'sandbox_mode', + 'label_key' => 'setting.sandbox_mode', + 'type' => 'select', + 'options' => [ ['value' => '1', 'label_key' => 'setting.enabled'], - ['value' => '0', 'label' => '关闭'] + ['value' => '0', 'label' => '关闭'], ], - 'required' => true, + 'required' => true, 'description' => '', - ] + ], ]; diff --git a/plugins/Social/Bootstrap.php b/plugins/Social/Bootstrap.php index c01036ab..a4e2c214 100644 --- a/plugins/Social/Bootstrap.php +++ b/plugins/Social/Bootstrap.php @@ -11,7 +11,6 @@ namespace Plugin\Social; - class Bootstrap { public function boot() @@ -33,6 +32,7 @@ class Bootstrap foreach ($providers as $provider) { $buttons[] = view('Social::shop/social_button', ['provider' => $provider])->render(); } + return $buttons; }); } diff --git a/plugins/Social/Controllers/AdminSocialController.php b/plugins/Social/Controllers/AdminSocialController.php index 09f6bf1e..dd8c4e56 100644 --- a/plugins/Social/Controllers/AdminSocialController.php +++ b/plugins/Social/Controllers/AdminSocialController.php @@ -11,9 +11,9 @@ namespace Plugin\Social\Controllers; -use Illuminate\Http\Request; -use Beike\Repositories\SettingRepo; use Beike\Admin\Http\Controllers\Controller; +use Beike\Repositories\SettingRepo; +use Illuminate\Http\Request; class AdminSocialController extends Controller { @@ -23,6 +23,7 @@ class AdminSocialController extends Controller public function saveSetting(Request $request): array { SettingRepo::storeValue('setting', $request->all(), 'social', 'plugin'); + return json_success('保存成功'); } } diff --git a/plugins/Social/Controllers/ShopSocialController.php b/plugins/Social/Controllers/ShopSocialController.php index 37dd4648..16ec8a03 100644 --- a/plugins/Social/Controllers/ShopSocialController.php +++ b/plugins/Social/Controllers/ShopSocialController.php @@ -11,11 +11,11 @@ namespace Plugin\Social\Controllers; +use Beike\Admin\Http\Controllers\Controller; use Beike\Models\Customer; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Laravel\Socialite\Facades\Socialite; -use Beike\Admin\Http\Controllers\Controller; use Plugin\Social\Repositories\CustomerRepo; class ShopSocialController extends Controller @@ -29,9 +29,9 @@ class ShopSocialController extends Controller continue; } $config = [ - 'client_id' => $providerSetting['key'], + 'client_id' => $providerSetting['key'], 'client_secret' => $providerSetting['secret'], - 'redirect' => shop_route('social.callback', $provider), + 'redirect' => shop_route('social.callback', $provider), ]; Config::set("services.{$provider}", $config); } @@ -46,7 +46,7 @@ class ShopSocialController extends Controller try { return Socialite::driver($provider)->redirect(); } catch (\Exception $e) { - die($e->getMessage()); + exit($e->getMessage()); } } @@ -60,9 +60,10 @@ class ShopSocialController extends Controller $userData = Socialite::driver($provider)->user(); $customer = CustomerRepo::createCustomer($provider, $userData); Auth::guard(Customer::AUTH_GUARD)->login($customer); + return view('Social::shop/callback'); } catch (\Exception $e) { - die($e->getMessage()); + exit($e->getMessage()); } } } diff --git a/plugins/Social/Lang/en/providers.php b/plugins/Social/Lang/en/providers.php index 2d872817..18c9d669 100644 --- a/plugins/Social/Lang/en/providers.php +++ b/plugins/Social/Lang/en/providers.php @@ -10,27 +10,27 @@ */ return [ - 'alipay' => 'Alipay', - 'azure' => 'Azure', - 'dingtalk' => 'Dingtalk', - 'douyin' => 'Douyin', - 'douban' => 'Douban', - 'facebook' => 'Facebook', - 'feishu' => 'Feishu', - 'figma' => 'Figma', - 'github' => 'Github', - 'gitee' => 'Gitee', - 'google' => 'Google', - 'line' => 'Line', - 'linkedin' => 'Linkedin', + 'alipay' => 'Alipay', + 'azure' => 'Azure', + 'dingtalk' => 'Dingtalk', + 'douyin' => 'Douyin', + 'douban' => 'Douban', + 'facebook' => 'Facebook', + 'feishu' => 'Feishu', + 'figma' => 'Figma', + 'github' => 'Github', + 'gitee' => 'Gitee', + 'google' => 'Google', + 'line' => 'Line', + 'linkedin' => 'Linkedin', 'open-wework' => 'Open-wework', - 'outlook' => 'Outlook', - 'qcloud' => 'Qcloud', - 'qq' => 'QQ', - 'taobao' => 'Taobao', - 'tapd' => 'Tapd', - 'twitter' => 'Twitter', - 'wechat' => 'Wechat', - 'wework' => 'Wework', - 'weibo' => 'Weibo', + 'outlook' => 'Outlook', + 'qcloud' => 'Qcloud', + 'qq' => 'QQ', + 'taobao' => 'Taobao', + 'tapd' => 'Tapd', + 'twitter' => 'Twitter', + 'wechat' => 'Wechat', + 'wework' => 'Wework', + 'weibo' => 'Weibo', ]; diff --git a/plugins/Social/Lang/en/setting.php b/plugins/Social/Lang/en/setting.php index 81ec315b..3ff40574 100644 --- a/plugins/Social/Lang/en/setting.php +++ b/plugins/Social/Lang/en/setting.php @@ -10,7 +10,7 @@ */ return [ -// Text + // Text 'text_module' => 'Modules', 'text_success' => 'Success: You have modified module OpenCart OmniAuth!', 'text_copyright' => 'OpenCart.cn OmniAuth © %s', @@ -27,7 +27,7 @@ return [ 'text_twitter_title' => 'Twitter login application address', 'text_help_msg' => 'help information', -// Entry + // Entry 'entry_status' => 'Status', 'entry_bind' => 'Force Bind', 'entry_debug' => 'Debug Mode', @@ -39,13 +39,13 @@ return [ 'entry_callback' => 'Callback URL', 'entry_sort_order' => 'Sort Order', -// Button + // Button 'button_add_row' => 'Add Provider', -// Error + // Error 'error_permission' => 'Warning: You do not have permission to modify module OpenCart OmniAuth!', -// Providers + // Providers 'wechat' => 'WeChat', 'wechatofficial' => 'WeChatOfficial', 'qq' => 'QQ', @@ -54,5 +54,5 @@ return [ 'google' => 'Google', 'twitter' => 'Twitter', - 'instagram' => 'Instagram', + 'instagram' => 'Instagram', ]; diff --git a/plugins/Social/Lang/zh_cn/providers.php b/plugins/Social/Lang/zh_cn/providers.php index 9518e47b..a81983f4 100644 --- a/plugins/Social/Lang/zh_cn/providers.php +++ b/plugins/Social/Lang/zh_cn/providers.php @@ -10,27 +10,27 @@ */ return [ - 'alipay' => '支付宝', - 'azure' => 'Azure', - 'dingtalk' => '钉钉', - 'douyin' => '抖音', - 'douban' => '豆瓣', - 'facebook' => 'Facebook', - 'feishu' => '飞书', - 'figma' => 'Figma', - 'github' => 'GitHub', - 'gitee' => 'Gitee', - 'google' => 'Google', - 'line' => 'Line', - 'linkedin' => 'Linkedin', + 'alipay' => '支付宝', + 'azure' => 'Azure', + 'dingtalk' => '钉钉', + 'douyin' => '抖音', + 'douban' => '豆瓣', + 'facebook' => 'Facebook', + 'feishu' => '飞书', + 'figma' => 'Figma', + 'github' => 'GitHub', + 'gitee' => 'Gitee', + 'google' => 'Google', + 'line' => 'Line', + 'linkedin' => 'Linkedin', 'open-wework' => 'open-wework', - 'outlook' => 'Outlook', - 'qcloud' => '腾讯云', - 'qq' => 'QQ', - 'taobao' => '淘宝', - 'tapd' => 'Tapd', - 'twitter' => 'Twitter', - 'wechat' => '微信', - 'wework' => '企业微信', - 'weibo' => '微博', + 'outlook' => 'Outlook', + 'qcloud' => '腾讯云', + 'qq' => 'QQ', + 'taobao' => '淘宝', + 'tapd' => 'Tapd', + 'twitter' => 'Twitter', + 'wechat' => '微信', + 'wework' => '企业微信', + 'weibo' => '微博', ]; diff --git a/plugins/Social/Lang/zh_cn/setting.php b/plugins/Social/Lang/zh_cn/setting.php index d52df260..2f9df9b0 100644 --- a/plugins/Social/Lang/zh_cn/setting.php +++ b/plugins/Social/Lang/zh_cn/setting.php @@ -10,38 +10,38 @@ */ return [ -// Text - 'text_module' => '模块', - 'text_success' => '成功: 您成功修改第三方登录配置!', - 'text_copyright' => 'OpenCart.cn 获取帮助 © %s', - 'text_omni_explain' => '本模块支持微Facebook, Twitter, Google等第三方登录', + // Text + 'text_module' => '模块', + 'text_success' => '成功: 您成功修改第三方登录配置!', + 'text_copyright' => 'OpenCart.cn 获取帮助 © %s', + 'text_omni_explain' => '本模块支持微Facebook, Twitter, Google等第三方登录', 'text_omni_explain_2' => '要使用第三方登录, 需要到对应平台申请开通, 并把获取到的 ID 和密钥填写到上面对应的输入框', - 'text_wechat_title' => '微信扫码登录申请地址', - 'text_wechat_info' => '微信开放平台', - 'text_qq_title' => 'QQ登录申请地址', - 'text_qq_info' => 'QQ互联', - 'text_weibo_title' => '微博登录申请地址', - 'text_weibo_info' => '微博开放平台', + 'text_wechat_title' => '微信扫码登录申请地址', + 'text_wechat_info' => '微信开放平台', + 'text_qq_title' => 'QQ登录申请地址', + 'text_qq_info' => 'QQ互联', + 'text_weibo_title' => '微博登录申请地址', + 'text_weibo_info' => '微博开放平台', 'text_facebook_title' => 'Facebook登录申请地址', - 'text_google_title' => 'Google登录申请地址', - 'text_twitter_title' => 'Twitter登录申请地址', + 'text_google_title' => 'Google登录申请地址', + 'text_twitter_title' => 'Twitter登录申请地址', 'text_help_msg' => '帮助信息', -// Entry - 'entry_status' => '状态', - 'entry_bind' => '强制绑定', - 'entry_debug' => '调试模式', + // Entry + 'entry_status' => '状态', + 'entry_bind' => '强制绑定', + 'entry_debug' => '调试模式', - 'entry_provider' => '类型', - 'entry_key' => 'Client ID', - 'entry_secret' => 'Client Secret', - 'entry_scope' => 'Flags (可选项)', - 'entry_callback' => '回调地址', - 'entry_sort_order' => '排序', + 'entry_provider' => '类型', + 'entry_key' => 'Client ID', + 'entry_secret' => 'Client Secret', + 'entry_scope' => 'Flags (可选项)', + 'entry_callback' => '回调地址', + 'entry_sort_order' => '排序', -// Button - 'button_add_row' => '添加类型', + // Button + 'button_add_row' => '添加类型', -// Error - 'error_permission' => '警告: 您没有权限修改此配置!', + // Error + 'error_permission' => '警告: 您没有权限修改此配置!', ]; diff --git a/plugins/Social/Models/CustomerSocial.php b/plugins/Social/Models/CustomerSocial.php index 094378aa..20419eca 100644 --- a/plugins/Social/Models/CustomerSocial.php +++ b/plugins/Social/Models/CustomerSocial.php @@ -20,7 +20,7 @@ class CustomerSocial extends Model public $table = 'customer_socials'; public $fillable = [ - 'customer_id', 'provider', 'user_id', 'union_id', 'access_token', 'extra' + 'customer_id', 'provider', 'user_id', 'union_id', 'access_token', 'extra', ]; public function customer(): BelongsTo diff --git a/plugins/Social/Repositories/CustomerRepo.php b/plugins/Social/Repositories/CustomerRepo.php index 93a60c30..2b7dc358 100644 --- a/plugins/Social/Repositories/CustomerRepo.php +++ b/plugins/Social/Repositories/CustomerRepo.php @@ -12,12 +12,12 @@ namespace Plugin\Social\Repositories; use Beike\Models\Customer; +use Beike\Shop\Services\AccountService; +use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; use Laravel\Socialite\Two\User; -use Beike\Shop\Services\AccountService; -use Illuminate\Database\Eloquent\Model; use Plugin\Social\Models\CustomerSocial; -use Illuminate\Database\Eloquent\Builder; class CustomerRepo { @@ -35,10 +35,11 @@ class CustomerRepo $items = []; foreach (self::PROVIDERS as $provider) { $items[] = [ - 'code' => $provider, - 'label' => trans("Social::providers.{$provider}") + 'code' => $provider, + 'label' => trans("Social::providers.{$provider}"), ]; } + return $items; } @@ -51,7 +52,7 @@ class CustomerRepo */ public static function createCustomer($provider, User $userData): Customer { - $social = self::getCustomerByProvider($provider, $userData->getId()); + $social = self::getCustomerByProvider($provider, $userData->getId()); $customer = $social->customer ?? null; if ($customer) { return $customer; @@ -64,19 +65,19 @@ class CustomerRepo $customer = Customer::query()->where('email', $email)->first(); if (empty($customer)) { $customerData = [ - 'from' => $provider, - 'email' => $email, - 'name' => $userData->getName(), + 'from' => $provider, + 'email' => $email, + 'name' => $userData->getName(), 'avatar' => $userData->getAvatar(), ]; $customer = AccountService::register($customerData); } self::createSocial($customer, $provider, $userData); + return $customer; } - /** * @param $customer * @param $provider @@ -91,17 +92,17 @@ class CustomerRepo } $socialData = [ - 'customer_id' => $customer->id, - 'provider' => $provider, - 'user_id' => $userData->getId(), - 'union_id' => '', + 'customer_id' => $customer->id, + 'provider' => $provider, + 'user_id' => $userData->getId(), + 'union_id' => '', 'access_token' => $userData->token, - 'extra' => json_encode($userData->getRaw()) + 'extra' => json_encode($userData->getRaw()), ]; + return CustomerSocial::query()->create($socialData); } - /** * 通过 provider 和 user_id 获取已存在 social * @param $provider diff --git a/plugins/Stripe/Controllers/StripeController.php b/plugins/Stripe/Controllers/StripeController.php index a156bf69..969eef71 100644 --- a/plugins/Stripe/Controllers/StripeController.php +++ b/plugins/Stripe/Controllers/StripeController.php @@ -11,10 +11,10 @@ namespace Plugin\Stripe\Controllers; -use Illuminate\Http\Request; use Beike\Repositories\OrderRepo; use Beike\Services\StateMachineService; use Beike\Shop\Http\Controllers\Controller; +use Illuminate\Http\Request; use Plugin\Stripe\Services\StripePaymentService; class StripeController extends Controller @@ -28,17 +28,19 @@ class StripeController extends Controller public function capture(Request $request): array { try { - $number = request('order_number'); - $customer = current_customer(); - $order = OrderRepo::getOrderByNumber($number, $customer); + $number = request('order_number'); + $customer = current_customer(); + $order = OrderRepo::getOrderByNumber($number, $customer); $creditCardData = $request->all(); - $result = (new StripePaymentService($order))->capture($creditCardData); + $result = (new StripePaymentService($order))->capture($creditCardData); if ($result) { StateMachineService::getInstance($order)->changeStatus(StateMachineService::PAID); + return json_success(trans('Stripe::common.capture_success')); - } else { - return json_success(trans('Stripe::common.capture_fail')); } + + return json_success(trans('Stripe::common.capture_fail')); + } catch (\Exception $e) { return json_fail($e->getMessage()); } diff --git a/plugins/Stripe/Lang/en/common.php b/plugins/Stripe/Lang/en/common.php index 3954dd41..d369e986 100644 --- a/plugins/Stripe/Lang/en/common.php +++ b/plugins/Stripe/Lang/en/common.php @@ -12,20 +12,20 @@ return [ 'publishable_key' => 'Publishable Key', - 'title_info' => 'Card information', - 'cardnum' => 'Cardnum', + 'title_info' => 'Card information', + 'cardnum' => 'Cardnum', 'expiration_date' => 'Expiration Date', - 'year' => 'Year', - 'month' => 'Month', - 'cvv' => 'Cvv', - 'remenber' => 'Keep this card in mind for future use', - 'btn_submit' => 'Submit', + 'year' => 'Year', + 'month' => 'Month', + 'cvv' => 'Cvv', + 'remenber' => 'Keep this card in mind for future use', + 'btn_submit' => 'Submit', - 'error_cardnum' => 'Please enter the card number', - 'error_cvv' => 'Please enter the security code', - 'error_year' => 'Please select the year', - 'error_month' => 'Please select a month', + 'error_cardnum' => 'Please enter the card number', + 'error_cvv' => 'Please enter the security code', + 'error_year' => 'Please select the year', + 'error_month' => 'Please select a month', 'capture_success' => 'Capture Successfully', - 'capture_fail' => 'Capture Failed', + 'capture_fail' => 'Capture Failed', ]; diff --git a/plugins/Stripe/Lang/zh_cn/common.php b/plugins/Stripe/Lang/zh_cn/common.php index 08737d22..d1fd6e14 100644 --- a/plugins/Stripe/Lang/zh_cn/common.php +++ b/plugins/Stripe/Lang/zh_cn/common.php @@ -12,20 +12,20 @@ return [ 'publishable_key' => '公钥', - 'title_info' => '卡信息', - 'cardnum' => '卡号', + 'title_info' => '卡信息', + 'cardnum' => '卡号', 'expiration_date' => '截止日期', - 'year' => '选择年', - 'month' => '选择月', - 'cvv' => '安全码', - 'remenber' => '记住这张卡以便将来使用', - 'btn_submit' => '提交支付', + 'year' => '选择年', + 'month' => '选择月', + 'cvv' => '安全码', + 'remenber' => '记住这张卡以便将来使用', + 'btn_submit' => '提交支付', - 'error_cardnum' => '请输入卡号', - 'error_cvv' => '请输入安全码', - 'error_year' => '请选择年', - 'error_month' => '请选择月', + 'error_cardnum' => '请输入卡号', + 'error_cvv' => '请输入安全码', + 'error_year' => '请选择年', + 'error_month' => '请选择月', 'capture_success' => '支付成功', - 'capture_fail' => '支付失败', + 'capture_fail' => '支付失败', ]; diff --git a/plugins/Stripe/Services/StripePaymentService.php b/plugins/Stripe/Services/StripePaymentService.php index 4691588a..b20c9cc7 100644 --- a/plugins/Stripe/Services/StripePaymentService.php +++ b/plugins/Stripe/Services/StripePaymentService.php @@ -11,15 +11,15 @@ namespace Plugin\Stripe\Services; -use Stripe\Token; -use Stripe\Stripe; use Beike\Shop\Services\PaymentService; use Stripe\Exception\ApiErrorException; +use Stripe\Stripe; +use Stripe\Token; class StripePaymentService extends PaymentService { // 零位十进制货币 https://stripe.com/docs/currencies#special-cases - const ZERO_DECIMAL = [ + public const ZERO_DECIMAL = [ 'BIF', 'CLP', 'DJF', 'GNF', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF', ]; @@ -33,37 +33,37 @@ class StripePaymentService extends PaymentService Stripe::setApiKey($apiKey); $token = Token::create([ 'card' => [ - 'number' => $creditCardData['cardnum'], - 'exp_year' => $creditCardData['year'], + 'number' => $creditCardData['cardnum'], + 'exp_year' => $creditCardData['year'], 'exp_month' => $creditCardData['month'], - 'cvc' => $creditCardData['cvv'], + 'cvc' => $creditCardData['cvv'], ], ]); - $tokenId = $token['id']; + $tokenId = $token['id']; $currency = $this->order->currency_code; - if (!in_array($currency, self::ZERO_DECIMAL)) { + if (! in_array($currency, self::ZERO_DECIMAL)) { $total = round($this->order->total, 2) * 100; } else { $total = floor($this->order->total); } - $stripeChargeParameters = array( - 'amount' => $total, + $stripeChargeParameters = [ + 'amount' => $total, 'currency' => $currency, - 'metadata' => array( + 'metadata' => [ 'orderId' => $this->order->id, - ), - 'source' => $tokenId, + ], + 'source' => $tokenId, // 'customer' => $this->createCustomer(), - ); + ]; $charge = \Stripe\Charge::create($stripeChargeParameters); + return $charge['paid'] && $charge['captured']; } - /** * 创建 stripe customer * @return mixed @@ -74,6 +74,7 @@ class StripePaymentService extends PaymentService $customer = \Stripe\Customer::create([ 'email' => $this->order->email, ]); + return $customer['id']; } } diff --git a/plugins/Stripe/columns.php b/plugins/Stripe/columns.php index 373a44af..ec130ee0 100644 --- a/plugins/Stripe/columns.php +++ b/plugins/Stripe/columns.php @@ -11,30 +11,30 @@ return [ [ - 'name' => 'publishable_key', - 'label_key' => 'common.publishable_key', - 'type' => 'string', - 'required' => true, - 'rules' => 'required|min:32', + 'name' => 'publishable_key', + 'label_key' => 'common.publishable_key', + 'type' => 'string', + 'required' => true, + 'rules' => 'required|min:32', 'description' => '公钥(Publishable key)', ], [ - 'name' => 'secret_key', - 'label' => '密钥', - 'type' => 'string', - 'required' => true, - 'rules' => 'required|min:32', + 'name' => 'secret_key', + 'label' => '密钥', + 'type' => 'string', + 'required' => true, + 'rules' => 'required|min:32', 'description' => '密钥(Secret key)', ], [ - 'name' => 'test_mode', - 'label' => '测试模式', - 'type' => 'select', - 'options' => [ + 'name' => 'test_mode', + 'label' => '测试模式', + 'type' => 'select', + 'options' => [ ['value' => '1', 'label' => '开启'], - ['value' => '0', 'label' => '关闭'] + ['value' => '0', 'label' => '关闭'], ], - 'required' => true, + 'required' => true, 'description' => '如开启测试模式请填写测试公钥和密钥, 关闭测试模式则填写正式公钥和密钥', - ] + ], ];