Steamworks 文獻庫
遊戲內自動續約扣款

概覽

請注意: 本文的用意在於補充遊戲內購買基礎文件之不足。 此處討論的 API 為前述文中 API 的延伸。 如果您在找的是 Steam 商店發起的自動續約訂閱項目,詳見本文

當您要為 Steam 使用者建立自動續約付款時,您得先與該使用者建立一份扣款合約,當中說明付款條款。 該使用者必須同意條款,扣款流程才會開始。 扣款程序可由遊戲本身的帳務系統處理,該系統將與 Steam 後端溝通,進行實際付款流程。

付款結果可透過小額交易 API 查詢個別使用者的狀態、或是剖析記有所有使用者的所有款項的結算報告獲取。

建立扣款合約

使用 ISteamMicroTxn/InitTxn Web API 定義自動續約扣款合約。 該合約與其它 Steam 上的遊戲內物品交易合約雷同,但需要更多資料才能完整定義。 合約可為單獨購買活動的形式建立,或使用者可將想買的遊戲內物品放入購物車中,合約也能在購物車中建立。 如果 Steam 受理該筆購物,系統將通知使用者授權合約,API 便會在回覆中傳回一個不重複的 64 位元扣款合約 ID。 如果傳回了錯誤,則需要在修正問題後發送新的要求。 一旦通過,您應該使用 ISteamMicroTxn/FinalizeTxn Web API 來完成合約。

遊戲的扣款系統發起自動續約扣款。 賦予付款金額與處理時間更多彈性。 要進行此程序,遊戲的扣款伺服器將使用 ISteamMicroTxn/ProcessAgreement API 發起付款,同時指定金額。 如果您想隨著時間調整扣款金額或發放額度,請採用這種扣款合約。

一名使用者在一款遊戲中,只能有一份進行中的扣款合約。 您可以隨時為使用者建立新的扣款合約,但所有先前的扣款合約會在 ISteamMicroTxn/FinalizeTxn 呼叫完成時停用。 每份扣款合約皆有一個 64 位元的 ID 可供參照使用,但只有最新的合約能收取款項。

使用者可隨時於自己的 Steam 帳戶設定中取消合約。 ISteamMicroTxn/GetReport Web API 會發送取消通知。

其它續約付款用的 Web API 如下:

接收狀態

扣款合約的付款狀態可透過以下兩個 Web API 獲取:
  • ISteamMicroTxn/GetUserAgreementInfo - 可針對單一使用者獲取您遊戲適用的所有合約的詳細資料,包含最後一筆付款內容與下一筆付款的時間
  • ISteamMicroTxn/GetReport – 本 API 可顯示所有與您的遊戲有關的交易,扣款合約產生的交易也包含在內。 另外,因使用者可於自己的 Steam 帳戶中取消訂閱或續訂,遊戲也可使用本 API 獲取上述動作的通知