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

Phần này giải đáp các câu hỏi thường gặp về quy trình Đăng ký nhà phát triển cho Merchant API.

Đăng ký chung

Câu hỏi thường gặp về quy trình đăng ký:

Có bắt buộc phải đăng ký nhà phát triển để sử dụng Merchant API không?

Có. Bạn phải đăng ký thông tin liên hệ của nhà phát triển để Google có thể gửi các thông tin cập nhật quan trọng dành riêng cho API, chẳng hạn như thông báo về dịch vụ và thông tin về các tính năng mới.

Nếu chỉ muốn khám phá và kiểm thử Merchant API, bạn có thể sử dụng các công cụ như Google OAuth Playground và API Explorer mà không cần đăng ký.

Tôi cần đăng ký với tần suất như thế nào?

Quy trình đăng ký là quy trình thiết lập một lần cho mỗi dự án trên đám mây của Google. Dù bạn có làm việc với nhiều tài khoản người bán hay không, bạn cũng chỉ thực hiện thao tác đăng ký một lần và thao tác này áp dụng cho tất cả người dùng và tài khoản dịch vụ trong dự án trên đám mây Google Cloud được liên kết.

Sau khi đăng ký thành công một dự án trên đám mây của Google Cloud, đường liên kết sẽ vẫn hoạt động trừ phi bạn xoá rõ ràng bằng cách gọi phương thức unregisterGcp. Bạn không thể đăng ký các dự án dùng chung do Google sở hữu, chẳng hạn như API Explorer hoặc OAuth Playground.

Tôi nên cung cấp địa chỉ email nào làm thông tin liên hệ của nhà phát triển?

Bạn nên sử dụng địa chỉ email công ty của một cá nhân. Ngoài ra, bạn có thể sử dụng các bí danh nhóm chung. Bạn không thể sử dụng email của tài khoản dịch vụ vì thông tin liên lạc dành cho người nhận là người. Google gửi các thông tin cập nhật quan trọng dành riêng cho API, chẳng hạn như thông báo về dịch vụ và thông tin về các tính năng mới.

Nếu địa chỉ email thuộc về một người dùng hiện có trong tài khoản Merchant Center, thì người dùng đó sẽ tự động được cấp vai trò API_DEVELOPER. Nếu không, một lời mời sẽ được gửi đến địa chỉ đó.

Trường địa chỉ email liên hệ của nhà phát triển là không bắt buộc trong phương thức registerGcp. Nếu khi đăng ký, bạn không cung cấp giá trị cho trường này, thì bạn phải tạo một người dùng có vai trò API_DEVELOPER trong giao diện người dùng Merchant Center hoặc bằng cách gọi phương thức accounts.users.create.

Email liên hệ của nhà phát triển có cần phải là Tài khoản Google không?

Có. Để sử dụng một email hiện có không phải của Google, bạn có thể liên kết email đó với một Tài khoản Google bằng cách chọn tuỳ chọn Sử dụng email hiện có trong quy trình đăng ký Tạo Tài khoản Google. Bạn không thể sử dụng email của tài khoản dịch vụ vì tài khoản dịch vụ không thể nhận email.

Làm cách nào để thực hiện quy trình xác thực và cấp quyền cho lệnh gọi đăng ký?

Có 2 trường hợp xác thực riêng biệt cho quy trình xác thực và cấp quyền của lệnh gọi đăng ký, tuỳ thuộc vào trường hợp sử dụng của bạn:

  • OAuth 2.0: dành cho các nhà cung cấp hoặc đại lý bên thứ ba quản lý nhiều tài khoản người bán
  • Tài khoản dịch vụ: để truy cập vào tài khoản Merchant Center của riêng bạn

Văn bản thay thế để tăng khả năng tiếp cận

Sơ đồ trước đó cho thấy 2 quy trình xác thực và cấp quyền cho lệnh gọi đăng ký. Bạn có thể chọn trong số các lựa chọn sau:

  • Sử dụng OAuth với một địa chỉ email như account@email.com được liên kết với một Tài khoản Google
  • Sử dụng một tài khoản dịch vụ như sa@project.iam.gserviceaccount.com

Nếu bạn quyết định sử dụng OAuth:

  • Tạo thông tin xác thực OAuth trong dự án trên đám mây của Google Cloud cho email của bạn
  • Đảm bảo rằng địa chỉ email cấp quyền tồn tại trong Merchant Center và có loại quyền truy cập ADMIN

Nếu bạn quyết định sử dụng tài khoản dịch vụ:

  • Đảm bảo rằng tài khoản dịch vụ tồn tại trong dự án Google Cloud của bạn
  • Đảm bảo rằng địa chỉ email được liên kết với tài khoản dịch vụ tồn tại trong Merchant Center và có loại quyền truy cập ADMIN

Thực hiện lệnh gọi đăng ký trong bối cảnh bảo mật của danh tính xác thực, bằng cách sử dụng lệnh gọi API trực tiếp hoặc thư viện ứng dụng. Cung cấp một địa chỉ email cho thông tin liên hệ của nhà phát triển, ví dụ: developer@email.com.

Nếu lệnh gọi đăng ký thành công, thì một người dùng sẽ tồn tại trong Merchant Center với địa chỉ email của nhà phát triển được cung cấp và vai trò API_DEVELOPER. Bạn sẽ nhận được một tài nguyên DeveloperRegistration dưới dạng phản hồi.

Sự khác biệt giữa email xác thực và email liên hệ của nhà phát triển là gì?

Hai địa chỉ email này phục vụ các mục đích riêng biệt trong hệ sinh thái Merchant API:

  • Email xác thực: Bạn thường sử dụng email được liên kết với Tài khoản Google hoặc với tài khoản dịch vụ làm danh tính để cấp quyền cho các yêu cầu đối với Merchant API, miễn là:
    • Email đó tồn tại trong Merchant Center và có vai trò ADMIN.
    • Một Dự án Google Cloud đã bật Merchant API lưu trữ ứng dụng OAuth hoặc tài khoản dịch vụ được liên kết với email cấp quyền cho các lệnh gọi API.
  • Email liên hệ của nhà phát triển: Email liên hệ của nhà phát triển cũng phải được liên kết với một Tài khoản Google, nhưng đóng vai trò là người liên hệ chính cho các thông báo quan trọng về dịch vụ và thông tin cập nhật API của Google. Email này có thể thuộc về một người dùng hoặc một nhóm người dùng. Theo mặc định, email này sẽ có vai trò API developer trong Merchant Center.

Tôi có phải chấp nhận lời mời do email liên hệ của nhà phát triển nhận được không?

Có. Người nhận email liên hệ của nhà phát triển mà bạn cung cấp có 14 ngày để chấp nhận lời mời. Quy trình đăng ký chỉ hoàn tất sau khi họ chấp nhận lời mời. Tuy nhiên, bạn có thể thực hiện các lệnh gọi API trong thời gian này.

Nếu không chấp nhận lời mời trong thời gian được chỉ định, thì đường liên kết lời mời sẽ hết hạn. Bạn không thể thực hiện các lệnh gọi Merchant API nữa và phải bắt đầu lại quy trình đăng ký.

Quản lý tài khoản và dự án

Câu hỏi thường gặp về cách quản lý tài khoản và dự án:

Tôi làm việc với nhiều tài khoản Merchant Center. Tôi có cần đăng ký mọi Tài khoản Merchant Center mà tôi muốn sử dụng với Merchant API không?

Không. Nếu là nhà phát triển bên thứ ba hoặc đại lý quản lý nhiều tài khoản của người bán, bạn sẽ đăng ký dự án Google Cloud bằng tài khoản Merchant Center chính của riêng mình, chứ không phải bằng từng tài khoản của người bán. Bằng cách này, bạn đại diện cho nhà phát triển đối với tất cả công việc liên quan đến API mà bạn thực hiện cho người bán.

Tôi làm việc với nhiều tài khoản Merchant Center. Làm cách nào để chọn Tài khoản Merchant Center chính?

Việc chọn tài khoản chính để sử dụng phụ thuộc vào loại hình doanh nghiệp của bạn:

  • Trang web thương mại có tài khoản nâng cao hiện có: Nếu doanh nghiệp của bạn hoạt động dưới dạng một trang web thương mại và đã có một tài khoản nâng cao đại diện cho toàn bộ nền tảng, hãy sử dụng mã tài khoản hiện có này làm Tài khoản Merchant Center chính.
  • Dịch vụ so sánh giá (CSS): Nếu bạn là một Dịch vụ so sánh giá (CSS), hãy sử dụng mã tài khoản Dịch vụ so sánh giá (CSS) duy nhất hoặc mã tài khoản nhóm Dịch vụ so sánh giá.
  • Đại lý, Nhà phát triển và các bên thứ ba khác: Nếu bạn là một doanh nghiệp bên thứ ba như một đại lý hoặc nhà phát triển bên thứ ba quản lý nhiều tài khoản người bán và thiếu một Mã truy cập Merchant Center duy nhất đại diện cho doanh nghiệp của bạn, thì bạn nên tạo một Tài khoản Merchant Center chính mới và yêu cầu chuyển đổi tài khoản đó thành tài khoản nâng cao.

Sau khi dự án Google Cloud được đăng ký vào tài khoản Merchant Center chính, bạn có thể sử dụng cùng một dự án đó để quản lý bất kỳ tài khoản Merchant Center nào khác mà bạn có quyền truy cập, mà không cần đăng ký từng tài khoản đó.

Tôi sử dụng nhiều dự án Google Cloud. Tôi có cần đăng ký từng dự án không?

Có. Vì quy trình đăng ký liên kết dự án Google Cloud đang gọi, nên bạn phải thực hiện lệnh gọi registerGcp từ mỗi dự án Google Cloud mà bạn sử dụng để thực hiện các lệnh gọi API.

Mỗi dự án Google Cloud chỉ có thể được đăng ký vào đúng một tài khoản Merchant Center tại một thời điểm. Tuy nhiên, một tài khoản Merchant Center có thể có nhiều dự án Google Cloud được đăng ký vào đó. Tương tự, bạn có thể sử dụng cùng một địa chỉ email của nhà phát triển để thực hiện nhiều lần đăng ký trên nhiều dự án Google Cloud hoặc nhiều Merchant Center.

Điều gì xảy ra nếu tôi đăng ký một dự án trên đám mây của Google Cloud với nhiều tài khoản Merchant Center?

Việc cố gắng đăng ký một dự án Google Cloud đã được đăng ký với một tài khoản Merchant Center khác sẽ dẫn đến lỗi ALREADY_REGISTERED.

Làm cách nào để xác thực lệnh gọi API đăng ký nhà phát triển?

Để xác thực lệnh gọi API đăng ký nhà phát triển cho Merchant API, bạn sử dụng thông tin xác thực được quản lý thông qua một Dự án Google Cloud. Bạn có 2 lựa chọn chính cho danh tính thực hiện quy trình xác thực:

  • Tài khoản Google như Gmail sử dụng OAuth 2.0: Phương thức này sử dụng thông tin xác thực ứng dụng OAuth 2.0 được tạo trong Dự án Google Cloud của bạn. Lệnh gọi API được cấp quyền thay mặt cho một Tài khoản Google cụ thể mà người dùng đăng nhập.
  • Tài khoản dịch vụ: Phương thức này sử dụng Tài khoản dịch vụ Google Cloud, đây là một loại Tài khoản Google đặc biệt dành cho các ứng dụng. Thông tin xác thực cho Tài khoản dịch vụ cũng được quản lý trong dự án Google Cloud của bạn.

Để đăng ký thành công nhà phát triển, danh tính xác thực (Tài khoản Google hoặc Tài khoản dịch vụ) phải đáp ứng các tiêu chí sau trong Merchant Center:

  • Tồn tại dưới dạng Người dùng trong Merchant Center: Địa chỉ email được liên kết với Tài khoản Google xác thực hoặc Tài khoản dịch vụ phải được thêm làm người dùng trong tài khoản Merchant Center mà bạn đang đăng ký.
  • Yêu cầu vai trò Quản trị viên: Người dùng này phải được chỉ định vai trò ADMIN trong tài khoản Merchant Center cụ thể đó.

Khi thực hiện các lệnh gọi API:

  • Nếu đang sử dụng lệnh gọi API trực tiếp, bạn phải lấy và cung cấp Mã truy cập hợp lệ trong tiêu đề Authorization. Mã này được tạo bởi quy trình OAuth 2.0 cho một Tài khoản Google hoặc quy trình xác thực từ máy chủ đến máy chủ cho một Tài khoản dịch vụ.
  • Thư viện ứng dụng do Google cung cấp thường xử lý các vấn đề phức tạp khi lấy và làm mới Mã truy cập cho bạn trong quá trình định cấu hình.

Người dùng xác thực có thể không giống với người dùng liên hệ của nhà phát triển. Để biết thêm thông tin, hãy xem Sự khác biệt giữa email xác thực và email liên hệ của nhà phát triển là gì?

Tôi cần làm mới mã truy cập với tần suất như thế nào?

Mã truy cập cho cả Tài khoản dịch vụ và OAuth 2.0 thường hết hạn sau 1 giờ. Tuy nhiên, cơ chế để lấy mã truy cập mới phụ thuộc vào phương thức xác thực mà bạn đang sử dụng:

  • Tài khoản dịch vụ sử dụng khoá riêng tư hoặc thông tin xác thực môi trường để tạo mã truy cập mới bất cứ khi nào cần.
  • Quy trình OAuth 2.0 sử dụng refresh_token để gọi điểm cuối mã thông báo Google OAuth2 nhằm nhận mã truy cập mới có thời hạn 1 giờ.

Bạn nên sử dụng Thư viện xác thực chính thức của Google để tự động xử lý việc thay đổi định kỳ này, nhờ đó ứng dụng của bạn sẽ không bao giờ gặp phải thời gian ngừng hoạt động.

Người dùng và vai trò

Câu hỏi thường gặp về người dùng và vai trò:

Tài khoản email của nhà phát triển có phải đã tồn tại trong Merchant Center không?

Không. Nếu tài khoản email đăng ký chưa tồn tại trong Merchant Center, thì Merchant API sẽ tạo tài khoản đó trong Merchant Center với email được chỉ định ở trạng thái Đang chờ xử lý. Nếu địa chỉ email của nhà phát triển thuộc về một người dùng hiện có trong tài khoản Merchant Center, thì người dùng đó sẽ tự động được cấp vai trò API_DEVELOPER.

Email liên hệ của nhà phát triển có cần có quyền Quản trị viên trong Merchant Center không?

Không. Người dùng Merchant Center được liên kết với email liên hệ của nhà phát triển sẽ nhận được vai trò API_DEVELOPER theo mặc định. Vai trò này là bắt buộc để nhận các thông báo quan trọng. Tuy nhiên, vai trò này có quyền tối thiểu trong Merchant Center. Để cho phép người dùng này thực hiện các lệnh gọi API khác hoặc quản lý chế độ cài đặt trong giao diện người dùng Merchant Center, bạn cần cấp cho họ các vai trò bổ sung, chẳng hạn như STANDARD hoặc ADMIN. Để biết thêm thông tin về các vai trò trong Merchant Center, hãy xem bài viết Các loại quyền truy cập.

Vai trò "Nhà phát triển API" có những quyền nào?

Vai trò API Developer là một vai trò có quyền tối thiểu trong Merchant Center. Nếu bạn dự định sử dụng email liên hệ của nhà phát triển để cấp quyền cho các lệnh gọi đến Merchant API, thì bạn nên thêm quyền ADMIN hoặc STANDARD để cho phép người dùng thực hiện các lệnh gọi API.

Tôi có cần đăng ký từng người dùng nhà phát triển hoặc tài khoản dịch vụ gọi API không?

Không. Quy trình đăng ký nhà phát triển được liên kết với dự án Google Cloud đang được sử dụng để thực hiện các lệnh gọi API, chứ không phải với từng người dùng hoặc tài khoản dịch vụ. Sau khi đăng ký thành công một dự án trên đám mây Google Cloud với tài khoản Merchant Center chính, bạn có thể sử dụng bất kỳ danh tính nào được quản lý thông qua dự án Google Cloud được liên kết bằng thông tin xác thực OAuth hoặc tài khoản dịch vụ để cấp quyền cho các lệnh gọi Merchant API, miễn là các danh tính đó tồn tại trong Merchant Center và được chỉ định vai trò ADMIN.

Làm cách nào để thay đổi email liên hệ của nhà phát triển sau lần đăng ký ban đầu?

Để quản lý hoặc thay đổi thông tin liên hệ, hãy sử dụng dịch vụ accounts.users tiêu chuẩn hoặc trang "Quyền truy cập và dịch vụ" trong giao diện người dùng Merchant Center để thêm hoặc xoá người dùng có vai trò API Developer.

Điều gì xảy ra nếu người dùng "Nhà phát triển API" cuối cùng bị xoá khỏi tài khoản Merchant Center?

Thời gian gia hạn 30 ngày sẽ được kích hoạt để tránh gián đoạn dịch vụ ngay lập tức. Trong thời gian này:

  • Quản trị viên sẽ nhận được 3 thông báo bắt buộc về dịch vụ qua email (thường là khoảng 30, 17 và 4 ngày trước khi bị chặn).
  • Các lệnh gọi API sẽ tiếp tục hoạt động bình thường.
  • Nếu bạn không thêm API Developer mới trước khi thời gian gia hạn hết hạn, thì các lệnh gọi API từ các dự án Google Cloud được liên kết sẽ bị chặn kèm theo lỗi AUTH_GCP_NOT_REGISTERED.

Khi thời gian gia hạn 30 ngày kết thúc, các lệnh gọi API từ các dự án Google Cloud được liên kết sẽ bị chặn và nhận được lỗi AUTH_GCP_NOT_REGISTERED cho đến khi thông tin liên hệ hợp lệ của nhà phát triển được khôi phục.

Điều gì xảy ra nếu Mã truy cập Merchant Center mà quy trình đăng ký nhà phát triển được thực hiện bị xoá?

Đừng xoá tài khoản Merchant Center dùng để đăng ký nhà phát triển khi quá trình tích hợp của bạn đang hoạt động. Việc xoá tài khoản này sẽ phá vỡ ngay lập tức quá trình tích hợp và bạn sẽ không thể thực hiện các Lệnh gọi API từ dự án trên đám mây Google được liên kết nữa.

Nếu phải xoá tài khoản Merchant Center đó, trước tiên, bạn nên gọi phương thức unregisterGcp để xoá đường liên kết một cách an toàn, rồi sau đó mới tiến hành xoá Mã truy cập Merchant Center. Nếu muốn tiếp tục sử dụng Merchant API, bạn cần đăng ký bằng một Mã truy cập Merchant Center khác ngay sau khi huỷ đăng ký mã hiện tại. Sau đó, bạn mới tiến hành xoá Mã truy cập Merchant Center.

Các trường hợp sử dụng đặc biệt

Câu hỏi thường gặp về các trường hợp sử dụng đặc biệt:

Tôi là một đại lý hoặc nhà phát triển bên thứ ba quản lý nhiều tài khoản người bán. Đâu là cách thiết lập tốt nhất?

Các nhà phát triển và đại lý bên thứ ba nên duy trì tài khoản Merchant Center chính của riêng họ và đăng ký tất cả các dự án Google Cloud vào một tài khoản tập trung duy nhất đó. Đừng đăng ký dự án trên đám mây của Google với từng tài khoản của người bán.

Quy trình đăng ký hoạt động như thế nào đối với Google App Scripts?

Apps Script thường chạy trên một dự án trên đám mây mặc định của Google. Bạn phải đăng ký Mã Google Cloud mặc định này với tài khoản Merchant Center. API sẽ tự động lấy Mã Google Cloud, vì vậy, bạn không cần cung cấp mã này dưới dạng tham số.

Tôi có thể kiểm tra xem một Mã truy cập Merchant Center có được đăng ký vào một Mã dự án Google Cloud cụ thể hay không?

Có. Bạn có thể kiểm tra Mã truy cập Merchant Center nào được đăng ký vào một dự án trên đám mây Google Cloud cụ thể bằng cách sử dụng phương thức getAccountForGcpRegistration. Để xoá đường liên kết dự án Google Cloud đến tài khoản Merchant Center, hãy sử dụng phương thức unregisterGcp.