YOUPAIHRRechargePayWindow.m 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. //
  2. // YOUPAIHRRechargePayWindow.m
  3. // VQU
  4. //
  5. // Created by xiaohaoran on 2021/10/28.
  6. // Copyright © 2021 MS. All rights reserved.
  7. //
  8. #import "YOUPAIHRRechargePayWindow.h"
  9. #import "YOUPAILCRechargeModel.h"
  10. //#import "YOUPAILCIAPHelper.h"
  11. #import "YOUPAILCBillDetailVC.h"
  12. //#import <AlibabaSDK/AlibabaSDK.h>
  13. //#import "IPAManager.h"
  14. #import "YOUPAIZYRechargeBtn.h"
  15. #import "UIViewController+TFPresent.h"
  16. //#import "WXApiObject.h"
  17. #import "YOUPAIHRBillDetailVC.h"
  18. #import "IPAManager.h"
  19. @interface YOUPAIHRRechargePayWindow ()
  20. @property(nonatomic,strong)UILabel* youpaiprechargeTotalLabel;
  21. @property(nonatomic,strong)UIView* youpaiprechargeView;
  22. @property(nonatomic,strong)NSMutableArray* youpaipgoodList;
  23. @property(nonatomic,strong)YOUPAILCRechargeModel* youpaipcurrentModel;
  24. @property(nonatomic,strong)NSMutableArray* youpaipbtnArray;
  25. @property(nonatomic,strong)UIButton* youpaipbuyBtn;
  26. @property(nonatomic,strong)UIScrollView* youpaipscrollView;
  27. @end
  28. @implementation YOUPAIHRRechargePayWindow
  29. - (void)viewWillAppear:(BOOL)animated{
  30. [super viewWillAppear:animated];
  31. [self youpaifinitDataWithType:2];
  32. }
  33. -(void)viewWillDisappear:(BOOL)animated{
  34. [super viewWillDisappear:animated];
  35. }
  36. - (void)viewDidLoad {
  37. [super viewDidLoad];
  38. [UMengRecordTool umengEventCountWithId:RechargePopUp];
  39. self.baseView.hidden = YES;
  40. self.youpaipbtnArray = [NSMutableArray array];
  41. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(youpaifApplePaySuccess:) name:@"yqApplePaySuccess" object:nil];
  42. [self youpaifsetupUI];
  43. }
  44. -(void)youpaifsetupUI{
  45. UIView *bgView = [[UIView alloc]initWithFrame:CGRectMake(0, KScreenHeight*0.4, KScreenWidth,KScreenHeight*0.6)];
  46. [bgView setBackgroundColor:[UIColor whiteColor]];
  47. CAShapeLayer *sectionmaskLayer = [CAShapeLayer layer];
  48. UIBezierPath *sectionpath = [UIBezierPath bezierPathWithRoundedRect:bgView.bounds byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(20, 20)];
  49. sectionmaskLayer.path = sectionpath.CGPath;
  50. bgView.layer.mask = sectionmaskLayer;
  51. [self.view addSubview:bgView];
  52. //关闭按钮
  53. UIButton *closeBtn = [UIButton new];
  54. [bgView addSubview:closeBtn];
  55. [closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  56. make.left.mas_equalTo(15);
  57. make.top.mas_equalTo(15);
  58. make.size.mas_equalTo(CGSizeMake(35, 35));
  59. }];
  60. [closeBtn setImage:[UIImage imageNamed:@"vqu_images_L_live_window_close1"] forState:UIControlStateNormal];
  61. [closeBtn addTarget:self action:@selector(youpaifcloseBtnClick) forControlEvents:UIControlEventTouchUpInside];
  62. //title
  63. UILabel *titleLabel = [UILabel new];
  64. [bgView addSubview:titleLabel];
  65. [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  66. make.centerX.mas_equalTo(0);
  67. make.centerY.mas_equalTo(closeBtn);
  68. }];
  69. titleLabel.text = @"充值";
  70. titleLabel.font = LCBoldFont(17);
  71. titleLabel.textColor = LZ273145Color;
  72. [bgView addSubview:self.youpaipscrollView];
  73. self.youpaipscrollView.frame = CGRectMake(0, 59, KScreenWidth, 400);
  74. self.youpaiprechargeView = [[UIView alloc] init];
  75. [self.youpaipscrollView addSubview:self.youpaiprechargeView];
  76. [self.youpaiprechargeView mas_makeConstraints:^(MASConstraintMaker *make) {
  77. make.left.mas_equalTo(14);
  78. make.width.mas_equalTo(KScreenWidth - 28.0f);
  79. make.top.mas_equalTo(0);
  80. make.height.mas_equalTo(400);
  81. }];
  82. UIButton* buyBtn = [[UIButton alloc]init];
  83. [self.view addSubview:buyBtn];
  84. [buyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  85. make.bottom.equalTo(-SafeHeight-10);
  86. make.size.mas_equalTo(CGSizeMake(KScreenWidth-120, 48));
  87. make.centerX.mas_equalTo(0);
  88. }];
  89. buyBtn.userInteractionEnabled = NO;
  90. buyBtn.backgroundColor = LZD3D1D7Color;
  91. buyBtn.layer.cornerRadius = 24.0;
  92. buyBtn.layer.masksToBounds = YES;
  93. buyBtn.titleLabel.font = LCFont17;
  94. [buyBtn setTitleColor:LZ273145Color forState:(UIControlStateNormal)];
  95. [buyBtn setTitle:@"立即充值" forState:(UIControlStateNormal)];
  96. [buyBtn addTarget:self action:@selector(youpaifbuyBtnClick) forControlEvents:(UIControlEventTouchUpInside)];
  97. self.youpaipbuyBtn = buyBtn;
  98. }
  99. - (void)youpaifupdateView{
  100. if (self.youpaipbtnArray.count>0) {
  101. for (YOUPAIZYRechargeBtn* btn in self.youpaipbtnArray) {
  102. [btn removeFromSuperview];
  103. }
  104. }
  105. [self.youpaipbtnArray removeAllObjects];
  106. for (UIView *view in self.youpaiprechargeView.subviews) {
  107. [view removeFromSuperview];
  108. }
  109. CGFloat space = ScaleSize(6.0f);
  110. CGFloat width = (KScreenWidth - 24.0f - space) / 2.0f;
  111. CGFloat height = ScaleSize(74.0f);
  112. CGFloat rechargeViewHeight = 0.0f;
  113. for (NSInteger i = 0; i<self.youpaipgoodList.count; i++) {
  114. YOUPAILCRechargeModel* model = self.youpaipgoodList[i];
  115. model.youpaipreward = model.youpaipreward.length == 0 ? @"0" : model.youpaipreward;
  116. NSInteger col = i % 2;
  117. NSInteger row = i / 2;
  118. YOUPAIZYRechargeBtn* btn = [[YOUPAIZYRechargeBtn alloc]initWithFrame:CGRectMake(col * width + col * space, row * height + row * space,width,height) model:model];
  119. // btn.backgroundColor = HexColorFromRGB(0x4F4B5B);
  120. btn.layer.cornerRadius = ScaleSize(5.0f);
  121. btn.layer.borderWidth = ScaleSize(1.0f);
  122. btn.layer.borderColor = LZF5F4F7Color.CGColor;
  123. btn.youpaippriceLabel.text = [NSString stringWithFormat:@"¥%@",model.youpaipprice];
  124. NSString *amountText = [NSString stringWithFormat:@"%@钻石",model.youpaipamount];
  125. NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:amountText];
  126. NSRange range = NSMakeRange(model.youpaipamount.length, 2);
  127. [attrStr addAttribute:NSFontAttributeName value:LCFont(ScaleSize(14.0f)) range:range];
  128. [attrStr addAttribute:NSForegroundColorAttributeName value:LZ273145Color range:range];
  129. btn.youpaipgoodLabel.attributedText = attrStr.copy;
  130. if (model.youpaipbtn_text.count != 0) {
  131. btn.youpaipgiveLabel.text = model.youpaipbtn_text[0];
  132. }
  133. [btn addTarget:self action:@selector(youpaifrechargeBtnClick:) forControlEvents:(UIControlEventTouchUpInside)];
  134. [self.youpaiprechargeView addSubview:btn];
  135. [self.youpaipbtnArray addObject:btn];
  136. if (i==1) {
  137. [self youpaifrechargeBtnClick:btn];
  138. }
  139. rechargeViewHeight = CGRectGetMaxY(btn.frame);
  140. }
  141. // CGRect rechargeRect = self.rechargeView.frame;
  142. // rechargeRect.size.height = rechargeViewHeight;
  143. // self.rechargeView.frame = rechargeRect;
  144. [self.youpaiprechargeView mas_updateConstraints:^(MASConstraintMaker *make) {
  145. make.height.mas_equalTo(rechargeViewHeight);
  146. }];
  147. // [self.buyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  148. // make.top.mas_equalTo(self.rechargeView.mas_bottom).offset(35);
  149. // make.size.mas_equalTo(CGSizeMake(KScreenWidth-120, 48));
  150. // make.centerX.mas_equalTo(0);
  151. // }];
  152. self.youpaipscrollView.contentSize = CGSizeMake(0,CGRectGetMaxY(_youpaiprechargeView.frame) + SafeHeight+130);
  153. }
  154. - (void)youpaifrechargeBtnClick:(YOUPAIZYRechargeBtn*)reBtn{
  155. self.youpaipcurrentModel = reBtn.youpaipreModel;
  156. [self.youpaipbuyBtn setBackgroundImage:[LCTools ColorImage:CGSizeMake(KScreenWidth-120, 48) FromColors:@[LZBFB6FFColor,LZ7C69FEColor] ByGradientType:(GradientLeftToRight)] forState:(UIControlStateNormal)];
  157. [self.youpaipbuyBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  158. self.youpaipbuyBtn.userInteractionEnabled = YES;
  159. for (YOUPAIZYRechargeBtn* btn in self.youpaipbtnArray) {
  160. btn.layer.cornerRadius = ScaleSize(5.0f);
  161. btn.layer.borderWidth = ScaleSize(1.0f);
  162. btn.layer.borderColor = LZF5F4F7Color.CGColor;
  163. btn.selected = NO;
  164. btn.backgroundColor = [UIColor clearColor];
  165. btn.youpaipgoodLabel.textColor = LZ273145Color;
  166. btn.youpaipgiveLabel.textColor = LZA3AABEColor;
  167. }
  168. reBtn.layer.cornerRadius = ScaleSize(5.0f);
  169. reBtn.layer.borderWidth = ScaleSize(2.0f);
  170. reBtn.layer.borderColor = LZ7C69FEColor.CGColor;
  171. reBtn.selected = YES;
  172. reBtn.backgroundColor = [LZ7C69FEColor colorWithAlphaComponent:0.05f];
  173. reBtn.youpaipgoodLabel.textColor = LZ7C69FEColor;
  174. reBtn.youpaipgiveLabel.textColor = LZ7C69FEColor;
  175. }
  176. - (void)youpaifinitDataWithType:(NSInteger)type{
  177. [LCHttpHelper requestWithURLString:WalletGoodList parameters:@{@"type":@(type)} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  178. NSDictionary* dict = (NSDictionary*)responseObject;
  179. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  180. if (code==0) {//成功
  181. self.youpaiprechargeTotalLabel.text = [NSString stringWithFormat:@"%.0f",[[[dict objectForKey:@"data"]objectForKey:@"coin"]floatValue]+[[[dict objectForKey:@"data"]objectForKey:@"income_coin"]floatValue]];
  182. self.youpaipgoodList = [YOUPAILCRechargeModel mj_objectArrayWithKeyValuesArray:[[dict objectForKey:@"data"]objectForKey:@"list"]];
  183. [self youpaifupdateView];
  184. }
  185. } failure:^(NSError *error) {
  186. }];
  187. }
  188. - (void)youpaifApplePaySuccess:(NSNotification*)noti{
  189. if ([noti.name isEqualToString:@"yqApplePaySuccess"]) {
  190. [self youpaifinitDataWithType:2];
  191. }
  192. }
  193. //支付
  194. -(void)youpaifbuyBtnClick{
  195. [self applePay];
  196. }
  197. - (void)applePay{
  198. self.youpaipbuyBtn.userInteractionEnabled = NO;
  199. /// 内购
  200. [ZCHUDHelper showWithStatus:@"支付中..."];
  201. NSLog(@"%@",self.youpaipcurrentModel.youpaipios_product_id);
  202. [[IPAManager shareIAPManager] startPurchWithID:self.youpaipcurrentModel.youpaipios_product_id completeHandle:^(IAPPurchType type, NSString *data) {
  203. NSLog(@"type = %ld",type);
  204. if (type == IAPPurchSuccess) {
  205. [LCSaveData saveReceiptData:data];
  206. [self requestApplePayBack:data];
  207. }else{
  208. dispatch_async(dispatch_get_main_queue(), ^{
  209. self.youpaipbuyBtn.userInteractionEnabled = YES;
  210. });
  211. NSString *title = @"";
  212. switch (type) {
  213. case IAPPurchFailed:
  214. title = @"购买失败";
  215. break;
  216. case IAPPurchCancle:
  217. title = @"已取消购买";
  218. break;
  219. case IAPPurchVerFailed:
  220. title = @"订单校验失败";
  221. break;
  222. // case IAPPurchVerSuccess:
  223. // NSLog(@"订单校验成功");
  224. // break;
  225. case IAPPurchNotArrow:
  226. title = @"不允许程序内付费";
  227. break;
  228. default:
  229. break;
  230. }
  231. if (title.length == 0) {
  232. [ZCHUDHelper dismiss];
  233. }else{
  234. [ZCHUDHelper showTitle:title];
  235. }
  236. }
  237. }];
  238. }
  239. - (void)requestApplePayBack:(NSString *)receipt_data{
  240. [LCHttpHelper requestWithURLString:ApplePayBack parameters:@{@"receipt_data":receipt_data} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  241. NSDictionary* dict = (NSDictionary*)responseObject;
  242. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  243. dispatch_async(dispatch_get_main_queue(), ^{
  244. self.youpaipbuyBtn.userInteractionEnabled = YES;
  245. });
  246. if (code == 0) {
  247. [LCSaveData removeReceiptData:receipt_data];
  248. NSInteger type = 4;
  249. // if (![LCSaveData getOnlineVersion]) {
  250. // type = 4;
  251. // }
  252. [self youpaifinitDataWithType:type];
  253. // if (self.paySuccessBlock != nil) {
  254. // self.paySuccessBlock();
  255. // }
  256. }
  257. [ZCHUDHelper showTitle:[dict objectForKey:@"message"]];
  258. } failure:^(NSError *error) {
  259. dispatch_async(dispatch_get_main_queue(), ^{
  260. self.youpaipbuyBtn.userInteractionEnabled = YES;
  261. });
  262. [ZCHUDHelper showTitle:error.localizedDescription];
  263. }];
  264. }
  265. -(void)youpaifcloseBtnClick{
  266. [self dismissViewControllerAnimated:YES completion:^{
  267. }];
  268. }
  269. - (UIScrollView *)youpaipscrollView{
  270. if (!_youpaipscrollView) {
  271. _youpaipscrollView = [[UIScrollView alloc]initWithFrame:CGRectZero];
  272. _youpaipscrollView.scrollEnabled = YES;
  273. _youpaipscrollView.pagingEnabled = NO;
  274. _youpaipscrollView.bounces = YES;
  275. _youpaipscrollView.showsVerticalScrollIndicator = NO;
  276. _youpaipscrollView.showsHorizontalScrollIndicator = NO;
  277. _youpaipscrollView.backgroundColor = [UIColor clearColor];
  278. }
  279. return _youpaipscrollView;
  280. }
  281. @end