5

Google ウォレットのドキュメント (デジタル商品の場合) には次のように記載されています。

注: これらのコールバック ハンドラは安全ではありません。誰かが Firebug または Chrome 開発者ツールを使用して関数の 1 つを呼び出し、成功または失敗を嘲笑する可能性があります。サーバーで購入を確認する必要があります。

引用符内のリンクは、ポストバック URL を指定することです。

しかし、jwt は Google によって署名されているため、なぜそれが必要なのでしょうか? サーバー上のページの分離コードで、成功ハンドラーの jwt の署名を簡単に確認できます。

(また、署名が不十分な場合は、ポストバック URL でも十分ではないはずです。誰かが URL を発見した場合、そこに POST が送信され、問題が再発する可能性があるためです。)

4

3 に答える 3

7
  1. コールバック URL の目的は、購入が行われたことを知らせることです。
  2. 実際にデータを「消費」する前に、投稿されたデータを確認します。ポストバック URL が実際に「発見」されても問題ありません。
  3. 注文をシステムに正常に記録でき、注文を「履行」できることを Google に伝えます。それ以外の場合、何らかの理由で注文を記録/処理/その他できなかった場合、つまり「注文を履行」しない場合、ユーザー (購入者) も同様に知る必要があります。

私はこれをテストしていません (私はポストバック URL を使用します)

ドキュメントには、 *IF* you specify a postback url と記載されています。したがって、提供しないようにして、上記の方法で処理することができます(これはまだ「サーバー側」です)。

考えられる問題

テストが機能すると仮定すると、2つの違いは次のとおりです。

  • ポストバック URLのシナリオは、すべての関係者、購入者、あなた、Google が「同期」しています。何らかの理由で処理できない場合、サーバーに問題がある場合など、取引は失敗します(いいえオーダー発生)全てに対応。

  • ポストバック URL のないシナリオでは、成功すると仮定すると、トランザクションさまざまな状態になる可能性があります。

    • Google : 購入者のウォレット トランザクション リストに良好、記録済み
    • あなたのシステム : おそらく良いかどうか、または記録されていないか
      • ページがその時点でデータを処理する方法に基づいて
      • クライアント/ブラウザでのスクリプト エラー、またはページの処理を妨げるクライアント側からのその他の理由
    • ユーザー / 購入者 - ウォレットでの取引に注文がある - Google に関する限り「成功」

お役に立てれば...

アップデート:

セキュリティが関係する別の「利点」があります (一部のフローでは重要になる可能性があります)。ポストバック URL を使用すると、さらに別の検証ステップ (たとえば、注文 ID に基づく) の注文の詳細を取得できます。ポストバックのif order-id exists then.....に成功のコールバックが発生するため、クライアントによって/から送信された注文が「有効」であるかどうかを確認できます (ビジネス ルールに関係なく - たとえば)。

例:同じ (有効な) JWTを再生することによるモック(iat/任意の有効期限の範囲内)

販売者/開発者がアプリで思いつくフローは無数にある可能性があるため、「ポストバック URL 検証プロセス」を使用すると、発生する可能性のある問題が軽減されます。

ひ……

于 2013-07-17T15:34:41.567 に答える
0

商品の配送にはポストバックを使用します (この場合は e チケット)。ウォレット ポストバックを実装しました。これにより、Google の user_id などのさまざまなパラメーターが得られます。

ユーザーが誰であるかを判断する方法がわかりません。これがないと、デジタル商品を送信できません。これを入手する方法はありますか?

他のシステムでは、支払いボタンに入り、コールバックを通じて出てきた注文 ID を提供していました。ウォレットのコード例やチュートリアルにそのような入力はありません。

Thx ポール

注:後で答えを推測し、テストして、ここに提供しました:Googleウォレットでユーザー情報を取得する方法

于 2013-08-31T07:29:51.257 に答える
-1

ドキュメントにあるように、クライアント側のコードはすべて、さまざまなブラウザー開発ツールを使用して簡単に変更できるため、信頼すべきではありません。

彼らが懸念しているのは、JavaScriptが操作されて、サーバーが支払いが行われたと見なし、ユーザーが実際に支払いをしていない製品を入手できることだと思います。

誰かが URL を見つけて投稿した場合、サーバー コードを制御できないため、サーバーがカードから支払いを受け取るため、実際には問題になりません。

于 2013-07-17T09:11:33.463 に答える