デバイス設定でストアからサインアウトしました。アプリにのみユーザー資格情報を入力しました。まったく新しい(実際には約4回)テストユーザーを設定しました。
なぜこのメッセージはポッピンを続けますか?
IOS 5、自動アプリ同期、またはiCloudに接続されているものですか?
サンドボックスのアプリ内購入でもまったく同じ問題がありました。組み込みモデル(レシート検証なし)では、アプリは有効な製品を受け取りました。今ではaddPaymentと呼んでいますが、すべて問題ありません。しかし、「確認が必要」と表示され、支払いがキャンセルされました。
何時間も苦痛を感じた後、私の問題はテストアカウントにありました。チェコ共和国のiTunesストアのテストアカウントを作成しました...それが失敗の理由でした。ダム。カナダのテストユーザーを作成しようとしましたが、突然機能しました。 「確認が必要です」は表示されなくなります。
私はこの問題に約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のシステムを長期間メンテナンスした後、テスト購入できるのは米国のテストアカウントのみです。
私はこれに自分で苦労しました、私はついに私のために働く回避策を見つけました...
これがうまくいくことを願っています...
上記の回答に加えて、以下の点にも注意してください:-
1)デバイスからアプリをアンインストールします。
2)iTunes Connectで新しいテストアカウントを作成し、その電子メールアドレスを確認します。このテストアカウントの支払い情報は、オンラインでも、iTunesでも、デバイスでも、絶対に追加しないでください。これを行うと、テストアカウントが無効になる可能性があります(「支払い情報の確認」という悪循環が発生します)。また、サンドボックスからこのテストアカウントを使用しないでください。
3)デバイスのAppStoreからログアウトします。デバイスの[設定]> [iTunes&AppStores]からAppStoreに再度ログインしないでください。後でアプリからログイン資格情報を求められます(ポイント5〜6を参照)
4)アプリを再インストールします。
5)アプリ内購入を試みます。 (App Storeからログアウトしたときに)ユーザー名とパスワードの両方を入力するように求められます。
6)ユーザー名とパスワードを入力します。恐ろしい「確認が必要です:購入する前に、支払い情報を確認する必要があります」というメッセージが表示されないはずです。購入は成功するはずです。
Swift
この一時コードをプロジェクトのどこかに挿入します。
for transaction: AnyObject in SKPaymentQueue.default().transactions {
guard let currentTransaction: SKPaymentTransaction = transaction as? SKPaymentTransaction else {return}
SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
}
これにより、支払いキューがクリアされます。可能であれば、viewDidLoadよりもかなり後で実行してください。ボタンでトリガーして作ってみました。数回実行してから、コードを削除しました。煩わしい確認ポップアップはもうありません。
サンドボックスでも、サーバーへのレシートを確認して購入を完了する必要があります。これは、組み込みモデルのステップ6-7-8およびサーバーモデルの11-12-13に対応します。
あなたがする必要があるのは:
トランザクションの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
米国の新しいテストユーザーを登録します。任意のメールアドレスを入力できます。
設定でログアウトします。アプリを削除します。アプリ内の新しいユーザーでxCodeログインを介して再起動します。
あなたが米国にいないと言うかもしれません、そしてそれはブラウザを開きます、ブラウザを閉じてそしてそれを再び始めてください。
これで動作するはずです。
カナダのテストユーザーを作成すると、この問題が解決します。
4番目のIAPアイテムを購入する際にこのような問題が発生した場合
各テストアカウントは、アプリケーションの3つ以上のアイテムを購入するためには機能しないようです。 itunesconnect.Apple.com->ユーザーの管理->ユーザーのテストから新しいテストアカウントを作成して、4番目のIAPアイテムをテストできます。
数時間を費やした後、私は同じ問題に直面していましたiTunes Connectテストアカウントの郡/地域とデバイス/シミュレーターは同じでなければなりません。
問題が解決したので確認してください
IOS5がリリースされた後、この問題が発生しました。
以前はダミーのメールアドレスでテストアカウントを作成していましたが、iOS5以降、テストアカウントに必要な確認が表示されるようになりました。
したがって、私は最終的にテストアカウントに実際の電子メールアドレスを使用し、要求されたときに検証しました。これは私にとってはうまくいくようでした。