伙计们,我们正在开发一款将通过 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
}
}
任何帮助将不胜感激!谢谢!