web-dev-qa-db-ja.com

アプリ内購入サンドボックスが常に「確認が必要」と尋ねるのはなぜですか?

デバイス設定でストアからサインアウトしました。アプリにのみユーザー資格情報を入力しました。まったく新しい(実際には約4回)テストユーザーを設定しました。

なぜこのメッセージはポッピンを続けますか?

IOS 5、自動アプリ同期、またはiCloudに接続されているものですか?

17
Geri

サンドボックスのアプリ内購入でもまったく同じ問題がありました。組み込みモデル(レシート検証なし)では、アプリは有効な製品を受け取りました。今ではaddPaymentと呼んでいますが、すべて問題ありません。しかし、「確認が必要」と表示され、支払いがキャンセルされました。

何時間も苦痛を感じた後、私の問題はテストアカウントにありました。チェコ共和国のiTunesストアのテストアカウントを作成しました...それが失敗の理由でした。ダム。カナダのテストユーザーを作成しようとしましたが、突然機能しました。 「確認が必要です」は表示されなくなります。

16
Petr Fiala

私はこの問題に約1週間対処しましたが、米国/カナダのアカウントを使用しようとして成功しませんでした。最後に私はこの投稿を見つけました、そしてそれは機能します: http://iphonedevsdk.com/forum/iphone-sdk-development/63008-in-app-purchase-test-account-verification-required-cant-get-passed .html クレジットカードが添付されていないテストアカウントが必要です。デバイスを介してiTunesストアまたはアプリストアにログインすることはありません。iTunesにログインするか、アプリストアのものに同意すると、テストが無効になります。アカウントであり、二度と機能しません。

したがって、アプリ内購入アプリをテストするには、クレジットカードを持たない新しいアカウントを使用する必要があります。ストアからログアウトし、テストしているアプリ内でのみ新しいアカウントを使用します。

更新:2013年9月にiTunesのシステムを長期間メンテナンスした後、テスト購入できるのは米国のテストアカウントのみです。

11
LeonQiu

私はこれに自分で苦労しました、私はついに私のために働く回避策を見つけました...

  1. デバイスで設定でiTunesアカウントからログアウトします(予防策として、設定とiTunesを開いている場合はハードクローズします)
  2. アプリを削除する
  3. 「itunesconnect.Apple.com」で新しいテストユーザーを作成します–ストアとして米国を選択します
  4. アプリを再インストールします
  5. アプリで購入してみてください
  6. 新しいテストユーザーアカウントの詳細を入力します
  7. ポップアップにストアを交換する必要があると表示された場合は、すぐにホームを押します。 OKを押さないでください。
  8. アプリを再起動して、再試行してください。これで、期待どおりに機能するはずです。

これがうまくいくことを願っています...

3
Dave

上記の回答に加えて、以下の点にも注意してください:-

1)デバイスからアプリをアンインストールします。

2)iTunes Connectで新しいテストアカウントを作成し、その電子メールアドレスを確認します。このテストアカウントの支払い情報は、オンラインでも、iTunesでも、デバイスでも、絶対に追加しないでください。これを行うと、テストアカウントが無効になる可能性があります(「支払い情報の確認」という悪循環が発生します)。また、サンドボックスからこのテストアカウントを使用しないでください。

3)デバイスのAppStoreからログアウトします。デバイスの[設定]> [iTunes&AppStores]からAppStoreに再度ログインしないでください。後でアプリからログイン資格情報を求められます(ポイント5〜6を参照)

4)アプリを再インストールします。

5)アプリ内購入を試みます。 (App Storeからログアウトしたときに)ユーザー名とパスワードの両方を入力するように求められます。

6)ユーザー名とパスワードを入力します。恐ろしい「確認が必要です:購入する前に、支払い情報を確認する必要があります」というメッセージが表示されないはずです。購入は成功するはずです。

2
Rahul Mathur

Swift

この一時コードをプロジェクトのどこかに挿入します。

for transaction: AnyObject in SKPaymentQueue.default().transactions {
    guard let currentTransaction: SKPaymentTransaction = transaction as? SKPaymentTransaction else {return}
    SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
}

これにより、支払いキューがクリアされます。可能であれば、viewDidLoadよりもかなり後で実行してください。ボタンでトリガーして作ってみました。数回実行してから、コードを削除しました。煩わしい確認ポップアップはもうありません。

1
Josh

サンドボックスでも、サーバーへのレシートを確認して購入を完了する必要があります。これは、組み込みモデルのステップ6-7-8およびサーバーモデルの11-12-13に対応します。

http://developer.Apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/APIOverview/OverviewoftheStoreKitAPI.html

あなたがする必要があるのは:

トランザクションのtransactionReceiptプロパティからレシートデータを取得し、base64エンコーディングを使用してエンコードします。次のようなjsonを作成します。

{
    "receipt-data" : "(receipt in base 64 encoding)"
}

本番用の確認URLに投稿します。

https://buy.iTunes.Apple.com/verifyReceipt

サンドボックスの場合:

https://sandbox.iTunes.Apple.com/verifyReceipt

応答は次のようになります。

{
    "status" : 0,
    "receipt" : { ... }
}

ステータスキーの値が0の場合、これは有効な領収書です。値が0以外の場合、この領収書は無効です。

詳細については、ガイドを参照してください: http://developer.Apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html

1
Max

米国の新しいテストユーザーを登録します。任意のメールアドレスを入力できます。

設定でログアウトします。アプリを削除します。アプリ内の新しいユーザーでxCodeログインを介して再起動します。

あなたが米国にいないと言うかもしれません、そしてそれはブラウザを開きます、ブラウザを閉じてそしてそれを再び始めてください。

これで動作するはずです。

0
Mann

カナダのテストユーザーを作成すると、この問題が解決します。

0
Geri

4番目のIAPアイテムを購入する際にこのような問題が発生した場合

各テストアカウントは、アプリケーションの3つ以上のアイテムを購入するためには機能しないようです。 itunesconnect.Apple.com->ユーザーの管理->ユーザーのテストから新しいテストアカウントを作成して、4番目のIAPアイテムをテストできます。

0
SoHeL

数時間を費やした後、私は同じ問題に直面していましたiTunes Connectテストアカウントの郡/地域とデバイス/シミュレーターは同じでなければなりません

問題が解決したので確認してください

0
abdus.me

IOS5がリリースされた後、この問題が発生しました。

以前はダミーのメールアドレスでテストアカウントを作成していましたが、iOS5以降、テストアカウントに必要な確認が表示されるようになりました。

したがって、私は最終的にテストアカウントに実際の電子メールアドレスを使用し、要求されたときに検証しました。これは私にとってはうまくいくようでした。

0
Vibhor Goyal