0

我是开发人员并尝试在我的应用程序“mindmatcher”中实现 FB 积分。我创建了一个名为“mindmatcher”的应用程序,然后根据此处给出的示例创建了两个脚本:

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

您可以通过单击此处访问我创建的页面:

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

我在应用设置中设置了回调 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 回答