【发布时间】:2014-05-15 21:20:33
【问题描述】:
我正在使用 ti.storekit 进行应用计费。一切似乎都正常,但是当我运行以下代码时:
Storekit.requestProducts(["FooPro"], function (evt)
{
Ti.API.info('evt:' + JSON.stringify(evt, undefined, 2));
//hideLoading();
if (!evt.success)
{
alert('ERROR: We failed to talk to Apple!');
}
else if (evt.invalid)
{
alert('ERROR: We requested an invalid product!');
}
else
{
item = evt.products;
Ti.API.info('gotProducts:' + JSON.stringify(item, undefined, 2));
success(item[0]);
}
});
我收到了成功的回复,但没有产品:
evt:{
"type": "callback",
"products": [
{}
],
"source": {},
"success": true
}
所以没有产品,只是默默地失败了。在 iTunes 连接中,在产品中,我有一个产品 ID 为 FooPro 的应用内产品(尽管它正在等待审核)。我不确定我做错了什么。 似乎一切正常,我只是得到一个空的产品数组,我不知道为什么。
这也是导致错误的原因,所以当我打电话时
// product = {} since the above returned it as empty
Storekit.purchase(product);
它出错并告诉我:
Passing individual args to `purchase` is DEPRECATED. Call `purchase` passing in a dictionary of arguments.
addTransactionObserver` should be called before `purchase`
编辑:产品在使用 Ti.API.info() 输出内容时显示为空。然而在设备上使用测试帐户登录iTunes后,产品仍然显示为空,但是当我进行更多调试时,产品对象似乎实际上是:
{'My product description'}
所以当我打电话时
Storekit.purchase(product)
好像真的在召唤
Storekit.purchase({'My product description'})
所以这里似乎失败了,因为购买调用永远不会触发 transactionState 事件监听器。
环境: - iPhone:5、4s
感谢您的帮助。
【问题讨论】:
-
您的应用状态是否为“等待上传”?你是在真机上测试吗?
-
是的,我正在 iPhone 5 上进行测试。我读过很多资料,它往往无法在模拟器上运行。但是,是的;应用程序状态仍在等待上传。我会尝试提交它,看看是否有帮助。
-
目前一切都在等待审查。我得到了同样的结果。
-
您必须在真实设备上进行测试,我想知道弃用的消息是否会导致问题。 Ti.Storekit 模块可能需要更新...
-
不。它从来没有奏效。我发现更多的人使用 storekit 不适合他们的更新应用程序。似乎它只是做得不好。还有另一个可用的插件似乎更好。但它需要成本。我们最终放弃了为该应用进行应用内购买的想法。因为我们最终还是想回归本土并远离钛金属。太头疼了。
标签: ios titanium app-store-connect titanium-mobile titanium-modules