Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions src/Models/Transaction.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class Transaction
private ?string $amount;
private string $currency;
private array $payer = [];
private array $payee = [];
private ?string $payerMessage;
private ?string $payeeNote;
private string $status;
Expand All @@ -31,13 +32,14 @@ class Transaction
* @param string $status
* @param ErrorReason|null $reason
*/
public function __construct(?string $financialTransactionId, ?string $externalId, ?string $amount, string $currency, array $payer, ?string $payerMessage, ?string $payeeNote, string $status, ?ErrorReason $reason)
public function __construct(?string $financialTransactionId, ?string $externalId, ?string $amount, string $currency, array $payer, array $payee, ?string $payerMessage, ?string $payeeNote, string $status, ?ErrorReason $reason)
{
$this->financialTransactionId = $financialTransactionId;
$this->externalId = $externalId;
$this->amount = $amount;
$this->currency = $currency;
$this->payer = $payer;
$this->payee = $payee;
$this->payerMessage = $payerMessage;
$this->payeeNote = $payeeNote;
$this->status = $status;
Expand All @@ -63,7 +65,8 @@ public static function parse(array $array): Transaction
$array['externalId'],
$array['amount'],
$array['currency'],
$array['payer'] ?? $array['payee'] ?? [],
$array['payer'] ?? [],
$array['payee'] ?? [],
$array['payerMessage'],
$array['payeeNote'],
$array['status'],
Expand Down Expand Up @@ -158,7 +161,7 @@ public function getPayer(): ?string
*/
public function getPayee(): ?string
{
return $this->getPayer();
return $this->payee['partyId'] ?? null;
}

/**
Expand Down
19 changes: 18 additions & 1 deletion src/MomoApi.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -122,9 +128,20 @@ public static function disbursement(array $config): DisbursementApi

public static function getBaseUrl($environment): string
{
if ($environment === MomoApi::ENVIRONMENT_SANDBOX) {
if ($environment === self::ENVIRONMENT_SANDBOX) {
return self::SANDBOX_URL;
}
$known = [
self::ENVIRONMENT_MTN_CONGO, self::ENVIRONMENT_MTN_UGANDA,
self::ENVIRONMENT_MTN_GHANA, self::ENVIRONMENT_IVORY_COAST,
self::ENVIRONMENT_ZAMBIA, self::ENVIRONMENT_CAMEROON,
self::ENVIRONMENT_BENIN, self::ENVIRONMENT_SWAZILAND,
self::ENVIRONMENT_GUINEACONAKRY, self::ENVIRONMENT_SOUTHAFRICA,
self::ENVIRONMENT_LIBERIA,
];
if (!in_array($environment, $known, true)) {
throw new \InvalidArgumentException("Unknown environment: '$environment'");
}
return self::PRODUCTION_URL;
}

Expand Down
Loading