Facebook 支付对象 returns 价格错误
Facebook payment object returns wrong price
我们的 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 上直接 "hosted" 支付产品),但它们不支持多种货币。
好吧,我在 Facebook 上打开错误报告后设法找到了问题。
我们的代码只是使用 http 协议而不是 https 调用文件 URL。由于某种我不知道的原因,这返回了产品的缓存版本,导致定价与我们配置的不同。
为需要调试 Facebook 产品问题的任何人提供的额外有用工具:
- 在浏览器中打开开发人员工具 window 并转到控制台。
导航到游戏所在的 iframe 运行:
在控制台中输入以下代码:
var obj = {
method:'pay',
action:'purchaseitem',
product:'YOUR_PRODUCT_URL'
};
FB.ui(obj, function(data) {
console.log(data);
});
这样您就可以看到 Facebook canvas.
中包含哪些不同的 URL
祝你好运!
我们的 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 上直接 "hosted" 支付产品),但它们不支持多种货币。
好吧,我在 Facebook 上打开错误报告后设法找到了问题。
我们的代码只是使用 http 协议而不是 https 调用文件 URL。由于某种我不知道的原因,这返回了产品的缓存版本,导致定价与我们配置的不同。
为需要调试 Facebook 产品问题的任何人提供的额外有用工具:
- 在浏览器中打开开发人员工具 window 并转到控制台。
导航到游戏所在的 iframe 运行:
在控制台中输入以下代码:
var obj = { method:'pay', action:'purchaseitem', product:'YOUR_PRODUCT_URL' }; FB.ui(obj, function(data) { console.log(data); });
这样您就可以看到 Facebook canvas.
中包含哪些不同的 URL祝你好运!