iOS开发

AppStore 内购促销开发

2023-05-03  本文已影响0人  CoderGuogt

App Store 促销

内购官方文档

App Store 促销是指在 App Store 上浏览 App 内购买项目,甚至在下载 App 之前就能开始购买这些项目.

App Store 促销开发

在项目中支持内购的基础上,增加 App Store 促销功能配置,一般情况下会提示你,无法在 App Store 上推广.

该提示项目中并没有去实现 paymentQueue:shouldAddStorePayment:forProduct: 这个代理方法,导致无法直接使用 App Store 促销功能,所以需要开发者在项目中去实现这个代理方法.

官方文档

这个方法会返回商品信息,返回值 YES 则交给苹果处理该订单,直接调起支付流程,如果返回 NO 的话,则不会调起支付流程,在里面我们可以增加自己的一些逻辑代码,比如判断当前用户是否已经登录了等等操作

/// AppStore 从促销点击购买处理
- (BOOL)paymentQueue:(SKPaymentQueue *)queue shouldAddStorePayment:(SKPayment *)payment forProduct:(SKProduct *)product {
    
    // 直接返回 NO,不交给苹果处理
    NSString *productID = product.productIdentifier;
    NSLog(@"AppStore 促销点击购买: productIdentifier - %@", productID);
    
    // 记录当前事件
    [APPDELEGATE.appReqTools dealAppStoreBuyWithProductID:productID];
    // 判断当前是否登录
    BOOL result = [LBLoginHandler checkLogin];
    if (result == YES) {
        // 当前已登录直接处理
        NSLog(@"当前已登录,直接处理当前事件");
        [APPDELEGATE.appReqTools dealAllEvent];;
    } else {
        // 当前未登录
        NSLog(@"当前未登录,待登录成功后,处理跳转购买会员页面");
    }
    
    return NO;
}

这样就完成了 AppStore 内购促销开发

测试

该代码未上线,所以不能直接在 AppStore 进行测试,只有当该代码上线之后,才能在 App Store Connect 去设置 AppStore 促销功能,但是我们需要在开发过程中去测试该功能,可以使用以下方法

测试推广的 App 内购项目

生成的 URL 类似如下:

itms-services://?action=purchaseIntent&bundleId=com.example.app&productIdentifier=product_name
上一篇下一篇

猜你喜欢

热点阅读