Google Pay elements

Learn how to use Google Pay elements.

Use DigitalRiver.js to create a Google Pay element and interact with Google Pay.‌

Creating a Google Pay element

var paymentRequestData = digitalriver.paymentRequest({
        country: "US",
        currency: "USD",
        total: {
            label: "Order Total",
            amount: 100
        },
        displayItems: lineItems,
        shippingOptions: shippingOptions,
        style: {
            buttonType: "plain",
            buttonColor: "dark",
            buttonLanguage: "en"
        }
    });
 
var googlepay = digitalriver.createElement('googlepay', paymentRequestData);

Google Pay element styles and customization

All Google Payment buttons on your site must adhere to the Google Pay Brand Guidelines, which include, but aren't limited to, the following requirements. Digital River provides the following Google Pay button options for clients to add to the product page/checkout page (express checkout) or payment options page.

Configure Button TypeHTML Code

buttonType: "plain"

buttonType: "long" The shopper hasn't logged in to Google Pay.

buttonType: "long" The shopper has logged in to Google Pay

Configure Button Color

HTML Code

buttonColor: "dark"

buttonColor: "light"

When configuring a button, note the following:

  • The button color must contrast with the background color of the area that surrounds it.

Google Pay element functions

googlepay.canMakePayment();

if(googlepay.canMakePayment()) {
 
 
}

googlepay.mount();

Call this function to place the created Google Pay element on your page.

<div id="google-pay"></div>
 
 
if(googlepay.canMakePayment()) {
    googlepay.mount('google-pay');
}

googlepay.show();

Call this function to show the Google Pay Payment Request interface. This will automatically happen when using the element. If you'd like to trigger using another mechanism, you must call it as part of the user interaction (click handler).

googlepay.show();

googlepay.unmount();

Call this function to remove the Google Pay element from your page. The element may be re-added to your page by calling mount().

googlepay.unmount();

googlepay.destroy();

Call this function to remove the Google Pay element from your page as well as remove its functionality. You cannot re-add the destroyed element to your page via mount().

googlepay.destroy();

googlepay.update();

Call this function to update the Google Pay element's data.

var paymentRequest = digitalriver.paymentRequest({
        country: "US",
        currency: "USD",
        total: {
            label: "Order Total",
            amount: 100
        },
        displayItems: lineItems,
        shippingOptions: shippingOptions,
        style: {
            buttonType: "plain",
            buttonColor: "dark",
            buttonLanguage: "en"
        }
    });
 
 
googlepay.update(paymentRequest);

Google Pay element events — googlepay.on('event', handler);

The Google Pay Element can receive the following events by creating an event listener. Use this function to listen to events that can be used to build and enhance your purchase flow.

EventTriggered When

ready

The created element is loaded and ready to accept an update request.

click

A shopper clicked the element's button.

cancel

The customer has canceled the experience.

shippingoptionchange

The customer has chosen a different shipping option than was previously selected. You should use this data to re-price your order totals (if applicable).

shippingaddresschange

The customer has chosen a different address than was previously selected. You should use this data to re-price your order totals (if applicable).

source

The customer has authorized the payment and a source, and DigitalRiver.js returned its associated data.

Source

The Source event emits when the customer completes their interaction with the Payment Request interface, and creates a Payment Source. The emitted object will be a Payment Request Response object.

googlepay.on('source', function(result) {
    var source = result.source;
     
    //pass the source to your back end for further processing
}

Ready

The Ready event emits when the Google Pay Element has loaded and is available to take an update() call.

googlepay.on('ready', function(event) {
    //google pay can accept an update call
}
{
    elementType: "googlepay"
}

Click

The Click event emits when the customer clicks a Google Pay Element.

googlepay.on('click', function(event) {
    //do stuff
}
{
    elementType: "googlepay"
}

Cancel

The Cancel event emits when the customer closes the Google Pay Element Payment Request interface.

googlepay.on('shippingoptionchange', function(event) {
    var shippingOption = event.shippingOption;
 
 
    //create a Payment Request Details Update Object
    var newDetails = createPaymentRequestDetailsUpdateObject();
    event.updateWith(newDetails);
 
});
{
    "shippingOption": {
        "id": "overnight-shipping",
        "label": "Overnight Shipping",
        "amount": 100,
        "detail": "Get this in 1 business day."
    },
    "updateWith": function(data) {
        callback(data);
    }
}

Shipping option change

The Shipping Option Change event emits when the Customer selects a different Shipping Option within the Payment Request interface. The event will emit the following object structure.

KeyTypeDescription

updateWith

Function

Calling this function with a Payment Request Details Update object merges your updates into the current Payment Request object.

shippingOption

A Payment Request Shipping Option object contains the details of the customer's chosen Shipping Option.

googlepay.on('shippingaddresschange', function(event) {
    var shippingAddress = event.shippingAddress;
 
 
    //create a Payment Request Details Update Object
    var newDetails = createPaymentRequestDetailsUpdateObject();
     
    event.updateWith(newDetails);
});
Response object
{
    shippingAddress: {
        "name": "John Smith",
        "firstName": "John",
        "lastName": "Smith",
        "phone": "952-111-1111",
        "email": "jsmith@digitalriver.com",
        "address": {
            "line1": "10380 Bren Rd W",
            "line2": "string",
            "city": "Minnetonka",
            "postalCode": "55129",
            "state": "MN",
            "country": "US"
        }
    }, 
    "updateWith": function(data) {
        callback(data);
    }
}

Shipping address change

The Shipping Address Change emits when the Customer selects a different Shipping Address within the Payment Request interface. The event will emit the following object structure.

KeyTypeDescription

updateWith

Function

Calling this function with a Payment Request Details Update object merges your updates into the current Payment Request object.

shippingAddress

A Shipping Address object contains the details of the customer's chosen Shipping Option.

googlepay.on('shippingaddresschange', function(event) {
    var shippingAddress = event.shippingAddress;
 
 
    //create a Payment Request Details Update Object
    var newDetails = createPaymentRequestDetailsUpdateObject();
     
    event.updateWith(newDetails);
});
{
    shippingAddress: {
        "name": "John Smith",
        "firstName": "John",
        "lastName": "Smith",
        "phone": "952-111-1111",
        "email": "jsmith@digitalriver.com",
        "address": {
            "line1": "10380 Bren Rd W",
            "line2": "string",
            "city": "Minnetonka",
            "postalCode": "55129",
            "state": "MN",
            "country": "US"
        }
    }, 
    "updateWith": function(data) {
        callback(data);
    }
}

Last updated