Nút web JavaScript

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 heightsmall. 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à: darklight. 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:

  1. 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ọ.
  2. 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.