3

アプリ内サブスクリプションのある Android アプリを持っています。ユーザーがサブスクリプションを購入した後、Google API によってバックエンドを介して「validUntilTimestampMsec」と「initiationTimestampMsec」をリクエストします。

返されるタイムスタンプ「initiationTimestamp」は正しく、ユーザーが購入した時間を表しますが、返されるタイムスタンプ「validUntilTimestamp」は、必要な実際の有効期限まで常に +12 時間の差があります。日付を取得するために使用する関数は、両方のタイムスタンプに似ています。

12時間はどこから来て、どのように正しい時間を得ることができますか. Google Play 内のユーザーには、有効期限も間違って表示されます。

毎月のサブスクリプションの例:

Is:
initialTimestamp: 1374433559436 (7:05pm)
validUntilTimestamp: 1377155159436 (7:05am) -> init-time + 1 か月 + 12 時間

必要:
開始タイムスタンプ: 1374433559436 (午後 7 時 5 分)
validUntilTimestamp: 1377111959 (午後 7 時 5 分) -> 初期化時間 + 12 時間を除いた 1 か月

4

2 に答える 2

2

これはどこにも言及されていませんが、Googleはv1Shrinathの例から6時間、現在は12時間v1_1(あなたの例のように見えます)を維持して、基本的にクライアントの口座から資金を引き出すための時間バッファを維持していると思います(本当にGoogle が責任を負う重要なトランザクション)、およびキャンセルと再試行リクエストについて説明します。新しいものやそのようなものを見るのに最大12時間かかるかもしれないという警告を表示する以外に、それを回避する方法はわかりません.

于 2013-08-06T16:59:45.087 に答える
1

「正しい」有効時間を計算する関数を書きなさい。Google の回答が一致しない場合は、計算したものを使用し、そうでない場合は Google が提供したものを使用します。

また、Google は常に追加の時間を追加することに注意してください。他の方法ではありません。したがって、関数が Google の「より大きい」値を返す場合は、Google の時間を考慮し、そうでない場合は関数の時間を考慮してください。

それがアプリのバックエンドで解決した方法です。

于 2013-08-05T12:14:19.590 に答える