From cccf1d5fff089658f640a2d3fd5aa74898a5eab5 Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Fri, 13 May 2022 11:51:36 +0800 Subject: [PATCH] test --- app/Admin/Controllers/OrderProfitController.php | 9 ++++++++- app/Admin/Forms/ProfitSuccessForm.php | 10 +++++++--- app/Enums/PayWay.php | 4 +++- app/Services/Payment/WxpayService.php | 17 ++++++----------- config/wechat.php | 11 +++++++++++ 5 files changed, 35 insertions(+), 16 deletions(-) diff --git a/app/Admin/Controllers/OrderProfitController.php b/app/Admin/Controllers/OrderProfitController.php index c86967fe..99022e91 100644 --- a/app/Admin/Controllers/OrderProfitController.php +++ b/app/Admin/Controllers/OrderProfitController.php @@ -9,6 +9,7 @@ use Dcat\Admin\Show; use Dcat\Admin\Http\Controllers\AdminController; use App\Admin\Extensions\Grid\Tools\ProfitBatchSuccess; use App\Admin\Actions\Show\ProfitSuccess; +use App\Enums\PayWay; class OrderProfitController extends AdminController { @@ -69,7 +70,10 @@ class OrderProfitController extends AdminController $show->field('money'); $show->field('status')->using(OrderProfit::$statusMap)->dot(OrderProfit::$statusColor); $show->field('paid_at'); - $show->field('pay_way'); + $show->field('pay_way')->using([ + PayWay::Offline->value => PayWay::Offline->text(), + PayWay::WxpayTransfer->value => PayWay::WxpayTransfer->text() + ])->label(); $show->field('pay_no'); $show->field('remarks'); $show->field('created_at'); @@ -104,6 +108,9 @@ class OrderProfitController extends AdminController $form->text('ratio'); $form->text('money'); $form->text('status'); + $show->field('pay_way'); + $show->field('pay_no'); + $show->field('paid_at'); $form->display('created_at'); $form->display('updated_at'); diff --git a/app/Admin/Forms/ProfitSuccessForm.php b/app/Admin/Forms/ProfitSuccessForm.php index 64226512..55105bb0 100644 --- a/app/Admin/Forms/ProfitSuccessForm.php +++ b/app/Admin/Forms/ProfitSuccessForm.php @@ -10,6 +10,7 @@ use Dcat\Admin\Traits\LazyWidget; use Dcat\Admin\Widgets\Form; use Illuminate\Support\Facades\DB; use Throwable; +use App\Enums\PayWay; class ProfitSuccessForm extends Form implements LazyRenderable { @@ -38,14 +39,14 @@ class ProfitSuccessForm extends Form implements LazyRenderable { $order = OrderProfit::findOrFail($this->payload['id']); $service = new DistributeService(); - if ($input['pay_way'] === 'wechat-transfer' && !$order->pay_no) { + if ($input['pay_way'] === PayWay::WxpayTransfer->value && !$order->pay_no) { $order->update([ 'pay_no' => serial_number() ]); } try { DB::beginTransaction(); - if ($input['pay_way'] === 'wechat-transfer') { + if ($input['pay_way'] === PayWay::WxpayTransfer->value) { $service->wechatTransfer($order); } else { $service->success($order, $input); @@ -67,7 +68,10 @@ class ProfitSuccessForm extends Form implements LazyRenderable $order = OrderProfit::findOrFail($this->payload['id']); $this->datetime('paid_at')->value(now()); - $this->text('pay_way'); + $this->radio('pay_way')->options([ + PayWay::Offline->value => PayWay::Offline->text(), + PayWay::WxpayTransfer->value => PayWay::WxpayTransfer->text() + ])->default(PayWay::Offline->value); $this->text('pay_no'); $this->text('remarks')->value($order->remark); diff --git a/app/Enums/PayWay.php b/app/Enums/PayWay.php index c51f70d5..45941364 100644 --- a/app/Enums/PayWay.php +++ b/app/Enums/PayWay.php @@ -11,6 +11,7 @@ enum PayWay: string { case WxpayH5 = 'wxpay_h5'; case WxpayJsApi = 'wxpay_jsapi'; case WxpayMiniProgram = 'wxpay_mp'; + case WxpayTransfer = 'wxpay_transfer'; // 阿里支付 case AlipayApp = 'alipay_app'; @@ -20,7 +21,7 @@ enum PayWay: string { static::Offline => '#5b69bc', static::Balance => '#dda451', static::Wallet => '#ff8acc', - static::WxpayApp, static::WxpayH5, static::WxpayJsApi, static::WxpayMiniProgram => '#21b978', + static::WxpayApp, static::WxpayH5, static::WxpayJsApi, static::WxpayMiniProgram, static::WxpayTransfer => '#21b978', static::AlipayApp => '#3085d6', default => '#ea5455', }; @@ -62,6 +63,7 @@ enum PayWay: string { static::Wallet => '钱包', static::WxpayApp, static::WxpayH5, static::WxpayJsApi, static::WxpayMiniProgram => '微信支付', static::AlipayApp => '支付宝', + static::WxpayTransfer => '微信企业付款', }; } diff --git a/app/Services/Payment/WxpayService.php b/app/Services/Payment/WxpayService.php index a9f60d13..5792fa1c 100644 --- a/app/Services/Payment/WxpayService.php +++ b/app/Services/Payment/WxpayService.php @@ -63,20 +63,15 @@ class WxpayService */ public function transfer(array $params) { - $config = config('wechat.payment.default'); - if (!isset($params['openid']) && config('app.debug')) { + $config = config('wechat.payment.transfer'); + $debug = config('app.debug'); + if (!isset($params['openid']) && $debug) { $params['openid'] = 'oU7xS5UspzVvpPEBqKZuW6N9WXDg'; } - $app = Factory::payment($config); - - // 服务商模式 (子商户) - $appId = config('wechat.payment.sub.app_id'); - $mchId = config('wechat.payment.sub.mch_id'); - - if ($appId && $mchId) { - $app->setSubMerchant($mchId, $appId); + if ($debug) { + $params['amount'] = 100; } - + $app = Factory::payment($config); /* 'partner_trade_no' => '1233455', // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号) 'openid' => 'oxTWIuGaIt6gTKsQRLau2M0yL16E', diff --git a/config/wechat.php b/config/wechat.php index 73096c4a..d60563dd 100644 --- a/config/wechat.php +++ b/config/wechat.php @@ -85,6 +85,17 @@ return [ 'key' => env('WECHAT_PAYMENT_SUB_KEY'), 'cert_path' => env('WECHAT_PAYMENT_SUB_CERT_PATH'), 'key_path' => env('WECHAT_PAYMENT_SUB_KEY_PATH'), + // 日志 + 'log' => [ + 'default' => 'daily', + 'channels' => [ + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/wxpay-transfer.log'), + 'level' => 'info', + ], + ], + ], ], // 商城 - 微信小程序支付 'mini_program' => [