You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.3 KiB

  1. <?php
  2. namespace App\Controller\v3;
  3. use App\Controller\BaseController;
  4. use App\Model\v3\OrderMain;
  5. use App\Service\v3\Interfaces\PaymentServiceInterface;
  6. use Hyperf\Di\Annotation\Inject;
  7. use Hyperf\Validation\ValidationException;
  8. class PaymentController extends BaseController
  9. {
  10. /**
  11. * @Inject
  12. * @var PaymentServiceInterface
  13. */
  14. protected $paymentService;
  15. /**
  16. * 微信线上订单支付
  17. * 主要用户待付款订单中的付款操作
  18. */
  19. public function wechatpayOnline()
  20. {
  21. $validator = $this->validationFactory->make(
  22. $this->request->all(),
  23. [
  24. 'global_order_id' => 'required|nonempty',
  25. 'user_id' => 'required|nonempty',
  26. ],
  27. [
  28. 'global_order_id.*' => '订单号错误'
  29. ]
  30. );
  31. if ($validator->fails()) {
  32. throw new ValidationException($validator);
  33. }
  34. $params = $validator->validated();
  35. $orderMain = OrderMain::query()->select('global_order_id', 'money', 'user_id')
  36. ->where(['global_order_id' => $params['global_order_id']])->first();
  37. $parameters = $this->paymentService->do($orderMain->global_order_id, $orderMain->money, $orderMain->user_id);
  38. return $this->success(['parameters' => $parameters]);
  39. }
  40. }