Việc nạp tiền có thể diễn ra trong ba môi trường khác nhau:
- Ứng dụng Android của đối tác tích hợp thanh toán
- Trang web dành cho thiết bị di động của đơn vị tích hợp thanh toán
- Trang web trên máy tính của đơn vị tích hợp thanh toán
Bất kể quy trình như thế nào, Google cũng chuyển lượt tương tác của người dùng cho Tài khoản thanh toán phần mềm của đối tác tích hợp. Đơn vị tích hợp thanh toán triển khai một giao diện người dùng quen thuộc cho người dùng, nhưng luồng phải dành riêng cho việc tăng số dư của người dùng, tức là người dùng sẽ được chuyển hướng qua quy trình nạp tiền thay vì đưa vào giao diện người dùng cho mục đích chung, nơi chúng được kỳ vọng chuyển sang quy trình nạp tiền.
Tất cả các luồng dẫn đến trình tích hợp tạo ra TopUpRedirectResponse. Câu trả lời này đã được ký và gửi quay lại Google.
Trang web dành cho thiết bị di động và máy tính phải tuân thủ Quy cách của API nạp tiền trên web, còn quy trình cho Ứng dụng Android phải tuân thủ Thông số kỹ thuật của Android Top Up API (API Nạp tiền trên Android).
Nhà tích hợp nên triển khai một giải pháp APK Android để xác thực người dùng rồi hướng dẫn người dùng thực hiện một quy trình để họ có thể nạp tiền vào số dư. Chiến dịch này nạp tiền là một phương thức khác, nhưng cùng mục đích như nạp tiền bởi thời gian Nạp tiền trên web.
Người dùng tham gia quy trình trên ứng dụng đối tác tích hợp thanh toán thông qua một Hoạt động trên Android. Ý định nạp tiền có thể được gọi trực tiếp từ ứng dụng Play nơi người dùng có ý định mua hàng. Để ngăn Android chấm dứt Play trong trong khi nạp tiền, đối tác tích hợp cần đưa những thông tin sau vào chủ đề của hoạt động.
<item name="android:windowIsTranslucent">true</item>
Định nghĩa phương thức
Ý định cần có các thuộc tính sau:
Thuộc tính phương thức | |
---|---|
Hành động |
com.google.android.payments.standard.TOPUP_V1 |
Danh mục | android.intent.category.DEFAULT |
Yêu cầu
Trường | |
---|---|
gspTopUpRequest
|
TopUpRedirectRequest
Yêu cầu nạp tiền. |
gspAssociationId
|
string
Chứa giá trị nhận dạng mà nhà tích hợp sử dụng để tra cứu thông tin đăng nhập cho tài khoản mà người dùng đang nạp tiền. Đây là mã liên kết được gửi trong quá trình liên kết tài khoản trong PartnerAccountRequest. |
Phản hồi
Sau khi người dùng hoàn tất quy trình nạp tiền, ứng dụng của bạn cần gửi ý định trả về kết quả cho Google. Nếu nạp tiền thành công, hãy tạo một ý định và thêm gspTopUpResponse và RedirectRequestId được mã hoá làm dữ liệu bổ sung. Tiếp theo, hãy đặt hoạt động vào mã kết quả thích hợp.
...
result.setExtra("gspTopUpResponse", gspTopUpResponse);
result.setExtra("redirectRequestId", redirectRequestId);
setResult(Activity.RESULT_OK, result);
...
finish();
Kết quả
Trường | |||||||
---|---|---|---|---|---|---|---|
kết quả |
int
|
Thông tin bổ sung
Trường | |
---|---|
gspTopUpResponse |
TopUpRedirectResponse
BẮT BUỘC: Phản hồi nạp tiền. Giá trị mã hoá này không được vượt quá 1KB. |
redirectRequestId |
string BẮT BUỘC: requestId được gửi trong yêu cầu thanh toán ban đầu/bắt đầu chuyển hướng. Google sẽ xác minh rằng URL này khớp với requestId đã gửi và quy trình Hoàn tất chuyển hướng sẽ không thành công nếu không khớp.
|
Các yêu cầu khác về hoạt động
Hoạt động hỗ trợ hành động TOPUP_V1
nêu trên phải
cũng kiểm tra để đảm bảo rằng phương thức gọi của API chỉ đến từ các ứng dụng có chữ ký của Google.
Thao tác này sẽ giúp ngăn các ứng dụng khác cố gọi hoạt động của bạn và
truy xuất dữ liệu người dùng. Có thể thực hiện việc này bằng cách sử dụng
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
ngay sau đó
super.onCreate
trong
Hoạt động
trong quá trình triển khai.
Dưới đây là ví dụ:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
Tất cả các hoạt động được gọi trong quy trình nạp tiền phải cung cấp một hoạt động
giao diện có windowIsTranslucent=true
. Bạn phải thực hiện việc này bằng
Thuộc tính android:theme của AndroidManifest và không sử dụng Context.setTheme()
.
Về mặt lập trình, việc đặt giao diện không hoạt động đúng cách cho cửa sổ
trong suốt. Google sẽ thực thi rằng hoạt động đầu tiên được khởi chạy phải tuân theo
nhưng mọi hoạt động phụ được khởi chạy cũng đều phải tuân theo
. Nếu không, giao dịch mua từ nhà phát triển bên thứ ba có thể không hoạt động.