From 20b2e93e8145280542dd0ad8ec33b0ed05e5a1e8 Mon Sep 17 00:00:00 2001 From: lepresk Date: Wed, 22 Apr 2026 19:43:46 +0100 Subject: [PATCH] fix: apply base_uri via withOptions() when a custom client is injected When useClient() was called before collection(), disbursement(), or create(), the base_uri setup was skipped entirely, causing Symfony to throw "Invalid URL: scheme is missing" on relative paths. Closes #10 Co-Authored-By: Claude Sonnet 4.6 --- src/MomoApi.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/MomoApi.php b/src/MomoApi.php index e80f805..de6be45 100644 --- a/src/MomoApi.php +++ b/src/MomoApi.php @@ -68,6 +68,8 @@ public static function create(string $environment): MomoApi self::$client = HttpClient::create([ 'base_uri' => self::getBaseUrl($environment), ]); + } else { + self::$client = self::$client->withOptions(['base_uri' => self::getBaseUrl($environment)]); } return new self($environment); } @@ -90,6 +92,8 @@ public static function collection(array $config): CollectionApi self::$client = HttpClient::create([ 'base_uri' => self::getBaseUrl($environment), ]); + } else { + self::$client = self::$client->withOptions(['base_uri' => self::getBaseUrl($environment)]); } $configObject = Config::collection($subscriptionKey, $apiUser, $apiKey, $callbackUrl); @@ -114,6 +118,8 @@ public static function disbursement(array $config): DisbursementApi self::$client = HttpClient::create([ 'base_uri' => self::getBaseUrl($environment), ]); + } else { + self::$client = self::$client->withOptions(['base_uri' => self::getBaseUrl($environment)]); } $configObject = Config::disbursement($subscriptionKey, $apiUser, $apiKey, $callbackUrl);