我正在尝试启动支付对话框以在我们的应用程序中购买游戏货币。但是,无论我尝试什么,对话框都不会出现,也没有错误消息或任何东西。
我将列出我试图根除问题的所有事情的列表。
如果我从我们的网页运行该应用程序,则会出现一个带有 API 错误代码:1151 的弹出窗口。如果在 Facebook 中运行,则不会出现此弹出窗口,也不会出现任何内容。
付款回调 URL 已设置,服务器端代码也已设置。这已经过手动测试,但我们的日志显示没有来自 facebook 本身的调用。
我尝试在 Actionscript 中从我们的应用程序中启动它,并调用 JavaScript 函数,两者的行为相同。
我也试过 buy_credits 来排除回调(因为这显然不需要回调函数),这也有同样的问题。
我刚刚通过设置直接 URL 调用并将其粘贴到我的浏览器中成功调用它,以便验证服务器端代码是否正常工作。
在这个阶段,我想知道这是否是对话框显示模式的问题。上周我设置了应用请求,但无法让请求对话框显示在 iframe 中。它目前仅用作弹出窗口。这是完全相同的问题,没有错误消息,只是什么都不会发生。由于支付对话框使用页面显示模式,可能与 iframe 显示模式有问题。但是,我找不到其他有此问题的人。
我不再相信这是代码问题,因为我尝试了大量示例,它们的行为都相同,包括直接取自 Facebook 开发人员页面的代码,以及 Stack Overflow 中的其他用户。我会在这里发布以防万一,但我确定它必须是 facebook 上的应用程序设置或 index.html 中的某种设置。
作为:
order_info =
{
title:'Test Product',
description:'Test product description',
price:'123'
};
Facebook.ui(
"pay.prompt",
{order_info: order_info, purchase_type: "item"},
payCallback);
JS:
function make_purchase()
{
var obj = {
method: 'pay',
action: 'buy_item',
order_info: {'item_id': '1a'},
dev_purchase_params: {'oscif': true}
};
FB.ui(obj, js_callback);
}
var js_callback = function(data)
{
if (data['order_id']) {
}
};
任何帮助将不胜感激。