未找到应用购买产品

时间:2017-03-23 03:33:02

标签: ios in-app-purchase bundle-identifier

我创建了一个包含标识符

的应用
  

com.myapp

现在我添加了两个In App Purchase项目。以下是产品ID

  

com.myapp.product1

     

com.myapp.product2

现在,当我获取产品列表时,它不会显示任何产品。

我使用以下代码加载产品列表

'use strict';

var crypto = require('crypto');

// ServiceBus parameters
var namespace = '<Your-ServiceBus-Namespace>';
var queue ='<Your-Queue>';
var AccessKeyName = '<Your-AccessKey-Name>';
var AccessKey = '<Your-AccessKey>';


// Full ServiceBus Queue publisher URI
var ServiceBusUri = 'https://' + namespace + '.servicebus.windows.net' + '/' + queue;
 
function createSASToken(uri, keyName, key)
{
    //Token expires in December
    var expiry = '1417774602';
    var crypto = require('crypto');

    var signedString = encodeURIComponent(uri) + '\n' + expiry;
    var hmac = crypto.createHmac('sha256', key);
    hmac.update(signedString);
    var signature = hmac.digest('base64');
    var token = 'SharedAccessSignature sr=' + encodeURIComponent(uri) + '&sig=' + encodeURIComponent(signature) + '&se=' + expiry + '&skn=' + keyName;
 
    return token;
}
 
var SASToken = createSASToken(ServiceBusUri, AccessKeyName, AccessKey)
console.log(SASToken);

var options = {
        hostname: namespace + '.' + 'servicebus.Windows.net',
        port: 443,
        path: '/' + queue + '/messages',
        method: 'POST',
        headers: {
            'Authorization': SASToken,
            'Content-Type': 'application/atom+xml;type=entry;charset=utf-8',
        }
    };

// GatewayScript url-open() goes here...

// End

代码工作正常,如果我使用其他项目的产品&amp;捆绑ID。但是当我尝试我的项目时,它无法加载产品列表

似乎问题是由于bundle标识符的结构。请帮助我。

3 个答案:

答案 0 :(得分:10)

您的代码似乎适合请求产品。

确保您已在应用内购买类别下的itunesconnect应用下添加了捆绑ID和其他所需详细信息的产品。

还有一件事 - 在iTunes连接上填写“协议税和银行业务”下的表格之前,Apple不允许从应用程序中接收产品列表。

以下是接收可能对您有帮助的产品列表的代码。

func productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse) {

        let count : Int = response.products.count
        if (count>0) {
            var validProducts = response.products
            var validProduct: SKProduct = response.products[0] as SKProduct

            if (validProduct.productIdentifier == self.product_id) {
                print(validProduct.localizedTitle)
                print(validProduct.localizedDescription)
                print(validProduct.price)
                buyProduct(product: validProduct);

            } else {
                print(validProduct.productIdentifier)
            }
        } else {
            print("nothing")
        }
    }

这里product_id =&#34; com.myapp.product1&#34;或&#34; com.myapp.product2&#34;。

另外,从功能

启用应用内购买

enter image description here

这可能有助于解决您的问题。

答案 1 :(得分:2)

如果是应用内购买,您必须执行以下操作:

登录iTunes Connect

•   click “Users and Roles”  and add “sandbox tester” Details to test the app with dummy payment
•   Click on “Agreement tax and  Banking” Check For contract Type ,add needed account info,Bank info and Tax info.
•   On the iTunes Connect homepage, click the “Manage Your Applications” link
•   In the top-right corner, click “Create New Application”
•   Fill out all the requested information for your app. When asked for your application binary, check the box indicating you will upload it later.

您可能需要一天时间才能获得所需的产品清单。

答案 2 :(得分:0)

虽然很傻,但是在解决其他响应中提到的所有问题之后,我发现我的应用程序和Appstore连接上的Bundle ID略有不同。

因此,请确保您的Bundle ID在App Store connect和您的应用之间匹配。

相关问题