From 5f97414495faae3521b06a60ebd740c81b3657b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=99?= Date: Tue, 4 Jan 2022 15:09:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/AlipayController.php | 12 + app/Endpoint/Callback/routes.php | 3 + app/Models/PayLog.php | 13 + app/Providers/AppServiceProvider.php | 28 + app/Services/AlipayService.php | 31 + app/Services/OrderService.php | 22 +- composer.json | 1 + composer.lock | 720 +++++++++++++----- config/alipay.php | 14 + 9 files changed, 646 insertions(+), 198 deletions(-) create mode 100644 app/Endpoint/Callback/Http/Controllers/AlipayController.php create mode 100644 app/Services/AlipayService.php create mode 100644 config/alipay.php diff --git a/app/Endpoint/Callback/Http/Controllers/AlipayController.php b/app/Endpoint/Callback/Http/Controllers/AlipayController.php new file mode 100644 index 00000000..6061805c --- /dev/null +++ b/app/Endpoint/Callback/Http/Controllers/AlipayController.php @@ -0,0 +1,12 @@ +name('wxpay.paid_notify'); Route::post('wxpay/order-refund-notify', [WeChatPayController::class, 'orderRefundedNotify'])->name('wxpay.order_refund_notify'); + +Route::post('alipay/paid-notify', [AlipayController::class, 'paidNotify'])->name('alipay.paid_notify'); diff --git a/app/Models/PayLog.php b/app/Models/PayLog.php index 9d996763..ab1e3286 100644 --- a/app/Models/PayLog.php +++ b/app/Models/PayLog.php @@ -17,6 +17,7 @@ class PayLog extends Model public const PAY_WAY_WXPAY_JSAPI = 'wxpay_jsapi'; // 微信支付 - JSAPI 支付 public const PAY_WAY_WXPAY_MINI = 'wxpay_mini'; // 微信支付 - 小程序支付 public const PAY_WAY_WXPAY_H5 = 'wxpay_h5'; // 微信支付 - H5 支付 + public const PAY_ALIPAY_APP = 'alipay_app'; // 支付宝 - app 支付 public const PAY_WAY_WALLET = 'wallet'; // 钱包付款(可提现) public const PAY_WAY_BALANCE = 'balance'; // 余额支付 public const PAY_WAY_OFFLINE = 'offline'; // 线下支付 @@ -78,6 +79,18 @@ class PayLog extends Model ]); } + /** + * 确认支付方式是否是支付宝付款 + * + * @return bool + */ + public function isAlipay(): bool + { + return in_array($this->pay_way, [ + static::PAY_ALIPAY_APP, + ]); + } + /** * 确认支付方式是否是线下支付 * diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 28280dd0..9ba85efe 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,8 @@ namespace App\Providers; +use Alipay\EasySDK\Kernel\Config as AlipayConfig; +use Alipay\EasySDK\Kernel\EasySDKKernel as AlipayKernel; use App\Services\SettingService; use EasyWeChat\Factory as EasyWeChatFactory; use EasyWeChat\Payment\Application as EasyWeChatPaymentApplication; @@ -24,6 +26,7 @@ class AppServiceProvider extends ServiceProvider $this->registerEasyWeChat(); $this->registerRequestRealIp(); $this->registerSettings(); + $this->registerAlipay(); } /** @@ -95,4 +98,29 @@ class AppServiceProvider extends ServiceProvider return new SettingService($app['cache.store']); }); } + + /** + * 注册应用支付宝服务 + * + * @return void + */ + protected function registerAlipay() + { + $this->app->singleton(AlipayKernel::class, function ($app) { + $alipayConfigs = $app['config']->get('alipay'); + + $config = new AlipayConfig(); + $config->protocol = 'https'; + $config->gatewayHost = 'openapi.alipay.com'; + $config->signType = 'RSA2'; + $config->appId = $alipayConfigs['app_id']; + $config->merchantPrivateKey = $alipayConfigs['app_private_key']; + $config->merchantCertPath = $alipayConfigs['app_public_cert_path']; + $config->alipayCertPath = $alipayConfigs['public_cert_path']; + $config->alipayRootCertPath = $alipayConfigs['root_cert_path']; + $config->notifyUrl = $alipayConfigs['notify_url'] ?? url(route('alipay.paid_notify', [], false), [], true); + + return new AlipayKernel($config); + }); + } } diff --git a/app/Services/AlipayService.php b/app/Services/AlipayService.php new file mode 100644 index 00000000..6fc76f5d --- /dev/null +++ b/app/Services/AlipayService.php @@ -0,0 +1,31 @@ +kernel))->pay( + $params['subject'], + $params['out_trade_no'], + $params['total_amount'], + ); + + return $result->body; + } +} diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index 8a09ddee..9ae391ca 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -779,29 +779,39 @@ class OrderService } } while ($payLog === null); + $data = [ + 'pay_sn' => $payLog->pay_sn, + ]; + // 如果支付方式为线下支付,或支付金额为 0,则按支付完成处理 - if ($payLog->isOffline() || $order->total_amount === 0) { - return (new PayService())->handleSuccess($payLog, [ + if ($order->total_amount === 0 || $payLog->isOffline()) { + (new PayService())->handleSuccess($payLog, [ 'pay_at' => now(), ]); - } - if ($payLog->isWxpay()) { + $data = null; + } elseif ($payLog->isWxpay()) { if (! isset(WeChatPayService::$tradeTypes[$payLog->pay_way])) { throw new BizException('支付方式不支持'); } - return (new WeChatPayService())->pay([ + $data = (new WeChatPayService())->pay([ 'body' => app_settings('app.app_name').'-商城订单', 'out_trade_no' => $payLog->pay_sn, 'total_fee' => $order->total_amount, 'trade_type' => WeChatPayService::$tradeTypes[$payLog->pay_way], ]); + } elseif ($payLog->isAlipay()) { + $data = app(AlipayService::class)->pay([ + 'subject' => app_settings('app.app_name').'-商城订单', + 'out_trade_no' => $payLog->pay_sn, + 'total_amount' => bcdiv($order->total_amount, 100, 2), + ]); } return [ - 'pay_sn' => $payLog->pay_sn, 'pay_way' => $payLog->pay_way, + 'data' => $data, ]; } diff --git a/composer.json b/composer.json index 659032bc..19d7f1b3 100644 --- a/composer.json +++ b/composer.json @@ -13,6 +13,7 @@ "require": { "php": "^8.0", "alibabacloud/sts": "^1.8", + "alipaysdk/easysdk": "^2.2", "alphasnow/aliyun-oss-laravel": "^3.0", "dcat/laravel-admin": "2.1.5-beta", "fruitcake/laravel-cors": "^2.0", diff --git a/composer.lock b/composer.lock index ee663406..76dec1c4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3e960fc2a6ca526d5a9910e13a6668f0", + "content-hash": "e29674f9d20d1f4352e096af590c340b", "packages": [ { "name": "adbario/php-dot-notation", @@ -214,6 +214,195 @@ }, "time": "2019-05-30T05:03:57+00:00" }, + { + "name": "alibabacloud/tea", + "version": "3.1.23", + "source": { + "type": "git", + "url": "https://github.com/aliyun/tea-php.git", + "reference": "61fce993274edf6e7131af07256ed7723d97a85f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aliyun/tea-php/zipball/61fce993274edf6e7131af07256ed7723d97a85f", + "reference": "61fce993274edf6e7131af07256ed7723d97a85f", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "adbario/php-dot-notation": "^2.2", + "ext-curl": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-simplexml": "*", + "ext-xmlwriter": "*", + "guzzlehttp/guzzle": "^6.3|^7.0", + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "*", + "symfony/dotenv": "^3.4", + "symfony/var-dumper": "^3.4" + }, + "suggest": { + "ext-sockets": "To use client-side monitoring" + }, + "type": "library", + "autoload": { + "psr-4": { + "AlibabaCloud\\Tea\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Alibaba Cloud SDK", + "email": "sdk-team@alibabacloud.com", + "homepage": "http://www.alibabacloud.com" + } + ], + "description": "Client of Tea for PHP", + "homepage": "https://www.alibabacloud.com/", + "keywords": [ + "alibabacloud", + "client", + "cloud", + "tea" + ], + "support": { + "issues": "https://github.com/aliyun/tea-php/issues", + "source": "https://github.com/aliyun/tea-php" + }, + "time": "2021-12-20T02:32:43+00:00" + }, + { + "name": "alibabacloud/tea-fileform", + "version": "0.3.4", + "source": { + "type": "git", + "url": "https://github.com/alibabacloud-sdk-php/tea-fileform.git", + "reference": "4bf0c75a045c8115aa8cb1a394bd08d8bb833181" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/alibabacloud-sdk-php/tea-fileform/zipball/4bf0c75a045c8115aa8cb1a394bd08d8bb833181", + "reference": "4bf0c75a045c8115aa8cb1a394bd08d8bb833181", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "alibabacloud/tea": "^3.0", + "php": ">5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|^5.4.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "AlibabaCloud\\Tea\\FileForm\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Alibaba Cloud SDK", + "email": "sdk-team@alibabacloud.com" + } + ], + "description": "Alibaba Cloud Tea File Library for PHP", + "support": { + "issues": "https://github.com/alibabacloud-sdk-php/tea-fileform/issues", + "source": "https://github.com/alibabacloud-sdk-php/tea-fileform/tree/0.3.4" + }, + "time": "2020-12-01T07:24:35+00:00" + }, + { + "name": "alipaysdk/easysdk", + "version": "2.2.1", + "source": { + "type": "git", + "url": "https://github.com/alipay/alipay-easysdk.git", + "reference": "066388d02c6f55fe0919d75b386456d80801fec2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/alipay/alipay-easysdk/zipball/066388d02c6f55fe0919d75b386456d80801fec2", + "reference": "066388d02c6f55fe0919d75b386456d80801fec2", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "adbario/php-dot-notation": "^2.2", + "alibabacloud/tea": "^3.1", + "alibabacloud/tea-fileform": "^0.3.2", + "danielstjules/stringy": "^3.1", + "ext-ctype": "*", + "ext-curl": "*", + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-simplexml": "*", + "ext-xmlwriter": "*", + "guzzlehttp/guzzle": ">=6.3", + "mtdowling/jmespath.php": "^2.4", + "php": ">=7.0", + "pimple/pimple": "^3.0", + "psr/log": "^1.1", + "songshenzong/support": "^2.0", + "xin/container": "^2.0.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Alipay\\EasySDK\\": "php/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "junying.wjy", + "email": "junying.wjy@antfin.com" + } + ], + "description": "支付宝官方 Alipay Easy SDK", + "support": { + "source": "https://github.com/alipay/alipay-easysdk/tree/v2.2.1" + }, + "time": "2021-09-24T06:54:12+00:00" + }, { "name": "aliyuncs/oss-sdk-php", "version": "v2.4.3", @@ -397,16 +586,16 @@ }, { "name": "asm89/stack-cors", - "version": "v2.0.3", + "version": "v2.0.5", "source": { "type": "git", "url": "https://github.com/asm89/stack-cors.git", - "reference": "9cb795bf30988e8c96dd3c40623c48a877bc6714" + "reference": "7a198ec737e926eab15d29368fc6fff66772b0e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/9cb795bf30988e8c96dd3c40623c48a877bc6714", - "reference": "9cb795bf30988e8c96dd3c40623c48a877bc6714", + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/7a198ec737e926eab15d29368fc6fff66772b0e2", + "reference": "7a198ec737e926eab15d29368fc6fff66772b0e2", "shasum": "", "mirrors": [ { @@ -417,8 +606,8 @@ }, "require": { "php": "^7.0|^8.0", - "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0", - "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0" + "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0|~6.0", + "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0|~6.0" }, "require-dev": { "phpunit/phpunit": "^6|^7|^8|^9", @@ -453,9 +642,9 @@ ], "support": { "issues": "https://github.com/asm89/stack-cors/issues", - "source": "https://github.com/asm89/stack-cors/tree/v2.0.3" + "source": "https://github.com/asm89/stack-cors/tree/v2.0.5" }, - "time": "2021-03-11T06:42:03+00:00" + "time": "2022-01-03T15:27:13+00:00" }, { "name": "bacon/bacon-qr-code", @@ -1745,16 +1934,16 @@ }, { "name": "fruitcake/laravel-cors", - "version": "v2.0.4", + "version": "v2.0.5", "source": { "type": "git", "url": "https://github.com/fruitcake/laravel-cors.git", - "reference": "a8ccedc7ca95189ead0e407c43b530dc17791d6a" + "reference": "3a066e5cac32e2d1cdaacd6b961692778f37b5fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/a8ccedc7ca95189ead0e407c43b530dc17791d6a", - "reference": "a8ccedc7ca95189ead0e407c43b530dc17791d6a", + "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/3a066e5cac32e2d1cdaacd6b961692778f37b5fc", + "reference": "3a066e5cac32e2d1cdaacd6b961692778f37b5fc", "shasum": "", "mirrors": [ { @@ -1768,11 +1957,11 @@ "illuminate/contracts": "^6|^7|^8|^9", "illuminate/support": "^6|^7|^8|^9", "php": ">=7.2", - "symfony/http-foundation": "^4|^5", - "symfony/http-kernel": "^4.3.4|^5" + "symfony/http-foundation": "^4|^5|^6", + "symfony/http-kernel": "^4.3.4|^5|^6" }, "require-dev": { - "laravel/framework": "^6|^7|^8", + "laravel/framework": "^6|^7.24|^8", "orchestra/testbench-dusk": "^4|^5|^6|^7", "phpunit/phpunit": "^6|^7|^8|^9", "squizlabs/php_codesniffer": "^3.5" @@ -1816,15 +2005,19 @@ ], "support": { "issues": "https://github.com/fruitcake/laravel-cors/issues", - "source": "https://github.com/fruitcake/laravel-cors/tree/v2.0.4" + "source": "https://github.com/fruitcake/laravel-cors/tree/v2.0.5" }, "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, { "url": "https://github.com/barryvdh", "type": "github" } ], - "time": "2021-04-26T11:24:25+00:00" + "time": "2022-01-03T14:53:04+00:00" }, { "name": "graham-campbell/result-type", @@ -2369,16 +2562,16 @@ }, { "name": "laravel/framework", - "version": "v8.76.2", + "version": "v8.77.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "c67acfdc968f487b6235435080eef62a7e2ed055" + "reference": "994dbac5c6da856c77c81a411cff5b7d31519ca8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/c67acfdc968f487b6235435080eef62a7e2ed055", - "reference": "c67acfdc968f487b6235435080eef62a7e2ed055", + "url": "https://api.github.com/repos/laravel/framework/zipball/994dbac5c6da856c77c81a411cff5b7d31519ca8", + "reference": "994dbac5c6da856c77c81a411cff5b7d31519ca8", "shasum": "", "mirrors": [ { @@ -2402,7 +2595,7 @@ "opis/closure": "^3.6", "php": "^7.3|^8.0", "psr/container": "^1.0", - "psr/log": "^1.0 || ^2.0", + "psr/log": "^1.0|^2.0", "psr/simple-cache": "^1.0", "ramsey/uuid": "^4.2.2", "swiftmailer/swiftmailer": "^6.3", @@ -2543,7 +2736,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-12-15T14:02:14+00:00" + "time": "2021-12-21T20:22:29+00:00" }, { "name": "laravel/sanctum", @@ -2756,16 +2949,16 @@ }, { "name": "league/commonmark", - "version": "2.1.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "819276bc54e83c160617d3ac0a436c239e479928" + "reference": "17d2b9cb5161a2ea1a8dd30e6991d668e503fb9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/819276bc54e83c160617d3ac0a436c239e479928", - "reference": "819276bc54e83c160617d3ac0a436c239e479928", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/17d2b9cb5161a2ea1a8dd30e6991d668e503fb9d", + "reference": "17d2b9cb5161a2ea1a8dd30e6991d668e503fb9d", "shasum": "", "mirrors": [ { @@ -2861,7 +3054,7 @@ "type": "tidelift" } ], - "time": "2021-12-05T18:25:20+00:00" + "time": "2022-01-02T18:25:06+00:00" }, { "name": "league/config", @@ -3964,16 +4157,16 @@ }, { "name": "psr/cache", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", - "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", - "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", "shasum": "", "mirrors": [ { @@ -4013,9 +4206,9 @@ "psr-6" ], "support": { - "source": "https://github.com/php-fig/cache/tree/2.0.0" + "source": "https://github.com/php-fig/cache/tree/3.0.0" }, - "time": "2021-02-03T23:23:37+00:00" + "time": "2021-02-03T23:26:27+00:00" }, { "name": "psr/container", @@ -4307,16 +4500,16 @@ }, { "name": "psr/log", - "version": "2.0.0", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "", "mirrors": [ { @@ -4326,17 +4519,17 @@ ] }, "require": { - "php": ">=8.0.0" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "src" + "Psr\\Log\\": "Psr/Log/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4357,9 +4550,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" + "source": "https://github.com/php-fig/log/tree/1.1.4" }, - "time": "2021-07-14T16:41:46+00:00" + "time": "2021-05-03T11:20:27+00:00" }, { "name": "psr/simple-cache", @@ -4812,6 +5005,81 @@ }, "time": "2021-02-08T20:43:55+00:00" }, + { + "name": "songshenzong/support", + "version": "2.0.5", + "source": { + "type": "git", + "url": "https://github.com/songshenzong/support.git", + "reference": "34973c04ffcf226e503f1c3a69d30ac49f7621f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/songshenzong/support/zipball/34973c04ffcf226e503f1c3a69d30ac49f7621f6", + "reference": "34973c04ffcf226e503f1c3a69d30ac49f7621f6", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "danielstjules/stringy": "^3.1", + "ext-json": "*", + "ext-simplexml": "*", + "ext-xml": "*", + "php": ">=5.5" + }, + "require-dev": { + "laravel/framework": "^5.8", + "phpunit/phpunit": "^4.8.35|^5.4.3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Songshenzong\\Support\\StringsServiceProvider" + ], + "aliases": { + "Strings": "Songshenzong\\Support\\StringsFacade" + } + } + }, + "autoload": { + "psr-4": { + "Songshenzong\\Support\\": "src/" + }, + "files": [ + "src/StringsHelpers.php", + "src/BashEchoHelpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Songshenzong", + "email": "i@songshenzong.com" + } + ], + "description": "The Songshenzong Support package.", + "homepage": "http://songshenzong.com", + "keywords": [ + "laravel", + "support", + "tools", + "web" + ], + "support": { + "issues": "https://github.com/songshenzong/support/issues", + "source": "https://github.com/songshenzong/support" + }, + "time": "2019-08-29T01:59:12+00:00" + }, { "name": "spatie/eloquent-sortable", "version": "4.0.0", @@ -4893,16 +5161,16 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.9.2", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "f710fe196c126fb9e0aee67eb5af49ad8f13f528" + "reference": "97c24d0bc58e04d55e4a6a7b6d6102cb45b75789" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/f710fe196c126fb9e0aee67eb5af49ad8f13f528", - "reference": "f710fe196c126fb9e0aee67eb5af49ad8f13f528", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/97c24d0bc58e04d55e4a6a7b6d6102cb45b75789", + "reference": "97c24d0bc58e04d55e4a6a7b6d6102cb45b75789", "shasum": "", "mirrors": [ { @@ -4917,8 +5185,8 @@ }, "require-dev": { "mockery/mockery": "^1.4", - "orchestra/testbench": "^5.0|^6.0", - "phpunit/phpunit": "^9.3", + "orchestra/testbench": "^5.0|^6.23", + "phpunit/phpunit": "^9.4", "spatie/test-time": "^1.2" }, "type": "library", @@ -4947,7 +5215,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.9.2" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.10.0" }, "funding": [ { @@ -4955,7 +5223,7 @@ "type": "github" } ], - "time": "2021-09-21T13:06:51+00:00" + "time": "2021-12-18T20:33:51+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -5041,16 +5309,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.0", + "version": "v6.0.2", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "d97d6d7f46cb69968f094e329abd987d5ee17c79" + "reference": "41bdcb2d067c68f338b0cfd46a86abd8309b4153" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/d97d6d7f46cb69968f094e329abd987d5ee17c79", - "reference": "d97d6d7f46cb69968f094e329abd987d5ee17c79", + "url": "https://api.github.com/repos/symfony/cache/zipball/41bdcb2d067c68f338b0cfd46a86abd8309b4153", + "reference": "41bdcb2d067c68f338b0cfd46a86abd8309b4153", "shasum": "", "mirrors": [ { @@ -5060,39 +5328,35 @@ ] }, "require": { - "php": ">=7.2.5", - "psr/cache": "^1.0|^2.0", + "php": ">=8.0.2", + "psr/cache": "^2.0|^3.0", "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^1.1.7|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", + "symfony/cache-contracts": "^1.1.7|^2|^3", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "symfony/var-exporter": "^5.4|^6.0" }, "conflict": { "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<4.4", - "symfony/http-kernel": "<4.4", - "symfony/var-dumper": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/var-dumper": "<5.4" }, "provide": { - "psr/cache-implementation": "1.0|2.0", - "psr/simple-cache-implementation": "1.0|2.0", - "symfony/cache-implementation": "1.0|2.0" + "psr/cache-implementation": "2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0", + "symfony/cache-implementation": "1.1|2.0|3.0" }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/cache": "^1.6|^2.0", "doctrine/dbal": "^2.13.1|^3.0", "predis/predis": "^1.1", - "psr/simple-cache": "^1.0|^2.0", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/simple-cache": "^1.0|^2.0|^3.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -5124,7 +5388,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.0" + "source": "https://github.com/symfony/cache/tree/v6.0.2" }, "funding": [ { @@ -5140,20 +5404,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T18:51:45+00:00" + "time": "2021-12-29T13:00:11+00:00" }, { "name": "symfony/cache-contracts", - "version": "v2.5.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "ac2e168102a2e06a2624f0379bde94cd5854ced2" + "reference": "2f7463f156cf9c665d9317e21a809c3bbff5754e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ac2e168102a2e06a2624f0379bde94cd5854ced2", - "reference": "ac2e168102a2e06a2624f0379bde94cd5854ced2", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/2f7463f156cf9c665d9317e21a809c3bbff5754e", + "reference": "2f7463f156cf9c665d9317e21a809c3bbff5754e", "shasum": "", "mirrors": [ { @@ -5163,8 +5427,8 @@ ] }, "require": { - "php": ">=7.2.5", - "psr/cache": "^1.0|^2.0|^3.0" + "php": ">=8.0.2", + "psr/cache": "^3.0" }, "suggest": { "symfony/cache-implementation": "" @@ -5172,7 +5436,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -5209,7 +5473,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.0.0" }, "funding": [ { @@ -5225,20 +5489,20 @@ "type": "tidelift" } ], - "time": "2021-08-17T14:20:01+00:00" + "time": "2021-08-17T15:35:52+00:00" }, { "name": "symfony/console", - "version": "v5.4.1", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4" + "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4", - "reference": "9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4", + "url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e", + "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e", "shasum": "", "mirrors": [ { @@ -5314,7 +5578,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.1" + "source": "https://github.com/symfony/console/tree/v5.4.2" }, "funding": [ { @@ -5330,20 +5594,20 @@ "type": "tidelift" } ], - "time": "2021-12-09T11:22:43+00:00" + "time": "2021-12-20T16:11:12+00:00" }, { "name": "symfony/css-selector", - "version": "v6.0.1", + "version": "v6.0.2", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "ede53cafe1784b9131a48774b54f281d5d003f65" + "reference": "380f86c1a9830226f42a08b5926f18aed4195f25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/ede53cafe1784b9131a48774b54f281d5d003f65", - "reference": "ede53cafe1784b9131a48774b54f281d5d003f65", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/380f86c1a9830226f42a08b5926f18aed4195f25", + "reference": "380f86c1a9830226f42a08b5926f18aed4195f25", "shasum": "", "mirrors": [ { @@ -5385,7 +5649,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.0.1" + "source": "https://github.com/symfony/css-selector/tree/v6.0.2" }, "funding": [ { @@ -5401,7 +5665,7 @@ "type": "tidelift" } ], - "time": "2021-12-08T15:13:44+00:00" + "time": "2021-12-16T22:13:01+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5478,16 +5742,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.1", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "1e3cb3565af49cd5f93e5787500134500a29f0d9" + "reference": "e0c0dd0f9d4120a20158fc9aec2367d07d38bc56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/1e3cb3565af49cd5f93e5787500134500a29f0d9", - "reference": "1e3cb3565af49cd5f93e5787500134500a29f0d9", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/e0c0dd0f9d4120a20158fc9aec2367d07d38bc56", + "reference": "e0c0dd0f9d4120a20158fc9aec2367d07d38bc56", "shasum": "", "mirrors": [ { @@ -5535,7 +5799,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.1" + "source": "https://github.com/symfony/error-handler/tree/v5.4.2" }, "funding": [ { @@ -5551,20 +5815,20 @@ "type": "tidelift" } ], - "time": "2021-12-01T15:04:08+00:00" + "time": "2021-12-19T20:02:00+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.0", + "version": "v6.0.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb" + "reference": "7093f25359e2750bfe86842c80c4e4a6a852d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/27d39ae126352b9fa3be5e196ccf4617897be3eb", - "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7093f25359e2750bfe86842c80c4e4a6a852d05c", + "reference": "7093f25359e2750bfe86842c80c4e4a6a852d05c", "shasum": "", "mirrors": [ { @@ -5574,27 +5838,25 @@ ] }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher-contracts": "^2|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/event-dispatcher-contracts": "^2|^3" }, "conflict": { - "symfony/dependency-injection": "<4.4" + "symfony/dependency-injection": "<5.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^4.4|^5.0|^6.0" + "symfony/stopwatch": "^5.4|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -5626,7 +5888,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.2" }, "funding": [ { @@ -5642,7 +5904,7 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2021-12-21T10:43:13+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -5731,16 +5993,16 @@ }, { "name": "symfony/finder", - "version": "v5.4.0", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d2f29dac98e96a98be467627bd49c2efb1bc2590" + "reference": "e77046c252be48c48a40816187ed527703c8f76c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d2f29dac98e96a98be467627bd49c2efb1bc2590", - "reference": "d2f29dac98e96a98be467627bd49c2efb1bc2590", + "url": "https://api.github.com/repos/symfony/finder/zipball/e77046c252be48c48a40816187ed527703c8f76c", + "reference": "e77046c252be48c48a40816187ed527703c8f76c", "shasum": "", "mirrors": [ { @@ -5780,7 +6042,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.0" + "source": "https://github.com/symfony/finder/tree/v5.4.2" }, "funding": [ { @@ -5796,20 +6058,20 @@ "type": "tidelift" } ], - "time": "2021-11-28T15:25:38+00:00" + "time": "2021-12-15T11:06:13+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.1", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "5dad3780023a707f4c24beac7d57aead85c1ce3c" + "reference": "ce952af52877eaf3eab5d0c08cc0ea865ed37313" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5dad3780023a707f4c24beac7d57aead85c1ce3c", - "reference": "5dad3780023a707f4c24beac7d57aead85c1ce3c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce952af52877eaf3eab5d0c08cc0ea865ed37313", + "reference": "ce952af52877eaf3eab5d0c08cc0ea865ed37313", "shasum": "", "mirrors": [ { @@ -5859,7 +6121,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.1" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.2" }, "funding": [ { @@ -5875,20 +6137,20 @@ "type": "tidelift" } ], - "time": "2021-12-09T12:46:57+00:00" + "time": "2021-12-28T17:15:56+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.1", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2bdace75c9d6a6eec7e318801b7dc87a72375052" + "reference": "35b7e9868953e0d1df84320bb063543369e43ef5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2bdace75c9d6a6eec7e318801b7dc87a72375052", - "reference": "2bdace75c9d6a6eec7e318801b7dc87a72375052", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/35b7e9868953e0d1df84320bb063543369e43ef5", + "reference": "35b7e9868953e0d1df84320bb063543369e43ef5", "shasum": "", "mirrors": [ { @@ -5977,7 +6239,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.1" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.2" }, "funding": [ { @@ -5993,20 +6255,20 @@ "type": "tidelift" } ], - "time": "2021-12-09T13:36:09+00:00" + "time": "2021-12-29T13:20:26+00:00" }, { "name": "symfony/mime", - "version": "v5.4.0", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "d4365000217b67c01acff407573906ff91bcfb34" + "reference": "1bfd938cf9562822c05c4d00e8f92134d3c8e42d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/d4365000217b67c01acff407573906ff91bcfb34", - "reference": "d4365000217b67c01acff407573906ff91bcfb34", + "url": "https://api.github.com/repos/symfony/mime/zipball/1bfd938cf9562822c05c4d00e8f92134d3c8e42d", + "reference": "1bfd938cf9562822c05c4d00e8f92134d3c8e42d", "shasum": "", "mirrors": [ { @@ -6066,7 +6328,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.0" + "source": "https://github.com/symfony/mime/tree/v5.4.2" }, "funding": [ { @@ -6082,7 +6344,7 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2021-12-28T17:15:56+00:00" }, { "name": "symfony/polyfill-ctype", @@ -6954,16 +7216,16 @@ }, { "name": "symfony/process", - "version": "v5.4.0", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "5be20b3830f726e019162b26223110c8f47cf274" + "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5be20b3830f726e019162b26223110c8f47cf274", - "reference": "5be20b3830f726e019162b26223110c8f47cf274", + "url": "https://api.github.com/repos/symfony/process/zipball/2b3ba8722c4aaf3e88011be5e7f48710088fb5e4", + "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4", "shasum": "", "mirrors": [ { @@ -7002,7 +7264,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.0" + "source": "https://github.com/symfony/process/tree/v5.4.2" }, "funding": [ { @@ -7018,7 +7280,7 @@ "type": "tidelift" } ], - "time": "2021-11-28T15:25:38+00:00" + "time": "2021-12-27T21:01:00+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -7300,16 +7562,16 @@ }, { "name": "symfony/string", - "version": "v6.0.1", + "version": "v6.0.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "0cfed595758ec6e0a25591bdc8ca733c1896af32" + "reference": "bae261d0c3ac38a1f802b4dfed42094296100631" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/0cfed595758ec6e0a25591bdc8ca733c1896af32", - "reference": "0cfed595758ec6e0a25591bdc8ca733c1896af32", + "url": "https://api.github.com/repos/symfony/string/zipball/bae261d0c3ac38a1f802b4dfed42094296100631", + "reference": "bae261d0c3ac38a1f802b4dfed42094296100631", "shasum": "", "mirrors": [ { @@ -7371,7 +7633,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.1" + "source": "https://github.com/symfony/string/tree/v6.0.2" }, "funding": [ { @@ -7387,20 +7649,20 @@ "type": "tidelift" } ], - "time": "2021-12-08T15:13:44+00:00" + "time": "2021-12-16T22:13:01+00:00" }, { "name": "symfony/translation", - "version": "v6.0.1", + "version": "v6.0.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "b7956e00c6e03546f2ba489fc50f7c47933e76b8" + "reference": "a16c33f93e2fd62d259222aebf792158e9a28a77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/b7956e00c6e03546f2ba489fc50f7c47933e76b8", - "reference": "b7956e00c6e03546f2ba489fc50f7c47933e76b8", + "url": "https://api.github.com/repos/symfony/translation/zipball/a16c33f93e2fd62d259222aebf792158e9a28a77", + "reference": "a16c33f93e2fd62d259222aebf792158e9a28a77", "shasum": "", "mirrors": [ { @@ -7472,7 +7734,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.0.1" + "source": "https://github.com/symfony/translation/tree/v6.0.2" }, "funding": [ { @@ -7488,7 +7750,7 @@ "type": "tidelift" } ], - "time": "2021-12-08T15:13:44+00:00" + "time": "2021-12-25T20:10:03+00:00" }, { "name": "symfony/translation-contracts", @@ -7576,16 +7838,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.1", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2366ac8d8abe0c077844613c1a4f0c0a9f522dcc" + "reference": "1b56c32c3679002b3a42384a580e16e2600f41c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2366ac8d8abe0c077844613c1a4f0c0a9f522dcc", - "reference": "2366ac8d8abe0c077844613c1a4f0c0a9f522dcc", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1b56c32c3679002b3a42384a580e16e2600f41c1", + "reference": "1b56c32c3679002b3a42384a580e16e2600f41c1", "shasum": "", "mirrors": [ { @@ -7651,7 +7913,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.1" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.2" }, "funding": [ { @@ -7667,7 +7929,7 @@ "type": "tidelift" } ], - "time": "2021-12-01T15:04:08+00:00" + "time": "2021-12-29T10:10:35+00:00" }, { "name": "symfony/var-exporter", @@ -8045,16 +8307,16 @@ }, { "name": "w7corp/easywechat", - "version": "5.10.3", + "version": "5.14.0", "source": { "type": "git", "url": "https://github.com/w7corp/easywechat.git", - "reference": "4489c1d77ed3a6f0c6d3a1b7476d102cc3ae6e7f" + "reference": "e45065b7e5bb144b06e6f0414833aa6fa1b4742a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/w7corp/easywechat/zipball/4489c1d77ed3a6f0c6d3a1b7476d102cc3ae6e7f", - "reference": "4489c1d77ed3a6f0c6d3a1b7476d102cc3ae6e7f", + "url": "https://api.github.com/repos/w7corp/easywechat/zipball/e45065b7e5bb144b06e6f0414833aa6fa1b4742a", + "reference": "e45065b7e5bb144b06e6f0414833aa6fa1b4742a", "shasum": "", "mirrors": [ { @@ -8075,8 +8337,8 @@ "php": ">=7.4", "pimple/pimple": "^3.0", "psr/simple-cache": "^1.0", - "symfony/cache": "^3.3 || ^4.3 || ^5.0", - "symfony/event-dispatcher": "^4.3 || ^5.0", + "symfony/cache": "^3.3 || ^4.3 || ^5.0||^6.0", + "symfony/event-dispatcher": "^4.3 || ^5.0 || ^6.0", "symfony/http-foundation": "^2.7 || ^3.0 || ^4.0 || ^5.0", "symfony/psr-http-message-bridge": "^0.3 || ^1.0 || ^2.0" }, @@ -8131,7 +8393,7 @@ ], "support": { "issues": "https://github.com/w7corp/easywechat/issues", - "source": "https://github.com/w7corp/easywechat/tree/5.10.3" + "source": "https://github.com/w7corp/easywechat/tree/5.14.0" }, "funding": [ { @@ -8139,7 +8401,7 @@ "type": "github" } ], - "time": "2021-12-14T03:03:04+00:00" + "time": "2021-12-31T03:43:40+00:00" }, { "name": "webmozart/assert", @@ -8204,6 +8466,80 @@ "source": "https://github.com/webmozarts/assert/tree/1.10.0" }, "time": "2021-03-09T10:59:23+00:00" + }, + { + "name": "xin/container", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://gitee.com/liuxiaojinla/php-container", + "reference": "97bb67f87dd851545938a1f2fe0ffbd379e3ff81" + }, + "require": { + "ext-ctype": "*", + "ext-iconv": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-simplexml": "*", + "psr/container": "^1.0", + "xin/helper": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "xin\\container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "晋", + "email": "657306123@qq.com" + } + ], + "description": "严格基于PSR11规范实现基础的容器和依赖注入", + "time": "2019-10-21T03:51:25+00:00" + }, + { + "name": "xin/helper", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://gitee.com/liuxiaojinla/php-helper", + "reference": "02a58132dae2aea2d1c0b8e66f55125969224747" + }, + "require": { + "ext-ctype": "*", + "ext-iconv": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-simplexml": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "xin\\helper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "晋", + "email": "1540175452@qq.com" + } + ], + "description": "PHP项目日常开发必备基础库,数组工具类、字符串工具类、数字工具类、函数工具类、服务器工具类、加密工具类", + "time": "2019-06-22T08:28:23+00:00" } ], "packages-dev": [ @@ -8669,16 +9005,16 @@ }, { "name": "facade/ignition", - "version": "2.17.2", + "version": "2.17.4", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2" + "reference": "95c80bd35ee6858e9e1439b2f6a698295eeb2070" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2", - "reference": "af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2", + "url": "https://api.github.com/repos/facade/ignition/zipball/95c80bd35ee6858e9e1439b2f6a698295eeb2070", + "reference": "95c80bd35ee6858e9e1439b2f6a698295eeb2070", "shasum": "", "mirrors": [ { @@ -8749,7 +9085,7 @@ "issues": "https://github.com/facade/ignition/issues", "source": "https://github.com/facade/ignition" }, - "time": "2021-11-29T14:04:22+00:00" + "time": "2021-12-27T15:11:24+00:00" }, { "name": "facade/ignition-contracts", @@ -10127,16 +10463,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.10", + "version": "9.5.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a" + "reference": "2406855036db1102126125537adb1406f7242fdd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c814a05837f2edb0d1471d6e3f4ab3501ca3899a", - "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2406855036db1102126125537adb1406f7242fdd", + "reference": "2406855036db1102126125537adb1406f7242fdd", "shasum": "", "mirrors": [ { @@ -10220,11 +10556,11 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.10" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.11" }, "funding": [ { - "url": "https://phpunit.de/donate.html", + "url": "https://phpunit.de/sponsors.html", "type": "custom" }, { @@ -10232,7 +10568,7 @@ "type": "github" } ], - "time": "2021-09-25T07:38:51+00:00" + "time": "2021-12-25T07:07:57+00:00" }, { "name": "sebastian/cli-parser", diff --git a/config/alipay.php b/config/alipay.php new file mode 100644 index 00000000..bdd07a42 --- /dev/null +++ b/config/alipay.php @@ -0,0 +1,14 @@ + env('ALIPAY_APP_ID'), + // 应用私钥证书 + 'app_private_key' => env('ALIPAY_APP_PRIVATE_KEY'), + // 应用公钥证书文件路径 + 'app_public_cert_path' => env('ALIPAY_APP_PUBLIC_CERT_PATH'), + // 支付宝公钥证书文件路径 + 'public_cert_path' => env('ALIPAY_PUBLIC_CERT_PATH'), + // 支付宝根证书文件路径 + 'root_cert_path' => env('ALIPAY_ROOT_CERT_PATH'), +];