我很难找到一个有示例项目的人,我可以从中遵循所有说明。我对苹果方面的流程感到非常沮丧。我认为我已经正确设置了所有内容,但应用程序并没有认识到我提供给它的productid。
我正在使用Telerik(以前的icenium),使用jQueryMobile 1.3.1,Cordova 3.2.0和PhoneGap InAppPurchase iOS plugin
我创建了一个公共bitbucket repo,以便您可以看到所有代码here。
:一种。 Apple方面
在iTunesConnect中我的应用详情如下: 并处于等待上传
我的InAppPurchases部分如下所示: 我听说也许没有找到产品的原因是因为他们没有将sku放在前面。所以我有一些产品与它和其他没有它只是为了安全。 Issue here
我已经创建了一个沙盒itunes帐户,可以测试购买的能力。 (并不是说它已达到我可以测试的程度)
B中。 Telerik方
initialize
上发生deviceready
功能。我删除了没有达到的代码,因为所有产品都返回无效,代码如下所示:的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello, World</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="jquery-mobile/styles/jquery.mobile-1.3.1.min.css" rel="stylesheet" />
<link href="styles/main.css" rel="stylesheet" />
<script src="cordova.js" type="text/javascript"></script>
<script src="jquery-mobile/js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="jquery-mobile/js/jquery.mobile-1.3.1.min.js" type="text/javascript"></script>
</head>
<body>
<!--Home-->
<div id="home" data-role="page">
</div>
<script type="text/javascript">
document.addEventListener('deviceready', function () {
navigator.splashscreen.hide();
IAP.initialize();
}, false);
</script>
<script src="scripts/login.js" type="text/javascript"></script>
</body>
</html>
login.js
var IAP = {
list: [ 'dummyinapp11', 'dummyinapp12', 'com.gaandder.inapptutorial.dummyinapp11', 'com.gaandder.inapptutorial.dummyinapp12', 'com.gaandder.inapptutorial.dummyinapp1', 'com.gaandder.inapptutorial.dummyinapp2', 'dummyinapp1', 'dummyinapp2' ],
products: {}
};
IAP.initialize = function () {
// Check availability of the storekit plugin
if (!window.storekit) {
logg('In-App Purchases not available');
return;
}
// Initialize
storekit.init({
ready: IAP.onReady,
purchase: IAP.onPurchase,
restore: IAP.onRestore,
error: IAP.onError
});
};
IAP.onReady = function () {
// Once setup is done, load all product data.
storekit.load(IAP.list, function (products, invalidIds) {
logg('IAPs loading done:');
for (var j = 0; j < products.length; ++j) {
var p = products[j];
logg('Loaded IAP(' + j + '). title:' + p.title +
' description:' + p.description +
' price:' + p.price +
' id:' + p.id);
IAP.products[p.id] = p;
}
IAP.loaded = true;
for (var i = 0; i < invalidIds.length; ++i) {
logg('Error: could not load ' + invalidIds[i]);
}
});
};
logg = function (data) {
document.getElementById('home').innerHTML += data + '<br />';
// console.log(data);
};
正如您所看到的,我已经添加了我能想到的产品ID的所有排列,请参阅A.2。为推理
℃。设备端
d。其他
我已经看到,或许我需要在提交产品后24小时等待他们工作:here。但是,这个问题与生产就绪应用有关,而不是在测试期间。 This second link表明它可能只是等待更长时间的情况。
以前有人遇到过这个问题吗?我做错了什么?
答案 0 :(得分:0)
所以看起来这只是等待产品传播到所有Apple服务器上的情况。今天再次检查这是结果: