|
|
@@ -0,0 +1,34 @@
|
|
|
+<?php
|
|
|
+declare(strict_types=1);
|
|
|
+namespace SixShop\Balpay\Controller;
|
|
|
+
|
|
|
+use app\model\User;
|
|
|
+use SixShop\Balpay\Entity\ExtensionBalpayLogEntity;
|
|
|
+use SixShop\Core\Request;
|
|
|
+use think\Response;
|
|
|
+use function SixShop\Core\success_response;
|
|
|
+use function SixShop\Core\throw_logic_exception;
|
|
|
+
|
|
|
+class TransferController
|
|
|
+{
|
|
|
+ public function save(Request $request, ExtensionBalpayLogEntity $extensionBalpayLogEntity): Response
|
|
|
+ {
|
|
|
+ $params = $request->post([
|
|
|
+ 'user_id/d',
|
|
|
+ 'amount/f',
|
|
|
+ 'pay_password/s',
|
|
|
+ ]);
|
|
|
+ if (empty($params['pay_password'])) {
|
|
|
+ throw_logic_exception('请输入支付密码', status: 'balpay.pay_password_empty');
|
|
|
+ }
|
|
|
+ $payPassword = User::where('id', $request->userID)->value('pay_password');
|
|
|
+ if (empty($payPassword)) {
|
|
|
+ throw_logic_exception('请先设置支付密码', status: 'balpay.pay_password_not_set');
|
|
|
+ }
|
|
|
+ if (!password_verify($params['pay_password'], $payPassword)) {
|
|
|
+ throw_logic_exception('支付密码错误', status: 'balpay.pay_password_error');
|
|
|
+ }
|
|
|
+ $extensionBalpayLogEntity->transfer((int)$request->userID, $params['user_id'], $params['amount']);
|
|
|
+ return success_response(msg: '转账成功');
|
|
|
+ }
|
|
|
+}
|