Apple Pay Sandbox testing in 2026

From time to time I need to assist merchant to integrate Apple Pay. Purely reading the Apple Pay Testing page https://developer.apple.com/apple-pay/sandbox-testing/ does not reveal the integration challenge.

The challenge of Apple Pay integration falls into 2 parts:

  1. Source Code development
  2. The preparation of a usable Apple Pay Sandbox account

Source code development is usually very straight forward, and easy to tackle, 99% the challenge fall onto Apple Pay Sandbox account preparation.

Assume you already follow the integration guide of your Payment Service Provider, to allow you perform test Apple Pay payment, as a tester / buyer, you need an Apple Pay Sandbox account. Either your payment service provider provide you one, otherwise you will need to Subscribe to the Apple Developer Program:

https://developer.apple.com/programs

You need to note that, it requires to subscribe the $99/year Apple Developer Program. The free Apple Developer account does not offer you the Apple Pay Sandbox account.

Only the paid membership allows you to login to AppStoreConnect, where you can create Sandbox Apple Pay account.

This is the AppStoreConnect for Free Apple Developer: https://appstoreconnect.apple.com/

And this is how AppStoreConnect looks like for a paid Apple Developer Program account:

To create Sandbox Apple Pay account:

  1. Login to App Store Connect (with Apple account subscribed Apple Developer Program)
  2. Go to Users And Access
  3. Go to Sandbox section, click “+”

Then fill some “basic” information:

Here, you need to use a valid Email address that:

  1. NEVER been an Apple account.
  2. Really able to receive email, as Apple wills end for email verification
  3. You will also need to define the account password for the sandbox account

Once done, provide the login email and password to the tester (The one that is going to use this Apple Pay Sandbox account). He will receive the Apple Email verification email. Follow the email guide to verify the email address.

If you think you have the account ready, this is tricky. Using the email and password to login to a MacOS/iOD device, you will likely got ACCOUNT_UNAVAILABLE error.

After reading lots of Apple Community thread, here is additional steps to get the account really usable:

  1. Go to https://www.icloud.com/
  2. Login with the Sandbox Apple account
  3. Enable 2FA, setup Safety Questions and Answer (and ensure you remember the Question and answer)
  4. Use a valid Phone number that can receive SMS for 2FA
  5. Agree all T&C

You cannot get through the process just in the Mac/iPhone Settings app, the process need to be done in the iCloud website.

After the process done, you can now login your testing device with the Sandbox Apple account.

Once the device is logged in with the Sandbox Apple account, you can then try adding Test Card.

Test Card adding is also a problematic part, you can find test card from Apple Pay testing guide:

https://developer.apple.com/apple-pay/sandbox-testing

In Mac, you go to System Settings > Wallet & Apple Pay

From experience, the obstacles of this step include:

  1. Adding Visa test card often fail upon accepting the T&C
  2. The testing that being added has been wisely used, Apple seems limited the no. of time a card being added and prompt Device Limit Reached error.

So my suggestion are:

  1. Try using card other than Visa
  2. If you hit the Device Limit Reached, try other card~

I hope the shared info help you get through the obstacle. And I hope Apple would optimize the developer experience on this part.

Beyond the Button: Why the PayPal Orders API is the Heart of Modern Checkout

For many years, integrating PayPal meant one thing: adding a “PayPal Checkout” button. If you’ve been in the e-commerce space for a while, you likely remember the days of WPS (Web Payments Standard) or the NVP/SOAP (Classic) APIs. While these served us well, they were largely limited to PayPal-branded payments.

Today, the landscape has changed. Merchants need to offer a variety of payment methods—from credit cards and digital wallets to local payment schemes—without managing dozens of different integrations.

Enter the PayPal REST API and the concept of the PayPal Order. It is no longer just a way to pay with PayPal; it is a powerful, unified container for almost any way your customer wants to pay.

The Evolution: From Legacy to REST

If you are still relying on legacy NVP/SOAP integrations, you are missing out on the flexibility of the modern web. Legacy integrations were built primarily for PayPal-to-PayPal transactions.

By moving to the PayPal REST API, you unlock a “Single Integration” capability. This means the same technical foundation used for a standard PayPal button also powers:

  • ACDC (Advanced Credit and Debit Cards): Direct card entry on your site.
  • Digital Wallets: Apple Pay and Google Pay.
  • APMs (Alternative Payment Methods): Crucial for EU regions, such as iDEAL, Bancontact, and Sofort.

What exactly is a PayPal “Order”?

At the center of this ecosystem is the Order. Think of a PayPal Order as a secure container for a payment request. It doesn’t just represent a “PayPal transaction”; it describes the intent of a transaction.

When you create an order via the API, you are defining:

  1. The Amount: The currency and breakdown of the cost.
  2. The Experience: How the checkout should look and feel.
  3. The Payer’s Intent: It holds the payer’s consent once they “approve” the payment using their chosen instrument (PayPal balance, a credit card, or a digital wallet).

Whether your customer is using Apple Pay or their PayPal account, the process always starts with the creation of a PayPal Order to hold these details.

The Lifecycle: Approval vs. Capture

One of the most important concepts for developers to understand is that Approval is not the same as Payment.

The workflow generally follows these steps:

  1. Create Order: You define the payment details.
  2. Payer Approval: The customer gives consent. This can be handled via the JavaScript SDK onApprove() callback, a redirect to a return_url, or monitored via the CHECKOUT.ORDER.APPROVED webhook.
  3. Capture: This is the final step. The merchant must explicitly call the “Capture” API to actually move the funds.

Warning: Just because an order is “Approved” doesn’t mean the money is in your account. A capture attempt can still fail. For instance, PayPal’s Risk Engine might flag the transaction.

As a developer, you must handle the response of the Capture call:

  • 200 OK with Status COMPLETED: Success! The funds are secured.
  • 422 Unprocessable Entity: This indicates an issue with the capture (e.g., instrument declined or risk triggered). Your integration should be prepared to handle these errors gracefully.

Persistence and Best Practices

It is important to note that a PayPal Order is ephemeral. It lives in a cache and will expire after a certain period if not captured. Once an order is successfully captured, the data persists as a permanent transaction record.

For better reconciliation and customer support, merchants are strongly advised to store the following in their own database:

  • PayPal Order ID: The initial container ID.
  • Capture ID / Authorization ID: The actual transaction identifier for the movement of funds.
  • Refund IDs: Associated with any subsequent return of funds.

The Order ID acts as the “parent” that links all these associated transaction pieces together, making it much easier to track the lifecycle of a purchase.

Ready to Upgrade?

The shift from “just a button” to a comprehensive “Order-based” system allows you to scale your business globally with minimal code changes. By mastering the PayPal Order, you provide your customers with the payment methods they trust while maintaining a clean, unified backend.

For deep dives into integration snippets and full API references, head over to the PayPal Developer Portal.

Lessons Learned from Integrating Apple Pay and Google Pay

Integrating digital wallets like Apple Pay and Google Pay can significantly enhance checkout experiences, but the integration process—especially for developers—comes with its own set of challenges. This short sharing summarizes key lessons learned and practical tips that can save you hours of troubleshooting.

Integrating Apple Pay: Complex but Essential

Directly integrating Apple Pay can be a complex and sometimes frustrating process. While the official Apple Pay documentation is comprehensive, it’s often too abstract for real-world implementation. A more practical approach is to integrate Apple Pay through a Payment Service Provider (PSP) such as PayPal, Stripe, or Adyen, which simplifies much of the workflow.

Sandbox Testing and Developer Access

Apple Pay testing has a high entry barrier:

  • You must enroll in the Apple Developer Program (paid subscription).
  • Only then can you create a sandbox tester account through App Store Connect.
  • You must log in with that tester account on a physical device to simulate Apple Pay.

However, even after setup, adding test cards from the Apple Pay Sandbox Testing page often fails. Common errors include:

  • “Card Device Limit” — the card has already been added to too many devices.
  • Generic Visa failures — card addition fails without reason.

In practice, you’ll need to try all available test cards one by one until one finally works.

HTTPS and Domain Verification Issues

Testing Apple Pay on the web introduces another layer of complexity. Your test site must be hosted on HTTPS with a verified domain. Unfortunately, Apple’s domain verification flow is unstable at times, and even when using a PSP, verification can fail without clear reasons. This unpredictability makes end-to-end testing frustratingly inconsistent.

Debugging Apple Pay Integration

When the Apple Pay payment sheet appears, browser DevTools become inaccessible. You also can’t use alert() for diagnostics—it will hang the payment sheet. The workaround is to log everything to the console and inspect it after the session ends. Having detailed console output is your best friend for debugging authorization responses and payment tokens.

Integrating Google Pay: Simpler Setup, Different Challenges

Compared to Apple Pay, Google Pay is far more developer-friendly in setup. You can test without a paid account, and the sandbox setup is straightforward.

To start testing, simply join the Google Test Card Suite group. Once your Google account is whitelisted, Google Pay automatically preloads a set of test cards—no manual entry required.

Troubleshooting Google Pay Errors

Google Pay’s error handling, however, can be extremely opaque. Most runtime failures return the same generic message:

“The merchant is having trouble accepting your payment right now…”

This error hides several potential issues, from invalid merchant IDs to malformed transaction data. When working with Google Pay via a PSP, you may skip merchant account setup entirely, but this can still trigger integration errors if the payment request is misconfigured.

The most puzzling example I encountered is error code OR_BIBED_06. Documentation and even Google Gemini describe it vaguely as a “merchant configuration issue.” In reality, the root cause in my case was a data type mismatch:

The totalPrice has to be a String

Google Pay expected totalPrice as a string, not an integer. Converting it fixed the issue instantly—a reminder that even small data inconsistencies can silently break the payment flow.

Key Technical Takeaways

  • Integrate through PSPs like Stripe or PayPal to simplify merchant validation and cryptography.
  • Always enable HTTPS and verify your domain early in the setup process.
  • Automate error logging for Apple Pay since debugging during the sheet display is nearly impossible.
  • Join Google’s Test Card Suite for frictionless sandbox testing. (Nowadays seems to even skip this step)
  • Treat Google Pay error codes skeptically—test for data and property type mismatches first.

Apple Pay and Google Pay both have great APIs, but their integration experience varies widely. Expect to spend more time debugging Apple’s environment setup and more time deciphering Google’s cryptic error responses. Once you’ve conquered both, your checkout will be faster, more secure, and far better optimized for modern users.

From Idea to MVP: How Vibe Coding and Replit Helped Me Create a Fun Changjie Game

I have to admit, Vibe Coding feels a bit like fantasy—especially when everyone talks about how a non-tech person can build a website or app without writing a single line of code. As someone with a tech and coding background, I can say this statement is true, but there’s a lot more to consider if you want to publish your deliverable to the public.

Honestly, I didn’t realize how amazing Vibe Coding is until I tried following some YouTube KOLs using Replit. Before diving into Vibe Coding, I had been thinking about building a web game for my kids to learn how to type Chinese (Changjie). Back in the day, I learned Changjie by playing PC games where Chinese characters fall from the top and you have to type them to score points.

So, I tried Vibe Coding by telling it:

I want to build a MVP app for helping kids to learn Chinese typing – Changjie.
The app should be mobile friendly, kids shall see some Simple chinese character fall down from the sky to the ground.
Kids need to type the word in the input field to match the falling chinese character in order to gain point.
The game shall shows a garden with Chinese character in a various fruits fall down.

Replit’s agent, the bot I interacted with, thought for a few seconds and replied:

I’ll help you create an engaging Chinese typing game for kids learning Changjie input method. Let me prepare a plan for this interactive educational game.

App type: Modern web app

A mobile-friendly educational game where kids learn Changjie Chinese typing by matching falling fruit-themed characters

I’ll include the following features:

  • Falling character game mechanic with simplified Chinese characters dropping from top to bottom at steady pace
  • Changjie input field where kids type decomposed character codes to match falling characters
  • Point scoring system that awards points for correct matches and displays current score
  • Garden-themed visual design with characters displayed as colorful falling fruits (apple, orange, watermelon, etc.)
  • Mobile-friendly responsive interface optimized for touch devices and small screens
  • Character pool with 15-20 common simplified Chinese characters suitable for beginners
  • Game speed adjustment based on successful matches to maintain engagement
  • Visual feedback animations when characters are matched correctly or missed

After a few more minutes of planning and coding, BOMB! The preview screen showed a beautiful, functional game:

Not only did it look good, it worked perfectly. Characters fell, I typed, and I earned points. I was honestly surprised! I didn’t write any code, nor worry about the graphics. It felt like the boss gave an order and the staff instantly delivered.

I continued interacting with the Replit agent, adding tweaks like:

  • Tuning game speed
  • Adding fireworks animation on correct input
  • Accepting both English keywords and Chinese input
  • Adding different challenge modes (time length and speed)
  • Adding ranking records

After 30 minutes of random trials, I ended up with this:

Everything sounded great so far. But as the game used Vite, I wanted to deploy it on Heroku, which initially failed. So I asked Replit to convert the project to support Heroku deployment. It understood immediately and reprocessed the entire codebase for Heroku compatibility.

Sadly, at this point I consumed all my free-tier resources. Here’s the hosted link:

https://changjie-game-302235826fdc.herokuapp.com

It worked great on my laptop, but if you read this on mobile and try the game, you’ll quickly realize—it’s completely NOT mobile-friendly, despite my initial requirement. The typing triggers the OS keyboard, which takes half the screen and makes the game unplayable on mobile. This taught me a few lessons about Vibe Coding.

Lessons from my first Vibe Coding experience

  • Vibe Coding greatly simplifies starting a project—from idea to deliverable. Non-coders can create attractive webpages and apps easily. However, the quality and readiness for production depend heavily on how clearly and accurately you describe what you want.
  • You can build something impressive, but how well does it work? If it’s a SaaS, how do you deploy and host it? These still require technical expertise.
  • Vibe Coding can produce a nice output like mine, but real-world testing on target devices remains essential. For example, my game’s UX suffers because the OS keyboard hijacks half the screen on mobile. UX designers, QA experts, and real user testing still safeguard such critical aspects.

Despite the challenges, Vibe Coding is very impressive. I’m working on other projects with Replit, and it helps me scaffold and refactor code quickly based on my suggestions. I encourage you to give it a try too.

If you like also tried Replit and find it good, use my referral link below to help both of us earn $10 free credit:

https://replit.com/refer/gordon-chan

Shopify’s Unannounced New Collection Pagination Parameter ‘phcursor’ Breaks Common Infinite-Scroll Function

Recently, a few clients and friends reached out to me with a puzzling issue: their Shopify collection pages’ infinite scroll functionality suddenly stopped working as expected. The symptoms were consistent across different stores:

  1. The problem occurs specifically on collection pages
  2. The infinite scroll keeps re-appending the same “next page” content from the initial page visit, instead of loading subsequent pages properly.
    For example:
    • If a visitor lands on page 1, infinite scroll keeps appending page 2 repeatedly;
    • If a visitor lands directly on page 5, infinite scroll keeps appending page 6 repeatedly

Initial Thoughts and Investigation

At first glance, it might seem like an outdated infinite scroll plugin or a browser update causing the problem. However, two key points suggested otherwise:

  1. The issue was reported by multiple merchants using different infinite scroll plugins (e.g., infinite-scroll.com)
  2. All affected stores were on Shopify, not other platforms like Shopline or WooCommerce

This strongly indicated that the root cause was a recent change on Shopify’s side.

How Infinite Scroll Plugins Work and the Discovery of the phcursor Parameter

Infinite scroll plugins typically monitor pagination links on collection pages, detect URL patterns, and then fetch the next page content accordingly. While inspecting the pagination links, I noticed an unfamiliar URL parameter: phcursor.
Given the prefix ph and the word “cursor,” it’s reasonable to assume this parameter acts as a pointer or cursor for Shopify’s internal product listing queries to improve lookup performance.
Searching for phcursor led me to a Shopify developer community discussion where others reported similar problems:

https://community.shopify.dev/t/a-new-phcursor-pagination-parameter/17715

Shopify Community Thread on phcursor

What’s happening is that Shopify now uses this new phcursor parameter to indicate the starting product of the next page. When this parameter is present, Shopify returns products starting from that cursor position, ignoring the traditional page number parameter.

The problem arises because the infinite scroll plugin inherits this phcursor parameter with every subsequent page request. As a result, the plugin keeps appending the same “next page” content repeatedly, causing an infinite loop of duplicated products.

I believe Shopify introduced this parameter to boost collection page performance. However, since it’s a newly introduced, undocumented parameter, it shouldn’t be mandatory for pagination to work correctly—especially for third-party plugins.

How to Fix the Issue

Currently, there are 2 practical approaches I can think of to resolve this:

  1. Adjust Your Infinite Scroll Plugin Logic
    Modify your infinite scroll plugin’s code to explicitly ignore or remove the phcursor parameter when constructing URLs for subsequent pages. This approach is plugin-specific and may require a developer familiar with your chosen plugin;
  2. Remove the phcursor Parameter from Pagination Links via JavaScript
    Since infinite scroll plugins operate in JavaScript, you can add a small script to your theme that strips out the phcursor parameter from pagination links before the infinite scroll plugin runs. This approach is more universal and doesn’t require modifying plugin code directly.

I won’t share the exact code here, as it should be tailored to your store’s theme and plugin setup. I recommend consulting a Shopify developer to implement the best solution for your site.

Final Thoughts

Shopify regularly rolls out major updates quarterly and often introduces subtle changes in between. While these improvements—like the phcursor parameter—aim to enhance performance and user experience, unannounced changes that inadvertently break common third-party features can be frustrating for merchants and developers alike.

I hope Shopify will consider providing earlier announcements or documentation when introducing such changes to help merchants and developers adapt smoothly.

If your store is experiencing this infinite scroll issue, feel free to reach out. I offer affordable freelance support to help you implement the necessary fixes quickly and efficiently.

Thank you for reading! Let’s keep Shopify stores running smoothly together.

Supplementary

9 Jul 2025:
2 days after I wrote this blog, I found an article wrote by Shopify Engineer on 12 Aug, 2019:
https://shopify.engineering/pagination-relative-cursors

This further confirms my guess that Shopify is rolling out changes to improve Collection page performance.

Further reading

Integrating PayPal Agent Toolkit with Node.js: A Step-by-Step Tutorial

PayPal announces its Agent Toolkit in late April 2025, it is a remarkable step in this Agentic Era, allowing developers to integrate PayPal service or create payment workflow using natural language, making operations more intuitive.

As it is a beginning, I have tried it out with using NodeJS as the programming language and share it in form of a video tutorial:

Video url: https://youtu.be/SXngYSKAJQE

Github Repo: https://github.com/gordonchanhk/PayPal-Agent-Toolkit-Demo

I base on the example code in https://paypal.ai > Agent Toolkit > Docs – https://developer.paypal.com/tools/agent-toolkit/ and walk through the coding from ground. Here are couple highlights, which can act as hint to anyone who encountered trouble when trying out the Agent Toolkit:

  1. The example code doesn’t define getModel() and generateText() clearly. You shall need to define the function definition for getModel(), while generateText() is a AI SDK function.
  2. The Vercel AI SDK example code doesn’t config the Agent Toolkit to use Sandbox mode, you shall need to add 'context': {'sandbox': true} under the configuration node upon instantizing the Agent Toolkit instance.
  3. For some instance, you may need to use a custom AI endpoint and different API Key environment variable, use createOpenAI() instead of openai() allows you to pass apiKey and baseUrl.

My example is just showcasing the most base example. It uses terminal instead of building an interactive webpage with SPA. As a developer you shall define your way how to let user to enter the command / the prompt, and shows the response in a way you wish.

Look forward there are more showcase showing how to use PayPal Agent Toolkit.

To learn more about PayPal’s AI related info, check out https://paypal.ai

Must read article if you are interested about PayPal

Just come across a very long but detail article talking about PayPal history, how it transforms and what it could be when I writing my blog about Fastlane:

https://www.thisweekinfintech.com/paypal-fintech-og

Even I am Solutions Engineer in PayPal, this article has much more interesting fun facts as well as insight to learn.

Credit to Jas Shah!

Your Business Needs PayPal Fastlane in 2025: Key Benefits and Differences Explained

As of February 2025, PayPal Fastlane supports U.S. merchants and buyers. However, this shouldn’t deter you from exploring its benefits, especially if you engage in cross-border sales with U.S. buyers.

Understanding PayPal Fastlane

PayPal Fastlane redefines the payment experience by combining key PayPal products into a streamlined solution designed for merchants. It simplifies the checkout process for returning customers, focusing on reducing the steps and information required during guest checkouts—a common pain point that leads to significant drop-offs.

Streamlined Guest Checkout

For buyers using Fastlane-powered checkouts, there is an option to create a Fastlane Profile. During the initial checkout, basic information such as email, phone number, and shipping address is collected. Card information is securely tokenized and stored within PayPal’s system.

Screenshot from https://developer.paypal.com/studio/checkout/fastlane/getstarted

When a buyer with a Fastlane Profile returns to make a purchase on any Fastlane-enabled website, they simply enter their email. This action triggers a One-Time Password (OTP) sent to their associated phone number. By entering the OTP, the merchant gains access to the buyer’s shipping address and vaulted payment information.

Screenshot from https://developer.paypal.com/studio/checkout/fastlane/getstarted

Comparison with Traditional Guest Checkout

In contrast to traditional guest checkouts, where buyers must either sign up for a merchant’s site to save their card information or repeatedly enter shipping details, Fastlane significantly simplifies the process. Buyers without a PayPal account can still complete transactions using their email and phone for identification, ensuring a safe and straightforward checkout experience.

The Benefits of adopting Fastlane

Some might argue that merchants won’t benefit if their buyers don’t have Fastlane profiles. While this is partially true, PayPal has partnered with several eCommerce platforms to facilitate Fastlane profile acquisition. For instance, Black Forest Decor, a small business, has reported improvements in guest checkout conversion after adopting Fastlane. Larger platforms like BigCommerce have also noted similar enhancements in conversion rates and reduced checkout times.

Additionally, PayPal has collaborated with major eCommerce platforms like Adobe Commerce (Magento) and Salesforce Commerce Cloud to further promote Fastlane adoption. It even extends its reach by working with software companies that develop plugins for various platforms, ensuring a broader integration of Fastlane into the eCommerce landscape.

With numerous tech giants investing in checkout innovations, it’s essential for merchants to stay ahead of the curve. Familiarizing yourself and your tech team with Fastlane can position your business to benefit from this growth in streamlined payment solutions.

Technical Breakdown

PayPal Fastlane is formed by a mix of existing PayPal products. Since 2024, PayPal has been promoting the PayPal Commerce Platform (PPCP), which includes a new unbranded solution for direct credit and debit card payments known as Advanced Credit/Debit Card (ACDC). This means that PayPal is not limited to its branded checkout option; it also supports direct card payments. Initially launched only in the U.S., PPCP is set to expand into several key regions, aiming to enhance PayPal’s share of the checkout market.

Additionally, PayPal has introduced a feature called Save Payment Method, or Vaulting. This works similarly to Billing Agreements or Reference Transactions but utilizes modern tokenization to enable repeat purchases. It is particularly beneficial for merchants offering member checkouts, as the saved payment methods are linked to the merchant’s members.

Both ACDC and Vaulting were evolved from Braintree technology (observed from HTML source code and network requests). However, integrating ACDC and Vaulting are not straightforward; it requires code changes on both the front end and back end, making it suitable for merchants with dedicated development team.

Fastlane represents a significant shift in the guest checkout experience. While it does require some code integration by merchants, PayPal’s partnerships with key eCommerce platforms and its availability for Braintree merchants make Fastlane more accessible. The saved shipping information and payment methods are also not tied to specific merchants or websites. For example, a customer who opts into a Fastlane Profile on Website A can enjoy a simplified checkout on Website B by simply providing their email and entering a One-Time Password (OTP). The checkout process will automatically display their previously saved shipping information and payment methods from Website A.

Although it seems Website B is benefited while Website A not, it appearantly every merchants who join now are not Website A.

Differences Between PayPal Checkout and Fastlane

While both PayPal Checkout and Fastlane are powered by PayPal, they serve different purposes:

  • User Accounts: PayPal Checkout typically involves users logging into their PayPal accounts, allowing them to review payment histories. In contrast, Fastlane is designed for users without PayPal accounts.
  • Branding: PayPal Checkout is a branded solution that offers features like Pay Later and PayPal Credit. Fastlane, on the other hand, is unbranded, primarily facilitating credit card transactions.
  • Protection Policies: PayPal Checkout benefits from Buyer/Seller Protection policies, whereas Fastlane does not.

Conclusion

PayPal aims to partner with merchants by providing an optimized checkout experience for customers. Embracing this payment experience can help expand business opportunities by ensuring a smooth checkout process for both guest and returning customers. It’s time for merchants to familiarize themselves with Fastlane and integrate it into their payment systems to benefit from the future of eCommerce.

Integrate PayPal in 2025

Founded in 1998, PayPal provides a secure way to conduct transactions over the internet without sharing sensitive financial information, such as credit card numbers.

Standard PayPal Checkout vs Advanced PayPal Expanded Checkout Integration

(Edit 12 Feb 2025: PayPal changed their solution name in Jan 2025)

Over the years, PayPal has evolved beyond just offering a Checkout Button for digital wallet transactions. Today, it provides various payment options, including local payment methods (often referred to as alternative payment methods) like Giropay and iDEAL:

In addition, PayPal supports direct credit and debit card transactions (known as Advanced Credit/Debit Card or ACDC), as well as Apple Pay and Google Pay:

You can review both Standard PayPal Checkout and Advanced PayPal Expanded Checkout integration options to determine what best fits your business needs.

Save Payment Method

Beyond one-time checkouts, which typically require buyers to log in to PayPal and navigate through the PayPal checkout flow, merchants can enable Reference Transactions to integrate the Save Payment Methods feature (also known as Vaulting):

By utilizing the PayPal JavaScript SDK, you can implement the PayPal button with the ability to save payment methods during purchase or for future use. This ensures a smoother checkout experience for members, without the need to store sensitive payment data on the merchant’s side.

PayPal Pay Later

If you are a merchant in the United States, United Kingdom, Germany, France, Italy, Spain, or Australia, consider promoting the PayPal Buy Now, Pay Later option prominently on your product pages. This messaging informs buyers that they can make purchases now and pay later when checking out with PayPal. Such options can improve conversion rates, attract new customers, and increase order values, as buyers are aware of the financing options available to them. Additionally, buyers can track their payment history and outstanding payments within their PayPal accounts.

Fastlane

PayPal partners with various shopping cart and e-commerce platforms, some of which have integrated Fastlane:

https://developer.paypal.com/studio/checkout/fastlane

Fastlane is a blend of PayPal solutions, utilizing drop-in components that combine ACDC and vaulting. This simplifies the storage of payment methods using a combination of email, mobile, and One-Time Password (OTP). When a buyer checks out on a Fastlane-integrated website and consents to store their payment information, they can use their stored payment method on other participating websites by entering their email and receiving an OTP, without the need for memorizing password for login.

No Code Solution

For small to medium-sized businesses (SMBs) without developers, PayPal offers a no-code solution to collect payments. This option is suitable for those with fewer transactions:

https://developer.paypal.com/studio/checkout/no-code

You can generate a payment link, allowing the buyer to enter the amount, and then wait for payment notification to confirm the sale.

PayPal continues to offer Invoicing and Subscription services. While these features aren’t new, they remain essential tools for small and medium-sized businesses (SMBs) to collect payments conveniently:

To conclude,

Now you should have a broader understanding of what PayPal offers. To experience these features, you need to integrate with PayPal’s latest solutions. Many legacy integrations, such as Web Payment Solutions (WPS), Payment Pro, PayPal Pro, and NVP/SOAP, are still prevalent across the internet. If you use shopping carts like WooCommerce or OpenCart, ensure you are utilizing modern payment plugins. Various e-commerce platforms are continually upgrading their PayPal integrations to provide enhanced features for merchants.

Checkout PayPal Developer portal for more detail: https://developer.paypal.com/ for deeper understanding of PayPal solutions

Common PayPal Integration Pitfalls: How to Avoid Costly Errors

In my experience assisting various merchants with PayPal integration, I’ve learned valuable lessons about common mistakes that can lead to costly errors. In this blog, I’ll highlight these pitfalls and provide guidance on how to avoid them to ensure a smooth integration process.

Common Pitfalls or Misunderstandings

  1. Avoid Using Legacy, Deprecated PayPal Solutions
    • PayPal has been around for a long time, and while it offers various solutions, many are legacy or deprecated (e.g., Xoom, Web Payment Standard, PayPal Payment Pro, NVP-SOAP). Sticking to these can lead to issues with functionality and support.
  2. Misconception About Member Checkout Only
    • Many believe PayPal only supports member checkouts. However, PayPal allows guest checkouts without requiring users to log in, making it easier for customers to complete their purchases.
  3. Lack of Technical Support for Legacy Solutions
    • Deprecated solutions often come with limited technical support. PayPal System Upgrades could lead to regressions happens on legacy and deprecated solutions that require longer troubleshooting times. Nowadays, PayPal promotes REST API and JS SDK, which offer enhanced capabilities, including support for other payment service providers.

Deep Dive into Integration

  1. REST API as the Promoted Integration Approach
    • While REST API is the recommended integration method, PayPal no longer provides server SDKs. Merchants should use their preferred programming languages to make REST API calls effectively.
  2. Understanding PayPal Checkout Steps
    • The PayPal Checkout process involves various steps, some requiring payer action and others requiring merchant action. A PayPal Checkout is initiated as an Order Request via the Order V2 API. It’s crucial to track the order’s status through attributes like purchase_units[0].payments to ensure payments are completed properly.
  3. Order Capture Requirement
    • After creating a PayPal Order and being approved by the payer, merchants must perform the payment capture, either through a JS SDK or an API-only approach. PayPal doesn’t auto-capture. And an approved orders will expire in 6 hours if left idle.
  4. Immediate Order Capture Response
    • Merchants can receive an immediate response from the Order Capture API, rather than relying on Instant Payment Notification (IPN) or webhook, which may have delays. This approach optimizes the checkout experience by reducing wait times for payment status.
  5. Disable Non-Instant Payment Methods
    • PayPal supports non-instant payment methods like bank deposits (eChecks), which can delay fulfillment. Merchants can avoid this by adjusting account settings to only accept immediate payment methods, ensuring quicker transaction processing.
    • Merchant can disable this from Account Settings > Website Payment preference. Or specify the checkout experience to only accept IMMEDAITE PAYMENT METHOD: payment_source.paypal.experience_context. payment_method_preference = ‘IMMEDIATE_PAYMENT_REQUIRED’.
  6. Managing Unsuccessful Payments
    • Payment failures can occur for various reasons, including declines by PayPal’s risk engine or issues with the buyer’s card. Merchants need to handle declined payments effectively and communicate clearly with customers about their payment status.
  7. Addressing Fraud Attempts
    • Fraudsters may attempt to exploit the checkout process by initiating incomplete transactions. Merchants should focus on capturing amounts rather than just conversion rates (CR) to assess the effectiveness of their checkout processes.

Conclusion

By addressing these common pitfalls during PayPal integration, merchants can avoid significant issues and leverage PayPal’s features to benefit their business. Proper handling of these aspects not only saves trouble but also enhances the overall payment experience for customers.