gpt4 book ai didi

ios - 报 "item already bought"消息后内购失败

转载 作者:行者123 更新时间:2023-11-29 13:34:32 29 4
gpt4 key购买 nike

我正在构建 iOS 应用并尝试实现应用内购买(非消费品)。

所有 bundle ID 等都已设置并正常工作,当我获取 Apple Store 服务器时,我可以看到我的产品有效。但是,在测试时,我在 paymentQueue 回调中收到失败的交易。

以下是在 iOS 模拟器中逐步发生的情况:

  1. 一个消息框询问“你愿意以 0.99 美元的价格购买 .. 吗?”这是正确的
  2. 我点击"is"。
  3. 大约一秒钟后它说我已经买了它(正确,我最初是在调试时试买的)。我单击“确定”。
  4. 它提示登录要求(它说类似 MZFinance_LoginRequired 的内容,我认为它缺少字符串标识符。)我单击“确定”。
  5. App Store 登录框弹出,我输入我的测试帐户凭据。
  6. 我在 Xcode 中的断点已命中,交易状态为 SKPaymentTransactionStateFailed

这是我的代码的相关部分:

-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
NSArray* arr = response.products;
for (int i = 0; i < arr.count; i++) {
SKProduct* product = [arr objectAtIndex:i];
if([product.productIdentifier isEqualToString:@"<<my in app purchase id which is correct and working>>"]){
SKPayment *payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}
}

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
for (SKPaymentTransaction* ta in transactions) {
switch (ta.transactionState) {
case SKPaymentTransactionStatePurchased:
case SKPaymentTransactionStateRestored:
receipt = [ta transactionReceipt];
[self performSelectorInBackground:@selector(validateFromServer) withObject:nil];
break;
case SKPaymentTransactionStateFailed:
[self purchaseFailed];
break;
}

if(!ta.transactionState == SKPaymentTransactionStatePurchasing){
[[SKPaymentQueue defaultQueue] finishTransaction:ta];

}
}

}

[self purchaseFailed] 总是被击中,这只是通知用户。这里有什么问题? (我是 iOS 的新手,而且 - 显然 - 在应用程序购买方面是 iOS 的)。谢谢。

更新:我的测试帐户凭据是正确的,因为如果输入错误,我会收到不同的(无效登录)消息。

最佳答案

很抱歉回答晚了,我知道你已经解决了你的问题,但我也遇到了这个问题。我的解决方案是自动运行恢复购买方法,因为这似乎可行。

谢谢

关于ios - 报 "item already bought"消息后内购失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10933772/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com