diff --git a/src/Services/PayPal/Model/Order.php b/src/Services/PayPal/Model/Order.php index 299dd8d0..e1d28ff1 100644 --- a/src/Services/PayPal/Model/Order.php +++ b/src/Services/PayPal/Model/Order.php @@ -39,7 +39,7 @@ public static function from( array $apiResponse ): self { */ private static function getUrlFromLinks( array $links ): string { foreach ( $links as $link ) { - if ( $link['rel'] === 'approve' ) { + if ( $link['rel'] === 'payer-action' ) { return $link['href']; } } diff --git a/src/Services/PayPal/Model/OrderParameters.php b/src/Services/PayPal/Model/OrderParameters.php index 1e9facb7..a78fca6a 100644 --- a/src/Services/PayPal/Model/OrderParameters.php +++ b/src/Services/PayPal/Model/OrderParameters.php @@ -50,14 +50,17 @@ public function toJSON(): string { ], ], 'intent' => 'CAPTURE', - 'application_context' => - [ - 'brand_name' => 'Wikimedia Deutschland', - 'landing_page' => 'LOGIN', - 'user_action' => 'CONTINUE', - 'return_url' => $this->returnUrl, - 'cancel_url' => $this->cancelUrl, - ], + 'payment_source' => [ + 'paypal' => [ + 'experience_context' => [ + 'brand_name' => 'Wikimedia Deutschland', + 'user_action' => 'PAY_NOW', + "shipping_preference" => 'NO_SHIPPING', + 'return_url' => $this->returnUrl, + 'cancel_url' => $this->cancelUrl, + ] + ] + ] ], JSON_THROW_ON_ERROR ); } diff --git a/tests/Data/PaypalAPI/create_order_request.json b/tests/Data/PaypalAPI/create_order_request.json index 0dca3c35..dce6c835 100644 --- a/tests/Data/PaypalAPI/create_order_request.json +++ b/tests/Data/PaypalAPI/create_order_request.json @@ -27,11 +27,15 @@ } ], "intent": "CAPTURE", - "application_context": { - "brand_name": "Wikimedia Deutschland", - "landing_page": "LOGIN", - "user_action": "CONTINUE", - "return_url": "https://example.com/returnUrl", - "cancel_url": "https://example.com/cancelUrl" + "payment_source": { + "paypal": { + "experience_context": { + "brand_name": "Wikimedia Deutschland", + "user_action": "PAY_NOW", + "shipping_preference": "NO_SHIPPING", + "return_url": "https:\/\/example.com\/returnUrl", + "cancel_url": "https:\/\/example.com\/cancelUrl" + } + } } } diff --git a/tests/Unit/Services/PayPal/GuzzlePaypalAPITest.php b/tests/Unit/Services/PayPal/GuzzlePaypalAPITest.php index b25b495a..69e98aed 100644 --- a/tests/Unit/Services/PayPal/GuzzlePaypalAPITest.php +++ b/tests/Unit/Services/PayPal/GuzzlePaypalAPITest.php @@ -687,7 +687,7 @@ private function createCreateOrderResponse(): Response { { "href": "https://www.paypal.com/checkoutnow?token=5O190127TN364715T", - "rel": "approve", + "rel": "payer-action", "method": "GET" } ] diff --git a/tests/Unit/Services/PayPal/Model/OrderTest.php b/tests/Unit/Services/PayPal/Model/OrderTest.php index b98ef374..d86b6f4c 100644 --- a/tests/Unit/Services/PayPal/Model/OrderTest.php +++ b/tests/Unit/Services/PayPal/Model/OrderTest.php @@ -23,7 +23,7 @@ public function testCreateFromApiResponse(): void { ], [ "href" => "https://www.paypal.com/checkoutnow?token=5O190127TN364715T", - "rel" => "approve", + "rel" => "payer-action", "method" => "GET" ] ]