PayPal Express Checkout payment method
The PayPal Express Checkout payment method enables customers to pay by credit card or from the security of their personal PayPal accounts. During checkout, the customer is redirected to the secure PayPal site to complete the payment information. The customer is then returned to the store to complete the remainder of the checkout process.
Some alternate PayPal solutions have the same GraphQL workflow when Express Checkout is enabled. The information in this topic also applies to the following PayPal solutions:
- Payments Standard
- Website Payments Standard
PayPal Express Checkout workflow
The following diagram shows the workflow for placing an order when PayPal Express Checkout is the selected payment method.
The following steps describe the flow of calls required to complete a typical PayPal Express Checkout authorization. A successful purchase requires that you send three mutations to PayPal, and the buyer must approve the purchase by logging in to PayPal.
When the buyer clicks a PayPal button, the frontend executes the
createPaypalExpressToken
mutation.The application requests a secure token from PayPal. The application gathers information in the specified cart and sends this information to PayPal as part of a request for a secure token.
If the token request succeeds, PayPal returns a token. You must include this token in subsequent steps.
The application sends the token to the client. The
createPaypalExpressToken
response includes the token and the PayPal URLs to be used in the next step.Redirect the customer to PayPal for approval. Depending on your implementation, the customer is either redirected to the PayPal login screen, or the customer enters their credentials in-context.
If the customer approves the payment, PayPal redirects the customer back to the payment confirmation page. The response includes the secure token and payer ID as GET parameters.
Set the payment method. The frontend runs the
setPaymentMethodOnCart
mutation. The payload includes the PayPal token, the payer ID, and the cart ID. The cart may have been updated since the token was requested, as shipping costs, taxes, and other adjustments might have been applied to the cart. The application submits the updated cart to PayPal.The application returns a
Cart
object.Place the order with the
placeOrder
mutation.The application sends the secure token, payer ID, and final cart information to PayPal.
PayPal captures the payment by transferring the funds from the customer account to the appropriate merchant account.
The application creates an order, ready for fulfillment.
setPaymentMethodOnCart
mutation
When you set the payment method to Express Checkout, you must set the code
attribute to paypal_express
. In addition, the payload must contain a paypal_express
object, which defines the following attributes:
Attribute | Data Type | Description |
---|---|---|
payer_id | String! | The unique ID of the PayPal customer |
token | String! | The token returned by the createPaypalExpressToken mutation |
Example usage
The following example shows the setPaymentMethodOnCart
mutation constructed for the PayPal Express payment method.
Request:
Copied to your clipboardmutation {setPaymentMethodOnCart(input: {cart_id: "rMQdWEecBZr4SVWZwj2AF6y0dNCKQ8uH"payment_method: {code: "paypal_express"paypal_express: {payer_id: "<PayPal_PayerID>"token: "<PayPal_Token>"}}}) {cart {selected_payment_method {codetitle}}}}
Response:
Copied to your clipboard{"data": {"setPaymentMethodOnCart": {"cart": {"selected_payment_method": {"code": "paypal_express","title": "PayPal Express Checkout"}}}}}