diff --git a/src/FirstPayment/FirstPaymentBuilder.php b/src/FirstPayment/FirstPaymentBuilder.php index 7faf66ca..1053b888 100644 --- a/src/FirstPayment/FirstPaymentBuilder.php +++ b/src/FirstPayment/FirstPaymentBuilder.php @@ -125,19 +125,30 @@ public function getMolliePayload() public function create() { $payload = $this->getMolliePayload(); + $untouchedRedirectUrl = $payload['redirectUrl']; + $payload['redirectUrl'] = Str::replace( + '{payment_id}', + '---payment_id---', // In order to pass Mollie validation + $payload['redirectUrl'] + ); /** @var CreateMolliePayment $createMolliePayment */ $createMolliePayment = app()->make(CreateMolliePayment::class); $this->molliePayment = $createMolliePayment->execute($payload); - Cashier::$paymentModel::createFromMolliePayment($this->molliePayment, $this->owner, $this->actions->toPlainArray()); - - $redirectUrl = $payload['redirectUrl']; + Cashier::$paymentModel::createFromMolliePayment( + $this->molliePayment, + $this->owner, + $this->actions->toPlainArray() + ); // Parse and update redirectUrl - if (Str::contains($redirectUrl, '{payment_id}')) { - $redirectUrl = Str::replaceArray('{payment_id}', [$this->molliePayment->id], $redirectUrl); - $this->molliePayment->redirectUrl = $redirectUrl; + if (Str::contains($untouchedRedirectUrl, '{payment_id}')) { + $this->molliePayment->redirectUrl = Str::replace( + '{payment_id}', + $this->molliePayment->id, + $untouchedRedirectUrl + ); /** @var UpdateMolliePayment $updateMolliePayment */ $updateMolliePayment = app()->make(UpdateMolliePayment::class);