zwp преди 5 месеца
родител
ревизия
4653b3cb51

+ 14 - 0
BuguLive.xcodeproj/project.pbxproj

@@ -575,6 +575,7 @@
 		04EDB51826C643B10068A254 /* BGVideoGiftAnimationView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 04EDB51726C643B10068A254 /* BGVideoGiftAnimationView.xib */; };
 		284153B71F38521C00CC6CAE /* PluginToolsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 284153B61F38521C00CC6CAE /* PluginToolsModel.m */; };
 		2A9B3716325B6F001D373333 /* libPods-BuguLive.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F38F5F6C99E03182F7AF7276 /* libPods-BuguLive.a */; };
+		347DDCD32E41F8A700EAE3C0 /* IAPManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 347DDCD22E41F8A700EAE3C0 /* IAPManager.m */; };
 		380034E328F6B365007C0FFC /* BGReadPackTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 380034CB28F6B365007C0FFC /* BGReadPackTableViewCell.xib */; };
 		380034E428F6B365007C0FFC /* BGRedPackResultList.m in Sources */ = {isa = PBXBuildFile; fileRef = 380034CC28F6B365007C0FFC /* BGRedPackResultList.m */; };
 		380034E528F6B365007C0FFC /* BGReadPackResultTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 380034CD28F6B365007C0FFC /* BGReadPackResultTableViewCell.xib */; };
@@ -3464,6 +3465,8 @@
 		04EDB51726C643B10068A254 /* BGVideoGiftAnimationView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BGVideoGiftAnimationView.xib; sourceTree = "<group>"; };
 		284153B51F38521C00CC6CAE /* PluginToolsModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginToolsModel.h; sourceTree = "<group>"; };
 		284153B61F38521C00CC6CAE /* PluginToolsModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PluginToolsModel.m; sourceTree = "<group>"; };
+		347DDCD12E41F8A700EAE3C0 /* IAPManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IAPManager.h; sourceTree = "<group>"; };
+		347DDCD22E41F8A700EAE3C0 /* IAPManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IAPManager.m; sourceTree = "<group>"; };
 		380034CB28F6B365007C0FFC /* BGReadPackTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BGReadPackTableViewCell.xib; sourceTree = "<group>"; };
 		380034CC28F6B365007C0FFC /* BGRedPackResultList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BGRedPackResultList.m; sourceTree = "<group>"; };
 		380034CD28F6B365007C0FFC /* BGReadPackResultTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BGReadPackResultTableViewCell.xib; sourceTree = "<group>"; };
@@ -6702,6 +6705,7 @@
 		040C7A731EB31B890074A472 /* Helper */ = {
 			isa = PBXGroup;
 			children = (
+				347DDCD02E41F88900EAE3C0 /* IAPManager */,
 				042803631EBC91930075C25C /* BGHelperHeader.h */,
 				0428037F1EBC9BF50075C25C /* FanweMessage */,
 				047E22F71EC15CBE001B874D /* BGUtils */,
@@ -9274,6 +9278,15 @@
 			name = Pods;
 			sourceTree = "<group>";
 		};
+		347DDCD02E41F88900EAE3C0 /* IAPManager */ = {
+			isa = PBXGroup;
+			children = (
+				347DDCD12E41F8A700EAE3C0 /* IAPManager.h */,
+				347DDCD22E41F8A700EAE3C0 /* IAPManager.m */,
+			);
+			path = IAPManager;
+			sourceTree = "<group>";
+		};
 		380034CA28F6B365007C0FFC /* RedPack */ = {
 			isa = PBXGroup;
 			children = (
@@ -17622,6 +17635,7 @@
 				C1A65F4E26607AEC000269E0 /* BogoChatBottomBarView.m in Sources */,
 				9165DEF72BAAC9BC00FA24A5 /* FDAction.m in Sources */,
 				047E1F291EC1538C001B874D /* baseVC.m in Sources */,
+				347DDCD32E41F8A700EAE3C0 /* IAPManager.m in Sources */,
 				047E21E41EC153BA001B874D /* OneSectionTableViewCell.m in Sources */,
 				CB4E86A32200018D00684A9D /* WardOpenView.m in Sources */,
 				38649DB728F29C2F00DB3C98 /* NibIdentifiable.swift in Sources */,

+ 3 - 1
BuguLive/Class/AppOhters/AppDelegate.m

@@ -42,7 +42,7 @@
 #import "BogoNetworkKit.h"
 
 #import <UMLink/UMLink.h>
-
+#import "IAPManager.h"
 
 //BogoGuideViewController
 
@@ -274,6 +274,8 @@ static SystemSoundID shake_sound_male_id = 0;
     //解决第一次点击textfield卡顿问题
     [self textfieldResponderRemove];
     
+    [[IAPManager sharedManager] checkUnfinishedTransactions];
+    
     return YES;
 }
 ////配置离线消息推送

+ 13 - 0
BuguLive/Class/General/Helper/IAPManager/IAPManager.h

@@ -0,0 +1,13 @@
+#import <Foundation/Foundation.h>
+
+typedef void(^IAPCompletionBlock)(BOOL success, NSInteger amount, NSError  * _Nullable error);
+
+@interface IAPManager : NSObject
+
++ (instancetype _Nonnull )sharedManager;
+//- (void)fetchProducts:(nonnull NSArray<NSString *> *)productIds;
+- (void)buyProduct:(nonnull NSString *)productId completion:(IAPCompletionBlock _Nullable )completion;
+- (void)restorePurchases;
+- (void)checkUnfinishedTransactions; // 掉单处理
+
+@end

+ 195 - 0
BuguLive/Class/General/Helper/IAPManager/IAPManager.m

@@ -0,0 +1,195 @@
+#import "IAPManager.h"
+#import <StoreKit/StoreKit.h>
+
+@interface IAPManager ()<SKProductsRequestDelegate, SKPaymentTransactionObserver>
+@property (nonatomic, strong) NSArray<SKProduct *> *products;
+@property (nonatomic, strong) NetHttpsManager *httpsManager;
+@property (nonatomic, copy) IAPCompletionBlock completionBlock;
+@end
+@implementation IAPManager
+
++ (instancetype)sharedManager {
+    static IAPManager *manager;
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        manager = [[self alloc] init];
+        [[SKPaymentQueue defaultQueue] addTransactionObserver:manager];
+    });
+    return manager;
+}
+
+#pragma mark - 获取商品信息
+- (void)fetchProducts:(NSArray<NSString *> *)productIds {
+    NSSet *productIDs = [NSSet setWithArray:productIds];
+    SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:productIDs];
+    request.delegate = self;
+    [request start];
+    NSLog(@"fetchProducts: %@",productIDs);
+}
+
+- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
+    self.products = response.products;
+    SKProduct *p = response.products.firstObject;
+    NSLog(@"商品: %@, 价格: %@", p.localizedTitle, p.price);
+    if (!p) {
+        [[BGHUDHelper sharedInstance] tipMessage:ASLocalizedString(@"无法获取产品信息,购买失败。")];
+        [SVProgressHUD dismiss];
+        if (self.completionBlock) self.completionBlock(NO, 0, nil);
+        return;
+    }
+    SKPayment *payment = [SKPayment paymentWithProduct:p];
+    [[SKPaymentQueue defaultQueue] addPayment:payment];
+}
+
+#pragma mark - 购买
+- (void)buyProduct:(NSString *)productId completion:(IAPCompletionBlock)completion {
+    _completionBlock = completion;
+    if ([SKPaymentQueue canMakePayments]) {
+        [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeClear];
+        [SVProgressHUD showWithStatus:ASLocalizedString(@"正在提交iTunes Store,请等待...")];
+        [self fetchProducts:@[productId]];
+    } else {
+        [FanweMessage alert:ASLocalizedString(@"您已禁止应用内付费购买商品")];
+    }
+}
+
+#pragma mark - 交易回调
+- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions {
+    for (SKPaymentTransaction *transaction in transactions)
+    {
+        switch (transaction.transactionState)
+        {
+            case SKPaymentTransactionStatePurchased://交易完成
+                NSLog(@"transactionIdentifier = %@", transaction.transactionIdentifier);
+                [self completeTransaction:transaction];
+                break;
+            case SKPaymentTransactionStateFailed://交易失败
+                NSLog(@"%@", ASLocalizedString(@"交易失败"));
+                [self failedTransaction:transaction];
+                break;
+            case SKPaymentTransactionStateRestored://恢复已购买商品
+                NSLog(@"%@", ASLocalizedString(@"恢复已购买商品"));
+                [self restoreTransaction:transaction];
+                [queue finishTransaction:transaction];
+                break;
+            case SKPaymentTransactionStatePurchasing:
+                break;
+            case SKPaymentTransactionStateDeferred:
+                break;
+        }
+    }
+}
+
+#pragma mark - 掉单检查
+- (void)checkUnfinishedTransactions {
+    NSArray *transactions = [SKPaymentQueue defaultQueue].transactions;
+    for (SKPaymentTransaction *transaction in transactions) {
+        if (transaction.transactionState == SKPaymentTransactionStatePurchased) {
+            [self completeTransaction:transaction];  // 再次验证并发货
+        }
+    }
+}
+
+
+
+- (void)completeTransaction:(SKPaymentTransaction *)transaction
+{
+    NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
+    NSData *receiptData = [NSData dataWithContentsOfURL:receiptURL];
+    NSString *receiptString = [receiptData base64EncodedStringWithOptions:0];
+    if ([receiptString length] > 0) {
+        
+        // 保存本地(掉单恢复使用)
+        [[NSUserDefaults standardUserDefaults] setObject:receiptString forKey:@"lastReceipt"];
+        [[NSUserDefaults standardUserDefaults] synchronize];
+        
+        // 向自己的服务器验证购买凭证
+        [self shoppingTransaction:transaction receiptString:receiptString retryCount:3];
+    } else {
+        [SVProgressHUD dismiss];
+        [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
+        if (self.completionBlock) self.completionBlock(NO, 0, nil);
+    }
+}
+
+#pragma mark -- 向自己的服务器验证购买凭证
+- (void)shoppingTransaction:(SKPaymentTransaction *)transaction receiptString:(NSString *)receiptString retryCount:(NSInteger)retryCount
+{
+    retryCount--;
+    if (retryCount <= 0) {
+        [SVProgressHUD dismiss];
+        [FanweMessage alert:ASLocalizedString(@"支付失败")];
+        return;
+    }
+    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:0];
+//    if (_is_vip)
+//    {
+//        [dict setObject:@"vip_pay" forKey:@"ctl"];
+//    }
+//    else
+//    {
+        [dict setObject:@"pay" forKey:@"ctl"];
+//    }
+    [dict setObject:@"iappay" forKey:@"act"];
+    NSString *userid = [IMAPlatform sharedInstance].host.imUserId;
+    [dict setObject:userid forKey:@"user_id"];
+    [dict setObject:receiptString forKey:@"receipt-data"];
+    [self.httpsManager POSTWithParameters:dict SuccessBlock:^(NSDictionary *responseJson) {
+        [SVProgressHUD dismiss];
+        NSInteger diamonds = [[responseJson objectForKey:@"total_diamonds"] integerValue];
+        if (self.completionBlock) self.completionBlock(YES, diamonds, nil);
+        [FanweMessage alert:ASLocalizedString(@"充值成功")];
+        [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
+        [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"lastReceipt"];
+    } FailureBlock:^(NSError *error) {
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+            [self shoppingTransaction:transaction receiptString:receiptString retryCount:retryCount];
+        });
+    }];
+}
+
+- (void)failedTransaction:(SKPaymentTransaction *)transaction
+{
+    [SVProgressHUD dismiss];
+    if(transaction.error.code == SKErrorPaymentCancelled)
+    {
+        [FanweMessage alert:ASLocalizedString(@"您已经取消交易")];
+    }
+    else
+    {
+        [FanweMessage alert:ASLocalizedString(@"购买失败")];
+    }
+    [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
+    if (self.completionBlock) self.completionBlock(NO, 0, nil);
+}
+
+- (void)restoreTransaction:(SKPaymentTransaction *)transaction
+{
+    // 对于已购商品,处理恢复购买的逻辑
+    //[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
+    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
+}
+
+
+
+
+#pragma mark - 恢复购买
+- (void)handleRestore:(SKPaymentTransaction *)transaction {
+    NSLog(@"恢复购买: %@", transaction.payment.productIdentifier);
+}
+
+- (void)restorePurchases {
+    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
+}
+
+- (NetHttpsManager *)httpsManager
+{
+    if (!_httpsManager)
+    {
+        _httpsManager = [NetHttpsManager manager];
+    }
+    return _httpsManager;
+}
+
+
+@end

+ 22 - 174
BuguLive/Class/Sections/Home/V3NewUIController/NewRechargeUI/Controller/BogoRechargeViewController.m

@@ -9,14 +9,13 @@
 #import "BogoRechargeViewController.h"
 
 #import "BogoRechargeScrollView.h"
-#import <StoreKit/StoreKit.h>//内购
 
 #import "BogoRechargeRecordController.h"//收支记录
+#import "IAPManager.h"
 
-@interface BogoRechargeViewController ()<BogoRechargeDelegate,SKProductsRequestDelegate,SKPaymentTransactionObserver>
+@interface BogoRechargeViewController ()<BogoRechargeDelegate>
 
 @property(nonatomic, strong) BogoRechargeScrollView *scrollView;
-@property (nonatomic, strong) SKProductsRequest * request;
 
 @end
 
@@ -129,6 +128,26 @@
 //    [self alipay:payinfo block:nil];
 }
 
+- (void)checkProid:(NSString *)pro_id { 
+    [[IAPManager sharedManager] buyProduct:pro_id completion:^(BOOL success, NSInteger amount, NSError * _Nullable error) {
+        if (success) {
+            [self.scrollView updateDiamonds:amount];
+            [self reloadAcount];
+        }
+    }];
+}
+
+
+- (void)getProductInfowithprotectId:(NSString *)proId { 
+
+}
+
+
+- (void)rechargeScrollView:(BogoRechargeScrollView *)rechargeScrollView didClickCloseBtn:(UIButton *)sender { 
+    
+}
+
+
 //- (void)alipay:(NSString*)payinfo  block:(void(^)(SResBase* resb))block
 //{
 //    NSString *appScheme = AlipayScheme;
@@ -165,162 +184,6 @@
 //    }];
 //}
 
-#pragma mark -- 苹果内购服务,下面的ProductId应该是事先在itunesConnect中添加好的,已存在的付费项目。否则查询会失败。
-
--(void)checkProid:(NSString *)pro_id{
-    // 监听购买结果
-    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
-
-    
-    //查询是否允许内付费
-    if ([SKPaymentQueue canMakePayments])
-    {
-        // 执行下面提到的第5步:
-        [self getProductInfowithprotectId:pro_id];
-    }
-    else
-    {
-        [FanweMessage alert:ASLocalizedString(@"您已禁止应用内付费购买商品")];
-    }
-}
-
-- (void)getProductInfowithprotectId:(NSString *)proId
-{
-    //这里填你的产品id,根据创建的名字
-    //ProductIdofvip
-    //ProductId
-    NSMutableArray *proArr = [NSMutableArray new];
-    [proArr addObject:proId];
-    NSSet * set = [NSSet setWithArray:proArr];
-    
-    self.request = [[SKProductsRequest alloc] initWithProductIdentifiers:set];
-    self.request.delegate = self;
-    [self.request start];
-    
-    NSLog(@"%@",set);
-    NSLog(ASLocalizedString(@"请求开始请等待..."));
-}
-
-#pragma mark - 以上查询的回调函数,以上查询的回调函数
-- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
-{
-    NSArray *myProduct = response.products;
-    if (myProduct.count == 0)
-    {
-        [[BGHUDHelper sharedInstance] tipMessage:ASLocalizedString(@"无法获取产品信息,购买失败。")];
-        [SVProgressHUD dismiss];
-        return;
-    }
-    NSLog(@"productID:%@", response.invalidProductIdentifiers);
-    NSLog(ASLocalizedString(@"产品付费数量:%lu"),(unsigned long)[myProduct count]);
-    SKPayment * payment = [SKPayment paymentWithProduct:myProduct[0]];
-    [[SKPaymentQueue defaultQueue] addPayment:payment];
-}
-
-#pragma mark - others SKPaymentTransactionObserver
-- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
-{
-    for (SKPaymentTransaction *transaction in transactions)
-    {
-        switch (transaction.transactionState)
-        {
-            case SKPaymentTransactionStatePurchased://交易完成
-                NSLog(@"transactionIdentifier = %@", transaction.transactionIdentifier);
-                [SVProgressHUD dismiss];
-                [self completeTransaction:transaction];
-                //[queue finishTransaction:transaction];
-                break;
-            case SKPaymentTransactionStateFailed://交易失败
-                NSLog(ASLocalizedString(@"交易失败"));
-                [self failedTransaction:transaction];
-                //[queue finishTransaction:transaction];
-                break;
-            case SKPaymentTransactionStateRestored://恢复已购买商品
-                NSLog(ASLocalizedString(@"恢复已购买商品"));
-                [self restoreTransaction:transaction];
-                [queue finishTransaction:transaction];
-                break;
-            case SKPaymentTransactionStatePurchasing://商品添加进列表
-                NSLog(ASLocalizedString(@"商品添加进列表"));
-                break;
-            default:
-                break;
-        }
-    }
-}
-
-- (void)completeTransaction:(SKPaymentTransaction *)transaction
-{
-    // Your application should implement these two methods.
-    NSLog(ASLocalizedString(@"---------进入了这里"));
-    //    NSString * productIdentifier = transaction.payment.productIdentifier;
-    NSString * productIdentifier = [[NSString alloc] initWithData:transaction.transactionReceipt encoding:NSUTF8StringEncoding];
-    NSData *data = [productIdentifier dataUsingEncoding:NSUTF8StringEncoding];
-    NSString *base64String = [data base64EncodedStringWithOptions:0];
-    if ([productIdentifier length] > 0) {
-        // 向自己的服务器验证购买凭证
-        [self shoppingValidation:base64String retryCount:3];
-    }
-    // Remove the transaction from the payment queue.
-    [SVProgressHUD dismiss];
-    [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
-}
-
-#pragma mark -- 向自己的服务器验证购买凭证
-- (void)shoppingValidation : (NSString *)base64Str retryCount:(NSInteger)retryCount
-{
-    retryCount--;
-    if (retryCount <= 0) {
-        [FanweMessage alert:ASLocalizedString(@"支付失败")];
-        return;
-    }
-    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:0];
-//    if (_is_vip)
-//    {
-//        [dict setObject:@"vip_pay" forKey:@"ctl"];
-//    }
-//    else
-//    {
-        [dict setObject:@"pay" forKey:@"ctl"];
-//    }
-    [dict setObject:@"iappay" forKey:@"act"];
-    NSString *userid = [IMAPlatform sharedInstance].host.imUserId;
-    [dict setObject:userid forKey:@"user_id"];
-    [dict setObject:base64Str forKey:@"receipt-data"];
-    [self.httpsManager POSTWithParameters:dict SuccessBlock:^(NSDictionary *responseJson) {
-        NSInteger diamonds = [[responseJson objectForKey:@"total_diamonds"] integerValue];
-        [self.scrollView updateDiamonds:diamonds];
-        [self reloadAcount];
-        [FanweMessage alert:ASLocalizedString(@"充值成功")];
-        
-    } FailureBlock:^(NSError *error) {
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-            [self shoppingValidation:base64Str retryCount:retryCount];
-        });
-    }];
-}
-
-- (void)failedTransaction:(SKPaymentTransaction *)transaction
-{
-    [SVProgressHUD dismiss];
-    if(transaction.error.code != SKErrorPaymentCancelled)
-    {
-        NSLog(ASLocalizedString(@"购买失败"));
-    }
-    else
-    {
-        NSLog(ASLocalizedString(@"用户取消交易"));
-        //[FanweMessage alert:ASLocalizedString(@"您已经取消交易")];
-    }
-    [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
-}
-
-- (void)restoreTransaction:(SKPaymentTransaction *)transaction
-{
-    // 对于已购商品,处理恢复购买的逻辑
-    //[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
-    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
-}
 
 // 支付结果的通知:
 - (void)receiveResult:(NSString*)payid result:(BOOL)success message:(NSString*)message
@@ -354,12 +217,7 @@
 - (void)dealloc
 {
     NSLog(ASLocalizedString(@"释放充值"));
-    if (self.request)
-    {
-        [self.request cancel];
-    }
     [[NSNotificationCenter defaultCenter] removeObserver:self];
-    [[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
 }
 
 -(BogoRechargeScrollView *)scrollView{
@@ -371,14 +229,4 @@
     return _scrollView;
 }
 
-/*
-#pragma mark - Navigation
-
-// In a storyboard-based application, you will often want to do a little preparation before navigation
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
-    // Get the new view controller using [segue destinationViewController].
-    // Pass the selected object to the new view controller.
-}
-*/
-
 @end

+ 11 - 6
BuguLive/Class/Sections/Home/V3NewUIController/NewRechargeUI/View/BogoRechargeScrollView.m

@@ -245,6 +245,11 @@
         return;
     }
     
+    if (!self.payTypeView.selectModel) {
+        [FanweMessage alertHUD:ASLocalizedString(@"请选择支付方式")];
+        return;
+    }
+    
     if ([self.payTypeView.selectModel.class_name isEqualToString:@"Iappay"]) {
         [self payRequestNet:1];
     }else{
@@ -348,13 +353,13 @@
             }
             else if ([sdkType isEqualToString:@"iappay"])
             {
-                [SVProgressHUD showWithStatus:ASLocalizedString(@"正在提交iTunes Store,请等待...")];
-                NSMutableDictionary *configDic = [NSMutableDictionary new];
-                configDic = sdkDic[@"config"];
+//                [SVProgressHUD showWithStatus:ASLocalizedString(@"正在提交iTunes Store,请等待...")];
+//                NSMutableDictionary *configDic = [NSMutableDictionary new];
+//                configDic = sdkDic[@"config"];
 //                self.pro_id = configDic[@"product_id"];
-                
-                if (self.reDelegate && [self.reDelegate respondsToSelector:@selector(checkProid:)]) {
-                    [self.reDelegate checkProid:configDic[@"product_id"]];
+                NSString *productId = sdkDic[@"config"][@"product_id"];
+                if (productId.length && self.reDelegate && [self.reDelegate respondsToSelector:@selector(checkProid:)]) {
+                    [self.reDelegate checkProid:productId];
                 }
                 
             }

+ 4 - 2
BuguLive/Info.plist

@@ -2,6 +2,8 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
+	<key>CFBundleDisplayName</key>
+	<string>711 Live</string>
 	<key>CFBundleExecutable</key>
 	<string>${EXECUTABLE_NAME}</string>
 	<key>CFBundleIcons</key>
@@ -174,8 +176,8 @@
 		<string>fb-messenger-share-api</string>
 		<string>fbauth2</string>
 		<string>fbshareextension</string>
-        <string>google</string>
-        <string>com.google.gpp.signin</string>
+		<string>google</string>
+		<string>com.google.gpp.signin</string>
 	</array>
 	<key>LSRequiresIPhoneOS</key>
 	<true/>