Swift 如何在ReactJS中添加第二个非消耗性应用内购买?
*我发现了一个非常有用的关于应用内购买的堆栈溢出链接()。这很有效。我的问题是我不知道如何添加第二个产品。你在哪里买或者。目前,我只能想出一个单一的应用内购买产品。我在网上尝试了几种不同的教程,但都没有成功Swift 如何在ReactJS中添加第二个非消耗性应用内购买?,swift,xcode,in-app-purchase,Swift,Xcode,In App Purchase,*我发现了一个非常有用的关于应用内购买的堆栈溢出链接()。这很有效。我的问题是我不知道如何添加第二个产品。你在哪里买或者。目前,我只能想出一个单一的应用内购买产品。我在网上尝试了几种不同的教程,但都没有成功 strong textvar product_id: String? @IBOutlet weak var adView: UIView! override func viewDidLoad() { super.viewDidLoad() product_id = "co
strong textvar product_id: String?
@IBOutlet weak var adView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
product_id = "com.halfmoon.removeads.com"
SKPaymentQueue.default().add(self)
//Check if product is purchased
if (UserDefaults.standard.bool(forKey: "purchased")){
adView.isHidden = true
} else {
print("Should show ads...")
}
}
@IBAction func unlockAction(sender: AnyObject) {
print("About to fetch the product...")
// Can make payments
if (SKPaymentQueue.canMakePayments())
{
let productID:NSSet = NSSet(object: self.product_id!);
let productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productID as! Set<String>);
productsRequest.delegate = self;
productsRequest.start();
print("Fetching Products");
}else{
print("Can't make purchases");
}
}
func buyProduct(product: SKProduct){
print("Sending the Payment Request to Apple");
let payment = SKPayment(product: product)
SKPaymentQueue.default().add(payment);
}
func productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
let count : Int = response.products.count
if (count>0) {
let 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")
}
}
func request(_ request: SKRequest, didFailWithError error: Error) {
print("Error Fetching product information");
}
func paymentQueue(_ queue: SKPaymentQueue,
updatedTransactions transactions: [SKPaymentTransaction])
{
print("Received Payment Transaction Response from Apple");
for transaction:AnyObject in transactions {
if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction{
switch trans.transactionState {
case .purchased:
print("Product Purchased");
SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
// Handle the purchase
UserDefaults.standard.set(true , forKey: "purchased")
adView.isHidden = true
break;
case .failed:
print("Purchased Failed");
SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
break;
case .restored:
print("Already Purchased");
SKPaymentQueue.default().restoreCompletedTransactions()
// Handle the purchase
UserDefaults.standard.set(true , forKey: "purchased")
adView.isHidden = true
break;
default:
break;
}
}
}
}
strong textvar product\u id:字符串?
@ibvar-adView:UIView!
重写func viewDidLoad(){
super.viewDidLoad()
product_id=“com.halfmon.removeads.com”
SKPaymentQueue.default().add(self)
//检查是否购买了产品
if(UserDefaults.standard.bool(forKey:“已购买”)){
adView.ishiden=true
}否则{
打印(“应显示广告…”)
}
}
@iAction func unlockAction(发件人:AnyObject){
打印(“即将获取产品…”)
//我可以付款
if(SKPaymentQueue.canMakePayments())
{
让productID:NSSet=NSSet(对象:self.product_id!);
让productsRequest:SKProductsRequest=SKProductsRequest(产品标识符:productID为!集);
productsRequest.delegate=self;
productsRequest.start();
打印(“提取产品”);
}否则{
打印(“无法购买”);
}
}
func buyProduct(产品:SKProduct){
打印(“向苹果发送付款请求”);
let payment=SKPayment(产品:产品)
SKPaymentQueue.default().add(付款);
}
func productsRequest(uRequest:SKProductsRequest,didReceive response:SKProductsResponse){
让计数:Int=response.products.count
如果(计数>0){
让validProduct:SKProduct=response.products[0]作为SKProduct
if(validProduct.productIdentifier==self.product\u id){
打印(validProduct.localizedTitle)
打印(validProduct.localizedDescription)
打印(有效产品价格)
buyProduct(产品:validProduct);
}否则{
打印(validProduct.productIdentifier)
}
}否则{
打印(“无”)
}
}
func请求(请求:SKRequest,DIDFILEWERROR错误:error){
打印(“获取产品信息时出错”);
}
func paymentQueue(queue:SKPaymentQueue,
更新的交易记录:[SKPaymentTransaction])
{
打印(“收到苹果公司的付款交易响应”);
对于事务:事务中的任何对象{
如果让交易:SKPaymentTransaction=交易为?SKPaymentTransaction{
开关trans.transactionState{
案例。购买:
印刷品(“购买的产品”);
SKPaymentQueue.default().finishTransaction(事务为!SKPaymentTransaction)
//处理购买事宜
UserDefaults.standard.set(true,forKey:“已购买”)
adView.ishiden=true
打破
案例。失败:
打印(“购买失败”);
SKPaymentQueue.default().finishTransaction(事务为!SKPaymentTransaction)
打破
案件.恢复:
印刷品(“已购买”);
SKPaymentQueue.default().restoreCompletedTransactions()
//处理购买事宜
UserDefaults.standard.set(true,forKey:“已购买”)
adView.ishiden=true
打破
违约:
打破
}
}
}
}
}知道哪个线程帮助了你会很有趣,并且在你的问题中包含一个链接可能会很有用。@bad\u coder哦,man完全忘了添加它,我的bad。。