Pay Later messaging integration code samples

CurrentDocs

Last updated: Mar 14th, 6:13pm

This page provides code examples for Pay Later messaging. Your page's code structure determines the code you should use.

Inline attributes

    1<!DOCTYPE html>
    2
    3<head>
    4 <meta name="viewport" content="width=device-width, initial-scale=1">
    5 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    6 <script
    7 src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&currency=AUD&components=messages">
    8 </script>
    9</head>
    10
    11<body>
    12 <div
    13 data-pp-message
    14 data-pp-pageType="product-details"
    15 data-pp-amount="500"
    16 data-pp-style-layout="text"
    17 data-pp-style-logo-type="primary"
    18 data-pp-style-logo-position="top"
    19 ></div>
    20</body>

    JavaScript configuration object

    You can configure and render your messages using JavaScript as an alternative to HTML attributes. The PayPal JavaScript SDK messages component uses a JavaScript API that is similar to the API used by the buttons component.

      1<!DOCTYPE html>
      2
      3<head>
      4 <meta name="viewport" content="width=device-width, initial-scale=1">
      5 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      6 <script
      7 src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&currency=AUD&components=messages">
      8 </script>
      9</head>
      10
      11<body>
      12
      13<div class="pp-message"></div>
      14 <script>
      15 paypal.Messages({
      16 amount: 500,
      17 pageType: 'product-details',
      18 style: {
      19 layout: 'text',
      20 logo: {
      21 type: 'primary',
      22 position: 'top'
      23 }
      24 }
      25 })
      26 .render('.pp-message');
      27 </script>
      28</body>

      Use the namespace attribute

      Select this option if you're using a legacy integration for PayPal checkout that uses the data-namespace attribute when loading the JavaScript SDK messages component.

        1<!DOCTYPE html>
        2
        3<head>
        4 <meta name="viewport" content="width=device-width, initial-scale=1">
        5 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        6 <script
        7 data-namespace="paypal2"
        8 src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&currency=AUD&components=messages">
        9 </script>
        10</head>
        11
        12<body>
        13
        14<div class="pp-message"></div>
        15 <script>
        16 paypal2.Messages({
        17 amount: 500,
        18 style: {
        19 layout: 'text',
        20 logo: {
        21 type: 'primary',
        22 position: 'top'
        23 }
        24 }
        25 })
        26 .render('.pp-message');
        27 </script>
        28</body>

        Multiple render client-side

          1<!DOCTYPE html>
          2
          3<head>
          4 <meta name="viewport" content="width=device-width, initial-scale=1">
          5 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
          6 <script
          7 src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&currency=AUD&components=messages">
          8 </script>
          9</head>
          10
          11<body>
          12 <!-- Example products listing -->
          13 <ul class="listings">
          14 <li class="listing">
          15 <div class="listing__content">
          16 <h3 class="listing__title">Product Name 1</h3>
          17 <p class="listing__price">$50</p>
          18 <img class="listing__image" src="" alt="product image" />
          19 <p class="listing__description">...</div>
          20 </div>
          21 <div class="pp-message">
          22 <!-- Pay later message will be inserted here -->
          23 </div>
          24 </li>
          25 <li class="listing">
          26 <div class="listing__content">
          27 <h3 class="listing__title">Product Name 2</h3>
          28 <p class="listing__price">$100</p>
          29 <img class="listing__image" src="" alt="product image" />
          30 <p class="listing__description">...</div>
          31 </div>
          32 <div class="pp-message">
          33 <!-- Pay later message will be inserted here -->
          34 </div>
          35 </li>
          36 </ul>
          37
          38 <script>
          39 // Collect all listings inside an array
          40 const listings = Array.from(document.querySelectorAll('.listing'));
          41
          42 // Set the amount for each Pay later message
          43 listings.forEach(listing => {
          44 const price = Number(listing.querySelector('.listing__price').textContent.slice(1));
          45 const wrapper = listing.querySelector('.pp-message');
          46 wrapper.setAttribute('data-pp-amount', price);
          47 });
          48
          49 // Render each Pay later message
          50 paypal
          51 .Messages({
          52 style: {
          53 layout: 'text',
          54 logo: {
          55 type: 'primary',
          56 position: 'top'
          57 }
          58 }
          59 })
          60 .render('.pp-message');
          61 </script>
          62</body>

          See Also

          See Reference tables for more details on available options.

          If you accept cookies, we’ll use them to improve and customize your experience and enable our partners to show you personalized PayPal ads when you visit other sites. Manage cookies and learn more