AppleのStoreKit2のトランザクション検証(レシート検証)について

71 views
Skip to first unread message

Ueno

unread,
Jan 7, 2026, 4:08:31 AMJan 7
to GS2 ユーザグループ
AppleのStoreKit2のトランザクション検証(レシート検証)についての質問となります。

GS2Money2のトランザクションアクションに関してですが、
レシート検証を行うAPIとして「Gs2Money2:VerifyReceiptByUserId」があり、
AppleのStoreKit1でのAPIかと思いますが
AppleのStoreKit2のレシート検証を行うAPIはあるのでしょうか?

丹羽一智

unread,
Jan 8, 2026, 9:03:31 AMJan 8
to GS2 ユーザグループ, Ueno
Gs2Money2:VerifyReceiptByUserId では渡す Receipt のペイロードフォーマットによって処理が分けられ、どちらの形式のレシートも処理ができます。
プラットフォームの指定はいずれも AppleAppStore で問題ありません。
ただし、StoreKit2 のレシート検証にはネームスペース設定の AppleAppStoreSetting に  IssuerId / KeyId / PrivateKeyPem へ正しい値の設定が必要になります

Kazutomo Niwa
2026年1月7日 18:08 +0900、Ueno <fine....@gmail.com> のメール:

Ueno

unread,
Jan 16, 2026, 1:26:08 AMJan 16
to GS2 ユーザグループ, [GS2] 丹羽一智, Ueno
回答いただきありがとうございます。
StoreKit2の情報も使用できるのですね。

StoreKit2にてVerifyReceiptByUserIdのPayloadに入れるStoreKit2のデータに関してですが、
送信するデータのフォーマットやUnity IAPで取得する場合はどのように取得したデータを送信すればよいでしょうか?
Unity IAPの場合pendingOrder.Infoの中のデータ上にあるでしょうか?

2026年1月8日木曜日 23:03:31 UTC+9 [GS2] 丹羽一智:

丹羽一智

unread,
Jan 16, 2026, 3:07:49 AMJan 16
to GS2 ユーザグループ, Ueno
pendingOrder.Info.Apple?.jwsRepresentation;

こちらが StoreKit2 用のレシートデータになります

Kazutomo Niwa
2026年1月16日 15:26 +0900、Ueno <fine....@gmail.com> のメール:

Ueno

unread,
Jan 16, 2026, 3:52:47 AMJan 16
to GS2 ユーザグループ, [GS2] 丹羽一智, Ueno
回答いただきありがとうございます。
2026年1月16日金曜日 17:07:49 UTC+9 [GS2] 丹羽一智:

hirokawa

unread,
Jan 21, 2026, 5:04:55 AMJan 21
to GS2 ユーザグループ, Ueno, [GS2] 丹羽一智

pendingOrder.Info.Apple?.jwsRepresentationをVerifyReceiptByUserIdのPayloadに入れたところ、以下のエラーが起きました。

BadRequestException: {"errors":[{"component":"verifyReceiptEvent.appleAppStoreVerifyReceiptEvent.environment","message":"money2.event.verifyReceiptEvent.appleAppStoreVerifyReceiptEvent.environment.error.invalid","code":""}],"metadata":{"requestId":"501a8469-048c-47be-9a7c-2e407810a5cd"}} at Gs2.Core.Domain.RanTransactionAccessTokenDomain.HandleResult (Gs2.Core.Model.TransactionResult result)

調査したところ、Gs2 Money2側のappleAppStoreVerifyRecceiptEvent.environmentが許容する値がsandbox/productionなのに対し、
StoreKit2のJWS内のenvironmentが"Sandbox"になっているためバリデーションエラーが起きているのではないかと考えております。
もしそうでしたら、バリデーションエラーを解決する手段はありますでしょうか。
お手数をおかけしますが、ご回答いただければ幸いです。
2026年1月16日金曜日 17:52:47 UTC+9 Ueno:

丹羽一智

unread,
Jan 21, 2026, 9:08:01 PMJan 21
to GS2 ユーザグループ, hirokawa, Ueno
ご認識の通りでしたので修正済みです。ご確認ください

Kazutomo Niwa
2026年1月21日 19:04 +0900、hirokawa <fine.t....@gmail.com> のメール:
Reply all
Reply to author
Forward
0 new messages