-
Notifications
You must be signed in to change notification settings - Fork 3
Storefront Interactions With PayPal
After you have configured and enabled the paypalr
payment module, the module displays its selection(s) during the payment phase of the checkout process, either on the checkout_payment
(3-page checkout) or checkout_one
(OPC) page.
PayPal Selected | Credit Card Selected |
---|---|
![]() |
![]() |
If the customer chooses to pay via their PayPal Wallet, the payment module sends the customer to PayPal on the transition from the payment to confirmation phase of the checkout process. Once the customer confirms their order, the order is recorded at PayPal during the checkout_process
page's processing.
If the customer chooses to pay via credit card, the card-related information is checked for "sanity" on the transition from the payment to confirmation phase of the checkout process. Upon order confirmation, the order is recorded at PayPal during the checkout_process
page's processing. If the credit card's processor required 3DS validation, the customer will be sent to that validation page prior to the order being recorded.
These sections represent the sequencing between the paypalr
payment module, PayPal, the payment module's "webhook" and (optionally for credit card orders) a 3DS-validation link.
sequenceDiagram
participant paypalr
participant PayPal
participant webhook
rect rgb(191, 223, 255)
Note over paypalr,PayPal: Zen Cart Checkout, Confirmation Phase
paypalr->>+PayPal: createOrder(paypal) request
PayPal-->>-paypalr: createOrder(paypal) response
Note over PayPal: Uses PAY_NOW instead of CONTINUE<br>if using OPC and not<br>in the list of payment<br>modules requiring confirmation
paypalr->>+PayPal: confirmPaymentChoice request
PayPal-->>-webhook: return_url = 'return'
activate webhook
webhook-->>-paypalr: Customer has chosen payment method
end
rect rgb(152, 251, 152)
Note over paypalr,PayPal: Zen Cart Checkout, Process Phase
paypalr->>+PayPal: captureOrAuthorizePayment request
PayPal-->>-paypalr: captureOrAuthorizePayment response
end
sequenceDiagram
participant paypalr
participant PayPal
participant webhook
rect rgb(191, 223, 255)
Note over paypalr,PayPal: Zen Cart Checkout, Confirmation Phase
paypalr->>+PayPal: createOrder(paypal) request
PayPal-->>-paypalr: createOrder(paypal) response
end
rect rgb(152, 251, 152)
Note over paypalr,PayPal: Zen Cart Checkout, Process Phase
paypalr->>+PayPal: createOrder(card) request
PayPal-->>-paypalr: createOrder(card) response
end
sequenceDiagram
participant paypalr
participant PayPal
participant 3DS
participant webhook
rect rgb(191, 223, 255)
Note over paypalr,PayPal: Zen Cart Checkout, Confirmation Phase
paypalr->>+PayPal: createOrder(paypal) request
PayPal-->>-paypalr: createOrder(paypal) response
end
rect rgb(152, 251, 152)
Note over paypalr,PayPal: Zen Cart Checkout, Process Phase
paypalr->>+PayPal: createOrder(card) request
PayPal-->>-paypalr: createOrder(card) response
paypalr->>+3DS: 3DS Authorization request
activate 3DS
3DS-->>+webhook: return_url = '3ds_return'
deactivate 3DS
activate webhook
webhook-->>-paypalr: Successful 3DS response
paypalr->>+PayPal: captureOrAuthorizePayment request
PayPal-->>-paypalr: captureOrAuthorizePayment response
end