API Google Wallet cho phép người dùng của bạn thêm đối tượng vào Google Wallet từ web. Người dùng có thể thêm thẻ ngay trên trang web của bạn.
Tài liệu tham khảo này cung cấp thông tin chi tiết về phần tử HTML g:savetoandroidpay
tạo nút API Google Wallet cũng như Mã thông báo web JSON mô tả dịch vụ web của bạn cho Google.
JavaScript của API Google Wallet
Để tự động phân tích cú pháp các thẻ HTML g:savetoandroidpay
khi tải, hãy bao gồm JavaScript chuẩn
<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>
Đối với các ứng dụng AJAX và chế độ hiển thị rõ ràng các nút API của Google Wallet, hãy đưa vào tham số "parsetags": "explicit"
.
<script src="https://apis.google.com/js/platform.js" type="text/javascript"> {"parsetags": "explicit"} </script>
Thẻ HTML g:savetoandroidpay
Thẻ không gian tên g:savetoandroidpay
xác định
vị trí và các thuộc tính của nút Thêm vào
Google Wallet. Hãy dùng thẻ này nếu bạn đang kết xuất HTML và JWT phía máy chủ.
<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
Trường | Loại | Bắt buộc | Nội dung mô tả |
---|---|---|---|
height |
Chuỗi | N | Chiều cao của nút để hiển thị. Các giá trị có thể là: small (cao 30 px) và standard (cao 38 px). Mặc định height là small .
Tham khảo các nút API của Google Wallet để xem các mẫu nút có các chế độ cài đặt height khác nhau. |
jwt |
Chuỗi | Y | API Google Wallet JWT. |
onsuccess |
Chuỗi | N | Tên chuỗi của hàm trình xử lý gọi lại lưu thành công. |
onfailure |
Chuỗi | N | Tên chuỗi của hàm trình xử lý lệnh gọi lại lỗi lưu được. Hàm này được truyền một đối tượng lỗi chứa errorCode và errorMessage. |
onprovidejwt |
Chuỗi | N | Tên chuỗi của hàm xử lý JWT cung cấp. Mục đích của chức năng này là để chặn và có thể thao tác với dữ liệu JWT trước khi đối tượng được thêm vào Google Wallet.
Hàm này không chứa tham số và phải trả về JWT dưới dạng Chuỗi.
Khi triển khai trình xử lý sự kiện, bạn có thể truy xuất dữ liệu JWT ban đầu trong trường this.getOpenParams().renderData.userParams.jwt . |
size |
Chuỗi | N | Chiều rộng của nút để hiển thị. Bạn có thể thiết lập size thành matchparent để chiều rộng khớp với chiều rộng của phần tử mẹ. Bạn cũng có thể không xác định size để chiều rộng kéo giãn cho vừa với chiều rộng của chế độ cài đặt text .
Tham khảo các nút API của Google Wallet để xem các mẫu nút có các chế độ cài đặt size khác nhau. |
text |
Chuỗi | N | Không được dùng nữa |
textsize |
Chuỗi | N | Khi textsize=large được chỉ định, sẽ hiển thị kích thước văn bản và kích thước nút tăng đáng kể, đối với các trường hợp có các yêu cầu đặc biệt về giao diện người dùng. |
theme |
Chuỗi | N | Giao diện của nút sẽ hiển thị. Các giá trị có thể sử dụng là: dark và light . Giao diện mặc định là dark . Tham khảo các nút API của Google Wallet để xem các mẫu nút có chế độ cài đặt theme khác nhau. |
API Google Wallet JWT
API JWT của Google Wallet xác định các đối tượng và lớp cần lưu.
Biểu diễn dưới dạng JSON
{ "iss": "example_service_account@developer.gserviceaccount.com", "aud": "google", "typ": "savetowallet", "iat": 1368029586, "payload": { "eventTicketClasses": [{ ... //Event ticket Class JSON }], "eventTicketObjects": [{ // Event ticket Object JSON }], "flightClasses": [{ // Flight Class JSON }], "flightObjects": [{ // Flight Object JSON }], "giftCardClasses": [{ // Gift card Class JSON }], "giftCardObjects": [{ // Gift card Object JSON }], "loyaltyClasses": [{ // Loyalty Class JSON }], "loyaltyObjects": [{ // Loyalty Object JSON }], "offerClasses": [{ // Offer Class JSON }], "offerObjects": [{ // Offer Object JSON }], "transitClasses": [{ // Transit Class JSON }], "transitObjects": [{ // Transit Object JSON }] }, "origins": ["http://baconrista.com", "https://baconrista.com"] }
Trường
Trường | Loại | Bắt buộc | Nội dung mô tả |
---|---|---|---|
iss |
Chuỗi | Y | Địa chỉ email đã tạo do tài khoản dịch vụ Google Cloud của bạn. |
aud |
Chuỗi | Y | Đối tượng người xem. Đối tượng của Đối tượng API Google Wallet sẽ luôn là google . |
typ |
Chuỗi | Y | Loại JWT. Đối tượng của Đối tượng API Google Wallet sẽ luôn là savetowallet . |
iat |
Số nguyên | Y | Được phát hành vào thời gian tính bằng giây kể từ thời gian bắt đầu của hệ thống. |
payload |
Đối tượng | Y | đối tượng tải trọng. |
payload.eventTicketClasses |
Mảng | N | Loại vé xem sự kiện để lưu. |
payload.eventTicketObjects |
Mảng | N | Lưu đối tượng vé sự kiện để lưu. |
payload.flightClasses |
Mảng | N | Hạng chuyến bay để lưu. |
payload.flightObjects |
Mảng | N | Đối tượng chuyến bay để lưu. |
payload.giftCardClasses |
Mảng | N | Lớp thẻ quà tặng để lưu. |
payload.giftCardObjects |
Mảng | N | Đối tượng thẻ quà tặng để lưu. |
payload.loyaltyClasses |
Mảng | N | Lớp học khách hàng thân thiết để lưu. |
payload.loyaltyObjects |
Mảng | N | Đối tượng khách hàng thân thiết để lưu. |
payload.offerObjects |
Mảng | N | Cung cấp Đối tượng để lưu. |
payload.offerClasses |
Mảng | N | để lưu lớp học. |
payload.transitObjects |
Mảng | N | Đối tượng phương tiện công cộng để lưu. |
payload.transitClasses |
Mảng | N | Lớp phương tiện công cộng để lưu. |
origins |
Mảng | Y | Mảng các miền cần phê duyệt cho chức năng lưu JWT. Nút API Google Wallet
sẽ không hiển thị khi không xác định trường origins . Bạn có thể nhận được thông báo "Tải bị từ chối bởi X-Frame-Options" hoặc "Bị từ chối hiển thị" trong bảng điều khiển của trình duyệt khi trường nguồn gốc không được xác định. |
JWT được mã hoá của bạn sẽ giống như ví dụ sau:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw
Hàm gapi.savetoandroidpay.render
Chức năng này cho phép bạn hiển thị rõ ràng nút Google Wallet API.
gapi.savetoandroidpay.render("dom-container",{ "jwt": "JWT", "onsuccess": "successHandler", "onfailure": "failureHandler" });
Trường | Loại | Bắt buộc | Nội dung mô tả |
---|---|---|---|
dom-container |
Chuỗi | Y | Mã vùng chứa để đặt nút API Google Wallet. |
jwt |
Chuỗi | Y | JWT xác định nội dung cần lưu. |
onsuccess |
Chuỗi | N | Tên chuỗi của hàm trình xử lý gọi lại lưu thành công. |
onfailure |
Chuỗi | N | Tên chuỗi của hàm trình xử lý lệnh gọi lại lỗi lưu được. Hàm này được truyền một đối tượng lỗi chứa errorCode và errorMessage. |
onprovidejwt |
Chuỗi | N | Tên chuỗi của hàm xử lý JWT cung cấp. Mục đích của chức năng này là để chặn và có thể thao tác với dữ liệu JWT trước khi đối tượng được thêm vào Google Wallet.
Hàm này không chứa tham số và phải trả về JWT dưới dạng Chuỗi.
Khi triển khai trình xử lý sự kiện, bạn có thể truy xuất dữ liệu JWT ban đầu trong trường this.getOpenParams().renderData.userParams.jwt . |
Thông báo và mã lỗi của Google Wallet API
Các bảng sau đây liệt kê các mã lỗi và thông báo lỗi mặc định được truyền trong đối tượng lỗi đến hàm callback lỗi, khi một đối tượng không lưu thành công bằng nút JavaScript.
{ "errorCode": "errorCode", "errorMessage": "errorMessage" }
errorCode |
errorMessage |
---|---|
SERVICE_FAILURE |
Đã xảy ra lỗi trên máy chủ Google Wallet. |
CLASS_NOT_FOUND |
Không tìm thấy lớp được tham chiếu trong đối tượng. |
CLASS_MISMATCH |
Đối tượng phải cùng tồn tại, thuộc cùng loại và phải tham chiếu đến lớp kèm theo. |
ORIGIN_MISMATCH |
Nguồn gốc của nút không khớp với nguồn gốc được chỉ định trong danh sách nguồn gốc. |
INVALID_NUM_TYPES |
Bạn có thể chỉ định chính xác một loại đối tượng. |
INVALID_SIGNATURE |
Không thể xác minh chữ ký. |
INVALID_DUPLICATE_IDS |
Không cho phép đối tượng hoặc lớp trùng lặp. |
INVALID_JWT |
JWT không hợp lệ. |
INVALID_EXP_IAT |
JWT đã hết hạn hoặc được phát hành trong tương lai. |
INVALID_AUD |
Giá trị không hợp lệ cho trường AUD. |
INVALID_TYP |
Giá trị không hợp lệ cho trường TYP. |
INVALID_NUM_OBJECTS |
Bạn có thể chỉ định chính xác một đối tượng và tối đa một lớp cho thẻ khách hàng thân thiết, thẻ quà tặng và ưu đãi. |
MALFORMED_ORIGIN_URL |
Url gốc không đúng định dạng. Url phải chứa giao thức và miền. |
MISSING_ORIGIN |
Bạn phải chỉ định nguồn gốc. |
MISSING_FIELDS |
Đối tượng hoặc lớp kèm theo thiếu các trường bắt buộc. |
Localization
Ngôn ngữ trong nút JavaScript thay đổi dựa trên các tiêu chí sau:
- Nếu người dùng đã đăng nhập vào Google, nút này sẽ hiển thị bằng ngôn ngữ ưu tiên có trong hồ sơ Tài khoản Google của người dùng. Người dùng có thể đọc phần Thay đổi ngôn ngữ để tìm hiểu cách thay đổi ngôn ngữ ưu tiên trong Tài khoản Google của họ.
- Nếu người dùng chưa đăng nhập vào Google, nút này sẽ sử dụng giá trị
ACCEPT-LANGUAGE
trong tiêu đề HTTP.
Nếu bạn nhận thấy nút này không hiển thị bằng ngôn ngữ chính xác dựa trên logic nêu trên hoặc nếu từ ngữ không bình thường, hãy liên hệ với nhóm hỗ trợ của chúng tôi.