Các vấn đề về hiển thị và giải pháp cho người bán

Hướng dẫn này giải thích cách nhà phát triển ứng dụng bên thứ ba có thể sử dụng dịch vụ MerchantSupport để tạo trang chẩn đoán trong ứng dụng cho người bán.

Bạn có thể sử dụng dịch vụ này để tạo giao diện người dùng tương tự như các trang chẩn đoán tài khoảnvấn đề về sản phẩm của Merchant Center.

Dịch vụ MerchantSupport chỉ dành cho giao diện người dùng của bên thứ ba. Yêu cầu phải được kích hoạt khi người bán tương tác với giao diện người dùng của ứng dụng. Để tự động chẩn đoán cho tài khoản người bán của riêng bạn, hãy xem hướng dẫn về trạng thái tài khoản, trạng thái sản phẩmlọc sản phẩm.

Bạn nên cung cấp các trang sau trong ứng dụng của mình để giúp người bán khắc phục sự cố:

  • Thông tin chẩn đoán về tài khoản
  • Thông tin chẩn đoán về sản phẩm

Các cách triển khai trang chẩn đoán

Bạn có thể triển khai trang chẩn đoán theo nhiều cách. Dựa trên nhu cầu của bạn, hãy chọn tuỳ chọn xác định cách xử lý các thao tác chẩn đoán phức tạp. Trong yêu cầu, bạn có thể đặt user_input_action_option thành một trong các tuỳ chọn sau:

  • REDIRECT_TO_MERCHANT_CENTER: Đây là lựa chọn mặc định. Những thao tác yêu cầu hiển thị thêm nội dung hoặc nhận thêm dữ liệu đầu vào từ người bán sẽ chưa được triển khai đầy đủ trong ứng dụng của bạn. Đối với những thao tác này, API sẽ cung cấp một đường liên kết để chuyển hướng đến trang tương ứng trong Merchant Center, nơi người bán có thể thực hiện thao tác đó.

  • BUILT_IN_USER_INPUT_ACTIONS: Bạn có thể triển khai các hành động phức tạp yêu cầu hoạt động đầu vào của người dùng như một giải pháp trong ứng dụng.

Triển khai trang chẩn đoán

Phần này đề cập đến cách triển khai trang chẩn đoán. Tính năng này sử dụng tuỳ chọn mặc định (đơn giản) để xử lý các hành động phức tạp dưới dạng lệnh chuyển hướng đến Merchant Center.

Để biết cách triển khai nâng cao hơn với các hành động trong ứng dụng, hãy tham khảo các phần sau và xem bài viết Triển khai hành động tích hợp bằng hoạt động đầu vào của người dùng.

Triển khai

Dưới đây là cách chúng tôi đề xuất luồng trang chẩn đoán của bạn nên như sau:

  1. Một người bán sẽ mở trang chẩn đoán trong ứng dụng của bạn.
  2. Ứng dụng của bạn yêu cầu thông tin chẩn đoán bằng cách gọi dịch vụ MerchantSupport.

    Dưới đây là yêu cầu mẫu:

    POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/merchantsupport/renderaccountissues?timeZone=America/Los_Angeles&languageCode=en-GB {}
    

    Thay thế {merchantId} bằng giá trị nhận dạng duy nhất của tài khoản mà bạn muốn kích hoạt quá trình xử lý hành động.

  3. Ứng dụng của bạn hiển thị thông tin chẩn đoán và hành động được đề xuất trong nội dung phản hồi dành cho người bán. Dưới đây là phản hồi mẫu:

    {
      "issues": [
        {
          "title": "Misrepresentation",
          "impact": {
            "message": "Prevents all products from showing in all countries",
            "severity": "ERROR",
            "breakdowns": [
              {
                "regions": [
                  {
                    "code": "001",
                    "name": "All countries"
                  }
                ],
                "details": [
                  "Products not showing organically"
                ]
              }
            ]
          },
          "prerenderedContent": "\u003cdiv class=\"issue-detail\"\u003e\u003cdiv class=\"issue-content\"\u003e\u003cp class=\"content-element\"\u003e\u003cspan class=\"segment\"\u003eBased on the information available about your business, there is reason to believe that customers are being misled on Google. Review the Misrepresentation policy and make changes to your Merchant Center and/or online store.u003c/span\u003e\u003c/p\u003e\u003cp class=\"content-element root-causes-intro\"\u003e\u003cspan class=\"segment\"\u003eMake sure your Merchant Center and online store follow the following best practices / guidelines\u003c/span\u003e\u003c/p\u003e\u003cul class=\"content-element root-causes\"\u003e\u003cli\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003eProvide transparency about your business identity, business model, policies and how your customers can interact with you\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003ePromote your online reputation by showing reviews or highlighting any badges or seals of approval\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eUse a professional design for your online store that includes an SSL certificate\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eMake sure it's accessible for all users without any redirects and doesn't have any placeholders for text and images.u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eProvide information in the business information settings in your Merchant Center\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eLink any relevant third-party platforms to your Merchant Center and create a Google Business Profile.u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003eFollow SEO guidelines, improve your eligibility for seller ratings and match your product data in your Merchant Center with your online store\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003ca href=\"https://support.google.com/merchants/answer/6150127?hl=en-US\" class=\"content-element\"\u003eLearn more about the Misrepresentation policy\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e",
          "actions": [
            {
              "externalAction": {
                "type": "REVIEW_ACCOUNT_ISSUE_IN_MERCHANT_CENTER",
                "uri": "https://merchants.google.com/mc/products/diagnostics/accountissues?a=672911686&hl=en-US"
              },
              "buttonLabel": "Request review",
              "isAvailable": true
            }
          ]
        },
        {
          "title": "Adult-oriented content",
          "impact": {
            "message": "Prevents all products from showing in all countries",
            "severity": "ERROR",
            "breakdowns": [
              {
                "regions": [
                  {
                    "code": "001",
                    "name": "All countries"
                  }
                ],
                "details": [
                  "Products not showing organically"
                ]
              }
            ]
          },
          "prerenderedContent": "\u003cdiv class=\"issue-detail\"\u003e\u003cdiv class=\"callout-banners\"\u003e\u003cdiv class=\"callout-banner callout-banner-info\"\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003eReview requested on Aug 9, 2023. It can take a few days to complete.u003c/span\u003e\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"issue-content\"\u003e\u003cp class=\"content-element\"\u003e\u003cspan class=\"segment\"\u003eThere was a problem identified with the sale of prohibited adult products on your online store. In the case that you are intentionally selling adult items, enable Adult content in Settings in your Merchant Center. In your product file, use the \u003c/span\u003e\u003cspan class=\"segment segment-attribute\"\u003eadult\u003c/span\u003e\u003cspan class=\"segment\"\u003e attribute for specific products.u003c/span\u003e\u003c/p\u003e\u003cp class=\"content-element root-causes-intro\"\u003e\u003cspan class=\"segment\"\u003eMake sure the products meet the policy requirements\u003c/span\u003e\u003c/p\u003e\u003cul class=\"content-element root-causes\"\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eAdult oriented content may be prohibited or restricted depending on the product sold and the country it is sold\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eSee a full list of countries in the HelpCenter\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eDon't list sexually explicit content that is intended to arouse or includes content such as text, image, audio, or video of graphic sexual acts intended to arouse\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eExamples: Graphic depictions of sexual acts in progress, including hardcore pornography, any type of genital, anal, or oral sexual activity; graphic depictions of masturbation or genital arousal and language explicitly referencing arousal, masturbation, cartoon porn, or hentai\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003ca href=\"https://support.google.com/merchants/answer/6150138?hl=en-US#wycd-restricted-adult-content\" class=\"content-element\"\u003eLearn more about the Adult-oriented content policy\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e"
        },
        {
          "title": "Missing return and refund policy",
          "impact": {
            "message": "Limits visibility of all products in all countries",
            "severity": "ERROR",
            "breakdowns": [
              {
                "regions": [
                  {
                    "code": "001",
                    "name": "All countries"
                  }
                ],
                "details": [
                  "Limited visibility for products showing organically"
                ]
              }
            ]
          },
          "prerenderedContent": "\u003cdiv class=\"issue-detail\"\u003e\u003cdiv class=\"issue-content\"\u003e\u003cp class=\"content-element\"\u003e\u003cspan class=\"segment\"\u003eThere was a problem identified with the return and/or refund policy of your online store. Update your return or refund policy to provide customers a transparent shopping experience.u003c/span\u003e\u003c/p\u003e\u003cp class=\"content-element root-causes-intro\"\u003e\u003cspan class=\"segment\"\u003eMake sure your products meet the Shopping policy requirements\u003c/span\u003e\u003c/p\u003e\u003cul class=\"content-element root-causes\"\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eIt's available on your online store\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eWe recommend that you have a separate landing page for your policy and link to it from the other pages on your online store, so that it's easy to find.u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eIt's available in the language of the country you're selling in or in English\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eMake sure that the return and/or refund policy is available in the target language or in English. Ideally, users should be given the option to select the return and/or refund policy in their own language.u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003eIt's accessible to everyone visiting your online store, without having to log in, sign up or enter any personal information\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003ca href=\"https://support.google.com/merchants/answer/9158778?hl=en-US\" class=\"content-element\"\u003eLearn more about Missing return and refund policy\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e",
          "actions": [
            {
              "externalAction": {
                "type": "REVIEW_ACCOUNT_ISSUE_IN_MERCHANT_CENTER",
                "uri": "https://merchants.google.com/mc/products/diagnostics/accountissues?a=672911686&hl=en-US"
              },
             "buttonLabel": "Request review",
             "isAvailable": true
            }
          ]
        }
      ],
      "alternateDisputeResolution": {
        "uri": "https://support.google.com/european-union-digital-services-act-redress-options?hl=en-US",
        "label": "Additional options available to you"
      }
    }
    

    Bạn nên trình bày các vấn đề theo thứ tự trả về bằng titleimpact.message. Bạn cũng nên hiện impact.breakdowns của vấn đề khi người bán di chuột lên tiêu đề hoặc nội dung mô tả của vấn đề đó.

  4. Người bán nhấp vào một vấn đề trong danh sách.

  5. Ứng dụng hiển thị impact chi tiết của từng vấn đề theo country, destination, prerendered_content và các nút cho actions mà người bán có thể thực hiện để giải quyết vấn đề. Có nhiều loại thao tác:

    1. Hành động bên ngoài: Trỏ vào trang bên ngoài (ví dụ: trong Merchant Center) nơi người bán có thể giải quyết vấn đề.
    2. Các thao tác đơn giản được tích hợp sẵn: Trỏ đến trang trong ứng dụng của bạn để người bán có thể giải quyết vấn đề.
    3. Hành động do người dùng nhập tích hợp sẵn: Mở hộp thoại trong đó người bán có thể cung cấp thông tin bắt buộc và yêu cầu hành động. Bạn chỉ có thể sử dụng loại hành động này nếu BUILT_IN_USER_INPUT_ACTIONS được yêu cầu.
  6. Người bán làm theo hướng dẫn để giải quyết vấn đề.

  7. Người bán sẽ tải lại trang chẩn đoán trong ứng dụng của bạn.

  8. Ứng dụng của bạn gửi một yêu cầu khác đến dịch vụ MerchantSupport và hiển thị danh sách vấn đề mới.

Bạn có thể so sánh thông tin mà ứng dụng hoàn thiện hiển thị với các trang chẩn đoán trong Merchant Center để xác minh cách triển khai của mình.

Giao diện người dùng mô phỏng

Dưới đây là ví dụ về cách bạn có thể hiển thị thông tin từ phản hồi renderaccountissues trên trang chẩn đoán tài khoản. Các đối tượng trong giao diện người dùng được liên kết đến các trường API tương ứng trong mô hình. Bạn có thể tạo một trang tương tự cho các vấn đề về sản phẩm.

hình ảnh

Dưới đây là giao diện của trang chẩn đoán tài khoản được điền sẵn:

hình ảnh

Kiểu HTML được kết xuất trước

Phản hồi từ việc gọi dịch vụ MerchantSupport bao gồm trường prerendered_content, chứa thông tin chi tiết về từng vấn đề trong HTML. Bạn có thể nhúng trực tiếp nội dung HTML này vào giao diện người dùng để hiển thị vấn đề ở định dạng dễ đọc.

Bạn có thể thấy các phần tử HTML có lớp new-element. Lớp new-element được áp dụng cho các phần tử được thêm vào HTML sau khi bạn đã tích hợp với dịch vụ MerchantSupport. Bạn nên ẩn các phần tử bằng lớp new-element để có thể tạo kiểu cho các phần tử này trước khi hiển thị cho người dùng trong ứng dụng của bạn.

Dưới đây là ví dụ về giá trị của trường prerendered_content:

<div class="issue-detail">
  <div class="callout-banners">
    <div class="callout-banner callout-banner-info"><p><span class="segment">Review requested on Aug 9, 2023. It can take a few days to complete.</span>
    </p></div>
  </div>
  <div class="issue-content"><p class="content-element"><span class="segment">There was a problem identified with the sale of prohibited adult products on your online store. In the case that you are intentionally selling adult items, enable Adult content in Settings in your Merchant Center. In your product file, use the </span><span
      class="segment segment-attribute">adult</span><span class="segment"> attribute for specific products.</span>
  </p>
    <p class="content-element root-causes-intro"><span class="segment">Make sure the products meet the policy requirements</span>
    </p>
    <ul class="content-element root-causes">
      <li><p class="tooltip tooltip-style-info"><span class="segment">Adult oriented content may be prohibited or restricted depending on the product sold and the country it is sold</span><span
          class="tooltip-icon"><br></span><span class="tooltip-text"><span class="segment">See a full list of countries in the HelpCenter</span></span>
      </p></li>
      <li><p class="tooltip tooltip-style-info"><span class="segment">Don't list sexually explicit content that is intended to arouse or includes content such as text, image, audio, or video of graphic sexual acts intended to arouse</span><span
          class="tooltip-icon"><br></span><span class="tooltip-text"><span class="segment">Examples: Graphic depictions of sexual acts in progress, including hardcore pornography, any type of genital, anal, or oral sexual activity; graphic depictions of masturbation or genital arousal and language explicitly referencing arousal, masturbation, cartoon porn, or hentai</span></span>
      </p></li>
    </ul>
    <a href="https://support.google.com/merchants/answer/6150138?hl=en-US#wycd-restricted-adult-content"
       class="content-element">Learn more about the Adult-oriented content policy</a></div>
</div>

Dưới đây là giao diện sẽ xuất hiện nếu bạn nhúng prerendered_content HTML trước đó vào ứng dụng mà không tạo kiểu:

hình ảnh

Bạn có thể sử dụng nhiều lớp CSS để điều chỉnh cách nội dung hiển thị trong giao diện người dùng. Dưới đây là mẫu CSS mà bạn có thể sử dụng:

issue-detail {
  text-align: left;
  width: 700px;
  border-radius: 8px;
  background: white;
  margin: 16px;
  padding: 16px;
}

.content-element {
  margin: 8px 0 8px 0;
  display: block;
}

/* callout banners */
.callout-banners {
  margin: 0 0 16px 0;
}

.callout-banner {
  display: block;
  padding: 16px 16px 6px 16px;
  margin: 0 0 8px 0;
  border-radius: 8px;
}

.callout-banner-info {
  background: #e8f0fe;
}

.callout-banner-warning {
  background: #fef7e0;
}

.callout-banner-error {
  background: #fce8e6;
}

/* add an icon to the callout banner */
.callout-banner p {
  background-repeat: no-repeat;
  padding-left: 32px;
}

.callout-banner-error p {
  background-image: url("https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/error/default/20px.svg");
}

.callout-banner-warning p {
  background-image: url("https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/warning/default/20px.svg");
}

.callout-banner-info p {
  background-image: url("https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/search/default/20px.svg");
}

/* segments with style */
.segment-attribute {
  color: #198639;
  font-family: monospace, monospace;
}

.segment-bold {
  font-weight: bold;
}

.segment-italic {
  font-style: italic;
}

/* tooltip */
.tooltip {
  position: relative;
}

.tooltip-style-info .tooltip-icon:before {
  content: '(i)';
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  margin-left: 5px;
}

.tooltip-style-question .tooltip-icon:before {
  content: '(?)';
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  margin-left: 5px;
}

.tooltip .tooltip-text {
  visibility: hidden;
  text-align: left;
  background: white;
  border-radius: 8px;
  padding: 5px 0;
  border: 1px solid;
  padding: 10px;
  box-shadow: 3px 7px 12px #c1c1c1;
  position: absolute;
  z-index: 1;
}

.tooltip:hover .tooltip-text {
  visibility: visible;
}

/* table */
table.content-element {
  margin: 16px 0 16px 0;
  border: 1px solid #ccc;
  border-collapse: collapse;
  margin: 1em 0;
}

table.content-element th {
  background-color: #eee;
}

table.content-element th, table td {
  border: 1px solid #ddd;
  font-size: 0.9em;
  padding: 0.3em 1em;
}

/* hidde elements added in future, until they are supported in your application */
.new-element {
  visibility: hidden;
}

Dưới đây là giao diện của nội dung được hiển thị nếu bạn sử dụng CSS trước đó:

hình ảnh

Bạn cũng có thể định cấu hình và hiển thị chú thích thông qua CSS:

hình ảnh

Triển khai hành động tích hợp sẵn với hoạt động đầu vào của người dùng

Hành động tích hợp với hoạt động đầu vào của người dùng cho phép bạn cung cấp tính năng chẩn đoán phức tạp dưới dạng giải pháp trong ứng dụng trong ứng dụng của bạn. Bạn nên triển khai đây dưới dạng một hộp thoại để người bán có thể đưa ra thông tin đầu vào, đọc thêm thông tin và xác nhận yêu cầu.

Mỗi thao tác chứa một hoặc nhiều luồng thao tác. Đối với một số thao tác, có thể có nhiều luồng. Ví dụ: có thể có một quy trình khác khi người bán yêu cầu xem xét thêm vì họ không đồng ý với quyết định và một quy trình khác khi họ đã khắc phục vấn đề.

Để yêu cầu dữ liệu nhằm triển khai các thao tác phức tạp có hoạt động đầu vào của người dùng, bạn phải đặt trường user_input_action_option thành giá trị BUILT_IN_USER_INPUT_ACTIONS.

POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/merchantsupport/renderaccountissues

{
  "user_input_action_option": "BUILT_IN_USER_INPUT_ACTIONS"
}

Thay thế {merchantId} bằng giá trị nhận dạng duy nhất của tài khoản mà bạn muốn kích hoạt quá trình xử lý hành động.

Triển khai

Dưới đây là cách chúng tôi đề xuất quy trình của trang chẩn đoán yêu cầu thông tin do người dùng nhập:

  1. Người bán nhấp vào nút hành động.

    • Nếu có nhiều quy trình, ứng dụng của bạn sẽ cung cấp tất cả các quy trình đó để người bán có thể chọn một quy trình dựa trên ý định của họ.
    • Người bán chọn quy trình.
  2. Ứng dụng sẽ hiện tiêu đề, thông báo, chú thích và biểu mẫu nhập của người dùng cho quy trình hành động đã chọn. Bạn nên hiển thị các thông tin chi tiết này trong hộp thoại.

    • Chú thích (nếu có) chứa thông tin quan trọng nhằm giúp người bán hiểu rõ hơn về cách hoạt động và những việc cần làm để thành công. Bạn nên làm nổi bật và tạo kiểu cho thông báo này theo mức độ nghiêm trọng của chú thích.
    • Nếu có bất kỳ trường nhập dữ liệu nào trong luồng, bạn cần hiển thị các trường đó để người bán có thể cung cấp giá trị. Nếu trường nhập dữ liệu được đánh dấu là bắt buộc, thì ứng dụng của bạn không cho phép người bán gửi yêu cầu trước khi họ cung cấp giá trị.
  3. Người bán đọc thông tin và cung cấp các giá trị được yêu cầu.

  4. Người bán sẽ xác nhận yêu cầu của họ bằng cách nhấp vào nút.

  5. Ứng dụng của bạn kích hoạt quá trình xử lý thao tác bằng cách gọi dịch vụ MerchantSupport. Dưới đây là yêu cầu mẫu:

    POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/merchantsupport/triggeraction
    
    {
      actionContext: "ActionContextValue=",
      actionInput: { actionFlowId: "flow1",
      inputValues: [
      { input_field_id: "input1", checkbox_input_value: { value: true } }
      ]
    }
    

    Thay thế {merchantId} bằng giá trị nhận dạng duy nhất của tài khoản mà bạn muốn kích hoạt quá trình xử lý hành động.

    Để truy cập vào phương thức triggeraction dành cho BuiltInUserInputAction, hãy gửi yêu cầu bằng biểu mẫu này.

  6. Ứng dụng của bạn hiện thông báo xác nhận được dịch vụ MerchantSupport trả về.

    • Nếu dịch vụ trả về lỗi xác thực với trạng thái INVALID_ARGUMENT, thì dịch vụ sẽ chứa thông tin chi tiết và thông báo lỗi đã bản địa hoá sẽ hiển thị cho người bán. Bạn nên hiển thị lỗi như vậy ở gần trường nhập dữ liệu bị ảnh hưởng. Dưới đây là ví dụ về một phản hồi mẫu:
    {
      "error":
        {
          "code": 400,
          "message": "[actionInput.inputValues] Invalid user input",
          "status": "INVALID_ARGUMENT",
          "details": [
          {
            "@type": "type.googleapis.com/google.rpc.ErrorInfo",
            "reason": "invalid",
            "domain": "global"
          },
          {
            "@type": "type.googleapis.com/google.rpc.BadRequest",
            "fieldViolations": [
              {
                "field": "actionInput.inputValues.input",
                "description": "The field is required"
              }
            ]
          }
        ]
      }
    }
    
    • Nếu dịch vụ trả về trạng thái không hợp lệ hoặc lỗi nội bộ, được biểu thị bằng các trạng thái FAILED_PRECONDITIONINTERNAL, thì ứng dụng phải hướng dẫn người bán tải lại trang hoặc thử lại sau.