美文网首页
蘋果內購小結

蘋果內購小結

作者: iOS阿能 | 来源:发表于2021-01-25 17:22 被阅读0次

    記錄從配置到上架

    1、App Store把協議部分填寫完成,包含報稅那些
    2、證書配置對應,以及設置沙盒人員
    3、創建內購產品(一定要搞完協議那些再創建,否則代碼無法使用,如果順序錯了的話,可以重新生成證書)
    4、使用YQInAppPurchaseTool(github上面有)
    5、代碼執行
    6、內購成本,本地保存秘鑰,如果調用後端接口成功,標記為成功,否則下次啟動APP繼續調用後端的接口(防失敗案例)
    先請求內購商品是否可用

    - (void)pay{
        //-----------获取单例
        YQInAppPurchaseTool *IAPTool = [YQInAppPurchaseTool defaultTool];
        //-----------设置代理
        IAPTool.delegate = self;
        //向苹果询问哪些商品能够购买,測試階段是要多個,真正使用的時候只要傳一個商品就行了
        [IAPTool requestProductsWithProductArray:@[@"product2",@"test1",@"test2"]];
    }
    

    從已可用商品,進行購買

    #pragma mark - YQInAppPurchaseToolDelegate
    
    //-----------实现代理
    //IAP工具已获得可购买的商品
    -(void)IAPToolGotProducts:(NSMutableArray *)products {
        NSLog(@"GotProducts:%@",products);
        dispatch_async(dispatch_get_main_queue(), ^{
            if (products.count == 0) {
                [DFLoadingView hideTitle:@"沒有可購買的商品"];
                return;
            }
            SKProduct *product = products.firstObject;
            //请求购买商品
            [[YQInAppPurchaseTool defaultTool]buyProduct:product.productIdentifier];
            //请求恢复商品(永久性商品)(也可直接再次购买,系统会提示不用扣费)
    //        [[YQInAppPurchaseTool defaultTool] restorePurchase];
        });
    }
    //支付失败/取消
    -(void)IAPToolCanceldWithProductID:(NSString *)productID {
        NSLog(@"canceld:%@",productID);
    }
    //支付成功了,并开始向苹果服务器进行验证(若CheckAfterPay为NO,则不会经过此步骤)
    -(void)IAPToolBeginCheckingdWithProductID:(NSString *)productID {
        NSLog(@"BeginChecking:%@",productID);
    }
    //商品被重复验证了
    -(void)IAPToolCheckRedundantWithProductID:(NSString *)productID {
        NSLog(@"CheckRedundant:%@",productID);
    }
    //商品完全购买成功且验证成功了。(若CheckAfterPay为NO,则会在购买成功后直接触发此方法)
    -(void)IAPToolBoughtProductSuccessedWithProductID:(NSString *)productID
                                                andInfo:(NSDictionary *)infoDic {
        NSLog(@"BoughtSuccessed:%@",productID);
        NSLog(@"successedInfo:%@",infoDic);
    }
    //商品购买成功了,但向苹果服务器验证失败了
    //2种可能:
    //1,设备越狱了,使用了插件,在虚假购买。
    //2,验证的时候网络突然中断了。(一般极少出现,因为购买的时候是需要网络的)
    -(void)IAPToolCheckFailedWithProductID:(NSString *)productID
                                     andInfo:(NSData *)infoData {
        NSLog(@"CheckFailed:%@",productID);
    }
    //恢复了已购买的商品(仅限永久有效商品)
    -(void)IAPToolRestoredProductID:(NSString *)productID {
        NSLog(@"Restored:%@",productID);
    }
    //内购系统错误了
    -(void)IAPToolSysWrong {
        NSLog(@"SysWrong");
    }
    
    
    #pragma mark - getter
    
    - (DFPayTitleScrollView *)payTitleScrollView {
        if (!_payTitleScrollView) {
            _payTitleScrollView = [DFPayTitleScrollView payTitleScrollView];
        }
        return _payTitleScrollView;
    }
    
    

    相关文章

      网友评论

          本文标题:蘋果內購小結

          本文链接:https://www.haomeiwen.com/subject/dadizktx.html