diff --git a/src/Goteo/Payment/Method/StripeSubscriptionPaymentMethod.php b/src/Goteo/Payment/Method/StripeSubscriptionPaymentMethod.php index 181a9010e8..24b9343f41 100644 --- a/src/Goteo/Payment/Method/StripeSubscriptionPaymentMethod.php +++ b/src/Goteo/Payment/Method/StripeSubscriptionPaymentMethod.php @@ -86,7 +86,7 @@ public function completePurchase(): ResponseInterface /** @var SubscriptionGateway */ $gateway = $this->getGateway(); - return $gateway->completePurchase(['success' => true]); + return $gateway->completePurchase(); } public function refundable(): bool diff --git a/src/Omnipay/Stripe/Subscription/Message/SubscriptionRequest.php b/src/Omnipay/Stripe/Subscription/Message/SubscriptionRequest.php index 34d0711ee1..a167a2e4d8 100644 --- a/src/Omnipay/Stripe/Subscription/Message/SubscriptionRequest.php +++ b/src/Omnipay/Stripe/Subscription/Message/SubscriptionRequest.php @@ -75,7 +75,9 @@ public function sendData($data) public function completePurchase(array $options = []) { - $session = $this->stripe->checkout->sessions->retrieve($_REQUEST['session_id']); + // Dirty sanitization because something is double concatenating the ?session_id query param + $sessionId = explode('?', $_REQUEST['session_id'])[0]; + $session = $this->stripe->checkout->sessions->retrieve($sessionId); $this->stripe->subscriptions->update( $session->subscription, [