| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace app\workerapi\controller;
- use app\api\validate\PayValidate;
- use app\common\enum\user\UserTerminalEnum;
- use app\common\logic\PaymentLogic;
- use app\common\service\pay\AliPayService;
- use app\common\service\pay\WeChatPayService;
- use app\common\service\pay\WorkerWeChatPayService;
- use think\facade\Log;
- /**
- * 支付
- * Class PayController
- * @package app\api\controller
- */
- class PayController extends \app\workerapi\controller\BaseApiController
- {
- public array $notNeedLogin = ['notifyMnp'];
- /**
- * @notes 工程师代支付
- * @return \think\response\Json
- */
- public function prepay()
- {
- $params = (new PayValidate())->post()->goCheck();
- //订单信息
- $order = PaymentLogic::getPayOrderInfo($params);
- if (false === $order) {
- return $this->fail(PaymentLogic::getError(), $params);
- }
- //支付流程
- $redirectUrl = $params['redirect'] ?? '/pages/payment/payment';
- $result = PaymentLogic::workerPay($params['pay_way'], $params['from'], $order, $this->userInfo, $redirectUrl);
- if (false === $result) {
- return $this->fail(PaymentLogic::getError(), $params);
- }
- $result['sn'] = $order['sn'];
- return $this->success('', $result);
- }
- /**
- * @notes 获取支付状态
- * @return \think\response\Json
- */
- public function payStatus()
- {
- $params = (new PayValidate())->goCheck('status', ['user_id' => $this->userId]);
- $result = PaymentLogic::getPayStatus($params);
- if ($result === false) {
- return $this->fail(PaymentLogic::getError());
- }
- return $this->data($result);
- }
- /**
- * @notes 小程序支付回调
- * @return \Psr\Http\Message\ResponseInterface
- * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
- * @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
- * @throws \ReflectionException
- * @throws \Throwable
- */
- public function notifyMnp()
- {
- return (new WorkerWeChatPayService(UserTerminalEnum::WECHAT_MMP))->notify();
- }
- }
|