Метод оплаты FB.ui предлагает "Произошла ошибка, повторите попытку позже" - PullRequest
0 голосов
/ 23 января 2012

Ребята, мы разрабатываем игру, которая будет получать платежи через транзакции FB Credits, и проблема, с которой мы сталкиваемся, - это сообщение «Произошла ошибка», как только FB.ui с методом «pay» отображается.Я пытался отладить все это, но уже много лет, чтобы выяснить, что может быть причиной этого.Я действительно отчаянно нуждаюсь в исправлении этого уже!Пожалуйста, помогите!

Я создал тестовое приложение FB, в котором абсолютно удалено все, но осталось самое необходимое для инициации платежа.Вы можете получить к нему доступ здесь:

http://apps.facebook.com/paymentproblemapp

Вот также некоторые из моего кода инициализации FB JS API, который вы также можете найти в приложении в скрипте под названием fbapps-testapp-facebook-1.0.js :

функция инициализации

init : function() {

  window.fbAsyncInit = function() {
    FB.init({
      appId : window.APP_ID,
      status : true,
      cookie : true,
      oauth : true,
      channelUrl : window.MASTER_URL + "channel",
      frictionlessRequests : true
    });
  };

  (function(d){
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    d.getElementsByTagName('head')[0].appendChild(js);
  }(document));

},

и функция оплаты:

// order_info to be constructed in swf
placeOrder : function(order_info, swfOrderCallback) {
  var onOrderPlaced = function(data) {
    if (swfOrderCallback) {
      // further actions within the swf due to payment

      if (data['order_id']) {
        // TODO successful payment
        return true;
      } else {
        // handle errors here
        return false;
      }
    }
  };

  // calling the payment dialog
  try {
    FB.ui({
      method : 'pay',
      order_info : order_info,
      purchase_type : 'item',
      dev_purchase_params : {
        'oscif' : false
      }
    }, onOrderPlaced);
  } catch (err) {
    // TODO handle payment error
  }
}

Любая помощь будет принята с благодарностью!Спасибо!

1 Ответ

0 голосов
/ 08 мая 2012

Убедитесь, что вы вызываете placeOrder () после FB.init ().

...