

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

# 上的行動應用程式內購買驗證 AWS
<a name="mobile-in-app-purchase-validation"></a>

發佈日期：**2021 年 1 月 1 日 ([圖表歷史記錄](#iap-history))**

此架構提供無伺服器解決方案，用於驗證來自 Google Play Store和 的應用程式內購買Apple App Store，以及管理退款。架構使用 [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/)[AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/)、 和 [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/) 來大規模安全地處理交易。

## AWS 圖表上的行動應用程式內購買驗證
<a name="iap-diagram"></a>

![參考架構圖，顯示如何使用無 AWS 伺服器後端在 上驗證應用程式內購買和管理退款。](https://docs.aws.amazon.com/zh_tw/reference-architecture-diagrams/latest/mobile-in-app-purchase-validation/images/mobile-in-app-purchase-validation.png)


下列步驟說明購買驗證流程：

1. 行動遊戲用戶端使用作業系統特定的 SDK 進行購買，並將收據存放在本機。

1. 遊戲用戶端向 API Gateway 提出 API 請求，以驗證接收和接收購買的項目。

1. Lambda 函數會檢查 DynamoDB 中的**交易**資料表，以驗證先前尚未使用接收。

1. Lambda 函數會透過 Google Play Store或 Apple App Store API 驗證接收。

1. 驗證後，Lambda 函數會將項目新增至 DynamoDB 中的 **PlayerData** 資料表，並將收據與任何其他中繼資料新增至**交易**資料表。

1. 用戶端會收到成功訊息，本機會同步購買的項目資料，並刪除本機接收複本。

下列步驟說明退款流程：

1. API Gateway 會在 iOS 上接收有關退款交易的通知。排程的 Lambda 函數會在 Android 上查詢已退款的交易。

1. Lambda 函數會將退款的交易推送至 [Amazon Simple Queue Service](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/) 佇列。

1. Lambda 函數會處理退款，包括關閉玩家帳戶等任何其他動作。

1. Lambda 函數會更新 DynamoDB 資料表，以移除項目並將交易標記為已退款。

## 深入閱讀
<a name="iap-further-reading"></a>

如需詳細資訊，請參閱下列資源：
+  [AWS 架構圖示](https://aws.amazon.com/architecture/icons) 
+  [AWS 架構中心](https://aws.amazon.com/architecture/) 
+  [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected) 

## 圖表歷史記錄
<a name="iap-history"></a>

若要收到此參考架構圖的更新通知，請訂閱 RSS 摘要。

| 變更 | 描述 | 日期 | 
| --- |--- |--- |
| [初次出版](#iap-history) | 首先發佈參考架構圖。 | 2021 年 1 月 1 日 | 

**注意**  
若要訂閱 RSS 更新，您必須為正在使用的瀏覽器啟用 RSS 外掛程式。