When using Smart buttons from the JavaScript SDK and during guest checkout the user is required to enter card information twice.
Sets to reproduce, using the PayPal online example: https://developer.paypal.com/demo/checkout/#/pattern/client
Click the PayPal (yellow pay now) button and then the new PayPal window opens.
Click the gray "Pay with Debit or Credit Card", this navigates to the "PayPal Guest Checkout" page. (https://www.sandbox.paypal.com/checkoutweb/signup?...)
Enter billing and card information and click "Continue", this navigates to a new "PayPal Guest Checkout" page after a very long wait. (https://www.sandbox.paypal.com/webapps/xoonboarding?...)
The user must again billing and card information and click "Pay Now" and completes successfully.
I have deployed a similar staging implementation and have the same results, how do I prevent the need for the user to enter the exact same information twice?
I've tried setting the application_context user_action below as documented but results in a PayPal 400 server error when clicking the Smart Button.
application_context: {
shipping_preference: 'NO_SHIPPING',
user_action: "commit"
}
Payments (paypal.com) application_context
brand_name
string
A label that overrides the business name in the merchant's PayPal account on the PayPal checkout pages.
Maximum length: 127.
locale
string
The locale of pages that the PayPal payment experience displays. Please refer here for list of supported local codes. Defaulted to en_US if not provided or invalid.
landing_page
string
The type of landing page to show on the PayPal site for customer checkout. To use the non-PayPal account landing page, set to Billing. To use the PayPal account log in landing page, set to Login.
shipping_preference
enum
The shipping preference.
The possible values are:
NO_SHIPPING. Redacts the shipping address from the PayPal pages. Recommended for digital goods.
GET_FROM_FILE. Uses the customer-selected shipping address on PayPal pages.
SET_PROVIDED_ADDRESS. If available, uses the merchant-provided shipping address, which the customer cannot change on the PayPal pages. If the merchant does not provide an address, the customer can enter the address on PayPal pages.
user_action
string
The user action. Presents the customer with either the Continue or Pay Now checkout flow:
FlowActionDescriptionPay Nowuser_action=commitAfter the customer is redirected to the PayPal payment page, shows the Pay Now button. Use this option when you know the final amount when checkout is initiated and you want to process the payment immediately when the customer clicks Pay Now.
Continue
user_action=continue
After the customer is redirected to the PayPal payment page, shows the Continue button. Use this option when you do not know the final amount when you initiate the checkout flow and you want to redirect the customer to the merchant page without processing the payment.
preferred_payment_source
object
The preferred payment source for the payer. Currently supported only for PayPal Billing Agreements. If provided, checkout experience will have this payment source pre-selected for the
... View more