メインコンテンツに移動

Transaction.PurchaseApprovalResult

購入の承認リクエストが解決したときに発行されます。保護者が承認した、保護者が拒否した、または回答がないまま有効期限が切れた、のいずれかです。これは/transaction/request-purchaseの呼び出しに対する回答であり、プロダクトが結果を知る唯一の手段です。

エンドポイントをこのイベントに購読させてください

k-IDはTransaction.PurchaseApprovalResultを、購読しているエンドポイントにのみ配信します。それ以外には配信の試行もエラーもなく破棄されます。プロダクトのDeveloper Settingsページで、エンドポイントに対して選択してください。始める前にを参照してください。

1件のリクエストに対してTransaction.PurchaseApprovalResultはちょうど1回発行されます。data.idでリクエストと対応付けてください。これはプロダクトが/transaction/request-purchaseに送ったidです。

フィールド

フィールドタイプ必須説明
eventTypestringはい常に"Transaction.PurchaseApprovalResult"
dataobjectはい購入承認結果のデータ
data.idstring (UUID)はい承認リクエストのID。プロダクトが/transaction/request-purchaseに送ったidと一致します
data.sessionIdstring (UUID)はい購入がリクエストされたセッションID
data.productIdnumberはいプロダクトID
data.statusstringはいapproveddenied、またはexpired
data.resolvedAtstring (date-time)はいリクエストがこの結果に至った日時。RFC 3339

{
"eventType": "Transaction.PurchaseApprovalResult",
"data": {
"id": "9d4e2f81-7a3b-4c56-8e90-1f2a3b4c5d6e",
"sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",
"productId": 42,
"status": "approved",
"resolvedAt": "2026-06-24T15:12:00Z"
}
}

ステータス

status意味対応
approved保護者が購入を承認しました。購入を完了する。
denied保護者が購入を拒否しました。請求しない。保護者が拒否したことをプレイヤーに伝える。
expiredリクエストから24時間以内に保護者が回答しませんでした。請求しない。プレイヤーには改めてその購入を提示できる。

expiredはエラーではなく、配信の失敗でもありません。有効期限が切れた後、プレイヤーには改めてその購入を提示できます。

請求の前に承認を求めてください

結果は購入をゲートするものであり、購入を記録するものではありません。approvedのときにのみ購入を完了し、deniedexpiredの両方を「請求しない」として扱ってください。リクエストは24時間後に有効期限切れとなるため、Webhookを無期限に待たないでください。/transaction/request-purchaseが返すexpiresAtが、それ以降は回答が届かなくなる時点です。

配信は少なくとも1回であるため、同じ結果が2回以上届くことがあります。Webhooksの概要の説明に従い、ハンドラをdata.idについて冪等にしてください。

発行されない場合

  • 購入について承認がリクエストされていない。
  • プロダクトで Purchase Controls 機能(Transactions が必要)が無効であるため、/transaction/request-purchaseFEATURE_DISABLEDを返し、リクエストが作成されない。