Платежный объект 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:

  1. Откройте окно инструментов разработчика в вашем браузере и перейдите в консоль.
  2. Перейдите к iframe, в котором запущена игра: введите описание изображения здесь

  3. Введите следующий код в консоли:

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

Таким образом, вы можете увидеть, какие разные URL-адреса содержатся на холсте Facebook.

Удачи!

Другие вопросы по тегам