1

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

样品产品对象:

<!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 上),但它们不支持多种货币。

4

1 回答 1

1

好吧,在使用 Facebook 打开错误报告后,我设法找到了问题所在。

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

对需要调试 Facebook 产品问题的任何人都有帮助的工具:

  1. 在浏览器中打开开发人员工具窗口并转到控制台。
  2. 导航到运行游戏的 iframe: 在此处输入图像描述

  3. 在控制台中输入以下代码:

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

通过这种方式,您可以查看 Facebook 画布中包含的不同 URL。

祝你好运!

于 2017-08-13T12:16:38.440 回答