Swift part13 (412レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

55
(1): (ワッチョイ 4bda-jBUj) 2021/07/14(水)02:46 ID:Z9MQZom50(1/3) AAS
IAP詳しい人いたら教えて下さい。

1.自動更新のサブスクリプションを購入
2.アプリをアンインストール+再インストール
3.リストア(SKReceiptRefreshRequest)実行

サーバ側でレシート検証を行うと、
「1」で購入した時のレシートに含まれるInApp.TransactionIDが
「3」で更新されたレシートに含まれるInApp.TransactionIDが変わってしまってます。
PurchaseDateとかその他フィールドはすべて同じ。
TransactionIDだけ変わってしまってます(sandbox)。

これは仕様でしょうか?それともApple側の不具合?
63: (ワッチョイ 4bda-jBUj) 2021/07/14(水)17:25 ID:Z9MQZom50(2/3) AAS
>>57
勉強になりました。

>This value has the same format as the transaction’s transactionIdentifier property; however, the values may not be the same.
さり気なく怖いこと書かれてたのでサーバ側実装やり直しなんですが、
クライアント側の購入トランザクションと、サーバ側のInApp配列レコードを紐付けるのがトランザクションIDだと考えていたのですが、紐付かないケースもあるってことですね。
怖い仕様だ。。。
でも、紐付かないとなるとリストアができないと思われるのですが。。。
64: 63 (ワッチョイ 4bda-jBUj) 2021/07/14(水)18:33 ID:Z9MQZom50(3/3) AAS
>でも、紐付かないとなるとリストアができないと思われるのですが。。。

思い違いでした。
オリジナルトランザクションIDを参照することでリストアできそうです。

ただ、購入時のレコード作成が出来ない気がします。
InApp配列から、購入時のトランザクションを特定して、PurchaseDateとExpiresDateを抽出する必要があると思いますが、
クライアント側のトランザクションIDと一致しない場合もあるとなると、仕様として破綻してしまいそうな。。。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.027s