

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

# SaaS 產品的 Amazon SNS 通知
<a name="saas-notification"></a>

**重要**  
正在以 Amazon EventBridge 通知取代 AWS Marketplace SaaS 產品的 SNS 通知。如果您有與 SNS 整合的現有 SaaS 產品，它們將繼續運作。新的清單最終將轉換為使用 Amazon EventBridge 而非 SNS。如需詳細資訊，請參閱[使用 Amazon EventBridge 管理 SaaS 訂閱事件](saas-eventbridge-integration.md)。

若要接收通知，您可以訂閱產品建立期間 AWS Marketplace 提供給您的 Amazon Simple Notification Service (Amazon SNS) 主題。這些主題提供客戶訂閱的變更通知，以及您產品的合約權利。這可讓您知道何時提供和撤銷特定客戶的存取權。

**注意**  
在產品建立過程中，您將收到 SNS 主題的實際 Amazon Resource Name (ARN)。例如： `arn:aws:sns:us-east-1:123456789012:aws-mp-subscription-notification-PRODUCTCODE`

下列 Amazon SNS 主題適用於軟體即服務 (SaaS) 產品：
+ [Amazon SNS 主題： `aws-mp-entitlement-notification`](#saas-sns-message-body) – 本主題會在買方建立新合約、升級合約、續約合約或合約過期時通知您。這僅適用於定價模型包含合約的產品 （也稱為 **SaaS 合約**和 **SaaS 合約使用量 （超額）**)。
+ [Amazon SNS 主題： `aws-mp-subscription-notification`](#saas-sns-subscription-message-body) – 本主題會在買方訂閱或取消訂閱產品時通知您，並包含`offer-identifier`適用於私有優惠的 和適用於 SaaS 免費試用的免費試用旗標。這適用於所有定價模式，包括合約和訂閱 （也稱為 **SaaS 訂閱**、**SaaS 合約**和 **SaaS 使用合約 （超額）**。

若要進一步了解您回應這些通知的案例，請參閱下列主題：
+ [將您的 SaaS 訂閱或Pay-As-You-Go產品與 整合 AWS Marketplace](saas-integrate-subscription.md)
+ [將您的 SaaS 合約產品與 整合 AWS Marketplace](saas-integrate-contract.md)
+ [將您的 SaaS 合約型產品與 整合 AWS Marketplace](saas-integrate-contract-with-pay.md)

## Amazon SNS 主題： `aws-mp-entitlement-notification`
<a name="saas-sns-message-body"></a>

`aws-mp-entitlement-notification` 主題中的每個訊息都有下列格式。

```
{
    "action": "<action-name>",
    "customer-identifier": " X01EXAMPLEX",
    "product-code": "n0123EXAMPLEXXXXXXXXXXXX",
}
```

*<action-name>* 一律為 ` entitlement-updated`。

**注意**  
對於權利訊息，無論動作為何 （新、升級、續約或過期），訊息都是相同的。`GetEntitlement` 需要後續呼叫 ，才能探索更新的內容。
對於**使用 （超額） 的 SaaS 合約**，賣方會與 [`aws-mp-subscription-notification` SNS 主題](#saas-sns-subscription-message-body)一起提供。這是賣方新增超額定價時收到的額外通知。當賣方取得新客戶時，而不是只取得 `entitlement-updated`（可能是指任何類型的動作），賣方會收到訂閱訊息，指出這是新客戶。
對於未來日期的協議 (FDAs)，此主題會在協議開始日期 （而非協議簽署日期） 啟動。當權利發生後續變更時，例如取消、取代、續約或協議到期，也會啟動。

具有合約定價的產品 （包括pay-as-you-go的合約） 必須回應這些訊息。如需如何回應的詳細資訊，請參閱 [案例：監控使用者訂閱的變更](saas-integrate-contract.md#saas-contract-monitor-changes)。

## Amazon SNS 主題： `aws-mp-subscription-notification`
<a name="saas-sns-subscription-message-body"></a>

`aws-mp-subscription-notification` 主題中的每個訊息都有下列格式。

```
{
    "action": "<action-name>",
    "customer-identifier": " X01EXAMPLEX",
    "product-code": "n0123EXAMPLEXXXXXXXXXXXX",
    "offer-identifier": "offer-abcexample123",
    "isFreeTrialTermPresent":"true"
}
```

只有在動作為 `subscribe-success`或 時， `offer-identifier`才會包含在通知中`subscribe-fail`。當動作為 `unsubscribe-pending`或 時，它不會包含在通知中`unsubscribe-success`。對於 2024 年 1 月之前建立的優惠，此識別符僅包含在私有優惠的通知中。對於 2024 年 1 月及更新版本建立的優惠，此識別符會包含在所有優惠的通知中，包括私有優惠和公有優惠。

如需優惠類型的資訊，請參閱 [DescribeEntity API](https://docs.aws.amazon.com//marketplace/latest/APIReference/work-with-private-offers.html#describe-entity) 的回應或協議[續約儀表板中的協議](https://docs.aws.amazon.com//marketplace/latest/userguide/agreements-renewals-dashboard.html)優惠可見性。

**注意**  
 對於 [DescribeEntity API](https://docs.aws.amazon.com//marketplace/latest/APIReference/work-with-private-offers.html#describe-entity)，如果您 AWS 帳戶 在以該優惠規則為目標的面向帳戶中找到 ，則這是私有優惠。如果 AWS 帳戶 帳戶中沒有以該優惠規則為目標的面向為目標的 ，則這是公開優惠。

`isFreeTrialTermPresent` 屬性會指出買方的訂閱是否為免費試用。此屬性的 JSON 值不是*布林*值資料類型。反之，值會轉換為*字串*資料類型。如需詳細資訊，請參閱 [ SaaS 免費試用。](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-free-trials.html)

*<action-name>* 會根據通知而有所不同。可能的動作包括：
+ `subscribe-success` – 賣方何時可以開始傳送計量記錄`subscribe-success`的訊息。如果買方接受以[協議為基礎的優惠](https://docs.aws.amazon.com/marketplace/latest/userguide/private-offers-upgrades-and-renewals.html#private-offers-upgrades-and-renewals-process)，此訊息會再次與新的 一起傳送`offer-identifier`。
+ `subscribe-fail` – 如果產生`subscribe-fail`訊息，即使買方已從 轉換 AWS Marketplace 到賣方的 SaaS 登陸頁面，付款仍可能失敗。在允許使用產品之前，賣方應等待`subscribe-success`訊息。
+ `unsubscribe-pending` – 當買方取消訂閱時，`unsubscribe-pending`會先傳送訊息。這表示賣方在完全取消買方之前，取得最終計量記錄的時間有限 （約一小時）。
+ `unsubscribe-success` – `unsubscribe-success` 訊息表示取消完成，之後將不再接受進一步的計量記錄。

**注意**  
如果買方取消訂閱，然後在傳送最終`unsubscribe-success`訊息之前立即成功重新訂閱，則不會傳送最終`unsubscribe-success`訊息，而是`subscribe-success`傳送訊息。
對於未來日期的協議 (FDAs)，`subscribe-success`動作會在協議開始日期 （而非協議簽署日期） 啟動。

具有訂閱定價的產品 （包括pay-as-you-go的合約） 必須回應這些訊息。如需如何回應的詳細資訊，請參閱下列主題：
+ [將您的 SaaS 訂閱或Pay-As-You-Go產品與 整合 AWS Marketplace](saas-integrate-subscription.md)
+ [將您的 SaaS 合約型產品與 整合 AWS Marketplace](saas-integrate-contract-with-pay.md)

## 訂閱 SQS 佇列至 SNS 主題
<a name="subscribing-an-sqs-queue-to-the-sns-topic"></a>

 我們建議訂閱 Amazon SQS 佇列至提供的 SNS 主題。如需建立 SQS 佇列和訂閱主題佇列的詳細說明，請參閱《[Amazon Simple Notification Service 開發人員指南》中的訂閱 Amazon SQS 佇列至 Amazon SNS 主題](https://docs.aws.amazon.com/sns/latest/dg/subscribe-sqs-queue-to-sns-topic.html)。 **

**注意**  
您只能從 AWS 帳戶 用來銷售產品的 訂閱 AWS Marketplace SNS 主題。不過，您可以將訊息轉送到不同的 帳戶。如需詳細資訊，請參閱[《Amazon Simple Notification Service 開發人員指南》中的將 Amazon SNS 訊息傳送至不同帳戶中的 Amazon SQS 佇列](https://docs.aws.amazon.com/sns/latest/dg/sns-send-message-to-sqs-cross-account.html)。 **

### 輪詢 SQS 佇列以取得通知
<a name="polling-the-sqs-for-notifications"></a>

將 SQS 佇列訂閱 SNS 主題後，訊息會儲存在 SQS 中。您必須定義持續輪詢佇列、尋找訊息並相應地處理它們的服務。