人, 我们正在开发一款将通过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
}
}
任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
确保在FB.init()之后调用placeOrder()。