Платежный объект Facebook возвращает неправильную цену
Наше веб-приложение Unity WebGL реализует API платежей Facebook. С 13 июля 2017 года мы заметили, что цены на некоторые продукты изменились и теперь отличаются от указанных в 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? Кто-нибудь еще видел эти изменения? И самое главное, как мы можем это исправить?
В качестве примечания: мы также протестировали платежную систему Lite (платежные продукты, которые непосредственно размещены на Facebook), но они не поддерживают несколько валют.
1 ответ
Ну, мне удалось найти проблему после открытия сообщения об ошибке в Facebook.
Наш код просто называется URL-адресом файлов с протоколом http, а не https. Это, по какой-то причине без моего ведома, вернуло кешированную версию продуктов, что привело к тому, что цены отличались от тех, которые мы настроили.
Бонус, полезный инструмент для тех, кто нуждается в устранении проблем с продуктом Facebook:
- Откройте окно инструментов разработчика в вашем браузере и перейдите в консоль.
Введите следующий код в консоли:
var obj = { method:'pay', action:'purchaseitem', product:'YOUR_PRODUCT_URL' }; FB.ui(obj, function(data) { console.log(data); });
Таким образом, вы можете увидеть, какие разные URL-адреса содержатся на холсте Facebook.
Удачи!