KoderKoder.ai
Bảng giáDoanh nghiệpGiáo dụcDành cho nhà đầu tư
Đăng nhậpBắt đầu

Sản phẩm

Bảng giáDoanh nghiệpDành cho nhà đầu tư

Tài nguyên

Liên hệHỗ trợGiáo dụcBlog

Pháp lý

Chính sách bảo mậtĐiều khoản sử dụngBảo mậtChính sách sử dụng chấp nhận đượcBáo cáo vi phạm

Mạng xã hội

LinkedInTwitter
Koder.ai
Ngôn ngữ

© 2026 Koder.ai. Bảo lưu mọi quyền.

Trang chủ›Blog›Apple Pay trong ứng dụng di động: là gì và hoạt động ra sao
14 thg 10, 2025·8 phút

Apple Pay trong ứng dụng di động: là gì và hoạt động ra sao

Tìm hiểu Apple Pay trong ứng dụng di động là gì, cơ chế hoạt động bên trong và cách tích hợp an toàn để tăng tốc checkout và cải thiện chuyển đổi.

Apple Pay trong ứng dụng di động: là gì và hoạt động ra sao

Apple Pay là gì và tại sao nó quan trọng trong ứng dụng di động

Apple Pay là gì

Apple Pay là ví kỹ thuật số và dịch vụ thanh toán của Apple. Nó cho phép người dùng lưu thẻ tín dụng, thẻ ghi nợ, một số thẻ trả trước và thẻ cửa hàng một cách an toàn trên iPhone, Apple Watch, iPad hoặc Mac và thanh toán chỉ bằng một lần chạm hoặc nhìn.

Thay vì nhập số thẻ và thông tin thanh toán, người dùng xác thực bằng Face ID, Touch ID hoặc mã khóa thiết bị. Apple tạo một token dành cho thiết bị nên số thẻ thực không được chia sẻ với thương nhân.

Nơi Apple Pay hoạt động

Apple Pay hoạt động trong ba ngữ cảnh chính:

  • Tại cửa hàng: thanh toán không tiếp xúc bằng NFC trên iPhone hoặc Apple Watch tại các máy thanh toán vật lý.
  • Trên web: thanh toán trong Safari trên iOS và macOS, thường từ trang sản phẩm hoặc giỏ hàng.
  • Trong ứng dụng: một payment sheet gốc bên trong ứng dụng iOS và iPadOS, được kích hoạt trực tiếp từ nút thanh toán của ứng dụng.

Hướng dẫn này tập trung vào Apple Pay trong ứng dụng, nơi toàn bộ trải nghiệm thanh toán diễn ra bên trong app.

Tại sao nó quan trọng trong ứng dụng di động

Nhập thông tin thẻ trên màn hình nhỏ chậm và dễ sai. Apple Pay thay thế nhiều trường form bằng một tương tác duy nhất, thường:

  • Rút ngắn thời gian thanh toán
  • Giảm tỷ lệ bỏ giỏ hàng
  • Tăng số đơn hàng hoàn tất và đăng ký dịch vụ

Vì thẻ và địa chỉ đã được lưu trên thiết bị, Apple Pay cũng giảm ma sát cho khách hàng lần đầu.

Khả dụng và khi nào nên dùng

Apple Pay hoạt động trên các mẫu iPhone, iPad, Apple Watch và Mac gần đây ở các vùng được hỗ trợ, với các mạng thẻ lớn như Visa, Mastercard, American Express và nhiều hệ thống địa phương, tùy ngân hàng phát hành.

Apple Pay phù hợp nhất khi:

  • Khách hàng của bạn sử dụng thiết bị iOS với tỷ lệ đủ lớn
  • Bạn thấy người dùng rời đi khi nhập thông tin thẻ hoặc địa chỉ
  • Bạn muốn hỗ trợ thanh toán thẻ mà không xử lý dữ liệu thẻ thô

Nó nên tồn tại bên cạnh form thẻ truyền thống và các ví khác, không thay thế hoàn toàn, để người dùng không có Apple Pay vẫn có thể thanh toán.

Cách Apple Pay hoạt động phía sau màn hình

Apple Pay che giấu nhiều phức tạp bên dưới trải nghiệm “double‑click để thanh toán” đơn giản. Ở dưới, nhiều bên và lớp bảo mật phối hợp để chuyển tiền an toàn.

Các bên chính

Một giao dịch Apple Pay điển hình liên quan đến:

  • Người dùng: chủ thiết bị và thẻ.
  • Ngân hàng phát hành: ngân hàng phát hành thẻ của người dùng.
  • Mạng thẻ: Visa, Mastercard, Amex, v.v.
  • Apple: cung cấp Wallet, bảo mật thiết bị và hạ tầng token hóa.
  • Merchant: ứng dụng hoặc doanh nghiệp của bạn nhận thanh toán.
  • PSP / payment gateway / acquirer: xử lý thanh toán cho merchant và kết nối tới mạng thẻ.

Token hóa: DPAN vs FPAN

Khi người dùng thêm thẻ vào Apple Wallet, số thẻ thật (FPAN, Funding Primary Account Number) được gửi an toàn tới mạng thẻ và ngân hàng phát hành. Họ trả về một DPAN (Device Primary Account Number) cùng các khóa mật mã riêng cho thiết bị đó.

DPAN là thứ Apple Pay dùng trong giao dịch. Ứng dụng và backend của bạn không bao giờ thấy FPAN. Đây là cốt lõi của mô hình token hóa Apple Pay: thiết bị dùng số thẻ thay thế và cryptogram dùng một lần thay vì lộ số thẻ thật.

Secure Element và tạo token thanh toán

Trên các thiết bị hỗ trợ, thông tin thanh toán và khóa nằm trong Secure Element (hoặc được bảo vệ bởi Secure Enclave). Khi người dùng xác thực (Face ID, Touch ID hoặc mã khóa), Secure Element:

  1. Dùng DPAN và khóa riêng để tạo payment cryptogram.
  2. Tạo một Apple Pay payment token chứa:
    • DPAN
    • Cryptogram cho giao dịch cụ thể
    • Metadata khác (hạn, mạng, v.v.)
  3. Mã hóa token này cho payment processor của bạn bằng khóa công khai của họ.

Ứng dụng nhận token mờ và đã mã hóa này qua API Apple Pay và gửi nó về backend, backend chuyển tiếp cho PSP hoặc gateway.

Xác thực và thanh toán cuối cùng

PSP giải mã token, lấy DPAN và cryptogram, rồi gửi yêu cầu xác thực qua mạng thẻ tới ngân hàng phát hành. Ngân hàng xác thực cryptogram và trạng thái thẻ, rồi duyệt hoặc từ chối.

Sau đó, trong quá trình settlement, số tiền được capture, gom lô và chuyển từ ngân hàng phát hành đến ngân hàng thu hộ của merchant. Với app, đây chỉ là bước capture hay hoàn tất giao dịch, nhưng phía sau là sự phối hợp giữa acquirer, mạng thẻ và issuer sử dụng DPAN — không phải số thẻ thật của khách hàng.

Yêu cầu và điều kiện trước khi sử dụng Apple Pay

Trước khi thêm Apple Pay vào app, bạn cần đáp ứng một số yêu cầu kỹ thuật, doanh nghiệp và khu vực.

Tài khoản và định danh Apple

Về phía merchant bạn phải có:

  • Một tài khoản Apple Developer Program đang hoạt động (có phí)
  • Một App ID với capability Apple Pay được bật trong Xcode
  • Ít nhất một Apple Pay Merchant ID
  • Một Payment Processing certificate liên kết với Merchant ID đó

Nhiều merchant cũng tạo Merchant Identity certificate để xác minh merchant trong các luồng web hoặc hybrid.

Nền tảng và phiên bản OS được hỗ trợ

Apple Pay trong ứng dụng được hỗ trợ trên:

  • Thiết bị iOS và iPadOS có Touch ID hoặc Face ID, hoặc Apple Watch ghép đôi
  • Các phiên bản OS gần đây (quy tắc chung: nhắm iOS 12+ trừ khi có lý do mạnh để hỗ trợ thấp hơn)

Kiểm tra tài liệu Apple hiện tại về mức hỗ trợ tối thiểu, đặc biệt nếu bạn dùng API mới.

Khả dụng theo vùng và ngân hàng

Apple Pay không có mặt ở mọi quốc gia hoặc với mọi ngân hàng. Bạn cần xác nhận:

  • Apple Pay được hỗ trợ ở vùng bạn bán hàng
  • Các mạng thẻ bạn chấp nhận (Visa, Mastercard, Amex, v.v.) hỗ trợ Apple Pay ở đó
  • Ngân hàng thu hộ hoặc PSP của bạn có thể xử lý giao dịch Apple Pay ở các thị trường đó

Hạng mục merchant và hàng hóa được phép

Apple có thể hạn chế một số hạng mục merchant và trường hợp sử dụng (ví dụ hàng bất hợp pháp, một số nội dung số hoặc dịch vụ, ngành rủi ro cao). Xác minh rằng:

  • Mã Merchant Category (MCC) của bạn được phép cho Apple Pay
  • Sản phẩm và dịch vụ của app tuân thủ App Store Review Guidelines và điều khoản Apple Pay

Hỗ trợ từ PSP và gateway

Cuối cùng, bạn cần một PSP hoặc gateway hỗ trợ token hóa và giải mã Apple Pay. Xác nhận rằng nhà cung cấp của bạn:

  • Cấp khóa cần thiết để giải mã token (hoặc giải mã thay bạn)
  • Hỗ trợ tiền tệ và vùng của bạn
  • Cung cấp tài liệu và SDK rõ ràng cho tích hợp Apple Pay

Luồng trải nghiệm người dùng của Apple Pay trong ứng dụng

Một luồng Apple Pay mượt mà gần như vô hình với người dùng. Đây là các bước điển hình.

1. Từ trang sản phẩm tới nút Apple Pay

Hành trình thường bắt đầu từ trang sản phẩm hoặc giỏ hàng. Khi người dùng chọn xong tùy chọn (kích thước, màu, số lượng), họ tới bước thanh toán.

Trên màn hình thanh toán hoặc giỏ hàng, hiển thị nút Apple Pay tiêu chuẩn do Apple cung cấp. Nó nên:

  • Dùng dấu “Pay” chính thức (không dùng chữ tùy chỉnh như “Pay with Apple”).
  • Hiển thị rõ ràng gần hành động thanh toán chính.
  • Chỉ rõ nó thanh toán toàn bộ giỏ hay một mục cụ thể.

2. Apple Pay Sheet

Khi người dùng chạm nút, Apple Pay sheet trượt lên từ đáy màn hình.

Sheet thường bao gồm:

  • Thẻ thanh toán: thẻ mặc định được chọn, có thể đổi thẻ.
  • Chi tiết giao hàng: chọn hoặc xác nhận địa chỉ nếu là hàng vật lý.
  • Thông tin liên hệ: tên, email, số điện thoại, có thể chỉnh sửa.
  • Tóm tắt: mục hàng (tùy chọn) và tổng tiền rõ ràng, gồm thuế và phí vận chuyển.

Người dùng có thể chỉnh thẻ, địa chỉ, thông tin ngay trong sheet trước khi xác nhận.

3. Xác thực

Để ủy quyền thanh toán, người dùng xác thực bằng:

  • Face ID (nhìn vào thiết bị)
  • Touch ID (vân tay trên cảm biến)
  • Mã khóa thiết bị (dự phòng nếu biometrics thất bại)

Sheet sẽ nhắc rõ, ví dụ: “Double‑click to pay” trên thiết bị Face ID.

4. Trạng thái thành công, thất bại và hủy

Sau xác thực, sheet hiển thị tiến trình rồi biến mất, trả người dùng về ứng dụng của bạn.

App nên hiển thị trạng thái rõ ràng ngay lập tức:

  • Thành công: “Thanh toán đã xác nhận” kèm số đơn hàng, tóm tắt và bước tiếp theo (theo dõi, tải về).
  • Thất bại: Thông báo lỗi ngắn gọn (ví dụ “Thanh toán bị từ chối”) và tùy chọn khác, như thử thẻ khác.
  • Hủy: Nếu người dùng hủy trên sheet, hiển thị thông báo trung tính (ví dụ “Thanh toán chưa hoàn tất”) và giữ họ ở màn hình checkout mà không mất dữ liệu giỏ.

Giữ các trạng thái này rõ ràng giúp người dùng yên tâm về tình trạng thanh toán và họ luôn kiểm soát luồng.

Các bước triển khai chính cho Apple Pay trên iOS

Triển khai Apple Pay trên iOS xoay quanh framework PassKit và vài lớp quan trọng. Dưới đây là luồng end‑to‑end ở cấp app.

1. Bật Apple Pay trong Xcode

  1. Trong Xcode, mở Signing & Capabilities cho target.
  2. Click + Capability và thêm Apple Pay.
  3. Chọn Merchant ID bạn tạo trên Apple Developer (hoặc tạo nếu cần).

Điều này liên kết bundle app với merchant identity để token Apple Pay có thể được tạo cho server của bạn.

2. Import PassKit và xây PKPaymentRequest

import PassKit

func createPaymentRequest() -> PKPaymentRequest? {
    guard PKPaymentAuthorizationController.canMakePayments() else { return nil }

    let request = PKPaymentRequest()
    request.merchantIdentifier = "merchant.com.yourcompany.app"
    request.countryCode = "US"
    request.currencyCode = "USD"

    request.supportedNetworks = [.visa, .masterCard, .amex]
    request.merchantCapabilities = [.capability3DS]

    request.paymentSummaryItems = [
        PKPaymentSummaryItem(label: "Pro Subscription", amount: 9.99),
        PKPaymentSummaryItem(label: "Your Company", amount: 9.99)
    ]

    return request
}

merchantIdentifier, countryCode, và currencyCode phải khớp với thiết lập merchant của bạn. supportedNetworks phản ánh các hệ thẻ bạn và PSP hỗ trợ. Ít nhất, bao gồm .capability3DS trong merchantCapabilities.

3. Thêm và đặt PKPaymentButton

Sử dụng PKPaymentButton thay vì nút tùy chỉnh để tuân thủ hướng dẫn UI của Apple:

let payButton = PKPaymentButton(paymentButtonType: .buy, paymentButtonStyle: .black)

Đặt nó ở nơi có ý định mua mạnh nhất: trang sản phẩm, giỏ hàng và checkout cuối cùng. Vô hiệu hóa hoặc ẩn nếu PKPaymentAuthorizationController.canMakePayments() trả về false.

4. Hiển thị PKPaymentAuthorizationController và xử lý callbacks

Tạo controller từ request và conform PKPaymentAuthorizationControllerDelegate:

func startApplePay() {
    guard let request = createPaymentRequest() else { return }
    let controller = PKPaymentAuthorizationController(paymentRequest: request)
    controller.delegate = self
    controller.present(completion: nil)
}

extension CheckoutViewController: PKPaymentAuthorizationControllerDelegate {
    func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController,
                                        didAuthorizePayment payment: PKPayment,
                                        handler completion: @escaping (PKPaymentAuthorizationResult) -> Void) {
        // Send payment.token to your server for processing
        // Then call completion(.init(status: .success, errors: nil)) or .failure
    }

    func paymentAuthorizationControllerDidFinish(_ controller: PKPaymentAuthorizationController) {
        controller.dismiss(completion: nil)
    }
}

didAuthorizePayment là nơi bạn gửi payment.token đến server để xử lý thực sự. Sau khi server phản hồi, gọi completion với .success hoặc .failure, rồi đóng sheet trong paymentAuthorizationControllerDidFinish.

Xử lý phía server và xử lý thanh toán

Nhập đội của bạn
Giới thiệu đồng đội hoặc bạn bè và cộng tác trên cùng một dự án Apple Pay với mục tiêu chung.
Invite Friends

Logic phía server biến Apple Pay sheet thành tiền thực. App thu xác nhận người dùng; backend của bạn xác thực merchant, xử lý token và nói chuyện với payment gateway.

Xác thực merchant và merchant session

Trước khi hiện Apple Pay sheet, app phải lấy merchant session từ Apple.

  1. App gửi URL merchant validation từ PKPaymentAuthorizationController tới backend.
  2. Server của bạn, dùng Merchant ID và chứng chỉ, gọi endpoint merchant validation của Apple.
  3. Apple trả về một merchant session đã ký.
  4. Backend chuyển session này về app, app dùng nó để khởi tạo Apple Pay.

Luồng này chứng minh với Apple rằng app liên kết với merchant identity và domain của bạn.

Xử lý payment token

Sau khi người dùng ủy quyền, app nhận một payment token được mã hóa (PKPaymentToken) và gửi nó tới backend qua HTTPS.

Trên server:

  • Không cố gắng giải mã token tự mình.
  • Chuyển tiếp token nguyên vẹn tới payment gateway hoặc processor hỗ trợ Apple Pay (Stripe, Adyen, Braintree, v.v.).

Gateway giải mã token (dùng network tokens hoặc DPAN) và chạy xác thực thẻ với mạng thẻ.

Xác thực vs capture

Gateway thường cung cấp hai luồng:

  • Authorize only: đặt giữ tiền, sau đó capture sau (ví dụ sau khi giao hàng). Thích hợp cho hàng vật lý hoặc tổng thay đổi.
  • Authorize and capture: tính ngay lập tức. Phổ biến cho hàng số hoặc đăng ký bắt đầu ngay.

Backend của bạn nên lưu ID giao dịch của gateway, số tiền, tiền tệ và trạng thái — nhưng không lưu dữ liệu thẻ thô hay nội dung token đã giải mã.

Lưu trữ dữ liệu và bảo mật

Chỉ lưu những gì thực sự cần cho đối soát, hoàn tiền và hỗ trợ khách:

  • Order ID và payment transaction ID
  • Thông tin thẻ đã che và hãng thẻ (nếu gateway cung cấp)
  • Dấu thời gian và số tiền xác thực/capture

Không bao giờ lưu số thẻ đầy đủ, CVV hoặc token thanh toán chưa mã hóa trên server của bạn. Giao phần nhạy cảm cho gateway tuân thủ PCI và đảm bảo mọi liên lạc qua TLS với logging và kiểm soát truy cập nghiêm ngặt.

Bảo mật, quyền riêng tư và tuân thủ

Apple Pay được thiết kế để app của bạn không bao giờ chạm vào số thẻ thô, nhưng bạn vẫn cần hiểu mô hình bảo mật và trách nhiệm của mình.

Token hóa: che số thẻ thật

Khi người dùng thêm thẻ vào Apple Pay, issuer và mạng thẻ thay thế PAN thật bằng Device Account Number (DAN).

Khi thanh toán:

  • DAN và một cryptogram dùng một lần được gửi thay vì số thẻ thật.
  • Cryptogram là duy nhất cho giao dịch và vô dụng nếu bị chặn.

App và backend của bạn chỉ thấy token và metadata giao dịch, không phải chi tiết thẻ thực.

Bảo vệ cấp thiết bị: Secure Enclave và biometrics

Khóa và thông tin nhạy cảm được lưu và xử lý trong Secure Enclave, một coprocessor tách biệt phần cứng.

Xác thực liên quan đến:

  • Face ID / Touch ID
  • Hoặc mã khóa thiết bị

App chỉ nhận tín hiệu thành công hoặc thất bại từ hệ thống sheet; không bao giờ truy cập dữ liệu sinh trắc hay nội dung Secure Enclave.

Bảo vệ mạng và cryptogram dùng một lần

Mỗi giao dịch Apple Pay dùng:

  • Một cryptogram cho mỗi giao dịch
  • Dữ liệu liên quan tới merchant và thiết bị

Mạng và issuer xác thực các giá trị này, giúp phát hiện sao chép, replay và giả mạo.

Phạm vi PCI DSS (mức cao, không phải tư vấn pháp lý)

Apple Pay có thể giảm đáng kể phạm vi PCI DSS của app vì:

  • Bạn không thu thập, truyền hoặc lưu số PAN.
  • Phần xử lý nhạy cảm được chuyển cho Apple, mạng và PSP.

Tuy nhiên:

  • Bạn vẫn chịu trách nhiệm về cách xử lý token thanh toán và dữ liệu liên quan.
  • PSP và gateway của bạn phải tuân thủ PCI.

Với hướng dẫn chính thức, tham khảo ngân hàng thu hộ, PSP và chuyên gia đánh giá an ninh có chứng chỉ.

Bảo vệ API, logs và thông báo lỗi

Apple Pay giảm rủi ro, nhưng tích hợp cẩu thả có thể đưa rủi ro trở lại.

Mẹo thực tế:

  • Không bao giờ log token thanh toán thô, payload đã giải mã hoặc PAN đầy đủ (nếu bạn nhận được chúng qua PSP).
  • Che chỉ còn 4 chữ số cuối của số thẻ hoặc DAN trong logs và analytics.
  • Loại bỏ token và định danh khách hàng khỏi báo cáo crash.
  • Dùng TLS mọi nơi (HSTS trên backend web, certificate pinning khi phù hợp).
  • Xử lý token như bí mật: TTL ngắn, lưu chỉ khi cần, mã hóa lúc nghỉ và hạn chế truy cập.
  • Thiết kế thông báo lỗi cho người dùng và logs cho kỹ sư: hiển thị thông điệp chung trên UI, giữ chi tiết kỹ thuật trong logs bảo mật.

Bằng cách tôn trọng các ranh giới này, bạn tận dụng bảo vệ sẵn có của Apple Pay đồng thời giữ chi phí tuân thủ trong tầm kiểm soát.

Kiểm thử Apple Pay: sandbox, kịch bản và gỡ lỗi

Kiểm thử kỹ giúp bạn tin tưởng tích hợp hoạt động đúng cho khách thật. Bắt đầu với sandbox và kế hoạch kiểm thử rõ ràng.

Thiết lập sandbox tester và thẻ test

Trong tài khoản Apple Developer / App Store Connect, tạo tài khoản sandbox tester dưới Users and Access → Sandbox. Các Apple ID đặc biệt này dùng trên thiết bị test để mô phỏng người dùng mà không bị trừ tiền thật.

Trên thiết bị test:

  • Đăng xuất Apple ID chính ở Settings
  • Đăng nhập App Store bằng Apple ID sandbox
  • Thêm thẻ test vào Wallet dùng số thẻ từ tài liệu Apple (chi tiết thẻ test theo vùng do Apple và/hoặc gateway cung cấp)

Dùng nhiều sandbox tester cho các hồ sơ khác nhau (vùng, tiền tệ, hệ thẻ) để tái tạo các trường hợp biên.

Kiểm thử trên Simulator vs thiết bị thật

Simulator iOS hỗ trợ kiểm thử cơ bản Apple Pay, hữu dụng cho xác thực UI nhanh và phát triển ban đầu. Bạn có thể mô phỏng xác thực và kiểm tra luồng PKPaymentAuthorizationController.

Tuy nhiên, luôn kiểm tra trên thiết bị thật vì chỉ có thiết bị mới cung cấp:

  • Luồng thiết lập Wallet thực
  • UX Face ID / Touch ID / passcode
  • Hành vi thiết bị cụ thể, như độ tin cậy mạng và thông báo hệ thống

Xem Simulator như tiện ích, không thay thế thiết bị thật.

Các kịch bản kiểm thử chính

Cần bao phủ ít nhất các luồng end‑to‑end (client và server):

  • Xác thực và capture thành công
  • Thẻ bị từ chối (thiếu tiền, từ chối chung, thẻ không hợp lệ)
  • Timeout / lỗi mạng (phía client và gateway)
  • Người dùng hủy ở các giai đoạn khác nhau (sheet hiển thị, prompt sinh trắc, chọn giao hàng hoặc liên hệ)
  • Phê duyệt phân phần hoặc thay đổi số tiền nếu gateway hỗ trợ (ví dụ tiền boa, điều chỉnh)

Dùng số thẻ test và trigger theo gateway để ép lỗi và mã lỗi.

Ghi log và gỡ lỗi an toàn

Log đủ để truy vết vấn đề nhưng không bao giờ log dữ liệu nhạy cảm. Tránh:

  • PANs, expiry, CVC
  • Địa chỉ giao hàng/thanh toán đầy đủ
  • Token Apple Pay hoặc payload đã giải mã

Thay vào đó, log:

  • Order ID nội bộ và định danh giao dịch Apple Pay đã rút gọn
  • Mã phản hồi và lỗi từ gateway
  • Phương thức vận chuyển đã chọn, quốc gia và tiền tệ (khi cần)
  • Trạng thái thanh toán ở mức cao (ví dụ created → authorized → captured → failed)

Đồng bộ log client và server bằng correlation ID được truyền từ app tới backend.

Giám sát trong quá trình test

Trong khi chạy test, theo dõi:

  • Bảng điều khiển gateway cho các thanh toán test, từ chối và tỷ lệ lỗi
  • Trang trạng thái hệ thống của Apple cho dịch vụ Apple Pay và dịch vụ liên quan

Nếu thấy lỗi gián đoạn hoặc xác thực chậm, kiểm tra trạng thái gateway và Apple trước khi cho rằng là bug tích hợp. Điều này tiết kiệm thời gian và tránh đi tìm lỗi nơi không có.

Thiết kế và thực hành UX để tối đa hóa chuyển đổi

Tránh bất ngờ khi tích hợp
Lập bản đồ token, các bước của gateway và trạng thái lỗi trước khi bạn viết mã production.
Use Planning

Thiết kế Apple Pay cẩn thận có thể biến nó từ “tùy chọn đẹp” thành động lực chuyển đổi chính. Các quyết định nhỏ về vị trí và nội dung có tác động lớn.

Nên đặt nút Apple Pay ở đâu

Dùng Apple Pay nơi có ý định mua mạnh nhất:

  • Vị trí chính trên bước thanh toán, nhóm cùng các phương thức khác nhưng nổi bật.
  • Above the fold trên màn hình checkout để thấy mà không phải cuộn.
  • Thanh hành động cố định (nếu phù hợp) trên mobile: thanh dưới cùng với “Apple Pay” bên cạnh nút “Continue” tiêu chuẩn.

Tránh giấu Apple Pay sau các thao tác thêm như “Thêm phương thức thanh toán”. Mỗi bước thừa giảm tỉ lệ dùng.

Dùng Apple Pay như express checkout

Cung cấp Apple Pay như express checkout từ:

  • Trang sản phẩm: tốt cho mua hàng đơn chiếc, ít cân nhắc.
  • Trang giỏ hàng: hiển thị “Apple Pay” cạnh “Checkout” để người dùng bỏ qua bước nhập thông tin.

Khi dùng express checkout, làm rõ rằng địa chỉ giao hàng và thông tin liên hệ sẽ được xử lý trong Apple Pay sheet.

Ngôn ngữ nút, thương hiệu và kích thước

Tuân theo Human Interface Guidelines của Apple:

  • Dùng dấu “Apple Pay” chính thức không chỉnh sửa.
  • Giữ khoảng cách đủ và làm nút đủ lớn cho thao tác ngón cái, thường chiếm chiều rộng đầy đủ trên mobile.
  • Dùng nhãn hỗ trợ rõ gần nút, ví dụ “Thanh toán ngay với Apple Pay”.

Tránh màu hoặc biểu tượng tùy chỉnh làm giảm nhận diện hoặc vi phạm quy tắc thương hiệu.

Giảm bước với dữ liệu được điền sẵn

Để Apple Pay làm công việc nặng:

  • Lấy và áp địa chỉ giao hàng, email, điện thoại từ token Apple Pay.
  • Chỉ hỏi thêm những gì thực sự cần (ví dụ hướng dẫn giao hàng) sau khi ủy quyền và giữ chúng ở dạng tùy chọn.
  • Lưu các tùy chọn đã chọn (phương thức vận chuyển, mã giảm giá) để người quay lại không phải lặp lại.

Mục tiêu là một lần chạm quyết định, không một phễu nhiều màn hình.

Xử lý lỗi và phục hồi mượt

Cách nhanh nhất để mất đơn là trạng thái lỗi gây bối rối. Lên kế hoạch cho lỗi với:

  • Thông điệp ngôn ngữ giản dị: “Chúng tôi không thể hoàn tất thanh toán Apple Pay. Thẻ của bạn chưa bị tính.”
  • Bước tiếp theo có thể làm: “Thử thẻ khác trong Apple Pay hoặc chọn phương thức thanh toán khác.”
  • Thiết kế không phá hủy: giữ giỏ, mã giảm giá và địa chỉ để người dùng thử lại mà không làm lại.

Log chi tiết thầm lặng cho đội, nhưng chỉ cho người dùng thông tin họ cần biết và cách tiếp tục.

Các vấn đề phổ biến và cách khắc phục

Các lỗi cấu hình

Hầu hết vấn đề Apple Pay do cấu hình sai.

Điều đầu tiên cần kiểm tra là merchant ID trong code khớp chính xác với cái trong Apple Developer và cài đặt gateway. Một ký tự sai có thể phá vỡ luồng.

Kiểm tra tiếp entitlements và capabilities:

  • Apple Pay bật trong target app ở Xcode.
  • Merchant IDs đúng trong entitlements của app.
  • Payment Processing Certificate đã tạo và chưa hết hạn.

Nếu nút Apple Pay không hiện hoặc sheet không xuất hiện, cấu hình rất có thể là nguyên nhân.

Tương thích vùng, mạng thẻ và thiết bị

Apple Pay có thể có ở một số nước, ngân hàng hoặc thiết bị nhưng không ở những nơi khác.

Dùng PKPaymentAuthorizationController.canMakePayments() và canMakePayments(usingNetworks:) trước khi hiện nút. Nếu trả false, ẩn nút và giải thích ngắn cùng phương thức thay thế.

Khi người dùng báo “thẻ không được hỗ trợ”, kiểm tra:

  • Ngân hàng phát hành có hỗ trợ Apple Pay không.
  • Mạng thẻ (ví dụ Amex) có nằm trong cấu hình của bạn không.

Lỗi xác thực merchant

Lỗi xác thực merchant thường làm sheet đóng ngay hoặc không xuất hiện.

Với app native, nguyên nhân thường là:

  • Dùng merchant ID không liên kết với bundle ID app.
  • Chứng chỉ payment processing hết hạn hoặc thiếu.
  • Cài đặt Apple Pay sai ở gateway.

Trên server, log các mục sau:

  • Merchant identifier nhận được.
  • Môi trường (sandbox vs production).
  • Lỗi chi tiết trả về từ Apple hoặc gateway.

Những log này thường chỉ ra ngay chỗ cấu hình sai.

Giao dịch bị từ chối và lỗi hiển thị cho người dùng

Không phải mọi lỗi đều do kỹ thuật; nhiều lỗi là issuer declines.

Luôn xem phản hồi từ gateway hoặc processor. Phân biệt:

  • Lỗi kỹ thuật (giải mã token, request không hợp lệ).
  • Từ chối tài chính (thiếu tiền, nghi ngờ gian lận, thẻ không hỗ trợ).

Map các loại này thành thông điệp thân thiện như:

  • “Ngân hàng đã từ chối giao dịch. Thử thẻ khác hoặc liên hệ ngân hàng.”
  • “Có lỗi khi xử lý thanh toán. Vui lòng thử lại.”

Tránh hiện mã lỗi thô từ gateway hoặc chi tiết kỹ thuật không cần thiết.

Giám sát logs và phản hồi gateway trong production

Để Apple Pay ổn định ở production, đầu tư vào logging có cấu trúc cho mỗi lần thử thanh toán:

  • Timestamp, môi trường, merchant ID và thông tin thiết bị.
  • Định danh token thanh toán đã rút gọn (không PAN đầy đủ).
  • Request ID và mã trả về từ gateway.

Thiết lập dashboard và cảnh báo cho sự tăng đột biến decline, lỗi xác thực merchant hoặc timeout. Đồng bộ event client và server để nhanh chóng xác định điểm lỗi.

Mức độ quan sát này rút ngắn thời gian gỡ lỗi khi vấn đề xuất hiện trên traffic thật.

Đo lường hiệu suất và tác động của Apple Pay

Xây dựng và kiếm credit
Tạo nội dung về sản phẩm của bạn và kiếm credit để tiếp tục lặp trên stack thanh toán.
Earn Credits

Khi Apple Pay hoạt động trong app, bạn cần chứng minh nó thực sự cải thiện checkout, không chỉ đẹp. Theo dõi các sự kiện đúng, xem chỉ số chính và chạy thử nghiệm có cấu trúc.

Sự kiện cần theo dõi quanh Apple Pay

Bắt đầu với funnel rõ ràng và log các sự kiện:

  • Apple Pay sheet shown – người dùng chạm nút và sheet hiện.
  • Sheet canceled – người dùng đóng sheet.
  • Authorization failed – lỗi Touch ID/Face ID/mã hoặc người dùng từ chối.
  • Payment authorized – Apple Pay trả token hợp lệ cho app.
  • Payment captured – server của bạn charge thành công phương thức.

Kết hợp các sự kiện với ngữ cảnh:

  • Vị trí chạm nút (trang sản phẩm, giỏ, checkout).
  • Platform và phiên bản OS.
  • Khách hàng mới hay quay lại.

Điều này giúp thấy nơi người dùng rời và liệu vấn đề là UX (hủy), kỹ thuật (xác thực) hay backend (capture).

Chỉ số cốt lõi cần giám sát

Một bộ chỉ số tập trung gồm:

  • Tỷ lệ chấp nhận Apple Pay – checkout Apple Pay ÷ tất cả checkout đủ điều kiện.
  • Tỷ lệ thành công Apple Pay – capture thành công ÷ số lần thử Apple Pay.
  • Thời gian để thanh toán – trung vị từ sheet hiện đến capture.
  • Giá trị đơn hàng trung bình (AOV) – so sánh AOV dùng Apple Pay vs phương thức khác.
  • Tỷ lệ hoàn thành checkout – cho người thấy Apple Pay vs không thấy.

Theo dõi theo thời gian và theo phiên bản app để đo ảnh hưởng của thay đổi tích hợp và UX.

A/B testing vị trí và thông điệp Apple Pay

Chạy thí nghiệm để tối ưu tác động của Apple Pay:

  • Vị trí: thử đặt Apple Pay ở trang sản phẩm, giỏ và checkout.
  • Thứ tự: so sánh Apple Pay là CTA chính hay phương thức thay thế.
  • Nội dung: thử nhãn ngắn ("Buy with Apple Pay") vs thông điệp giá trị cụ thể ("Fast checkout with Apple Pay").
  • Mặc định: thử chọn Apple Pay sẵn cho người dùng đủ điều kiện so với mặc định trung lập.

Đo sự khác biệt về adoption, success rate, thời gian thanh toán và chuyển đổi.

Analytics và lưu ý quyền riêng tư

Tích hợp analytics cẩn thận để tôn trọng nguyên tắc riêng tư của Apple Pay và quy định chung:

  • Log loại sự kiện và kết quả, không log dữ liệu thẻ hoặc số tài khoản.
  • Tránh lưu bất kỳ token thanh toán nào ngoài yêu cầu xử lý ngay.
  • Dùng định danh giả danh (ví dụ app user ID) thay vì định danh cá nhân khi có thể.
  • Cấu hình công cụ analytics để che hoặc loại bỏ trường nhạy cảm, và mô tả dữ liệu thu trong chính sách quyền riêng tư.

Các nền tảng analytics lớn (Mixpanel, Amplitude, Firebase) có thể xử lý các event Apple Pay miễn là payload không chứa thông tin thanh toán nhạy cảm.

Dùng dữ liệu Apple Pay để cải thiện checkout tổng thể

Thông tin từ Apple Pay có thể giúp cải thiện toàn bộ quy trình:

  • Nếu người dùng Apple Pay có tỷ lệ hoàn thành cao và thời gian thanh toán thấp, dùng đó làm chuẩn cho các luồng thẻ và ví khác.
  • Nếu Apple Pay mạnh trên mobile nhưng yếu trên tablet, xem lại bố cục và mức độ nổi bật theo thiết bị.
  • Nếu hủy gia tăng tại Apple Pay sheet, cải tiến màn hình trước sheet—làm rõ giá, vận chuyển và tổng tiền để giảm do dự.

Theo thời gian, những phép đo này giúp tinh chỉnh không chỉ Apple Pay mà cả trải nghiệm checkout, làm mọi bước nhanh hơn, rõ ràng hơn và đáng tin cậy hơn cho người dùng.

Cân nhắc đa nền tảng và đa kênh

Hỗ trợ Apple Pay thường không dừng lại ở một app iOS. Người dùng mong muốn thanh toán cùng cách trên nhiều thiết bị và kênh, và lựa chọn triển khai của bạn nên phản ánh điều đó.

Native iOS vs Apple Pay trên web

Native apps dùng PKPaymentAuthorizationController và truyền token trực tiếp tới backend. Ưu điểm:

  • Kiểm soát UI sâu
  • Tích hợp chặt với trạng thái app (giỏ, người đăng nhập, ưu đãi)

Apple Pay trên web (Safari) dùng JavaScript và Payment Request API. Phù hợp khi bạn:

  • Đã có checkout web
  • Muốn Apple Pay trên cả desktop và mobile Safari

Với nhiều đội, điểm cân bằng là: Apple Pay native trong app, Apple Pay trên web trong Safari, dùng backend xử lý thanh toán chung.

Các ví khác và tính nhất quán

Nếu bạn hỗ trợ Google Pay, PayPal hoặc ví khác, hãy đồng bộ luồng cao cấp:

  • Hiển thị tất cả ví tại cùng điểm quyết định
  • Dùng tên, vị trí nút và mẫu lỗi nhất quán
  • Giữ quy tắc kinh doanh giống nhau (quốc gia hỗ trợ, giá trị tối thiểu)

Như vậy, chuyển đổi thiết bị hoặc phương thức không khiến người dùng phải học lại hệ thống.

Framework đa nền tảng và thiết bị

Với React Native, Flutter và framework tương tự, bạn thường dựa vào:

  • Plugin chính thức hoặc cộng đồng bọc API native Apple Pay
  • Lớp business chung gọi vào các module theo nền tảng nhỏ

Kiểm thử trên iPhone, iPad và Apple Watch khi cần thiết:

  • Xác nhận mạng và tùy chọn vận chuyển giống nhau
  • Kiểm tra style nút và nhãn theo chỉ dẫn của Apple trên mỗi thiết bị

Hướng tới một hệ thống thiết kế và logic checkout dùng chung cho iOS, web và các nền tảng khác, chỉ viết các lớp tích hợp mỏng cho mỗi kênh thay vì từng triển khai rời rạc.

Duy trì, cập nhật và chuẩn bị cho tương lai của Apple Pay

Giữ Apple Pay khỏe mạnh ít là các bản rewrite lớn mà là thực hành bảo trì kỷ luật.

Chứng chỉ, khóa và phiên bản OS

Apple Pay dựa trên merchant IDs và payment processing certificates có thời hạn.

Tạo bản đồ sở hữu: ai quản lý tài khoản Apple Developer, nơi lưu chứng chỉ và cách chúng dùng trong CI/CD và server.

Sau đó:

  • Đặt nhắc lịch 90/60/30 ngày trước khi hết hạn.
  • Tạo kiểm tra tự động trong CI báo build fail khi chứng chỉ gần hết hạn.

Mỗi bản iOS lớn nên kích hoạt chu kỳ test cho luồng Apple Pay trên bản beta và final. Tập trung vào:

  • Hiển thị và từ ngữ của sheet
  • Các mạng thẻ được hỗ trợ
  • Trường hợp biên như 3D Secure và prompt sinh trắc

Đồng bộ với hướng dẫn Apple

Theo dõi:

  • Human Interface Guidelines (HIG) của Apple cho nút Apple Pay, nhãn và nội dung.
  • Tài liệu cho nhà phát triển và WWDC cho thay đổi trường bắt buộc, token hoặc capability.

Lên kế hoạch rà soát thiết kế ít nhất hàng năm để đồng bộ nội dung, vị trí nút và khả năng truy cập với hướng dẫn mới nhất.

Mạng, tiền tệ và vùng thay đổi

Mạng thẻ, tiền tệ và vùng được hỗ trợ thay đổi theo thời gian. Giữ các cấu hình có thể thay đổi:

  • Điều khiển mạng, nước và tiền tệ từ cấu hình server.
  • Log decline theo mạng/vùng để phát hiện khi cần thêm tùy chọn.

Phối hợp với gateway khi họ thêm mạng hoặc phương thức địa phương, và cập nhật PKPaymentRequest tương ứng.

Di cư an toàn và refactor

Khi đổi gateway, tái cấu trúc app hoặc thay đổi định dạng token:

  • Dùng feature flags để chạy song song cả hai đường dẫn cũ và mới.
  • Đảm bảo API thanh toán server idempotent để retry không bị charge đôi.
  • Triển khai theo giai đoạn và giám sát tỷ lệ xác thực/từ chối và timeout.

Ghi chép các luồng này để người mới dễ tiếp quản mà không phải giải mã ngược.

Xu hướng nên theo dõi

Dự đoán token hóa mạnh hơn với mạng thẻ, hoá đơn và cập nhật đơn hàng phong phú hơn trong Wallet, và liên kết chặt giữa in‑app, web và in‑store Apple Pay. Các tính năng như Tap to Pay on iPhone và các lựa chọn tài trợ theo vùng sẽ tiếp tục mở rộng, nên thiết kế tích hợp theo hướng cấu hình để dễ dàng áp dụng tính năng mới mà không viết lại luồng cốt lõi.

Câu hỏi thường gặp

What is Apple Pay in a mobile app context?

Apple Pay là ví điện tử của Apple cho phép người dùng thanh toán bằng các thẻ lưu trên iPhone, iPad, Apple Watch hoặc Mac.

Trong ứng dụng di động, nó thay thế việc nhập thẻ bằng tay bằng một hệ thống sheet an toàn, nơi người dùng xác nhận thanh toán bằng Face ID, Touch ID hoặc mã khóa thiết bị. Ứng dụng nhận một token thanh toán được mã hóa thay vì dữ liệu thẻ thô, rồi gửi token đó đến backend và gateway để hoàn tất phí thanh toán.

Điều này giúp thanh toán nhanh hơn, giảm lỗi và giữ số thẻ khỏi cơ sở hạ tầng của ứng dụng bạn.

When does it make sense to add Apple Pay to my app?

Bạn nên thêm Apple Pay khi:

  • Một tỷ lệ đáng kể khách hàng của bạn dùng thiết bị iOS.
  • Bạn thấy người dùng rời đi khi nhập thẻ, nhập địa chỉ hoặc thanh toán cuối cùng.
  • Bạn muốn chấp nhận thanh toán thẻ mà không xử lý số PAN (số thẻ) thô.

Apple Pay hiệu quả nhất khi là một tùy chọn bổ sung bên cạnh thẻ, PayPal, v.v. Đừng loại bỏ các phương thức khác; hãy cung cấp Apple Pay như đường dẫn nhanh nhất cho người dùng đủ điều kiện.

What are the prerequisites to use Apple Pay in my app?

Tối thiểu bạn cần:

  • Một tài khoản Apple Developer Program đang hoạt động.
  • Target app có Apple Pay capability bật trong Xcode.
How do I implement Apple Pay in an iOS app at a high level?

Trên iOS bạn sẽ:

How does Apple Pay keep card data secure in my app?

Thiết bị tạo một token thanh toán được mã hóa chứa:

  • Một số thẻ riêng cho thiết bị (DPAN), không phải số thẻ thật (FPAN).
  • Một cryptogram dùng một lần cho giao dịch đó.

Token này được mã hóa cho payment processor, nên app và backend xử lý nó như một blob mờ. Backend chuyển tiếp nó cho gateway, gateway giải mã, gửi yêu cầu xác thực đến mạng thẻ và ngân hàng phát hành, rồi trả về thành công hoặc thất bại.

Bạn không bao giờ thấy PAN hoặc khóa mã; bạn chỉ thấy metadata và trạng thái giao dịch.

What does my server need to do with the Apple Pay token?

Backend của bạn nên:

  1. Nhận token Apple Pay từ app qua HTTPS.
  2. Chuyển tiếp nguyên vẹn tới PSP hoặc gateway hỗ trợ Apple Pay.
  3. Quyết định authorize only hay authorize and capture theo chính sách của bạn.
  4. Lưu những gì cần thiết: order ID, transaction ID, thông tin thẻ đã che (nếu gateway cung cấp), số tiền và thời gian.

Không cố gắng giải mã token tại server hoặc lưu trữ lâu dài. Hãy để gateway tuân thủ PCI xử lý phần nhạy cảm.

Why might my Apple Pay integration fail or not show the payment sheet?

Các nguyên nhân thường gặp:

  • Merchant ID cấu hình sai (lỗi chính tả, ID sai, hoặc dùng sandbox trong production).
  • Apple Pay không bật trong capability của app hoặc thiếu entitlements.
  • Chứng chỉ Payment Processing hết hạn hoặc thiếu.
  • Khu vực hoặc mạng thẻ không hỗ trợ thẻ của người dùng.
  • Lỗi xác thực merchant trên server (chứng chỉ sai, môi trường không khớp).

Bắt đầu bằng kiểm tra cấu hình trong Apple Developer, entitlements trong Xcode và cài đặt gateway, rồi kiểm tra logs server cho lỗi merchant validation và mã lỗi từ gateway.

How do I test Apple Pay without charging real cards?

Để test Apple Pay an toàn:

  • Tạo các Apple ID sandbox tester trong App Store Connect.
  • Đăng nhập App Store trên thiết bị test bằng các tài khoản sandbox đó.
  • Thêm thẻ test vào Wallet dùng số thẻ từ tài liệu của Apple hoặc gateway của bạn.
  • Thử các luồng chính: thanh toán thành công, bị từ chối, hủy, và timeout.

Dùng Simulator để kiểm tra giao diện nhanh, nhưng luôn xác thực trên để thử Wallet, biometrics và điều kiện mạng thực tế.

What are some UX best practices for Apple Pay in my app?

Để tăng tỷ lệ chuyển đổi:

  • Đặt nút Apple Pay ở trên vùng nhìn thấy trên màn hình giỏ hàng/checkout.
  • Cung cấp nó như express checkout từ trang sản phẩm hoặc giỏ hàng khi có thể.
  • Dùng PKPaymentButton chính thức với nhãn và văn bản hỗ trợ rõ ràng (ví dụ “Thanh toán ngay với Apple Pay”).
How can I measure whether Apple Pay is improving my checkout?

Theo dõi Apple Pay như một funnel riêng. Các chỉ số hữu ích:

  • Tỷ lệ chấp nhận Apple Pay: số checkout bằng Apple Pay ÷ tổng checkout đủ điều kiện.
  • Tỷ lệ thành công: số capture thành công ÷ số lần thử Apple Pay.
  • Thời gian thanh toán: từ lúc sheet hiện đến khi capture hoàn tất.
  • Tỷ lệ hoàn thành checkout cho người dùng thấy Apple Pay vs không thấy.

Dùng A/B test để tối ưu vị trí nút và thông điệp, so sánh hành vi người dùng Apple Pay với các phương thức khác để xem nó có thực sự cải thiện checkout hay không.

Mục lục
Apple Pay là gì và tại sao nó quan trọng trong ứng dụng di độngCách Apple Pay hoạt động phía sau màn hìnhYêu cầu và điều kiện trước khi sử dụng Apple PayLuồng trải nghiệm người dùng của Apple Pay trong ứng dụngCác bước triển khai chính cho Apple Pay trên iOSXử lý phía server và xử lý thanh toánBảo mật, quyền riêng tư và tuân thủKiểm thử Apple Pay: sandbox, kịch bản và gỡ lỗiThiết kế và thực hành UX để tối đa hóa chuyển đổiCác vấn đề phổ biến và cách khắc phụcĐo lường hiệu suất và tác động của Apple PayCân nhắc đa nền tảng và đa kênhDuy trì, cập nhật và chuẩn bị cho tương lai của Apple PayCâu hỏi thường gặp
Chia sẻ
Koder.ai
Build your own app with Koder today!

The best way to understand the power of Koder is to see it for yourself.

Start FreeBook a Demo
  • Một Apple Pay Merchant ID.
  • Một Payment Processing certificate liên kết với Merchant ID đó.
  • Một payment gateway/PSP (ví dụ Stripe, Adyen, Braintree) hỗ trợ Apple Pay.
  • Bạn cũng phải hoạt động ở các khu vực và ngân hàng nơi Apple Pay được hỗ trợ và đảm bảo ngành hàng, sản phẩm của bạn phù hợp với quy định của Apple.

  • Bật Apple Pay trong Signing & Capabilities và gán Merchant ID.
  • Tạo PKPaymentRequest với merchant identifier, country, currency, supported networks và các mục tóm tắt giá.
  • Hiển thị PKPaymentButton tại nơi người dùng quyết định thanh toán.
  • Hiển thị PKPaymentAuthorizationController với request của bạn.
  • Trong didAuthorizePayment, gửi payment.token tới backend để xử lý.
  • Sau phản hồi từ server, trả về .success hoặc .failure và đóng sheet.
  • Hệ thống UI lo phần lớn xử lý (biometrics, tạo token).

    thiết bị thật
  • Để Apple Pay cung cấp địa chỉ giao hàng và thông tin liên hệ; chỉ hỏi thêm những gì thực sự cần.
  • Khi lỗi, hiển thị thông báo ngôn ngữ đơn giản và giữ giỏ hàng để người dùng thử lại hoặc chuyển phương thức khác.
  • Những mẫu này giảm ma sát và khiến Apple Pay trở thành đường tắt nhanh và đáng tin cậy.