0
Thumbsup

いい質問だ

1

Thumbsdown

うーん

Ti.StoreKitでのConsumable課金について

saebashi
saebashi 30

投稿日:2014-12-07 05:07:48

度々お世話になっております。

StoreKitを初めて使うので、サンプルの詳細、使い勝手がわかっておらず、初歩的な質問になってしまうかもしれませんがすみません。
Consumable=消耗品アイテムを一度購入すると(一度目の購入は成功)その後「このApp内課金は既に購入済みです」と表示されてしまいます。
https://app.box.com/s/2txxt8r0p98zie3da652
何度でも購入できるようにさせたいのですが、どのようにすればいいのでしょうか...。
また、購入後成立後に発火するイベントをどうしたら実行できるのか?についてもよろしければ教えていただきたいです。

環境
MacOS10.9
Xcode 6.1.1
iOS8.1
TM 3.4.1.GA
Ti.StoreKit 3.0.0

以下実装コードです。

var Storekit = require('ti.storekit');
Storekit.receiptVerificationSandbox = true;
Storekit.receiptVerificationSharedSecret = "-----------";
//<中略>
//▼購入ボタンを押した後の処理
Storekit.requestProducts(['pppppp'], function(e) {
                            if (e.success) {
                                Ti.API.info('success:' + e.products[0]);
                                Storekit.purchase({
                                    product : e.products[0],
                                });

                            } else {
                                alert('Failed');
                            }
                        });


回答

yagi_
yagi_
2540
Tcad_icon Tcmd_icon Tce_icon

Thumbsup

いい回答

1

Thumbsdown

うーん



こちらに詳細が出ていますが、レシートのチェックはいろいろ難しいですね。
http://eyeballonly.com/blog/2014/02/20/inapppurchase/

で、iOS7あたりで何か変わってたのかなと調べてみたら、この部分にひっかかりました。
https://github.com/appcelerator-modules/ti.storekit/blob/stable/ios/Classes/VerifyStoreReceiptiOS/VerifyStoreReceipt.m#L103

Resources直下にAppleIncRootCertificate.cerを入れておけや、ということみたいですね。
http://www.apple.com/appleca/AppleIncRootCertificate.cer

OpenSSLで頑張る方法もあるみたいです。
http://objectiveprogrammer.blogspot.jp/2013/12/verifying-ios-7-app-receipt.html


yagi_ さま ありがとうございます。既に申請してしまったのですが、対応してみます。 初めてのTi.StoreKitだったので詳しくお教えいただき助かりました。 --- saebashi

yagi_
yagi_
2540
Tcad_icon Tcmd_icon Tce_icon

Thumbsup

いい回答

1

Thumbsdown

うーん



consumableかどうかはiTunes Connectで設定しますが、そちらはどうなっていますか?


saebashi
saebashi
30

Thumbsup

いい回答

0

Thumbsdown

うーん

yagi_さま
ご回答ありがとうございます。
ついさっきまで。iTunes Connectをいじっていて、Consumableの設定は間違っていなく、ずっと頭を抱えていたのですが。
なんとなく他にいくつかproductを追加したら、突然前のものも含め全て正常に動くようになりました。
理由がさっぱりわからないです...。すみません。

加えて質問なのですが、消耗品課金の場合でも領収書の検証って必須なのでしょうか?サンプルのとおり領収書の検証を実行してみると
storekit.validateReceipt();の関数でAppleIncRootCertificate.cer missingとエラー表示されてしまうのですが、もしパスできるのであればとばしてしまいたいなと思い...。


あ、領収書をチェックしないと、途中で悪意あるユーザが嘘のリクエストを送っている可能性があるのを排除できないと思います。 --- yagi_

ログインすると回答することができます。