1

我们正在尝试将 Facebook 即时游戏 IAP 集成到我们的游戏中,但它仅适用于浏览器。

浏览器上会显示一个对话框。 浏览器支付对话框

但在 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。

4

2 回答 2

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.logAndroid 上为 Facebook Instant Games 工作时不会帮助您处理任何交互/日志。

于 2020-02-18T19:59:21.323 回答
0

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

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

于 2019-05-06T18:21:05.243 回答