Android设备上的Facebook Instant Game IAP

时间:2019-05-06 08:01:15

标签: facebook-instant-games

我们正在尝试将Facebook即时游戏IAP集成到我们的游戏中,但仅在浏览器上有效。

浏览器上显示一个对话框。 payment dialog on browser

但是在Android设备上,永远不会调用传递到FBInstant.payments.onReady的回调。

我们正在使用的示例代码:

let supportedAPIs = FBInstant.getSupportedAPIs();
if (supportedAPIs.includes('payments.purchaseAsync'))
{
    console.log('payments supported...');

    FBInstant.payments.onReady(() => {
        console.log('payments ready...');

        FBInstant.payments.purchaseAsync({
            productID: 'test_product',
            developerPayload: 'payload',
        }).then(function (purchase) {
            console.log(purchase);
        });
    });
}
else
{
    console.log('payments not supported...');
}

在Android设备上测试付款之前,我还需要满足其他要求吗?

我的测试设备型号为Nexus 6P,Android版本为8.0。

2 个答案:

答案 0 :(得分:0)

要在Android上使用IAP,您必须正在运行Google Play服务,并且必须在Android 5或更高版本上使用,因为Android上的所有IAP交易都通过Google Play进行。

如果您可以分享有关正在测试的设备的更多信息,我们也许可以理解为什么它在那里不起作用。

答案 1 :(得分:0)

好像您没有消费任何商品。只要您在Facebook开发者管理控制台中的业务验证,IAP设置等方面一切都很好,那么下面的代码对我有用:

FBInstant.payments.purchaseAsync({
    productID: 'gems50'
  }).then(function (purchase) {
    FBInstant.payments.consumePurhaseAsync(purchase.purchaseToken).then(function () {
      localStorage.gems = parseInt(localStorage.gems) + 50; // Add appropriate quantity of extra gems.
    }).catch(function (error) {
      // Handle errors...
    });
  }).catch(function (error) {
    // Handle errors...
});

请记住,alertconsole.log在使用Android for Facebook Instant Games的工作中不会帮助您进行任何交互/日志。