teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

問題点を追記

2016/07/04 06:20

投稿

buibui80
buibui80

スコア1033

answer CHANGED
@@ -1,4 +1,36 @@
1
1
  > ログを見るとAを購入成功後にAの消費処理をしているようなのですがAを何度か連続購入してBを購入してAを購入するという流れだとAの購入に戻った時の消費処理では何故かAの消費ではなくBの消費処理をしようとする…みたいな混乱が生じてしまうようです。そうなると消費できていないので次にそれを買おうとすると所有しているからと購入できなくなります。
2
2
 
3
3
  こちらは改善されました?
4
- というのも当方でも同様の症状を確認しております。
4
+ というのも当方でも同様の症状を確認しております。
5
+
6
+ --- 追記:7/4 15:10 ---
7
+
8
+ 以下確認した問題になります。
9
+ 誤りや追加がありましたら共有をお願いします。
10
+
11
+
12
+ ---
13
+ (1) 消費型プロダクトの購入の際、
14
+ ProcessPurchase で PurchaseProcessingResult.Complete を返すか、
15
+ ConfirmPendingPurchase で購入トランザクションを完了させた後に
16
+ UnityIAPプラグインが自動実行する消費型プロダクトの消費処理にて、
17
+ 消費対象となるプロダクトではなく購入済み他プロダクトの消費処理を勝手に行っている。
18
+ さらに購入済み他プロダクトが消費型プロダクト以外の場合も消費処理を実行しており当然ながら失敗している。
19
+ 結果として消費対象のプロダクトは消費処理が行われないので再購入できない問題が発生する。
20
+
21
+ ---
22
+ (2) 消費されていない消費型プロダクトを再購入する場合など、
23
+ ProcessPurchase で PurchaseProcessingResult.Complete を返した後に
24
+ OnPurchaseFailed が呼ばれることがある。
25
+ (失敗理由は PurchaseFailureReason.Unknown )
26
+ その為 ProcessPurchase 内で購入プロダクトの数量・アンロック管理を行う場合に不整合が発生してしまう。
27
+ 一般的なエラーの場合は ProcessPurchase が呼ばれず直接 OnPurchaseFailed が呼ばれるので、
28
+ OnPurchaseFailed 内で数量・アンロック管理を行うことも不整合が発生する。
29
+
30
+ ---
31
+ (3) 消費型プロダクトの消費処理はUnityIAP側で自動処理され、
32
+ その結果用のイベントリスナーが無いため消費の成否及び何を消費したのか把握するすべが無い。
33
+
34
+
35
+
36
+