OrderUnitePayFrom.php 906 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace addons\TinyShop\common\forms;
  3. use Yii;
  4. use common\interfaces\PayHandler;
  5. use common\helpers\BcHelper;
  6. use yii\web\UnprocessableEntityHttpException;
  7. /**
  8. * 订单混合支付
  9. *
  10. * 余额+第三方(支付宝、微信等)
  11. *
  12. * Class OrderUnitePayFrom
  13. * @package addons\TinyShop\common\forms
  14. * @author jianyan74 <751393839@qq.com>
  15. */
  16. class OrderUnitePayFrom extends OrderPayFrom implements PayHandler
  17. {
  18. /**
  19. * 支付金额
  20. *
  21. * @return float
  22. */
  23. public function getTotalFee(): float
  24. {
  25. $account = Yii::$app->services->memberAccount->findByMemberId($this->order['buyer_id']);
  26. // 正常支付
  27. if ($account->user_money >= $this->order['pay_money']) {
  28. throw new UnprocessableEntityHttpException('请直接使用余额支付');
  29. }
  30. return BcHelper::sub($this->order['pay_money'], $account->user_money);
  31. }
  32. }
粤ICP备19079148号