跳轉到主要內容

商店與促銷 (舊版 Economy)

Economy v1 API 處於維護模式,不會再推出任何新功能,只會進行錯誤修正。**在可預見的未來,v1 API 將持續維護。**請參閱 Economy v2 概觀,深入了解下一版的 PlayFab Economy!
在 PlayFab 中,商店是建立在目錄和貨幣之上。您的主要目錄應定義遊戲中的所有項目,並以您建立的貨幣為其指定價格。 商店應定義目錄中項目的子集,並以可能與目錄價格不同的特定價格提供購買。 商店可讓您挑選出一組特定的項目,並在設定的時間期間內以特定價格提供。 本教學課程說明定義以虛擬貨幣和真實貨幣為基礎之商店的最佳做法。

需求

  • 熟悉 PlayFab Game Manager。
  • 您必須已定義一或多種虛擬貨幣。本教學課程中的後一個範例使用:
    • SP (Silver Pieces)
    • GP (Gold Pieces)。
  • 您必須有一個已定義一或多個項目的_主要目錄_。
    • 第一個範例使用多個項目/搭售組合,類似於掉落表教學課程中所述的項目。
    • 本教學課程的第二個範例使用小型、中型和大型生命藥水。

最佳做法

目錄價格應長期固定,因為它們定義了項目的_真正_價格。 商店應該是_暫時性_的,依照您的 LiveOps 策略新增和移除。
預期您大部分的營收會來自輪替商店,以及在作用中的商店之間移入和移出項目。

商店與目錄定價的一般資訊

  • 定價:目錄中定義的價格應定義為項目的_一般_價格。商店可讓您為項目定義暫時性的促銷價格,運用常見的零售策略。或者,商店可以為通常完全不開放販售的項目提供暫時性價格。
  • 零成本:如果項目在特定貨幣中的成本未設定 (null) 或為零,則無論在目錄或商店中都無法使用該貨幣購買。零成本可讓您將其他貨幣的項目保留空白或重設為零,使項目只能以免費貨幣購買,或只能以進階貨幣購買。
  • 真實貨幣:RM 貨幣在所有目錄和商店中皆可使用。RM 是受限的貨幣索引鍵,表示_僅限真實貨幣交易_。您應該只對具有重大價值的項目,或含有進階貨幣的搭售組合/容器收取 RM。
  • 價格為二擇一:如果項目上定義了兩種價格,則可以用其中一種購買該項目。_無法_要求以兩種貨幣購買單一項目。

定義真實貨幣商店

在您的 Game Manager 中:
  • 瀏覽至您的 Title。
  • 從左側功能表選取 Economy。
  • 在 Catalogs 索引標籤上,選取您的主要目錄,然後選取 Stores。
  • 選取 New Store 按鈕。
在掉落表範例中,我們建立了一個包含 11 個項目的掉落搭售組合。在此範例中,我們將在真實貨幣商店中提供三個類似的搭售組合。
任何項目都可以用真實貨幣販售,但最佳做法是只直接提供_特定_的高價值項目或搭售組合。
下方提供的螢幕擷取畫面顯示一個完整的新商店,其中包含三個以真實貨幣提供的項目搭售組合。 Game Manager - Economy - 編輯商店 完成真實貨幣購買的具體細節,涵蓋在我們的進階教學課程非收據付款處理中。

真實貨幣商店的最佳做法

您如何使用真實貨幣,很大程度取決於遊戲的具體設計。直接購買遊戲內項目是可行的,但較不常見。 更常見的是,您的遊戲應允許使用真實貨幣購買進階虛擬貨幣。您可以輪替多個具有不同進階貨幣與真實貨幣比例的商店。
主要的重點是:確保您的玩家_隨時_都能付錢給您。

定義虛擬貨幣商店

讓我們深入了解以虛擬貨幣購買遊戲內項目的細節和程式碼。 初始步驟與前一個範例幾乎相同:
  1. 建立三個新項目:Small、Medium 和 Large Health Potions,設定_免費_貨幣價格,以及_進階_貨幣價格。
  2. 建立一個包含促銷項目的新商店。
Game Manager - Economy - 新增商店

在單次購買中購買多個項目

若要以虛擬貨幣購買單一項目,請使用 PurchaseItem 方法,如我們的商店快速入門所述。本教學課程涵蓋在單次購買中購買多個項目。 此流程的第一個步驟應該是取得商店,並將其顯示給使用者。
此範例中的 LogSuccess 回呼會收到 GetStoreItemsResult,其中包含商店中所有項目的完整描述、其_商店_價格,以及商店本身所包含的任何中繼資料。

顯示商店的最佳做法

具有商店的遊戲應使用 GetCatalogItems 方法呼叫並快取其主要目錄。您可以同時顯示目錄價格和商店價格,並在促銷項目旁加上「10% OFF」或類似的優惠標示。
玩家比較可能購買促銷中的項目,尤其是限時優惠的促銷。
此時,由您的 GUI 程式碼負責讓使用者有機會選取他們想要購買的項目及數量。
  • 在您的遊戲與 PlayFab 之間,其餘步驟是數個個別的 API 呼叫,但您可以讓這一連串的多個呼叫對玩家而言是不可見的。
  • 預先收集購買的所有資訊,並在收集_所有_玩家輸入之後,再進行完整的呼叫序列。
在項目選取過程中,您必須讓使用者選取他們想要用來購買這些項目的貨幣。在此範例中,所有項目都有 SP 和 GP 的成本,這表示使用者可以選擇要花費哪一種貨幣。
上述程式碼範例中 StartPurchase API 的結果包含 PaymentOptions 清單。每個付款選項都包含可用來進行購買的 Currency、Price 和 ProviderName。

限制

單次購買中只允許使用_一種_虛擬貨幣。所有選取的項目都必須能以_單一貨幣_購買。 呼叫中必須指定貨幣,這在有多種可能貨幣時尤其重要。如果要求中有項目沒有以所選貨幣計算的對應成本,則該序列會失敗。 呼叫中也必須指定 ProviderName。對於真實貨幣購買,提供者名稱是用來支付購買款項的提供者,例如 Facebook、PayPal 或 Steam。對於 VC 購買,它會是以您的遊戲識別碼為基礎的字串。ProviderName 可以從 StartPurchaseResult 的 PaymentOptions 欄位取得,如前面的附註所述。
對於 VC 購買,您遊戲的 ProviderName 是由「Title」一詞串連您十六進位 TitleId 的十進位對應值所組成的字串。例如「Title123456」。

顯示商店項目的最佳做法

確保商店中的所有項目都有一致的選項,以避免讓玩家感到困惑。 真實貨幣項目應與進階 VC 項目放在不同的商店,也應與免費 VC 項目分開。如果單一商店允許多種貨幣,則該商店中的_所有_項目都應一致地使用同一組多種貨幣。請視需要建立足夠多的商店,以提供流暢的客戶體驗。
最後,一旦購買已完整定義,您就可以完成流程,如下所示。

處理 API 失敗結果的最佳做法

任何單一 API 呼叫都可能因許多原因而失敗。手機等無線裝置經常會有間歇性的連線問題,而任何網際網路呼叫都可能因隨機延遲而失敗。 每個呼叫都應檢查多種失敗狀況。如果回應顯示要求無效 (例如,無法以單一貨幣購買多個項目),您應該中止。您的商店設計可能有問題。 如果回應指出連線失敗,您可以使用指數輪詢延遲再試一次。

結論

商店是鼓勵玩家購買項目的絕佳機制。 商店可搭配任何種類的虛擬貨幣使用。商店也可以透過另一組 API 方法搭配真實貨幣使用。 如需真實貨幣購買的詳細資訊,請參閱非收據付款處理。 如需進階的商店用法,請參閱適用於玩家區段的自訂商店教學課程。
最後修改於 2026年10月6日