Facebook支付对象返回错误的价格

时间:2017-07-31 08:34:25

标签: facebook unity3d facebook-payments facebook-payment-dialog

我们的Unity网络托管WebGL应用程序实现了Facebook支付API。自2017年7月13日起,我们注意到某些产品的价格已发生变化,现在与产品htmls中所述的价格不同。我们没有改变。

示例产品对象:

<!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>

调用此对象的Unity代码:

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

上述产品仅供用户使用,费用仅为1.99美元(而不是2.99美元)。

我的问题如下:Facebook方面有什么变化吗?还有其他人看到过这些变化吗?最重要的是,我们如何解决这个问题?

作为旁注:我们还测试了支付精简版(支付产品直接“托管”在Facebook上),但他们不支持多种货币。

1 个答案:

答案 0 :(得分:1)

在Facebook上打开错误报告后,我设法找到了问题。

我们的代码只使用http协议调用文件URL而不是https。由于某些原因,我不知道这一点,返回了产品的缓存版本,导致价格与我们配置的价格不同。

为需要调试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);
    });
    
  4. 通过这种方式,您可以查看Facebook画布中包含的不同网址。

    祝你好运!