WechatpayTransferBillService.php 975 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. declare(strict_types=1);
  3. namespace SixShop\WechatPay\Service;
  4. use SixShop\Wechat\Facade\WechatUser;
  5. use SixShop\WechatPay\Config;
  6. use SixShop\WechatPay\Enum\TransferBillStatusEnum;
  7. use SixShop\WechatPay\Model\WechatpayTransferBillModel;
  8. class WechatpayTransferBillService
  9. {
  10. public function __construct(private Config $config)
  11. {
  12. }
  13. public function apply(int $userID, float $transferAmount, string $userName, float $fee): int
  14. {
  15. return WechatpayTransferBillModel::create([
  16. 'user_id' => $userID,
  17. 'mch_id' => $this->config->mchid,
  18. 'appid' => $this->config->appid,
  19. 'transfer_amount' => bcmul((string)$transferAmount, '100', 0),
  20. 'fee' => bcmul((string)$fee, '100', 0),
  21. 'openid' => WechatUser::openid($userID),
  22. 'user_name' => $userName,
  23. 'state' => TransferBillStatusEnum::APPLYING,
  24. 'transfer_remark' => '提现',
  25. ])->id;
  26. }
  27. }