InAppPurchasing使用Cordova Phonegap Telerik / Icenium返回“无效产品ID”

时间:2014-04-27 11:16:49

标签: cordova telerik in-app-purchase cordova-3 telerik-appbuilder

我很难找到一个有示例项目的人,我可以从中遵循所有说明。我对苹果方面的流程感到非常沮丧。我认为我已经正确设置了所有内容,但应用程序并没有认识到我提供给它的productid。

我正在使用Telerik(以前的icenium),使用jQueryMobile 1.3.1,Cordova 3.2.0和PhoneGap InAppPurchase iOS plugin

我创建了一个公共bitbucket repo,以便您可以看到所有代码here

:一种。 Apple方面

  1. 在iTunesConnect中我的应用详情如下: enter image description here 并处于等待上传

  2. 状态
  3. 我的InAppPurchases部分如下所示: enter image description here 我听说也许没有找到产品的原因是因为他们没有将sku放在前面。所以我有一些产品与它和其他没有它只是为了安全。 Issue here

  4. 我已经创建了一个沙盒itunes帐户,可以测试购买的能力。 (并不是说它已达到我可以测试的程度)


  5. B中。 Telerik方

    1. 我基本上跟随3 Steps Tutorial for PhoneGap In-App Purchase on iOS进行了一些小的更改,以便在initialize上发生deviceready功能。我删除了没有达到的代码,因为所有产品都返回无效,代码如下所示:
    2. 的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。为推理


      ℃。设备端

      1. 我已经在ipad上退出了iTunes。
      2. 如您所见,每个项目都返回为无效。 enter image description here

      3. d。其他

        我已经看到,或许我需要在提交产品后24小时等待他们工作:here。但是,这个问题与生产就绪应用有关,而不是在测试期间。 This second link表明它可能只是等待更长时间的情况。

        以前有人遇到过这个问题吗?我做错了什么?

1 个答案:

答案 0 :(得分:0)

所以看起来这只是等待产品传播到所有Apple服务器上的情况。今天再次检查这是结果:

enter image description here