6

アプリ内購入を有効にしてこのアプリに取り組んでいます。幸せな道はすべて覆われています、すべてがうまくいっています、私は不幸な道を見つけようとしています。

簡単に言うと、購入はサーバー側のコンポーネントにバインドされます。購入時に、トランザクションが「購入済み」状態の場合、サーバーにアクセスすることになっています。これにより、ユーザーのアカウントが有効になります。リクエストが戻ってきたら、いくつかのものをクリーンアップし、最終的にSKPaymentQueueで-finishTransaction:を呼び出します。

不幸なパスは、サーバー呼び出しが何らかの理由で失敗した場合にほとんど発生します。ネットワークが利用できません、ネットワークタイムアウト、ユーザーはアプリを購入した直後にアプリを閉じました。サーバーに電話をかける直前に、名前を付けます。

サンドボックスアカウントを使用した5.1シミュレーターでのテストでは、未完了の購入済みトランザクションが次回の起動時にキューに戻り、デリゲートが適切に呼び出されることが示されています。しかし、しばらくすると、たとえば5分後には、ブームが発生し、トランザクションはなくなります。サンドボックスアカウントの全体的な安定性を考慮すると、シミュレーターの実装でそれを呼び出すつもりですが、わかりにくいです。

この問題に対処する適切な方法は何ですか?

ボーナスの質問:アップルが実際に誰かに請求するのはいつですか?-finishTransaction:というアプリの後であるはずですが、これを示す証拠はどこにも見つかりませんでした。

ありがとう、/ kra

更新:物理デバイスでのテスト、ほぼ1時間、トランザクションはまだそこにあります。消えるトランザクションはシミュレーターのもののようです。

4

1 に答える 1

0

アプリ内購入を実装したとき、シミュレーターでのテストをあきらめました。振る舞いが違いすぎます。デバイスでテストし、そこで機能するかどうかを確認します。

充電についても完全にはわからないので、あなたの質問にも興味があります(私のアプリはまだリリースされていません;))。

于 2012-07-09T00:20:25.850 に答える