user1693207
user1693207

Reputation: 129

Customizing "PayPal" button for PayPal Marketplace (API)

I am developing my app with PayPal Marketplace API for the first time.

Among other steps, I need to customize a "PayPal checkout" button. I did this by following instructions on this page.

In function "payment" (see the original code segment below), I supposed to provide a call-back url for CREATE_URL:

            // payment() is called when the button is clicked
            payment: function() {

            // Set up a url on your server to create the payment
            var CREATE_URL = '/demo/checkout/api/paypal/order/create/';

            // Make a call to your server to set up the payment
            return paypal.request.post(CREATE_URL)
                .then(function(res) {
                    return res.id;
                });
            }
  1. By reading this, I am puzzled why the CREATE_URL value is not a fullpath url starting with "http" or "https"? I have the similar question for EXECUTE_URL in an ensuing segment of the html file.

  2. What type of RequestBody should my REST controller expect?

  3. What action should my app take at the url for "CREATE_URL"? My intuition is to call the Order API to create an order (among other things in my database). Is this correct?

Upvotes: 0

Views: 343

Answers (1)

Joel
Joel

Reputation: 87

I can address your questions one at a time:

  1. By reading this, I am puzzled why the CREATE_URL value is not a fullpath url starting with "http" or "https"? I have the similar question for EXECUTE_URL in an ensuing segment of the html file.

You don't have to have a full path URL (known as absolute path) because the path that you provide for CREATE_URL is on your own server. So the code where you have your button is on a page like exampleButton.html and when you click the button, it takes you to a script, such as var CREATE_URL = '/demo/checkout/api/paypal/order/create/'; which is an index page which will run the Create Order API method with the data that you pass. Here is another example implementing a payment button with checkout.js using a server side language.

  1. What type of RequestBody should my REST controller expect?

Your request body will receive the payment data from the JavaScript data parameter, which should be JSON format. You then pass this to the server side when you receive the POST data. An even simpler implementation is to use the client-side integration to create the order.

  1. What action should my app take at the url for "CREATE_URL"? My intuition is to call the Order API to create an order (among other things in my database). Is this correct?

Your app should automatically run the create order method. This script works with JavaScript promises, so will wait for a response, like getting a successful authorization (or failure) from the customer before attempting to execute the payment.

Upvotes: 1

Related Questions