Request to post /checkout/api/paypal/payment/create failed with 405 error. Correlation id: unknown

gfalco77
Contributor
Contributor

Hello community

 

I'm trying to integrate the button in my java web application. I'm trying to call the server which is a Spring Controller but I always get the 405 exception in the chrome console when I click on the paypal button.

 

I've been stuck all day but can't figure it out. Hope you can help. Thanks in advance

 

The Controller has been configured correctly because it gets called with the $.ajax jquery call and the debug, but if I use 

payment: function() {
    return paypal.request.post('/us/en/checkout/api/paypal/payment/create').then(function(data) {
return data.id; }); },
..

The error in the console is:

Uncaught Error: Error: Request to post https://novel.local:9002/us/en/checkout/api/paypal/payment/create failed with 405 error. Correlation id: unknown

<!DOCTYPE html>
<html>
    <head>
        <title>Server Error</title>
    </head>
    <body>
        <p>Server Error</p>
    </body>
</html>


    at XMLHttpRequest.<anonymous> (https://www.paypalobjects.com/api/checkout.js:15192:39)
    at Object.postrobot_message_response (https://www.paypalobjects.com/api/checkout.js:2797:31)
    at receiveMessage (https://www.paypalobjects.com/api/checkout.js:2842:60)
    at messageListener (https://www.paypalobjects.com/api/checkout.js:2863:13)


    at XMLHttpRequest.<anonymous> (https://www.paypalobjects.com/api/checkout.js:15192:39)
    at Object.postrobot_message_response (https://www.paypalobjects.com/api/checkout.js:2797:31)
    at receiveMessage (https://www.paypalobjects.com/api/checkout.js:2842:60)
    at messageListener (https://www.paypalobjects.com/api/checkout.js:2863:13)
    at deserializeError (https://www.paypalobjects.com/api/checkout.js:3578:23)
    at https://www.paypalobjects.com/api/checkout.js:3599:270
    at https://www.paypalobjects.com/api/checkout.js:3331:30
    at eachArray (https://www.paypalobjects.com/api/checkout.js:3314:51)
    at each (https://www.paypalobjects.com/api/checkout.js:3320:35)
    at replaceObject (https://www.paypalobjects.com/api/checkout.js:3330:13)
    at https://www.paypalobjects.com/api/checkout.js:3332:169
    at eachObject (https://www.paypalobjects.com/api/checkout.js:3317:65)
    at each (https://www.paypalobjects.com/api/checkout.js:3320:144)
    at replaceObject (https://www.paypalobjects.com/api/checkout.js:3330:13)

POST https://novel.local:9002/us/en/checkout/api/paypal/payment/create 405 ()
deserializeError @ serialize.js:182 (anonymous) @ serialize.js:219 (anonymous) @ util.js:140 eachArray @ util.js:102 each @ util.js:116 replaceObject @ util.js:138 (anonymous) @ util.js:147 eachObject @ util.js:109 each @ util.js:118 replaceObject @ util.js:138 (anonymous) @ util.js:147 eachObject @ util.js:109 each @ util.js:118 replaceObject @ util.js:138 deserializeMethods @ serialize.js:209 receiveMessage @ index.js:109 messageListener @ index.js:138 setTimeout (async) (anonymous) @ props.js:245 (anonymous) @ promise.js:40 value @ promise.js:375 (anonymous) @ promise.js:39 resultValue @ props.js:88 (anonymous) @ fn.js:35 (anonymous) @ serialize.js:37 value @ promise.js:375 (anonymous) @ serialize.js:36 (anonymous) @ types.js:68 value @ promise.js:375 (anonymous) @ types.js:56 receiveMessage @ index.js:112 messageListener @ index.js:138 postMessage (async) (anonymous) @ strategies.js:54 SEND_MESSAGE_STRATEGIES.(anonymous function) @ strategies.js:53 (anonymous) @ index.js:72 value @ promise.js:375 (anonymous) @ index.js:66 value @ promise.js:362 (anonymous) @ index.js:64 value @ promise.js:375 sendMessage @ index.js:29 (anonymous) @ client.js:157 ZalgoPromise @ promise.js:38 (anonymous) @ client.js:131 _loop @ promise.js:147 value @ promise.js:138 value @ promise.js:231 (anonymous) @ client.js:115 value @ promise.js:375 request @ client.js:33 _send @ client.js:238 wrapper @ serialize.js:157 props.(anonymous function) @ hacks.js:102 (anonymous) @ promise.js:40 value @ promise.js:375 (anonymous) @ promise.js:39 resultValue @ props.js:88 (anonymous) @ fn.js:35 (anonymous) @ index.js:1305 _loop @ promise.js:147 value @ promise.js:138 value @ promise.js:231 value @ index.js:1302 (anonymous) @ index.js:110 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 (anonymous) @ index.js:1272 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:337 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:337 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:337 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:337 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:192 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:337 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:163 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:192 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:48 respond @ client.js:147 (anonymous) @ types.js:126 receiveMessage @ index.js:112 messageListener @ index.js:138 postMessage (async) (anonymous) @ strategies.js:54 SEND_MESSAGE_STRATEGIES.(anonymous function) @ strategies.js:53 (anonymous) @ index.js:72 value @ promise.js:375 (anonymous) @ index.js:66 value @ promise.js:362 (anonymous) @ index.js:64 value @ promise.js:375 sendMessage @ index.js:29 respond @ types.js:42 (anonymous) @ types.js:84 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:48 _loop @ promise.js:161 value @ promise.js:138 value @ promise.js:112 _loop @ promise.js:156 value @ promise.js:138 value @ promise.js:112 (anonymous) @ promise.js:48 (anonymous) @ http.js:114 load (async) (anonymous) @ http.js:78 ZalgoPromise @ promise.js:38 request @ http.js:48 request.post @ http.js:156 payment @ add:329 (anonymous) @ hacks.js:206 ZalgoPromise @ promise.js:38 (anonymous) @ hacks.js:175 value @ promise.js:375 (anonymous) @ component.jsx:375 resultValue @ props.js:88 (anonymous) @ serialize.js:37 value @ promise.js:375 (anonymous) @ serialize.js:36 (anonymous) @ types.js:68 value @ promise.js:375 (anonymous) @ types.js:56 receiveMessage @ index.js:112 messageListener @ index.js:138 postMessage (async) (anonymous) @ strategies.js:54 SEND_MESSAGE_STRATEGIES.(anonymous function) @ strategies.js:53 (anonymous) @ index.js:72 value @ promise.js:375 (anonymous) @ index.js:66 value @ promise.js:362 (anonymous) @ index.js:64 value @ promise.js:375 sendMessage @ index.js:29 (anonymous) @ client.js:157 ZalgoPromise @ promise.js:38 (anonymous) @ client.js:131 _loop @ promise.js:147 value @ promise.js:138 value @ promise.js:231 (anonymous) @ client.js:115 value @ promise.js:375 request @ client.js:33 _send @ client.js:238 wrapper @ serialize.js:157 memoizeWrapper @ util.js:21 (anonymous) @ component.js:618 obj.(anonymous function) @ util.js:334 (anonymous) @ popupBridge.js:219 doRender @ popupBridge.js:202 Checkout.renderTo @ popupBridge.js:219 callOriginal @ util.js:338 (anonymous) @ hacks.js:83 obj.(anonymous function) @ util.js:334 callOriginal @ util.js:338 (anonymous) @ hacks.js:107 obj.(anonymous function) @ util.js:334 renderCheckout @ checkout.js:129 clickButton @ button.js:50 (anonymous) @ button.js:77

 

 

Login to Me Too
1 ACCEPTED SOLUTION

Accepted Solutions
Solved

gfalco77
Contributor
Contributor

Looks like it works if I follow 

 

return new paypal.Promise(function(resolve, reject) {

 

            // Call your server side to get the Payment ID from step 3, then pass it to the resolve callback

 

            jQuery.post('/checkout/api/paypal/payment/create')

                .done(function(data) {

                    resolve(data);

                });

        });

 

However, it would be good to know why it doesn't work with the current documentation

View solution in original post

Login to Me Too
1 REPLY 1
Solved

gfalco77
Contributor
Contributor

Looks like it works if I follow 

 

return new paypal.Promise(function(resolve, reject) {

 

            // Call your server side to get the Payment ID from step 3, then pass it to the resolve callback

 

            jQuery.post('/checkout/api/paypal/payment/create')

                .done(function(data) {

                    resolve(data);

                });

        });

 

However, it would be good to know why it doesn't work with the current documentation

Login to Me Too

Haven't Found your Answer?

It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.