Aucune description

FKIdCardCenter.m 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. //
  2. // FKEditIdCardItem.m
  3. // FirstLink
  4. //
  5. // Created by jack on 15/11/2.
  6. // Copyright © 2015年 FirstLink. All rights reserved.
  7. //
  8. #import "FKIdCardCenter.h"
  9. #import "MWIDCardValidate.h"
  10. #import "UploadFileModel.h"
  11. #import "FKAddIdCardCenter.h"
  12. #import "FKEditIdCardCenter.h"
  13. #import "FKPacketIdCardCenter.h"
  14. #import "FKOrderIdCardCenter.h"
  15. @interface FKIdCardCenter ()
  16. @end
  17. @implementation FKIdCardCenter
  18. - (instancetype)init{
  19. if (self = [super init]) {
  20. self.selectedIndex = 0;
  21. }
  22. return self;
  23. }
  24. - (void)removeImgAtLocation:(BOOL)isFace{
  25. if (isFace) {
  26. self.facePicUrl = nil;
  27. self.inputIdCardNum = nil;
  28. }else{
  29. self.inversePicUrl = nil;
  30. }
  31. }
  32. - (NSArray *)attributeIdCardNumArray{
  33. if (self.idCardItemList.count == 0) return nil;
  34. NSMutableArray *titleArray = [NSMutableArray arrayWithCapacity:self.idCardItemList.count];
  35. for (FKIdCardItem *item in self.idCardItemList) {
  36. NSAttributedString *att = [[NSAttributedString alloc]initWithString:item.idCardNum];
  37. [titleArray addObject:att];
  38. }
  39. return titleArray;
  40. }
  41. - (void)setDefaultIdCard{
  42. [self savePickedIdCardAtIndex:0];
  43. }
  44. - (void)savePickedIdCardAtIndex:(NSUInteger)index{
  45. if (index < self.idCardItemList.count) {
  46. FKIdCardItem *item = self.idCardItemList[index];
  47. self.selectedIndex = index;
  48. self.inputIdCardNum = item.idCardNum;
  49. self.facePicUrl = item.facePic;
  50. self.inversePicUrl = item.inversePic;
  51. }
  52. }
  53. - (BOOL)checkIdInfoCompleteWithError:(NSError **)error{
  54. BOOL isComplete = YES;
  55. NSString *tempErrorStr = @"";
  56. if ([self numberOfImgInput] < 2){
  57. isComplete = NO;
  58. tempErrorStr = @"请上传身份证正反面照片";
  59. } else {
  60. BOOL validate = [MWIDCardValidate validateIdentityCard:self.inputIdCardNum];
  61. BOOL repeatFalse = [self checkIdCardRepeatError];
  62. if (self.inputIdCardNum.length == 0) {
  63. isComplete = NO;
  64. tempErrorStr = @"请输入身份证号码";
  65. } else if (!validate) {
  66. isComplete = NO;
  67. tempErrorStr = @"身份证号码不正确, 请重新输入";
  68. } else if (repeatFalse){
  69. isComplete = NO;
  70. tempErrorStr = @"身份证号码已存在";
  71. } else {
  72. isComplete = YES;
  73. tempErrorStr = @"";
  74. }
  75. }
  76. if (!isComplete && tempErrorStr.length){
  77. *error = [NSError errorWithDomain:@"FirstLinkErrorDomain"
  78. code:0
  79. userInfo:@{NSLocalizedDescriptionKey:tempErrorStr}];
  80. }
  81. return isComplete;
  82. }
  83. /**
  84. 检查用户输入身份证号是否和已有的重复(添加和编辑需要检查,清关上传身份信息可覆盖) 子类重写
  85. */
  86. - (BOOL)checkIdCardRepeatError{
  87. return NO;
  88. }
  89. /**
  90. 有几张照片
  91. */
  92. - (NSUInteger)numberOfImgInput{
  93. NSUInteger num = 0;
  94. if (self.facePicUrl.length) num++;
  95. if (self.inversePicUrl.length) num++;
  96. return num;
  97. }
  98. - (NSString *)getOrderId{
  99. // 子类实现
  100. return nil;
  101. }
  102. - (void)saveAllInfoWithDelegate:(id <FLNetworkDelegate>)delegate{
  103. [self modifyIdCardInfoWithDelegate:delegate];
  104. }
  105. - (void)modifyIdCardInfoWithDelegate:(id <FLNetworkDelegate>)delegate{
  106. NSString *URLString = [NSString stringWithFormat:@"%@/link-site/api/user_id_card/modify_user_id_card_for_payment_order.json", [[FKServerUtil sharedInstance] apiServer]];
  107. NSString *jsonStr = [FLRequestHelper JSONStringWithKeys:@[@"id_card_num", @"a_pic", @"b_pic"] values:@[self.inputIdCardNum.uppercaseString, self.facePicUrl, self.inversePicUrl]];
  108. NSString *orderId = [self getOrderId];
  109. if (orderId.length > 0) {
  110. jsonStr = [FLRequestHelper JSONStringWithKeys:@[@"id_card_num", @"a_pic", @"b_pic", @"order_id"] values:@[self.inputIdCardNum, self.facePicUrl, self.inversePicUrl, orderId]];
  111. }
  112. NSMutableDictionary *para = [NSMutableDictionary dictionaryWithDictionary:[FLRequestHelper commonParamater]];
  113. [para setValue:jsonStr forKey:@"params_json"];
  114. [[FLDataCenter sharedDataCenter] POST:URLString para:para identify:UPLOAD_IDCARD_INFO_REQUEST delegate:delegate];
  115. }
  116. - (void)upLoadImg:(UIImage *)image isFace:(BOOL)isFace delegate:(id <FLNetworkDelegate>)delegate{
  117. if (!image) return;
  118. NSData *data = UIImageJPEGRepresentation(image, 0.8);
  119. WeakSelf(weakSelf);
  120. __block typeof(delegate) block_delegate = delegate;
  121. void(^upLoadSuccess)(MSGHeader *, id) = ^(MSGHeader *header, id responseObject){
  122. if (header.code.intValue == RESPONSE_MSG_NORMAL && [responseObject isKindOfClass:[NSString class]]) {
  123. if (isFace) {
  124. weakSelf.facePicUrl = responseObject;
  125. if ([block_delegate respondsToSelector:@selector(networkDidSuccessResponse:identify:header:)]) {
  126. [block_delegate networkDidSuccessResponse:responseObject identify:UPLOAD_IDCARD_FACE_REQUEST header:header];
  127. }
  128. } else {
  129. weakSelf.inversePicUrl = responseObject;
  130. if ([block_delegate respondsToSelector:@selector(networkDidSuccessResponse:identify:header:)]) {
  131. [block_delegate networkDidSuccessResponse:responseObject identify:UPLOAD_IDCARD_INVERSE_REQUEST header:header];
  132. }
  133. }
  134. }
  135. };
  136. void(^upLoadFail)(MSGHeader *header, NSError *error) = ^(MSGHeader *header, NSError *error){
  137. if ([block_delegate respondsToSelector:@selector(networkDidReceiveError:identify:header:)]) {
  138. [block_delegate networkDidReceiveError:error identify:UPLOAD_IDCARD_INFO_REQUEST header:header];
  139. }
  140. };
  141. [self upLoadImgData:data success:upLoadSuccess failure:upLoadFail];
  142. }
  143. - (void)upLoadImgData:(NSData *)data success:(void (^)(MSGHeader *header, id responseObject))success failure:(void (^)(MSGHeader *header, NSError *error))failure{
  144. [UploadFileModel uploadFile:data
  145. fileType:@"pic"
  146. contentType:@"image/jpeg"
  147. parameters:@{@"watermark": @"1"}
  148. success:^(MSGHeader *header, id responseObject)
  149. {
  150. success(header, responseObject);
  151. } progress:^(NSUInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) {
  152. } failure:^(MSGHeader *header, NSError *error) {
  153. failure(header, error);
  154. }];
  155. }
  156. @end