

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將您的 SaaS 合約型產品與 整合 AWS Marketplace
<a name="saas-integrate-contract-with-pay"></a>

**新 SaaS 產品的整合需求將於 2026 年 6 月 1 日變更**  
AWS Marketplace 推出並行協議的支援，可在同一個協議期間對單一 AWS 帳戶多次購買相同的產品。從 2026 年 6 月 1 日開始，所有新的 SaaS 產品都需要支援更新的整合需求。[檢閱並行協議的新整合](https://catalog.workshops.aws/mpseller/en-US/saas/integration-for-concurrent-agreements)。

將您的產品與 整合 AWS Marketplace 是 中的一個步驟[在 中建立 SaaS 產品 AWS Marketplace](saas-create-product.md)。若要將軟體即服務 (SaaS) 合約產品與 整合 AWS Marketplace，您必須撰寫程式碼，並示範它可以成功回應數個客戶案例。下列各節說明這些案例、說明如何回應這些案例，並提供測試整合的概觀。

**注意**  
本指南僅適用於以*合約為基礎的* SaaS 產品。如果您要實作*Pay-As-You-Go(PAYG)* SaaS 產品，請[將您的 SaaS 訂閱或Pay-As-You-Go產品與 整合 AWS Marketplace](saas-integrate-subscription.md)改用 。PAYG 產品不會使用權利 SNS 主題或 GetEntitlements API。  
開始之前，請確定您已為其中的軟體即服務 (SaaS) 產品選擇正確的定價模式 AWS Marketplace。如需詳細資訊，請參閱[規劃您的 SaaS 產品](saas-prepare.md)。

**Topics**
+ [案例：您的服務會驗證新客戶](#saas-contract-with-pay-validate-customer)
+ [案例：您的服務處理客戶請求](#saas-contract-with-pay-customer-requests)
+ [案例：計量表用量](#saas-contract-with-pay-meter-usage)
+ [案例：監控使用者權利的變更](#saas-contract-with-pay-monitor-changes)
+ [使用隨需pay-as-you-go整合測試您的 SaaS 合約](#saas-contract-consumption-integration-testing)

## 案例：您的服務會驗證新客戶
<a name="saas-contract-with-pay-validate-customer"></a>

當客戶訂閱您的產品時，它們會重新導向至您的註冊 URL，這是具有臨時`x-amzn-marketplace-token`字符的 HTTP POST 請求。以下列方式回應此請求：

1. 呼叫 中的 `[ ResolveCustomer](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_ResolveCustomer.html)` API 操作，`ProductCode`以交換 `CustomerIdentifier`、`LicenseArn`、 `CustomerAWSAccountId`和 的字符 AWS Marketplace Metering Service。

1. 透過在 中呼叫 `[ GetEntitlements](https://docs.aws.amazon.com/marketplaceentitlement/latest/APIReference/API_GetEntitlements.html)`動作，驗證客戶可存取的訂閱和數量 （如適用） AWS Marketplace Entitlement Service。

1. `ProductCode` 在您的系統中保留 `CustomerIdentifier`、`LicenseArn`、 `CustomerAWSAccountId`和 以供日後呼叫。存放客戶是否擁有有效的訂閱，以及您需要的客戶相關資訊。

1. 為了回應請求，您必須顯示使用者的第一次使用體驗 （適用於您的服務）。

## 案例：您的服務處理客戶請求
<a name="saas-contract-with-pay-customer-requests"></a>

當客戶對您的服務提出請求時，您必須以適當的動作或簡訊回應下列案例：
+ 它們在您的系統中沒有客戶 ID。這表示他們尚未訂閱。您應該向他們提供說明如何訂閱的訊息。
+ 他們有客戶 ID，API `GetEntitlements`操作會傳回適當的權利。在此案例中，您應該完成請求。
+ 它們確實有客戶 ID，但 `GetEntitlements` API 操作不會傳回任何權利，或沒有足夠的數量來滿足請求。在此案例中，您必須決定如何處理存取和管理他們的體驗。

## 案例：計量表用量
<a name="saas-contract-with-pay-meter-usage"></a>

當客戶開始使用您的服務時，您必須每小時傳送計量記錄。如需如何計量的詳細資訊，請參閱 [使用 SaaS 訂閱設定用量計量](metering-for-usage.md)。

我們建議您使用 AWS CloudTrail 來監控活動，以確保帳單資訊已傳送至其中 AWS。傳送計量記錄時，請記住下列事項：
+ 計量請求會在該小時刪除重複。
+ 每小時傳送的記錄是累積的。
+ 我們強烈建議最佳實務是，即使過去一小時沒有記錄，您仍每小時傳送計量記錄，使用量為 0。

## 案例：監控使用者權利的變更
<a name="saas-contract-with-pay-monitor-changes"></a>

設定 Amazon Simple Queue Service (Amazon SQS) 佇列，並訂閱您產品的 Amazon SNS 主題 — 有兩個 SNS 主題，一個用於權利變更，另一個用於訂閱變更。您的主題資訊包含在您在建立產品時從 AWS Marketplace 賣方營運團隊收到的電子郵件訊息中。如需詳細資訊，請參閱[在 中建立 SaaS 產品 AWS Marketplace](saas-create-product.md)。透過訂閱 SNS 主題，您會收到客戶訂閱變更的通知，包括提供或撤銷特定客戶的存取權。

**注意**  
訂閱變更的 SNS 主題 Amazon Resource Name (ARN) 看起來像 `arn:aws:sns:us-east-1:<account id>:aws-mp-subscription-notification-<product code>`。權利變更的 SNS 主題 ARN 看起來像 `arn:aws:sns:us-east-1:<account id>:aws-mp-entitlement-notification-<product code>`。

您必須回應的通知如下：
+ `entitlement-updated` （在權利 SNS 主題中） – 客戶權利已變更，您必須呼叫 `GetEntitlements` API 操作以查看新狀態。更新您的客戶商店，如果適用 （例如，客戶的合約已到期），請遵循關閉客戶資源的實務，並遵循您的保留政策。
+ `subscribe-success` （在訂閱 SNS 主題中） – 客戶已訂閱，您可以成功根據其客戶 ID 進行計量。
+ `unsubscribe-pending` （在訂閱 SNS 主題中） – 客戶正在取消訂閱。您應該傳送任何上次計量記錄。
+ `unsubscribe-success` （在訂閱 SNS 主題中） – 客戶已取消訂閱。將不再接受客戶的計量記錄。遵循您關閉客戶資源的實務，遵守您的保留政策。
+ `subscribe-fail` （在訂閱 SNS 主題中） – 客戶訂閱失敗。您不應該針對其客戶 ID 計量，或代表客戶啟用資源。

**注意**  
如需其他資訊，請參閱 [使用 檢查權利 AWS Marketplace Entitlement Service](checking-entitlements.md)。

## 使用隨需pay-as-you-go整合測試您的 SaaS 合約
<a name="saas-contract-consumption-integration-testing"></a>

將合約與pay-as-you-go產品整合之後 AWS Marketplace，您必須進行深入測試，以確保整合成功。下列程序概述驗證產品整合的步驟。

**注意**  
使用您自己的帳戶訂閱您的產品，並測試整合是否成功。價格可以暫時降低，以便您可以測試購買流程，而不會在這些帳戶中產生高額費用。如需暫時降低價格或允許其他測試帳戶存取您產品的詳細資訊，請聯絡[AWS Marketplace 賣方營運](https://aws.amazon.com/marketplace/management/contact-us/)團隊。  
啟動產品後，服務必須繼續回應新客戶的這些案例。

1. 使用允許的帳戶，透過取得您產品的合約來測試客戶體驗。

1. 帳戶簽訂合約後，請確定帳戶重新導向至註冊 URL，而且重新導向是包含臨時字符的 POST 請求。請確定您的應用程式保留客戶 ID 以供未來通話使用，並正確處理客戶擁有的權利。這會測試 的一部分[案例：您的服務會驗證新客戶](#saas-contract-with-pay-validate-customer)。

1. 在上一個步驟中驗證測試帳戶後，將帳戶加入您的應用程式。例如，您可以讓測試客戶填寫表單來建立新的使用者。或者，提供他們存取 SaaS 應用程式的其他後續步驟。這會測試 的一部分[案例：您的服務會驗證新客戶](#saas-contract-with-pay-validate-customer)。

1. 如果 `GetEntitlements` API 操作未傳回任何權利，無論是在加入期間或持續驗證通過時，您的應用程式都必須正確管理無權使用者的存取和體驗。這會測試 [案例：您的服務處理客戶請求](#saas-contract-with-pay-customer-requests)。

1. 測試客戶加入後，使用 中的 `BatchMeterUsage` API 操作，提出請求，以將計量記錄傳送到 AWS 進行計費 AWS Marketplace Metering Service。這會測試 [案例：計量表用量](#saas-contract-with-pay-meter-usage)。

1. 測試訂閱變更。確認您的應用程式正確處理取消訂閱、成功訂閱和失敗的訂閱案例。這會測試 [案例：監控使用者權利的變更](#saas-contract-with-pay-monitor-changes)。

1. 在您完成所有整合要求並測試解決方案之後，請通知 AWS Marketplace 賣方營運團隊。然後，他們會驗證您已成功呼叫 `GetEntitlements` API 操作並充分加入新客戶，以測試解決方案。他們也會確認您已成功使用 `BatchMeterUsage` API 操作傳送計量記錄。

整合和測試完成後，您可以執行最終審核並在公開上列出您的產品 AWS Marketplace。如需詳細資訊，請參閱[在 中建立 SaaS 產品 AWS Marketplace](saas-create-product.md)。