gpt4 book ai didi

ios - 请求产品信息而不实际开始付款流程

转载 作者:行者123 更新时间:2023-11-29 02:38:05 25 4
gpt4 key购买 nike

我已经为我的应用实现了应用内购买,但为了遵守 Apple 准则,我需要在我的商店 UI 中格式化和显示产品的本地化货币。当用户点击显示商店 UI 时,我创建了一个 productsRequest 来请求和显示相应产品的信息。问题是它还会为我设置的购买启动购买流程。我想要它做的就是在标签中显示格式化的货币,而不开始购买过程。

用于显示商店 UI 的按钮:

-(void)openIAP
{
if([SKPaymentQueue canMakePayments]){
NSLog(@"User can make payments");
SKProductsRequest *productsRequest = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObjects:kRemoveAdsProductIdentifier, nil]];
productsRequest.delegate = self;
[productsRequest start];
} else {
NSLog(@"User can't make payments, don't open store");
}
}

产品请求

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
SKProduct *validProduct = nil;
int count = [response.products count];
if(count > 0){
validProduct = [response.products objectAtIndex:0];
NSLog(@"Products Available!");
_numberFormatter = [[NSNumberFormatter alloc] init];
[_numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[_numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[_numberFormatter setLocale:validProduct.priceLocale];
NSString *formattedPrice = [_numberFormatter stringFromNumber:validProduct.price];
NSLog(@"The price is %@", formattedPrice);
[adsPrice setString:formattedPrice];
[self purchase:validProduct]; //this needs to be moved
}
else if(!validProduct){
NSLog(@"No products available");
//this is called if your product id is not valid, this shouldn't be called unless that happens.
}
}

我了解此方法的工作原理,但我不知道如何处理 [self purchase:validProduct]。我尝试使用不同的参数名称创建并调用另一个名为 justProductsRequestSKProductsRequest 方法。它具有与 productsRequest 相同的代码(如上所示)只是没有 [self purchase:validProduct]; 但它仍然调用 productsRequest 而不是 justProductsRequest.

感谢任何帮助。谢谢!

最佳答案

您不应使用产品请求来发起购买。产品请求提供产品信息,例如价格,然后您可以使用这些信息来更新应用程序的 UI。

当您收到 productsRequest:didReceiveResponse: 时,您应该存储收到的产品数组。这包含创建 SKPayment 对象所需的所有 SKProduct 项目。此外,您应该更新您的用户界面以在此处显示您的 IAP 商品的价格(就像您所做的那样)。您应该只需要提出一次此请求。

当你想开始购买流程时(例如,当用户按下一个 IAP 项目的按钮时),在你之前存储的产品数组中通过其标识符找到相关产品,并使用 [SKPayment paymentWithProduct :] 创建支付对象。

In-App Purchase Programming Guide提供了很多重要信息。我所描述的正确购买流程可以在我链接到的页面上的“图 I-1”中看到。

关于ios - 请求产品信息而不实际开始付款流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26129549/

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