我是开发人员并尝试在我的应用程序“mindmatcher”中实现FB信用。我创建了一个名为“mindmatcher”的应用程序,然后根据此处给出的示例创建了两个脚本:
http://developers.facebook.com/blog/post/489/
您可以点击此处访问我创建的页面:
http://apps.facebook.com/mindmatcher/testBeforeCallback.php
我已在应用设置中设置了回拨网址。
此callback.php也是根据上述URL中给出的示例创建的。但是,当我点击立即付款FB按钮时,它总是显示错误,点击此URL可以看到错误:
“处理付款时出现问题
抱歉,我们无法处理您的付款。您未收到此笔交易的费用。请再试一次。“
需要帮助来尽快解决此问题,因为我需要尽快让应用程序生效。
提前致谢。
答案 0 :(得分: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, '-_', '+/'));
}
确保正确调用此功能。