0
Thumbsup

いい質問だ

0

Thumbsdown

うーん

Ti.StorekitのrequestProductsでProductオブジェクトが正常に返却されません

snakaya
snakaya 0

投稿日:2013-03-20 01:15:21

本家Q&Aでも尋ねたのですが返信が付かず、ダブルポストをお許しください。
環境はiOS6.1、SDK 3.0.2GA、Ti.Storekit1.6.4です。
以下のような単純なコードでTi.Storekitをテストしようとしているのですが

var product = null;
var storeKit = require('ti.storekit');
storeKit.receiptVerificationSandbox = true;
storeKit.requestProducts([product_id], function (evt) {
    if (evt.success) {
        Ti.API.info(evt);
        product = evt.products[0];
    } else if (evt.invalid) {
        var dialog = Ti.UI.createAlertDialog({
            title: L('error'),
            message: L('product_payment_error')
        }).show();
    } else {
        var dialog = Ti.UI.createAlertDialog({
            title: L('error'),
            message: L('other_payment_error')
        }).show();
    }
});

このevtを見ると以下のようにproductがiTunes connectで登録したプロダクトの説明しか入ってこず、Ti.Storekitの説明にあるようなTi.Storekit.Productオブジェクトになりません。

 {
    products =     (
        "You can to be use Full Function."
    );
    source = "[object TiStorekitProductRequest]";
    success = 1;
    type = callback;
}

故に当然次のpurchase処理へ進むことは出来ません。
Storekit(In-App Purchase)を実装するのは初めてなので何かを間違えている可能性は高いのですが、iTunes connectでプロダクトを作成し直しても一からアプリを作り直しても上記のようなproductsしか返ってこないのです。
皆さんのところではTi.Storekitは正常に動作しているでしょうか。何か原因として考えられることはありますでしょうか。
行き詰まってほとほと困っており、ご助力頂けると幸いです。どうぞ宜しくお願いします。


storekit.purchase(product, function(e){... したときにはどんな結果になりますか?特にe.stateはどうなりますか? --- yagi_

ありがとうございます。ここでおっしゃる「product」はrequestProductsから返るはずでここでは返ってこないTi.Storekit.Productオブジェクトだと思うのですが、故にpurchaseを引き続きコールできないと理解しているのですが。In-App Purchaseアプリは始めてなため、この理解で正しいでしょうか --- snakaya


回答

sngmr
sngmr
60
Tcad_icon

Thumbsup

いい回答

0

Thumbsdown

うーん

先日iOSのIn-App Purchaseを利用したアプリを開発しましたが、わたしの環境では特に問題は起きなかったです。なんでしょうね。

ただいくつか気になった点はあるので、もしご参考になればと思ってポストします。

  • iTunes Connect ユーザーの設定

    iTunes Connectに登録されたユーザーの、Appleからの払込先口座や税金などのフォーム記入が終わってないと、プロダクト情報が戻ってこないことがあるようです。テストユーザーでの購入処理がNGだったのか、プロダクト情報の取得そのもののがNGだったかははっきり覚えてないのですが、そこで詰まったことはありました。

  • デバッグでは正しく見えない(気がした)

    productsに情報が戻ってこないことを、どのように確認されているか分かりませんが、Titanium Studioのデバッグを使い、ブレークポイントで止めても変数の中身は正しく見れなかった気がします。確か・・・たぶん。


ご回答ありがとうございました。他の環境ではきちんと動いていると分かっただけでも安心材料です。 有料アプリ申請はすべて完了しています。うちでも終わっていなかった時にはrequestProductsの返値でproductがinvalidになっていました。それが完了してからずっとこの状態になってしまいました。 デバッグはStudioでの他実機転送でも行い、Ti.API.info出力とalert出力しているのですが結果は全く同じなのです。 その後パケットもキャプチャしてみて、App Storeからはproduct内容が名称や金額なども正しく返ってきているようなので、アプリ内部の問題であることはまず間違いないと思われるのですが。 ううむ、何故なのでしょう・・・ --- snakaya

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