我们正在尝试将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。
答案 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...
});
请记住,alert
和console.log
在使用Android for Facebook Instant Games的工作中不会帮助您进行任何交互/日志。