Проблема API кредита в Facebook

Я использую api facebook credits и использую метод оплаты, ниже приведен мой код:

 <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 появляется сообщение: Ваше приложение не отвечает правильно.

Так что чего-то не хватает в коде или что-то, что нужно указать в настройках приложения. У кого-нибудь есть идеи? Любая мелочь, которую вы можете сказать, ценится.

заранее спасибо

1 ответ

Решение

Когда вы размещаете заказ, Facebook выполняет бэкэнд-вызов на ваш сервер (по пути, указанному на странице настроек приложения (в разделе "Кредит").

Эта ошибка означает, что ваше приложение не отвечает правильно на этот начальный вызов (на самом деле будет два)

См. http://developers.facebook.com/docs/creditsapi/ для получения дополнительной информации, включая пример кода для вашей серверной части.