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

        Multiple render client-side

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

          Reference

          See Reference tables for more details on available options.