3

ここで質問に示されているのと同様のコードを使用します。 JavaとAppStoreのレシート検証

しかし、私はまだ取得することになります

{"status":21002, "exception":"java.lang.IllegalArgumentException"}

Base64エンコーディングで問題になる可能性はありますか?base64でエンコードされた文字列を16進数などに変換する必要がありますか?

私が投稿するものは以下に似ています

{"receipt-data" : "eyJzaWduYXR1cmUiOiJBbjNJVER0VVNmZWNhaGMxR.....
4

2 に答える 2

3

問題は、Java内のBase64エンコーディングにありました。IOS内でエンコードを行い、それをJavaでエンコードせずにサーバーからの要求として使用すると、機能しました。

于 2013-02-18T07:48:00.010 に答える
1

同様の問題が発生し、サーバーでレシートを検証しようとしたときにAppleからjava.lang.IllegalArgumentExceptionを受信して​​いました。問題は、base64エンコーディングロジックがエンコードされた文字列に改行を挿入していたことでした。エンコードされた文字列に改行が挿入されていないことを確認するためにコードを更新すると、Appleのサーバーに対してレシートを正常に検証できました。

于 2014-04-04T14:37:14.507 に答える