0

私は開発者で、自分のアプリ「マインドマッチャー」に FB クレジットを実装しようとしています。「mindmatcher」という名前のアプリを作成し、次に示すサンプルに従って 2 つのスクリプトを作成しました。

http://developers.facebook.com/blog/post/489/

ここをクリックして、私が作成したページにアクセスできます。

http://apps.facebook.com/mindmatcher/testBeforeCallback.php

アプリの設定で Call Back URL を設定しました。

この callback.php も、上記 URL のサンプルに従って作成されます。しかし、Pay Now FB ボタンをクリックすると、次の URL をクリックすると表示されるエラーが常に表示されます。

お支払いの処理中に問題が発生しました

申し訳ありませんが、お支払いの処理で問題が発生しました。この取引に対する請求はありません。もう一度やり直してください。"

アプリをすぐに公開する必要があるため、この問題をできるだけ早く解決するために助けが必要です。

前もって感謝します。

4

1 に答える 1

1

以下の機能がありません。

 function parse_signed_request($signed_request, $secret) {
  list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

  // decode the data
  $sig = base64_url_decode($encoded_sig);
  $data = json_decode(base64_url_decode($payload), true);

  if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
    error_log('Unknown algorithm. Expected HMAC-SHA256');
    return null;
  }

  // check sig
  $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
  if ($sig !== $expected_sig) {
    error_log('Bad Signed JSON signature!');
    return null;
  }

  return $data;
}


function base64_url_decode($input) {
  return base64_decode(strtr($input, '-_', '+/'));
}

この関数を正しく呼び出すようにしてください。

于 2012-07-27T09:44:24.480 に答える