1

我們的Unity Web託管WebGL應用程序實現Facebook支付API。自2017年7月13日以來,我們注意到一些產品的價格已經發生變化,現在與產品htmls中所述的價格不同。我們這邊沒有任何變化。Facebook支付對象返回錯誤的價格

樣品產品對象:

<!DOCTYPE html> 
    <html> 
    <head prefix= 
     "og: http://ogp.me/ns# 
     fb: http:// 
     ogp.me/ns/fb# 
     product: https://ogp.me/ns/product#"> 
     <meta property="og:type"     content="og:product" /> 
     <meta property="og:title"     content="10000 Gold Coins" /> 
     <meta property="og:image"     content="https://[HOST_URL]/Icon.png" /> 
     <meta property="og:description"   content="10000 Gold Coins!" /> 
     <meta property="og:url"     content="https://[HOST_URL]/Coins10000.html" /> 
     <meta property="product:price:amount"  content="2.99"/> 
     <meta property="product:price:currency" content="USD"/>  
     <meta property="product:price:amount"  content="2.99"/> 
     <meta property="product:price:currency" content="EUR"/> 
     <meta property="product:price:amount"  content="2.49"/> 
     <meta property="product:price:currency" content="GBP"/> 
     <meta property="product:price:amount"  content="3.99"/> 
     <meta property="product:price:currency" content="AUD"/> 
     <meta property="product:price:amount"  content="3490"/> 
     <meta property="product:price:currency" content="KRW"/> 
     <meta property="product:price:amount"  content="11.9"/> 
     <meta property="product:price:currency" content="ILS"/> 
     <meta property="product:price:amount"  content="3.99"/> 
     <meta property="product:price:currency" content="CAD"/> 
     <meta property="product:price:amount"  content="314.9"/> 
     <meta property="product:price:currency" content="JPY"/> 
     <meta property="product:price:amount"  content="189.9"/> 
     <meta property="product:price:currency" content="RUB"/> 
     <meta property="product:price:amount"  content="23.9"/> 
     <meta property="product:price:currency" content="HKD"/> 
     <meta property="product:price:amount"  content="2.99"/> 
     <meta property="product:price:currency" content="CHF"/> 
     <meta property="product:price:amount"  content="11.9"/> 
     <meta property="product:price:currency" content="PLN"/> 
    </head> 
    </html> 

的統一代碼調用此對象:

FB.Canvas.Pay("http://[HOST_URL]/Coins10000.html", callback: FBProductCallback); 

將上述產物出現用戶以成本只有1.99美元(而不是2.99)。

我的問題如下:在Facebook端有什麼改變?有沒有其他人看到這些變化?最重要的是,我們如何解決這個問題?

附註:我們還測試了支付Lite(在Facebook上直接「託管」的支付產品),但它們不支持多種貨幣。

+1

這似乎是來自Facebook的錯誤,因爲您沒有對代碼進行任何更改。請在[Facebook](https://developers.facebook.com/bugs/)上報告您的錯誤。他們將在24小時內與您聯繫。 –

回答

1

嗯,我在用Facebook打開一個錯誤報告後發現了問題。

我們的代碼只是用http協議而不是https來稱爲文件URL。由於某些原因,我不知道該原因返回了緩存版本的產品,從而導致與我們配置的產品不同的定價。

獎金有用的工具,任何人需要調試Facebook的產品問題:

  1. 打開您的瀏覽器開發人員工具窗口,去安慰。
  2. 導航到的iframe中,在遊戲運行: enter image description here

  3. 輸入以下代碼到控制檯:

    var obj = { 
        method:'pay', 
        action:'purchaseitem', 
        product:'YOUR_PRODUCT_URL' 
    }; 
    
    FB.ui(obj, function(data) { 
        console.log(data); 
    }); 
    

這樣,您就可以看到不同的URL包含Facebook畫布。

祝你好運!