0

伙计们,我们正在开发一款将通过 FB Credits 交易接收付款的游戏,我们面临的问题是一旦显示带有“pay”方法的 FB.ui 就会出现“发生错误”消息。我试图调试整个事情,但已经花了很长时间才能找出可能导致这种情况的原因。我真的很想解决这个问题!请帮忙!

我创建了一个测试 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
  }
}

任何帮助将不胜感激!谢谢!

4

1 回答 1

0

确保在 FB.init() 之后调用 placeOrder()。

于 2012-05-08T12:45:49.393 回答