SupportServiceProviderTrait.php 949 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. declare(strict_types=1);
  3. namespace Yansongda\Pay\Traits;
  4. use Yansongda\Pay\Exception\ContainerException;
  5. use Yansongda\Pay\Exception\ServiceNotFoundException;
  6. use Yansongda\Pay\Pay;
  7. use Yansongda\Pay\Rocket;
  8. use function Yansongda\Pay\get_alipay_config;
  9. trait SupportServiceProviderTrait
  10. {
  11. /**
  12. * @throws ContainerException
  13. * @throws ServiceNotFoundException
  14. */
  15. protected function loadAlipayServiceProvider(Rocket $rocket): void
  16. {
  17. $params = $rocket->getParams();
  18. $config = get_alipay_config($params);
  19. $serviceProviderId = $config['service_provider_id'] ?? null;
  20. if (Pay::MODE_SERVICE !== ($config['mode'] ?? Pay::MODE_NORMAL)
  21. || empty($serviceProviderId)) {
  22. return;
  23. }
  24. $rocket->mergeParams([
  25. 'extend_params' => array_merge($params['extend_params'] ?? [], ['sys_service_provider_id' => $serviceProviderId]),
  26. ]);
  27. }
  28. }