Hướng dẫn bắt đầu nhanh
AndroidTìm hiểu cách thiết lập SDK, cấu hình môi trường và thực hiện thành công giao dịch đầu tiên.
Accept SDK chạy bên trong ứng dụng của bạn và xử lý thanh toán ngay trên thiết bị: SDK đọc thẻ hoặc giao dịch Tap to Pay, mã hóa dữ liệu và giữ việc xử lý thẻ nằm ngoài mã của bạn, nhờ đó bạn nằm ngoài phạm vi PCI. Backend của bạn xác thực từng phiên SDK với Tapaya API, thực hiện onboarding merchant và kích hoạt KYB. Tapaya thực hiện các bước kiểm tra KYB và quyết toán tiền cho merchant.
Chọn cách tích hợp
Có hai cách nhận thanh toán bằng thẻ qua Tap to Pay. Cả hai đều chuyển phần tương tác thực tế với thẻ cho ứng dụng plugin Tapaya Terminal trên cùng thiết bị. Điểm khác nhau là ứng dụng của bạn tự quản lý bao nhiêu phần trong việc chuyển giao đó:
Accept SDK (khuyến nghị)
Tích hợp SDK vào ứng dụng Android của bạn và nhận kết quả qua callback. Hướng dẫn này đi theo cách tích hợp này.
Chỉ dùng Tapaya Terminal
Không dùng SDK: mở Tapaya Terminal bằng intent hoặc deeplink và truy vấn định kỳ trạng thái thanh toán.
Thiết lập tài khoản bên tích hợp
Trước khi viết mã, hãy thiết lập tài khoản mà backend của bạn sẽ dùng để xác thực:
- Đăng ký tại platform.tapaya.com/register. Bạn tự đăng ký: không cần lời mời.
- Đăng nhập, sau đó tạo hoặc tham gia tổ chức của bạn; hệ thống sẽ tự động nhắc bạn làm việc này ngay sau khi đăng ký.
- Tạo Server Secret Token từ trang API Keys: backend của bạn dùng token này để gọi Tapaya Platform API (xem xác thực Platform API).
Không phải onboarding merchant
Đây là bước thiết lập tài khoản cho bạn, bên tích hợp. Các merchant của bạn được onboarding riêng, qua
SDK, Tapaya Platform UI, UI của riêng bạn hoặc một liên kết mời. Xem Onboarding
merchant để biết chi tiết. POST /merchant/auth/register chỉ tạo bản ghi merchant
cơ bản; onboarding qua lời mời trên trang do Tapaya lưu trữ bắt đầu bằng POST /integrator/merchant/send-registration-invite.
Phần còn lại của hướng dẫn này trình bày cách thêm SDK vào dự án, xác thực một phiên và thực hiện giao dịch đầu tiên.
Thêm dependency
Trên Android, SDK được phát hành trên Maven Central; trên React Native, SDK được cài từ npm bằng
npx expo install @tapayadot/accept-react-native và được kết nối thông qua config plugin của nó.
dependencies {
implementation("com.tapaya:accept:1.15.0")
}Đồng bộ dự án (Android) hoặc chạy npx expo prebuild --clean (React Native), sau đó khởi tạo và
xác thực trong mã ứng dụng của bạn.
// Step 1: Initialize (once, in Application.onCreate)
Accept.initialize(this) // sandbox by default; pass isProduction = true to go liveXác thực phiên của merchant bằng token lấy từ backend của bạn.
authenticate là một hàm suspend và ném ra AcceptException khi thất bại.
// Step 2: Authenticate (suspend; call from a coroutine)
try {
val sdkToken = myBackend.login() // token from POST /merchant/auth/login
Accept.auth.authenticate(sdkToken)
// Accept.state now emits SdkState.Authenticated
} catch (e: AcceptException) {
// handle authentication failure
}Onboarding merchant
Trước khi được phép thực hiện bất kỳ giao dịch nào, merchant phải hoàn tất onboarding KYB. Onboarding không còn do Accept SDK điều khiển. Hãy hoàn tất qua Tapaya Platform UI, UI của riêng bạn kết nối với Tapaya API, hoặc một liên kết mời. Xem Onboarding merchant để biết tất cả các cách.
Tự động duyệt trong sandbox
Trong môi trường sandbox, merchant được tự động duyệt ngay sau khi onboarding, nên bạn không phải chờ đơn vị xử lý thanh toán xét duyệt.
Kiểm tra merchant đã sẵn sàng
Đảm bảo merchant đã hoàn tất onboarding và được duyệt để nhận thanh toán.
val ready = when (val status = Accept.merchant.onboardingStatus()) {
OnboardingStatus.ReadyForPayments -> true
is OnboardingStatus.RequiresAction -> false // status.state describes what's blocking
}Merchant chỉ sẵn sàng sau khi đơn vị xử lý thanh toán đã duyệt. Nếu thiếu một số thông tin, phải thực hiện lại onboarding. Trong một số trường hợp, đơn vị xử lý thanh toán có thể chặn hoàn toàn merchant, chẳng hạn khi bán hàng hóa bị cấm.
Cài đặt và kích hoạt máy thanh toán
Cần ứng dụng plugin
Để thanh toán bằng thẻ, thiết bị phải cài đặt plugin Tapaya Accept.
Dùng Accept.plugin.isInstalled() để kiểm tra, và Accept.plugin.install() để mở trang ứng dụng
trên cửa hàng nếu plugin chưa được cài.
Plugin Tapaya Accept là bắt buộc đối với thanh toán bằng thẻ. Kiểm tra xem plugin đã được cài đặt chưa, sau đó kích hoạt máy thanh toán, hoặc mở trang ứng dụng trên Play Store để cài đặt.

if (Accept.plugin.isInstalled()) {
// suspend; returns ActivateTerminalResult (Success / Canceled / Failed)
Accept.plugin.activateTerminal()
} else {
Accept.plugin.install() // opens the store listing
}Tạo giao dịch thanh toán
Để thực hiện giao dịch, gọi Accept.payments.pay() với số tiền (theo đơn vị nhỏ nhất của loại tiền tệ)
và mã tiền tệ ISO 4217. Hàm trả về một Flow<PaymentEvent>; hãy collect flow này để theo dõi tiến trình và
kết quả cuối cùng. pay() không bao giờ ném ngoại lệ: các lỗi được trả về dưới dạng PaymentEvent.CreationFailed.
Phần bắt đầu nhanh chỉ cần amount và currency. Với mọi tham số tùy chọn, chẳng hạn tiền tip cố định, ghi đè thông tin
biên lai hoặc metadata, xem Tạo khoản thanh toán.

Accept.payments.pay(amount = 15000, currency = "CZK") // 150.00 Kč
.collect { event ->
when (event) {
PaymentEvent.Creating -> Log.d("pay", "creating")
is PaymentEvent.Created -> Log.d("pay", "created ${event.paymentToken}")
PaymentEvent.Launched -> Log.d("pay", "launched")
is PaymentEvent.Result -> Log.d("pay", event.payResult.toString())
is PaymentEvent.CreationFailed -> Log.e("pay", event.cause.toString())
}
}