gpt4 book ai didi

iphone - 在应用程序购买沙箱中不提示我输入登录/密码

转载 作者:行者123 更新时间:2023-12-03 18:49:46 27 4
gpt4 key购买 nike

我们正在开发一款应用(当然)用于应用购买 (IAP)。我已完成指南中的所有操作以启用 iap,并且一切正常,直到我想要购买为止。
部分代码:

MainViewController.m

    -(void)viewDidLoad {
if ([SKPaymentQueue canMakePayments]) {
MyStoreObserver *observer = [[MyStoreObserver alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];

SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObjects: @"com.company.app.product1", @"com.company.app.product1", nil]];
request.delegate = self;
[request start];
}
};

-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
for (SKProduct *prod in response.products) {
NSLog(@"%@ (%@)", prod.localizedTitle, prod.price);
}
[request release];
};

-(IBAction)clickBuy:(UIButton *)__sender {
SKPayment *payment = [SKPayment paymentWithProductIdentifier:@"com.company.app.product1"];
[[SKPaymentQueue defaultQueue] addPayment:payment];
};

MyStoreObserver.m

    - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
NSLog(@"SKPaymentTransactionStatePurchased");
break;
case SKPaymentTransactionStateFailed:
NSLog(@"SKPaymentTransactionStateFailed");
break;
case SKPaymentTransactionStateRestored:
NSLog(@"SKPaymentTransactionStateRestored");
break;
case SKPaymentTransactionStatePurchasing:
NSLog(@"SKPaymentTransactionStatePurchasing");
default:
break;
}
}
};

productRequest: 委托(delegate)方法显示 2 个产品及其名称/价格。就像我在 iTunes connect 站点中输入的那样。

但是,一旦我单击“购买”按钮,就不会弹出任何对话框或询问我的凭据。仅记录“SKPaymentTransactionStatePurchasing”。

而我:
- ...已在设置/商店 Pane 中注销
- ...正在使用正确的配置文件
- ...我很绝望

有人吗?

最佳答案

我遇到了类似的问题,但我的问题更像是一个愚蠢的举动。我“重构”了对 finishTransaction 的调用,以便为 transactionState 中的每个状态调用它:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
// do stuff
break;
case SKPaymentTransactionStateFailed:
// do stuff
break;
case SKPaymentTransactionStateRestored:
// do stuff
break;
default:
break;
}
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
}

结果™,这也会调用 SKPaymentTransactionStatePurchasing 上的 finishTransaction,这将导致崩溃。将 finishTransaction 移回到 switch 语句的每个案例中修复了这个问题。

关于iphone - 在应用程序购买沙箱中不提示我输入登录/密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8910631/

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