2

我正在使用 facebook credits api 并使用其支付方式,以下是我的代码:

 <script type="text/javascript">
 window.fbAsyncInit = function() {
    FB.init({
      'appId'   : '<?php echo $app_id; ?>',
      'session' : <?php echo json_encode($session); ?>, // don't refetch the session when PHP already has it 
      'status'  : true, // check login status
      'cookie'  : true, // enable cookies to allow the server to access the session
      'xfbml'   : true // parse XFBML
    });


    // whenever the user logs in, we refresh the page
    FB.Event.subscribe('auth.login', function() {
      window.location.reload();
    });
    FB.Canvas.setAutoResize();
 };

  (function() {
   FB_RequireFeatures(["CanvasUtil"], function() {
            FB.CanvasClient.scrollTo(0, 0);
            window.FB = null;

            var e = document.createElement('script');
            e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
            e.async = true;
            document.getElementById('fb-root').appendChild(e);
        });
  }());
</script>
    <script type="text/javascript">
        function placeOrder() {

  var order_info = { "title":"Music Mood Points",
                     "description":"Get Music Mood Points to purchase avatars",
                     "price":"10",
                     "product_url":"abc"
                   };

  // calling the API ...
  var obj = {
    method: 'pay',
    order_info: order_info,
    purchase_type: 'item'
  };

  FB.ui(obj, callback);
}

var callback = function(data) {
  if (data['order_id']) {
    writeback("Transaction Completed! </br></br>"
    + "Data returned from Facebook: </br>"
    + "<b>Order ID: </b>" + data['order_id'] + "</br>"
    + "<b>Status: </b>" + data['status']);
  } else if (data['error_code']) {
    writeback("Transaction Failed! </br></br>"
    + "Error message returned from Facebook:</br>"
    + data['error_message']);
  } else {
    writeback("Transaction failed!");
  }
};
  </script>
function writeback(str) {
  $('.get_points').html(str);
}
   </script>

这是单击的按钮:

 <input type="button" onclick="placeOrder();" value="GET More POINTS NOW" />

因此,当我单击按钮时,它会在 facebook 弹出窗口中显示:您的应用程序没有正确响应。

那么代码中是否缺少某些内容或需要从应用程序设置中指定的某些内容。有没有人有任何想法。您能说出的任何小事都会受到赞赏。

提前致谢

4

1 回答 1

2

当您下订单时,Facebook 正在对您的服务器进行后端调用(到应用程序设置页面中设置的路径(在信用部分下)。

该错误意味着您的应用程序没有正确回复该初始调用(实际上会发生两个)

请参阅http://developers.facebook.com/docs/creditsapi/ 了解更多信息,包括后端的示例代码。

于 2011-05-27T22:09:04.590 回答