Проблема API кредита в Facebook - PullRequest
2 голосов
/ 13 мая 2011

Я использую 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 Ответ

2 голосов
/ 28 мая 2011

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

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

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

...