我创建了一个包含标识符
的应用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标识符的结构。请帮助我。
答案 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;。
另外,从功能
启用应用内购买这可能有助于解决您的问题。
答案 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和您的应用之间匹配。