2013-04-10 61 views
0

我正試圖推出Pay對話框,以便在我們的應用中購買遊戲貨幣。但是,無論我嘗試什麼,對話框都不會出現,也不會出現錯誤消息或任何內容。付款對話框不出現

我只會列出所有我試圖將問題根源化的東西。

  1. 如果我從我們的網頁上運行應用程序時,一個彈出窗口與API錯誤代碼:1151如果在Facebook上運行,這個彈出沒有出現,似乎什麼都沒有。

  2. 付款回撥URL已設置,與服務器端代碼一樣。這已經過手動測試,但我們的日誌顯示沒有來自Facebook本身的調用。

  3. 我已經嘗試從Actionscript中的應用程序中啓動它,並且還調用JavaScript函數,兩者的行爲都相同。

  4. 我試過buy_credits以及試圖排除回調(因爲這顯然不需要回調函數),這有同樣的問題。

  5. 我剛剛設法通過設置直接URL調用並將其粘貼到我的瀏覽器中成功調用它,以便驗證服務器端代碼是否正常工作。

在這個階段,我想知道這是否是對話框顯示模式的問題。上週我設置了應用程序請求,並且無法讓請求對話框顯示在iframe中。它目前只能用作彈出窗口。這是完全一樣的問題,沒有錯誤信息,只是沒有發生。由於付費對話框使用頁面顯示模式,因此可能存在與iframe顯示模式有關的問題。但是,我找不到其他人。

我不相信這是一個代碼問題了,因爲我已經嘗試了大量的例子,它們都表現相同,包括從Facebook開發者頁面直接獲取的代碼以及Stack Overflow中的其他用戶。我會在這裏發佈它以防萬一,但我確定它必須是在Facebook上的應用程序設置或index.html中的某種設置。

AS:

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']) { 
    } 
}; 

任何幫助將不勝感激。

回答

1

我設法解決這個問題。如果有人想知道,我使用embedSWF將我們遊戲的flash對象嵌入到網頁中,將其更改爲添加了Object標記以解決問題。我目前不知道爲什麼嵌入它會導致對話框不出現,但當我找到時我會再次在這裏發帖。