Salesforce Payments request for a shopper to make payment. See Salesforce Payments documentation for how to gain access and configure it for use on your sites.
A request is required to render payment methods and/or express checkout buttons using <ispayment>
or <isbuynow>
. You can call methods on the payment request to configure which payment methods
and/or express checkout buttons may be presented, and customize their visual presentation.
When used with <isbuynow>
you must provide the necessary data to prepare the shopper basket to buy
the product, and the necessary payment request options for the browser payment app.
"afterpayClearpayMessage"
."cardCvc"
."cardExpiry"
."cardNumber"
."epsBank"
."iban"
."idealBank"
."paymentRequestButton"
.shipping_preference
value "GET_FROM_FILE"
, to use the
customer-provided shipping address on the PayPal site.shipping_preference
value "NO_SHIPPING"
, to redact the
shipping address from the PayPal site. Recommended for digital goods.shipping_preference
value "SET_PROVIDED_ADDRESS"
, to use the
merchant-provided address. The customer cannot change this address on the PayPal site.user_action
value "CONTINUE"
. Use this option when the final
amount is not known when the checkout flow is initiated and you want to redirect the customer to the merchant
page without processing the payment.user_action
value "PAY_NOW"
. Use this option when the final
amount is known when the checkout is initiated and you want to process the payment immediately when the customer
clicks Pay Now.true
if the credit card payment should be automatically captured at the time of the sale, or
false
if the credit card payment should be captured later.Returns a set containing the element types to be explicitly excluded from mounted components. See the element type constants in this class for the full list of supported element types.
Note: if an element type is both explicitly included and excluded, it will not be presented.
Returns a set containing the specific element types to include in mounted components. If the set is empty then all applicable and enabled element types will be included by default. See the element type constants in this class for the full list of supported element types.
Note: if an element type is both explicitly included and excluded, it will not be presented.
true
if the payment method should be always saved for future use off session, or
false
if the payment method should be only saved for future use on session when appropriate.null
if the default statement descriptor for your account will be used.Adds the given element type to explicitly exclude from mounted components.
Adds the given element type to include in mounted components.
Returns a JS object containing the payment request options to use when a Pay Now button is tapped, in the appropriate format for use in client side JavaScript, with data calculated from the given basket.
Returns a JS object containing the payment request options to use when a Buy Now button is tapped, in the appropriate format for use in client side JavaScript.
true
if the credit card payment should be automatically captured at the time of the sale, or false
if the credit card payment should be captured later.Returns a set containing the element types to be explicitly excluded from mounted components.
Returns a set containing the specific element types to include in mounted components.
true
if the payment method should be always saved for future use off session, or false
if the payment method should be only saved for future use on session when appropriate.null
if the default statement descriptor for your account will be used.Sets the data used to prepare the shopper basket when a Buy Now button is tapped.
Sets the payment request options to use when a Buy Now button is tapped.
paypal.Buttons
call.shipping_preference
value.user_action
value.elements.create
call for the given element type.stripe.elements
call.Adds the given element type to explicitly exclude from mounted components. It is not necessary to explicitly exclude element types that are not enabled for the site, or are not applicable for the current shopper and/or their basket. See the element type constants in this class for the full list of supported element types.
Note: if an element type is both explicitly included and excluded, it will not be presented.
Adds the given element type to include in mounted components. Call this method to include only a specific list of element types to be presented when applicable and enabled for the site. See the element type constants in this class for the full list of supported element types.
Note: if an element type is both explicitly included and excluded, it will not be presented.
Returns a JS object containing the payment request options to use when a Pay Now button is tapped, in the
appropriate format for use in client side JavaScript, with data calculated from the given basket. This method is
provided as a convenience to calculate updated payment request options when the shopper basket has changed. Data
in the given options
object like total
, displayItems
, and
shippingOptions
will be replaced in the returned object by values recalculated from the given
basket
and applicable shipping methods.
The following example shows the resulting output for a basket and sample options.
SalesforcePaymentRequest.calculatePaymentRequestOptions(basket, {
requestPayerName: true,
requestPayerEmail: true,
requestPayerPhone: false,
requestShipping: true
});
returns
{
currency: 'gbp',
total: {
label: 'Total',
amount: '2644'
},
displayItems: [{
label: 'Subtotal',
amount: '1919'
}, {
label: 'Tax',
amount: '126'
}, {
label: 'Ground',
amount: '599'
}],
requestPayerName: true,
requestPayerEmail: true,
requestPayerPhone: false,
requestShipping: true,
shippingOptions: [{
id: 'GBP001',
label: 'Ground',
detail: 'Order received within 7-10 business days',
amount: '599'
},{
id: 'GBP002',
label: 'Express',
detail: 'Order received within 2-4 business days',
amount: '999'
}]
}
Returns a JS object containing the payment request options to use when a Buy Now button is tapped, in the appropriate format for use in client side JavaScript. This method is provided as a convenience to adjust values in B2C Commerce API standard formats to their equivalents as expected by Stripe JS APIs. The following example shows options set in B2C Commerce API format, and the resulting output.
SalesforcePaymentRequest.format({
currency: 'GBP',
total: {
label: 'Total',
amount: '26.44'
},
displayItems: [{
label: 'Subtotal',
amount: '19.19'
}, {
label: 'Tax',
amount: '1.26'
}, {
label: 'Ground',
amount: '5.99'
}],
requestPayerPhone: false,
shippingOptions: [{
id: 'GBP001',
label: 'Ground',
detail: 'Order received within 7-10 business days',
amount: '5.99'
}]
});
returns
{
currency: 'gbp',
total: {
label: 'Total',
amount: '2644'
},
displayItems: [{
label: 'Subtotal',
amount: '1919'
}, {
label: 'Tax',
amount: '126'
}, {
label: 'Ground',
amount: '599'
}],
requestPayerPhone: false,
shippingOptions: [{
id: 'GBP001',
label: 'Ground',
detail: 'Order received within 7-10 business days',
amount: '599'
}]
}
true
if the credit card payment should be automatically captured at the time of the sale, or
false
if the credit card payment should be captured later.true
if the credit card payment should be automatically captured at the time of the sale, false
if the credit card payment should be captured later.
Returns a set containing the element types to be explicitly excluded from mounted components. See the element type constants in this class for the full list of supported element types.
Note: if an element type is both explicitly included and excluded, it will not be presented.
Returns a set containing the specific element types to include in mounted components. If the set is empty then all applicable and enabled element types will be included by default. See the element type constants in this class for the full list of supported element types.
Note: if an element type is both explicitly included and excluded, it will not be presented.
true
if the payment method should be always saved for future use off session, or
false
if the payment method should be only saved for future use on session when appropriate.true
if the payment method should be always saved for future use off session, false
if the payment method should be only saved for future use on session when appropriate.
null
if the default statement descriptor for your account will be used.null
if the account default will be used
Sets the data used to prepare the shopper basket when a Buy Now button is tapped. For convenience this method accepts a JS object to set all of the following properties at once:
sku
- SKU of the product to add exclusively to the basket (required)quantity
- integer quantity of the product, default is 1shippingMethod
- ID of the shipping method to set on the shipment, default is the site default shipping method for the basket currencyoptions
- JS array containing one JS object per selected product option, default is no selected optionsid
- product option IDvalueId
- product option value ID
The following example shows how to set all of the supported basket data.
request.setBasketData({
sku: 'tv-pdp-6010fdM',
quantity: 1,
shippingMethod: '001',
options: [{
id: 'tvWarranty',
valueId: '000'
}]
});
request.setBillingDetails({
address: {
city: 'Wien',
country: 'AT',
line1: 'Opernring 2',
postal_code: '1010'
},
email: 'jhummel@salesforce.com',
name: 'Johann Hummel'
});
For more information on the available billing details see the Stripe create PaymentMethod API documentation.
true
if the credit card payment should be automatically captured at the time of the sale, or false
if the credit card payment should be captured later.
Sets the payment request options to use when a Buy Now button is tapped. For convenience this method accepts a JS object to set all options at once. The following example shows how to set options including currency, labels, and amounts, in B2C Commerce API format.
request.setOptions({
currency: 'GBP',
total: {
label: 'Total',
amount: '26.44'
},
displayItems: [{
label: 'Subtotal',
amount: '19.19'
}, {
label: 'Tax',
amount: '1.26'
}, {
label: 'Ground',
amount: '5.99'
}],
requestPayerPhone: false,
shippingOptions: [{
id: 'GBP001',
label: 'Ground',
detail: 'Order received within 7-10 business days',
amount: '5.99'
}]
});
The total
option must match the total that will result from preparing the shopper basket using the
data provided to setBasketData(Object) in this request. The id
of each JS object in the
shippingOptions
array must equal the ID of the corresponding site shipping method that the shopper
may select in the browser payment app.
For more information on the available payment request options see the Stripe Payment Request object API documentation.
Note: The Stripe Payment Request country
option will be set automatically to the country of the
Salesforce Payments account associated with the Commerce Cloud instance and is not included here.
paypal.Buttons
call. For more information see the PayPal
Buttons API documentation.shipping_preference
value. For more information see the
PayPal Orders API documentation.user_action
value. For more information see the PayPal
Orders API documentation."Cart-Show"
false
no control will be provided. When set to true
a control may be provided,
if applicable for the shopper and presented payment method, but is not guaranteed.true
if the payment method should be always saved for future use off session, or false
if the payment method should be only saved for future use on session when appropriate.
null
to use the default statement descriptor for your account.null
to use the account default
elements.create
call for the given element type. For
more information see the Stripe Elements API documentation.stripe.elements
call. For more information see the Stripe
Elements API documentation.